tagging KDE 3.5.8
[kdevelop:kdevelop.git] / admin / cvs.sh
1 #! /bin/sh
2 #
3 # cvs.sh
4 #
5 # This file contains support code from Makefile.common
6 # It defines a shell function for each known target
7 # and then does a case to call the correct function.
8
9 unset MAKEFLAGS
10
11 call_and_fix_autoconf()
12 {
13   $AUTOCONF || exit 1
14   if test -r configure.in.in ; then
15     perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
16     \\n  perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
17     \\\\\\n    || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
18     \\n  rm -f \\\$CONFIG_STATUS.bak\\nfi\
19     \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
20   fi
21 }
22
23 strip_makefile()
24 {
25   if test ! -f $makefile_wo; then
26     perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
27   fi
28 }
29
30 check_autotool_versions()
31 {
32 required_autoconf_version="2.53 or newer"
33 AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
34 case $AUTOCONF_VERSION in
35   Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
36   "" )
37     echo "*** AUTOCONF NOT FOUND!."
38     echo "*** KDE requires autoconf $required_autoconf_version"
39     exit 1
40     ;;
41   * )
42     echo "*** YOU'RE USING $AUTOCONF_VERSION."
43     echo "*** KDE requires autoconf $required_autoconf_version"
44     exit 1
45     ;;
46 esac
47
48 AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
49 case $AUTOHEADER_VERSION in
50   Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
51   "" )
52     echo "*** AUTOHEADER NOT FOUND!."
53     echo "*** KDE requires autoheader $required_autoconf_version"
54     exit 1
55     ;;
56   * )
57     echo "*** YOU'RE USING $AUTOHEADER_VERSION."
58     echo "*** KDE requires autoheader $required_autoconf_version"
59     exit 1
60     ;;
61 esac
62
63 AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
64 required_automake_version="1.6.1 or newer"
65 case $AUTOMAKE_STRING in
66   automake*1.5d* | automake*1.5* | automake*1.5-* )
67     echo "*** YOU'RE USING $AUTOMAKE_STRING."
68     echo "*** KDE requires automake $required_automake_version"
69     exit 1
70     ;;
71   automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
72     echo "*** $AUTOMAKE_STRING found."
73     UNSERMAKE=no
74     ;;
75   "" )
76     echo "*** AUTOMAKE NOT FOUND!."
77     echo "*** KDE requires automake $required_automake_version"
78     exit 1
79     ;;
80   *unsermake* ) :
81     echo "*** YOU'RE USING UNSERMAKE."
82     echo "*** GOOD LUCK!! :)"
83     UNSERMAKE=unsermake
84     ;;
85   * )
86     echo "*** YOU'RE USING $AUTOMAKE_STRING."
87     echo "*** KDE requires automake $required_automake_version"
88     exit 1
89     ;;
90 esac
91 unset required_automake_version
92 }
93
94 cvs()
95 {
96 check_autotool_versions
97 acinclude_m4 
98
99 ### Make new subdirs and configure.in.
100 ### The make calls could be optimized away here,
101 ### with a little thought.
102 if test -r configure.in.in; then
103     rm -f configure.in
104     echo "*** Creating list of subdirectories"
105     create_subdirs
106
107     if test -r Makefile.am.in; then
108         echo "*** Creating Makefile.am"
109         if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then 
110             strip_makefile
111             $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
112         else
113             Makefile_am
114         fi
115      fi
116      configure_files
117      echo "*** Creating configure.in"
118      if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then 
119        strip_makefile
120        $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
121      else
122        configure_in
123      fi
124 fi
125
126 echo "*** Creating aclocal.m4"
127 $ACLOCAL $ACLOCALFLAGS || exit 1
128 echo "*** Creating configure"
129 call_and_fix_autoconf
130
131 if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
132   echo "*** Creating config.h template"
133   $AUTOHEADER || exit 1
134   touch config.h.in
135 fi
136
137 echo "*** Creating Makefile templates"
138 $AUTOMAKE || exit 1
139
140 if test "$UNSERMAKE" = no; then
141   echo "*** Postprocessing Makefile templates"
142   perl -w admin/am_edit || exit 1
143 fi
144
145 if egrep "^cvs-local:" $makefile_am >/dev/null; then \
146   strip_makefile
147   $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
148 fi
149
150 echo "*** Creating date/time stamp"
151 touch stamp-h.in
152
153 echo "*** Finished"
154 echo "    Don't forget to run ./configure"
155 echo "    If you haven't done so in a while, run ./configure --help"
156 }
157
158 dist()
159 {
160 check_autotool_versions
161
162 ###
163 ### First build all of the files necessary to do just "make"
164 ###
165 acinclude_m4
166 if test -r configure.in.in; then
167   rm -f configure.in
168   create_subdirs
169
170   if test -r Makefile.am.in; then
171     if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then 
172       strip_makefile
173       $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
174     else
175       Makefile_am
176     fi
177   fi
178   configure_files
179   if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then 
180     strip_makefile
181     $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
182   else
183     configure_in
184   fi
185 fi
186 $ACLOCAL $ACLOCALFLAGS
187 if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
188   echo "*** Creating config.h template"
189   $AUTOHEADER || exit 1
190   touch config.h.in
191 fi
192 $AUTOMAKE --foreign || exit 1
193 if test "$UNSERMAKE" = no; then
194   echo "*** Postprocessing Makefile templates"
195   perl -w admin/am_edit || exit 1
196 fi
197 call_and_fix_autoconf
198 touch stamp-h.in
199 if grep "^cvs-local:" $makefile_am >/dev/null; then
200   strip_makefile
201   $MAKE -f $makefile_wo cvs-local top_srcdir=.
202 fi
203
204 ###
205 ### Then make messages
206 ###
207 if test -d po; then
208  LIST=`find ./po -name "*.po"`
209  for i in $LIST; do
210   file2=`echo $i | sed -e "s#\.po#\.gmo#"`
211   msgfmt -o $file2 $i || touch $file2
212  done
213 fi
214 if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
215   strip_makefile
216   $MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
217 fi
218 }
219
220 subdir_dist()
221 {
222 $ACLOCAL $ACLOCALFLAGS
223 $AUTOHEADER
224 touch config.h.in
225 $AUTOMAKE
226 AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
227 case $AUTOMAKE_STRING in
228   *unsermake* ) :
229     ;;
230   *)
231      perl -w ../admin/am_edit --path=../admin
232 esac
233 call_and_fix_autoconf
234 touch stamp-h.in
235 }
236
237 configure_in()
238 {
239 rm -f configure.in configure.in.new
240 kde_use_qt_param=
241 test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
242 list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
243 : > configure.in.new
244 for file in $list; do 
245   echo "dnl =======================================================" >> configure.in.new
246   echo "dnl FILE: $file" >> configure.in.new
247   echo "dnl =======================================================" >> configure.in.new
248   echo "" >> configure.in.new
249   cat $file >> configure.in.new
250 done
251 echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
252 if test -f Makefile.am.in; then
253   subdirs=`cat subdirs`
254   for dir in $subdirs; do
255     vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
256     echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
257     if test -f "$dir/configure.in"; then
258         echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
259         echo "  AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
260         echo "fi" >> configure.in.new
261     fi
262   done
263 fi
264
265 echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
266
267 if test -f inst-apps; then
268     topleveldirs=`cat inst-apps`
269 else
270     topleveldirs=
271     for dir in `ls -1d * | sort`; do
272         if test "$dir" != "debian" && test -d $dir; then
273             topleveldirs="$topleveldirs $dir"
274         fi
275     done
276 fi
277
278 for topleveldir in $topleveldirs; do 
279   if test -f $topleveldir/configure.in; then
280         continue
281   fi
282   if test -f $topleveldir/Makefile.am; then :; else
283         continue
284   fi
285
286   mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
287        sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
288   for i in $mfs; do
289      echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
290   done
291 done
292
293 files=`cat configure.files`
294 list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
295 for file in $list; do 
296     echo "AC_CONFIG_FILES([ $file ])" >>  configure.in.new
297 done
298
299 midfiles=`cat configure.files | fgrep "configure.in.mid"`
300 test -n "$midfiles" && cat $midfiles >> configure.in.new
301
302 echo "AC_OUTPUT" >> configure.in.new
303 modulename=
304 if test -f configure.in.in; then
305    if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
306       kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
307    fi
308    if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
309       line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
310       if test -n "$line"; then
311           modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
312           VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
313       fi
314       sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
315           configure.in.new > configure.in && mv configure.in configure.in.new
316    fi
317 fi
318 if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
319      VERSION="\"3.5.8\""
320 fi
321 if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
322    modulename=`pwd`; 
323    modulename=`basename $modulename`
324    esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
325    modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`   
326
327 fi
328 if test -n "$kde_use_qt_param"; then
329       sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
330         configure.in.new > configure.in && mv configure.in configure.in.new
331 fi
332 sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
333         sed -e "s#@VERSION@#$VERSION#" > configure.in
334 botfiles=`cat configure.files | egrep "configure.in.bot"`
335 test -n "$botfiles" && cat $botfiles >> configure.in
336 cat $admindir/configure.in.bot.end >> configure.in
337 rm -f configure.in.new
338 }
339
340 configure_files()
341 {
342 echo "*** Creating configure.files"
343 admindir=NO
344 for i in . .. ../.. ../../..; do
345   if test -x $i/admin; then admindir=$i/admin; break; fi
346 done
347 rm -f configure.files
348 touch configure.files
349 if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
350         echo $admindir/configure.in.min >> configure.files
351 fi
352 test -f configure.in.in && echo configure.in.in >> configure.files
353 # we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
354 if test -f inst-apps; then
355    inst=`cat inst-apps`
356    list=""
357    for i in $inst; do
358       list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
359                 sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
360    done
361 else
362    list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
363                 sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
364 fi
365 for i in $list; do if test -f $i && test `dirname $i` != "." ; then
366   echo $i >> configure.files
367 fi; done
368 test -f configure.in.mid && echo configure.in.mid >> configure.files
369 test -f configure.in.bot && echo configure.in.bot >> configure.files
370 if test ! -s configure.files; then
371    echo "There are no files to build a configure. Please check your checkout."
372    exit 1
373 fi
374 }
375
376 create_subdirs()
377 {
378 if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then 
379     # as many modules contain rules to create subdirs without any
380     # dependencies make won't create it unless there is no file.
381     # so we check if that's a dummy rule or one that works
382     rm -f subdirs.cvs.sh.$$
383     if test -f subdirs; then
384         mv subdirs subdirs.cvs.sh.$$
385     fi
386     strip_makefile
387     $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
388     if test -f subdirs.cvs.sh.$$; then
389         if test -s subdirs; then
390             rm subdirs.cvs.sh.$$ 
391         else
392             mv subdirs.cvs.sh.$$ subdirs
393         fi
394     fi
395 else
396     subdirs
397 fi
398 }
399
400 subdirs()
401 {
402 dirs=
403 idirs=
404 if test -f inst-apps; then
405    idirs=`cat inst-apps`
406 else
407    idirs=`ls -1 | sort`
408 fi
409
410 compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
411 compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
412 for i in $idirs; do
413     if test -f $i/Makefile.am; then
414        case " $compilefirst $compilelast " in
415          *" $i "*) ;;
416          *) dirs="$dirs $i"
417        esac
418     fi
419 done
420
421 : > ./_SUBDIRS
422
423 for d in $compilefirst; do
424    echo $d >> ./_SUBDIRS
425 done
426
427 (for d in $dirs; do 
428    list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
429    for s in $list; do
430       echo $s $d
431    done
432    list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
433    for s in $list; do
434       echo $d $s
435    done
436    echo $d $d
437 done ) | tsort >> ./_SUBDIRS
438
439 for d in $compilelast; do
440    echo $d >> ./_SUBDIRS
441 done
442
443 if test -r subdirs && cmp -s subdirs _SUBDIRS; then
444     rm -f _SUBDIRS
445 fi
446 test -r _SUBDIRS && mv _SUBDIRS subdirs || true
447 }
448
449 Makefile_am()
450 {
451 if test -f Makefile.am.in; then
452   compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
453   compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
454
455   idirs=
456   dirs=
457   if test -f inst-apps; then
458      idirs=`cat inst-apps`
459   else
460      idirs=`cat subdirs`
461   fi
462   for i in $idirs; do
463     case " $compilefirst $compilelast " in
464       *" $i "*) ;;
465       *) dirs="$dirs $i"
466     esac
467   done
468
469   adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
470   if echo "$adds" | fgrep "*" >/dev/null ; then
471     adds=`ls -d -1 $adds 2>/dev/null`
472     fgrep -v  '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
473     str='$(top_srcdir)/acinclude.m4:'
474     for add in $adds; do 
475         str="$str \$(top_srcdir)/$add"
476     done
477     echo $str >> Makefile.am.in.adds
478   else
479     cat Makefile.am.in > Makefile.am.in.adds
480   fi
481
482   cat Makefile.am.in.adds | \
483       sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
484       sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
485     echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
486   rm Makefile.am.in.adds
487 fi
488 }
489
490 acinclude_m4()
491 {
492   echo "*** Creating acinclude.m4"
493   adds=
494   if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then 
495     strip_makefile
496     rm -f acinclude.m4
497     adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
498     if echo $adds | fgrep "*" >/dev/null ; then
499       adds=`ls -d -1 $adds 2>/dev/null`
500     else
501       $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
502     fi
503   else
504     rm -f acinclude.m4
505   fi
506   # if it wasn't created up to now, then we do it better
507   if test ! -f acinclude.m4; then
508      cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
509   fi
510 }
511
512 package_merge()
513 {
514 catalogs=$POFILES
515 for cat in $catalogs; do
516   msgmerge -o $cat.new $cat $PACKAGE.pot
517   if test -s $cat.new; then
518     grep -v "\"POT-Creation" $cat.new > $cat.new.2
519     grep -v "\"POT-Creation" $cat >> $cat.new.1
520     if diff $cat.new.1 $cat.new.2; then
521         rm $cat.new
522     else
523         mv $cat.new $cat
524     fi
525     rm -f $cat.new.1 $cat.new.2
526   fi
527 done
528 }
529
530 extract_messages()
531 {
532 podir=${podir:-$PWD/po}
533 files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
534 dirs=`for i in $files; do echo \`dirname $i\`; done`
535 tmpname="$PWD/messages.log"
536 if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
537 if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
538 export EXTRACTRC PREPARETIPS
539
540 for subdir in $dirs; do
541   test -z "$VERBOSE" || echo "Making messages in $subdir"
542   (cd $subdir
543    if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
544         $EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
545    else
546         candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
547         if test -n "$candidates"; then
548             echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
549         fi
550    fi
551    if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
552         echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
553    else echo " " > _translatorinfo.cpp
554    fi
555    perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
556
557    kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
558    if ! test -f $kdepotpath; then
559         kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
560    fi
561
562    $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
563         XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
564    exit_code=$?
565    if test "$exit_code" != 0; then
566        echo "make exit code: $exit_code"
567    fi
568    ) 2>&1 | grep -v '^make\[1\]' > $tmpname
569    test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
570    test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
571    rm -f $subdir/_translatorinfo.cpp
572    rm -f $subdir/_transMakefile
573 done
574 rm -f $tmpname
575 }
576
577 package_messages()
578 {
579 rm -rf po.backup
580 mkdir po.backup
581
582 for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
583   egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
584   cat po/$i > po.backup/backup_$i
585   touch -r po/$i po.backup/backup_$i
586   rm po/$i
587 done
588
589 extract_messages
590
591 for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
592   test -f po/$i || echo "disappeared: $i"
593 done
594 for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
595   sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
596   #msgmerge -q -o po/$i po/$i po/$i
597   egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
598   if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
599     echo "will update $i"
600   else
601     if test -f po.backup/backup_$i; then
602       test -z "$VERBOSE" || echo "I'm restoring $i"
603       mv po.backup/backup_$i po/$i
604       rm po.backup/$i
605     else
606       echo "will add $i"
607     fi
608   fi
609 done
610 rm -f temp.pot
611 rm -rf po.backup
612 }
613
614 # Make sure that sorting is always done the same way
615 LC_ALL=C
616 export LC_ALL
617 unset LANG || :
618 unset LC_CTYPE || :
619 unset LANGUAGE || :
620
621 unset CDPATH || :
622 admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
623 test "x$admindir" = "x$0" && admindir=.
624
625 test "x$MAKE" = x && MAKE=make
626 makefile_am=Makefile.am
627 makefile_wo=Makefile.am.wo
628 if test -f Makefile.am.in; then
629   makefile_am=Makefile.am.in
630   makefile_wo=Makefile.am.in.wo
631   rm -f $makefile_wo
632 fi
633
634 # Call script to find autoconf and friends.  Uses eval since the script outputs
635 # sh-compatible code.
636 eval `$admindir/detect-autoconf.pl`
637
638 ###
639 ### Main
640 ###
641
642 arg=`echo $1 | tr .- __`
643 case $arg in
644   cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
645   cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
646   configure ) call_and_fix_autoconf ;;
647   * ) echo "Usage: cvs.sh <target>"
648       echo "Target can be one of:"
649       echo "    cvs svn dist"
650       echo "    configure.in configure.files"
651       echo "    package-merge package-messages"
652       echo ""
653       echo "Usage: anything but $1"
654       exit 1 ;;
655 esac
656
657 if test -f $makefile_wo; then
658   rm $makefile_wo
659 fi
660
661 exit 0