1*63eb84d1Schristos#! /bin/sh
2*63eb84d1Schristos#
3*63eb84d1Schristos# cvs.sh
4*63eb84d1Schristos#
5*63eb84d1Schristos# This file contains support code from Makefile.common
6*63eb84d1Schristos# It defines a shell function for each known target
7*63eb84d1Schristos# and then does a case to call the correct function.
8*63eb84d1Schristos
9*63eb84d1Schristoscall_and_fix_autoconf()
10*63eb84d1Schristos{
11*63eb84d1Schristos  $AUTOCONF || exit 1
12*63eb84d1Schristos  if test -r configure.in.in ; then
13*63eb84d1Schristos    perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
14*63eb84d1Schristos    \\n  perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
15*63eb84d1Schristos    \\\\\\n    || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
16*63eb84d1Schristos    \\n  rm -f \\\$CONFIG_STATUS.bak\\nfi\
17*63eb84d1Schristos    \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/;" configure
18*63eb84d1Schristos  fi
19*63eb84d1Schristos}
20*63eb84d1Schristos
21*63eb84d1Schristosstrip_makefile()
22*63eb84d1Schristos{
23*63eb84d1Schristos  if test -f $makefile_wo; then :; else
24*63eb84d1Schristos    perl -e '$in=0; while ( <> ) { $in = 1 if ($_=~ m/^if /); print $_ unless ($in); $in = 0 if ($_ =~ m/^endif/); }' < Makefile.am.in > $makefile_wo
25*63eb84d1Schristos  fi
26*63eb84d1Schristos}
27*63eb84d1Schristos
28*63eb84d1Schristoscheck_autotool_versions()
29*63eb84d1Schristos{
30*63eb84d1SchristosAUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
31*63eb84d1Schristoscase $AUTOCONF_VERSION in
32*63eb84d1Schristos  Autoconf*2.[5-9]* | autoconf*2.[5-9]* ) : ;;
33*63eb84d1Schristos  "" )
34*63eb84d1Schristos    echo "*** AUTOCONF NOT FOUND!."
35*63eb84d1Schristos    echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
36*63eb84d1Schristos    exit 1
37*63eb84d1Schristos    ;;
38*63eb84d1Schristos  * )
39*63eb84d1Schristos    echo "*** YOU'RE USING $AUTOCONF_VERSION."
40*63eb84d1Schristos    echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
41*63eb84d1Schristos    exit 1
42*63eb84d1Schristos    ;;
43*63eb84d1Schristosesac
44*63eb84d1Schristos
45*63eb84d1SchristosAUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
46*63eb84d1Schristoscase $AUTOHEADER_VERSION in
47*63eb84d1Schristos  Autoconf*2.[5-9]* | autoheader*2.[5-9]* ) : ;;
48*63eb84d1Schristos  "" )
49*63eb84d1Schristos    echo "*** AUTOHEADER NOT FOUND!."
50*63eb84d1Schristos    echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
51*63eb84d1Schristos    exit 1
52*63eb84d1Schristos    ;;
53*63eb84d1Schristos  * )
54*63eb84d1Schristos    echo "*** YOU'RE USING $AUTOHEADER_VERSION."
55*63eb84d1Schristos    echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
56*63eb84d1Schristos    exit 1
57*63eb84d1Schristos    ;;
58*63eb84d1Schristosesac
59*63eb84d1Schristos
60*63eb84d1SchristosAUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
61*63eb84d1Schristoscase $AUTOMAKE_STRING in
62*63eb84d1Schristos  automake*1.5d* )
63*63eb84d1Schristos    echo "*** YOU'RE USING $AUTOMAKE_STRING."
64*63eb84d1Schristos    echo "*** KDE requires automake 1.6"
65*63eb84d1Schristos    exit 1
66*63eb84d1Schristos    ;;
67*63eb84d1Schristos  automake*1.[6-9] | automake*1.[6-9].* | automake*1.1[0-9] | automake*1.1[0-9].* ) : ;;
68*63eb84d1Schristos  "" )
69*63eb84d1Schristos    echo "*** AUTOMAKE NOT FOUND!."
70*63eb84d1Schristos    echo "*** KDE requires automake 1.6"
71*63eb84d1Schristos    exit 1
72*63eb84d1Schristos    ;;
73*63eb84d1Schristos  unsermake* ) :
74*63eb84d1Schristos    echo "*** YOU'RE USING UNSERMAKE."
75*63eb84d1Schristos    echo "*** GOOD LUCK!! :)"
76*63eb84d1Schristos    ;;
77*63eb84d1Schristos  * )
78*63eb84d1Schristos    echo "*** YOU'RE USING $AUTOMAKE_STRING."
79*63eb84d1Schristos    echo "*** KDE requires automake 1.6"
80*63eb84d1Schristos    exit 1
81*63eb84d1Schristos    ;;
82*63eb84d1Schristosesac
83*63eb84d1Schristos}
84*63eb84d1Schristos
85*63eb84d1Schristoscvs()
86*63eb84d1Schristos{
87*63eb84d1Schristoscheck_autotool_versions
88*63eb84d1Schristos
89*63eb84d1Schristos### Produce acinclude.m4
90*63eb84d1Schristosif grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
91*63eb84d1Schristos  echo "*** Creating acinclude.m4"
92*63eb84d1Schristos  rm -f acinclude.m4 configure.files
93*63eb84d1Schristos
94*63eb84d1Schristos  strip_makefile
95*63eb84d1Schristos  $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4
96*63eb84d1Schristosfi
97*63eb84d1Schristos
98*63eb84d1Schristos### Make new subdirs and configure.in.
99*63eb84d1Schristos### The make calls could be optimized away here,
100*63eb84d1Schristos### with a little thought.
101*63eb84d1Schristosif test -r configure.in.in; then
102*63eb84d1Schristos  rm -f subdirs configure.in
103*63eb84d1Schristos  echo "*** Creating list of subdirectories"
104*63eb84d1Schristos  subdirs
105*63eb84d1Schristos  echo "*** Creating configure.in"
106*63eb84d1Schristos  configure_files
107*63eb84d1Schristos  strip_makefile
108*63eb84d1Schristos  $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
109*63eb84d1Schristosfi
110*63eb84d1Schristos
111*63eb84d1Schristosecho "*** Creating aclocal.m4"
112*63eb84d1Schristos$ACLOCAL || exit 1
113*63eb84d1Schristosecho "*** Creating configure"
114*63eb84d1Schristoscall_and_fix_autoconf
115*63eb84d1Schristos
116*63eb84d1Schristosif egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
117*63eb84d1Schristos  echo "*** Creating config.h template"
118*63eb84d1Schristos  $AUTOHEADER || exit 1
119*63eb84d1Schristosfi
120*63eb84d1Schristos
121*63eb84d1Schristosecho "*** Creating Makefile templates"
122*63eb84d1Schristos$AUTOMAKE || exit 1
123*63eb84d1Schristosif test -z "$UNSERMAKE"; then
124*63eb84d1Schristos  echo "*** Postprocessing Makefile templates"
125*63eb84d1Schristos  perl -w admin/am_edit || exit 1
126*63eb84d1Schristosfi
127*63eb84d1Schristos
128*63eb84d1Schristosif egrep "^cvs-local:" $makefile_am >/dev/null; then \
129*63eb84d1Schristos  strip_makefile
130*63eb84d1Schristos  $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
131*63eb84d1Schristosfi
132*63eb84d1Schristos
133*63eb84d1Schristosecho "*** Creating date/time stamp"
134*63eb84d1Schristostouch stamp-h.in
135*63eb84d1Schristos
136*63eb84d1Schristosecho "*** Finished"
137*63eb84d1Schristosecho "    Don't forget to run ./configure"
138*63eb84d1Schristosecho "    If you haven't done so in a while, run ./configure --help"
139*63eb84d1Schristos}
140*63eb84d1Schristos
141*63eb84d1Schristosdist()
142*63eb84d1Schristos{
143*63eb84d1Schristoscheck_autotool_versions
144*63eb84d1Schristos
145*63eb84d1Schristos###
146*63eb84d1Schristos### First build all of the files necessary to do just "make"
147*63eb84d1Schristos###
148*63eb84d1Schristosif grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
149*63eb84d1Schristos  strip_makefile
150*63eb84d1Schristos  $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4
151*63eb84d1Schristosfi
152*63eb84d1Schristosif test -r configure.in.in; then
153*63eb84d1Schristos  subdirs
154*63eb84d1Schristos  configure_files
155*63eb84d1Schristos  strip_makefile
156*63eb84d1Schristos  $MAKE -f $makefile_wo top_srcdir=. ./configure.in
157*63eb84d1Schristosfi
158*63eb84d1Schristos$ACLOCAL
159*63eb84d1Schristos$AUTOHEADER
160*63eb84d1Schristos$AUTOMAKE --foreign --include-deps
161*63eb84d1Schristosperl -w admin/am_edit
162*63eb84d1Schristoscall_and_fix_autoconf
163*63eb84d1Schristostouch stamp-h.in
164*63eb84d1Schristosif grep "^cvs-local:" $makefile_am >/dev/null; then
165*63eb84d1Schristos  strip_makefile
166*63eb84d1Schristos  $MAKE -f $makefile_wo cvs-local top_srcdir=.
167*63eb84d1Schristosfi
168*63eb84d1Schristos
169*63eb84d1Schristos###
170*63eb84d1Schristos### Then make messages
171*63eb84d1Schristos###
172*63eb84d1Schristosif test -d po; then
173*63eb84d1Schristos LIST=`find ./po -name "*.po"`
174*63eb84d1Schristos for i in $LIST; do
175*63eb84d1Schristos  file2=`echo $i | sed -e "s#\.po#\.gmo#"`
176*63eb84d1Schristos  msgfmt -o $file2 $i || touch $file2
177*63eb84d1Schristos done
178*63eb84d1Schristosfi
179*63eb84d1Schristosif grep "^cvs-dist-local:" $makefile_am >/dev/null; then
180*63eb84d1Schristos  strip_makefile
181*63eb84d1Schristos  $MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
182*63eb84d1Schristosfi
183*63eb84d1Schristos}
184*63eb84d1Schristos
185*63eb84d1Schristossubdir_dist()
186*63eb84d1Schristos{
187*63eb84d1Schristos$ACLOCAL
188*63eb84d1Schristos$AUTOHEADER
189*63eb84d1Schristos$AUTOMAKE --foreign --include-deps
190*63eb84d1Schristosperl -w ../admin/am_edit
191*63eb84d1Schristoscall_and_fix_autoconf
192*63eb84d1Schristostouch stamp-h.in
193*63eb84d1Schristos}
194*63eb84d1Schristos
195*63eb84d1Schristosconfigure_in()
196*63eb84d1Schristos{
197*63eb84d1Schristosrm -f configure.in configure.in.new
198*63eb84d1Schristoskde_use_qt_param=
199*63eb84d1Schristostest -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
200*63eb84d1Schristoscat `egrep -v "configure.in.bot" < configure.files` > configure.in.new
201*63eb84d1Schristosecho "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
202*63eb84d1Schristosif test -f Makefile.am.in; then
203*63eb84d1Schristos  subdirs=`cat subdirs`
204*63eb84d1Schristos  for dir in $subdirs; do
205*63eb84d1Schristos    dir=`echo $dir | sed -e "s,[-+.],_,g"`
206*63eb84d1Schristos    echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.in.new
207*63eb84d1Schristos  done
208*63eb84d1Schristosfi
209*63eb84d1Schristos# echo "AC_OUTPUT( \\" >> configure.in.new
210*63eb84d1Schristosmfs=`find . -type d -print | fgrep -v "/." | \
211*63eb84d1Schristos     sed -e "s#\./##" -e "/^debian/d" | sort`
212*63eb84d1Schristosfor i in $mfs; do
213*63eb84d1Schristos  topleveldir=`echo $i| sed -e "s#/.*##"`
214*63eb84d1Schristos  if test -f $topleveldir/configure.in; then
215*63eb84d1Schristos	continue
216*63eb84d1Schristos  fi
217*63eb84d1Schristos  if test -f $i/Makefile.am; then :; else
218*63eb84d1Schristos	continue
219*63eb84d1Schristos  fi
220*63eb84d1Schristos  if test -s inst-apps; then
221*63eb84d1Schristos    if grep "\"^$topleveldir\"" inst-apps > /dev/null 2>&1; then
222*63eb84d1Schristos	continue
223*63eb84d1Schristos    fi
224*63eb84d1Schristos  fi
225*63eb84d1Schristos  if test "$i" = "."; then
226*63eb84d1Schristos     echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
227*63eb84d1Schristos  else
228*63eb84d1Schristos     echo "AC_CONFIG_FILES([ $i/Makefile ])" >> configure.in.new
229*63eb84d1Schristos  fi
230*63eb84d1Schristos  if test -n "$UNSERMAKE"; then
231*63eb84d1Schristos      if test "$i" = "."; then
232*63eb84d1Schristos        echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new
233*63eb84d1Schristos      else
234*63eb84d1Schristos        echo "AC_CONFIG_FILES([ $i/Makefile.rules ])" >> configure.in.new
235*63eb84d1Schristos      fi
236*63eb84d1Schristos  fi
237*63eb84d1Schristosdone
238*63eb84d1Schristos
239*63eb84d1Schristosfiles=`cat configure.files`
240*63eb84d1Schristoslist=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
241*63eb84d1Schristosfor file in $list; do
242*63eb84d1Schristos    echo "AC_CONFIG_FILES([ $file ])" >>  configure.in.new
243*63eb84d1Schristosdone
244*63eb84d1Schristos
245*63eb84d1Schristosif test -n "$UNSERMAKE"; then
246*63eb84d1Schristos  echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new
247*63eb84d1Schristosfi
248*63eb84d1Schristosecho "AC_OUTPUT" >> configure.in.new
249*63eb84d1Schristosmodulename=
250*63eb84d1Schristosif test -f configure.in.in; then
251*63eb84d1Schristos   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
252*63eb84d1Schristos      kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
253*63eb84d1Schristos   fi
254*63eb84d1Schristos   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
255*63eb84d1Schristos      line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
256*63eb84d1Schristos      if test -n "$line"; then
257*63eb84d1Schristos	  modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
258*63eb84d1Schristos	  VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
259*63eb84d1Schristos      fi
260*63eb84d1Schristos      sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
261*63eb84d1Schristos          configure.in.new > configure.in && mv configure.in configure.in.new
262*63eb84d1Schristos   fi
263*63eb84d1Schristosfi
264*63eb84d1Schristosif test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
265*63eb84d1Schristos     VERSION="\"3.1.3\""
266*63eb84d1Schristosfi
267*63eb84d1Schristosif test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
268*63eb84d1Schristos   modulename=`pwd`;
269*63eb84d1Schristos   modulename=`basename $modulename`
270*63eb84d1Schristos   esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
271*63eb84d1Schristos   modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
272*63eb84d1Schristos
273*63eb84d1Schristosfi
274*63eb84d1Schristosif test -n "$kde_use_qt_param"; then
275*63eb84d1Schristos      sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
276*63eb84d1Schristos      	configure.in.new > configure.in && mv configure.in configure.in.new
277*63eb84d1Schristosfi
278*63eb84d1Schristossed -e "s#@MODULENAME@#$modulename#" configure.in.new |
279*63eb84d1Schristos	sed -e "s#@VERSION@#$VERSION#" > configure.in
280*63eb84d1Schristosbotfiles=`cat configure.files | egrep "configure.in.bot"`
281*63eb84d1Schristostest -n "$botfiles" && cat $botfiles >> configure.in
282*63eb84d1Schristoscat $admindir/configure.in.bot.end >> configure.in
283*63eb84d1Schristosrm -f configure.in.new
284*63eb84d1Schristos}
285*63eb84d1Schristos
286*63eb84d1Schristosconfigure_files()
287*63eb84d1Schristos{
288*63eb84d1Schristosadmindir=NO
289*63eb84d1Schristosfor i in . .. ../.. ../../..; do
290*63eb84d1Schristos  if test -x $i/admin; then admindir=$i/admin; break; fi
291*63eb84d1Schristosdone
292*63eb84d1Schristosrm -f configure.files
293*63eb84d1Schristostouch configure.files
294*63eb84d1Schristosif test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
295*63eb84d1Schristos	echo $admindir/configure.in.min >> configure.files
296*63eb84d1Schristosfi
297*63eb84d1Schristostest -f configure.in.in && echo configure.in.in >> configure.files
298*63eb84d1Schristoslist=`find . -name "configure.in.in" -o -name "configure.in.bot" | \
299*63eb84d1Schristos               sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
300*63eb84d1Schristosfor i in $list; do if test -f $i && test `dirname $i` != "." ; then
301*63eb84d1Schristos  echo $i >> configure.files
302*63eb84d1Schristosfi; done
303*63eb84d1Schristostest -f configure.in.mid && echo configure.in.mid >> configure.files
304*63eb84d1Schristostest -f configure.in.bot && echo configure.in.bot >> configure.files
305*63eb84d1Schristos}
306*63eb84d1Schristos
307*63eb84d1Schristossubdirs()
308*63eb84d1Schristos{
309*63eb84d1Schristosdirs=
310*63eb84d1Schristoscompilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
311*63eb84d1Schristoscompilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
312*63eb84d1Schristosfor i in `ls -1`; do
313*63eb84d1Schristos    if test -f $i/Makefile.am; then
314*63eb84d1Schristos       case " $compilefirst $compilelast " in
315*63eb84d1Schristos         *" $i "*) ;;
316*63eb84d1Schristos         *) dirs="$dirs $i"
317*63eb84d1Schristos       esac
318*63eb84d1Schristos    fi
319*63eb84d1Schristosdone
320*63eb84d1Schristos
321*63eb84d1Schristos: > ./_SUBDIRS
322*63eb84d1Schristos
323*63eb84d1Schristosfor d in $compilefirst; do
324*63eb84d1Schristos   echo $d >> ./_SUBDIRS
325*63eb84d1Schristosdone
326*63eb84d1Schristos
327*63eb84d1Schristos(for d in $dirs; do
328*63eb84d1Schristos   list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
329*63eb84d1Schristos   for s in $list; do
330*63eb84d1Schristos      echo $s $d
331*63eb84d1Schristos   done
332*63eb84d1Schristos   list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
333*63eb84d1Schristos   for s in $list; do
334*63eb84d1Schristos      echo $d $s
335*63eb84d1Schristos   done
336*63eb84d1Schristos   echo $d $d
337*63eb84d1Schristosdone ) | tsort >> ./_SUBDIRS
338*63eb84d1Schristos
339*63eb84d1Schristosfor d in $compilelast; do
340*63eb84d1Schristos   echo $d >> ./_SUBDIRS
341*63eb84d1Schristosdone
342*63eb84d1Schristos
343*63eb84d1Schristosif test -f Makefile.am.in; then
344*63eb84d1Schristos  cp Makefile.am.in Makefile.am
345*63eb84d1Schristos  if test -n "$UNSERMAKE"; then
346*63eb84d1Schristos    topsubdirs=
347*63eb84d1Schristos    for i in $compilefirst $dirs $compilelast; do
348*63eb84d1Schristos       vari=`echo $i | sed -e "s,[-+],_,g"`
349*63eb84d1Schristos       echo "if $vari""_SUBDIR_included" >> Makefile.am
350*63eb84d1Schristos       echo "$vari""_SUBDIR=$i" >> Makefile.am
351*63eb84d1Schristos       echo "endif" >> Makefile.am
352*63eb84d1Schristos       topsubdirs="$topsubdirs \$($vari""_SUBDIR)"
353*63eb84d1Schristos    done
354*63eb84d1Schristos    echo "SUBDIRS=$topsubdirs" >> Makefile.am
355*63eb84d1Schristos  else
356*63eb84d1Schristos    echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
357*63eb84d1Schristos  fi
358*63eb84d1Schristosfi
359*63eb84d1Schristosif test -r subdirs && diff subdirs _SUBDIRS > /dev/null; then
360*63eb84d1Schristos  rm -f _SUBDIRS
361*63eb84d1Schristosfi
362*63eb84d1Schristostest -r _SUBDIRS && mv _SUBDIRS subdirs || true
363*63eb84d1Schristos}
364*63eb84d1Schristos
365*63eb84d1Schristoscvs_clean()
366*63eb84d1Schristos{
367*63eb84d1Schristosif test -d CVS; then :; else
368*63eb84d1Schristos  echo "You don't have a toplevel CVS directory."
369*63eb84d1Schristos  echo "You most certainly didn't use cvs to get these sources."
370*63eb84d1Schristos  echo "But this function depends on cvs's information."
371*63eb84d1Schristos  exit 1
372*63eb84d1Schristosfi
373*63eb84d1Schristosperl $admindir/cvs-clean.pl
374*63eb84d1Schristos}
375*63eb84d1Schristos
376*63eb84d1Schristospackage_merge()
377*63eb84d1Schristos{
378*63eb84d1Schristoscatalogs=$POFILES
379*63eb84d1Schristosfor cat in $catalogs; do
380*63eb84d1Schristos  msgmerge -o $cat.new $cat $PACKAGE.pot
381*63eb84d1Schristos  if test -s $cat.new; then
382*63eb84d1Schristos    grep -v "\"POT-Creation" $cat.new > $cat.new.2
383*63eb84d1Schristos    grep -v "\"POT-Creation" $cat >> $cat.new.1
384*63eb84d1Schristos    if diff $cat.new.1 $cat.new.2; then
385*63eb84d1Schristos	rm $cat.new
386*63eb84d1Schristos    else
387*63eb84d1Schristos	mv $cat.new $cat
388*63eb84d1Schristos    fi
389*63eb84d1Schristos    rm -f $cat.new.1 $cat.new.2
390*63eb84d1Schristos  fi
391*63eb84d1Schristosdone
392*63eb84d1Schristos}
393*63eb84d1Schristos
394*63eb84d1Schristospackage_messages()
395*63eb84d1Schristos{
396*63eb84d1Schristosrm -rf po.backup
397*63eb84d1Schristosmkdir po.backup
398*63eb84d1Schristos
399*63eb84d1Schristosfor i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
400*63eb84d1Schristos  egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
401*63eb84d1Schristos  cp po/$i po.backup/backup_$i
402*63eb84d1Schristos  touch -r po/$i po.backup/backup_$i
403*63eb84d1Schristos  rm po/$i
404*63eb84d1Schristosdone
405*63eb84d1Schristos
406*63eb84d1Schristospodir=${podir:-$PWD/po}
407*63eb84d1Schristosfiles=`find . -name Makefile.am | xargs egrep -l '^messages:' `
408*63eb84d1Schristosdirs=`for i in $files; do echo \`dirname $i\`; done`
409*63eb84d1Schristostmpname="$PWD/messages.log"
410*63eb84d1Schristosif test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
411*63eb84d1Schristosif test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
412*63eb84d1Schristosexport EXTRACTRC PREPARETIPS
413*63eb84d1Schristos
414*63eb84d1Schristosfor subdir in $dirs; do
415*63eb84d1Schristos  test -z "$VERBOSE" || echo "Making messages in $subdir"
416*63eb84d1Schristos  (cd $subdir
417*63eb84d1Schristos   if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
418*63eb84d1Schristos	$EXTRACTRC *.rc *.ui > rc.cpp
419*63eb84d1Schristos   else
420*63eb84d1Schristos	candidates=`ls -1 *.rc *.ui 2>/dev/null`
421*63eb84d1Schristos	if test -n "$candidates"; then
422*63eb84d1Schristos	    echo "$subdir has *.rc or *.ui files, but not correct messages line"
423*63eb84d1Schristos	fi
424*63eb84d1Schristos   fi
425*63eb84d1Schristos   if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
426*63eb84d1Schristos	echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
427*63eb84d1Schristos   else echo " " > _translatorinfo.cpp
428*63eb84d1Schristos   fi
429*63eb84d1Schristos   perl -e '$mes=0; while (<STDIN>) { next if (/^(if|else|endif)\s/); 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
430*63eb84d1Schristos
431*63eb84d1Schristos   $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
432*63eb84d1Schristos	XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-$KDEDIR/include}/kde.pot" \
433*63eb84d1Schristos	messages
434*63eb84d1Schristos   ) 2>&1 | grep -v '^make\[1\]' > $tmpname
435*63eb84d1Schristos   test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
436*63eb84d1Schristos   test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
437*63eb84d1Schristos   rm -f $subdir/_translatorinfo.cpp
438*63eb84d1Schristos   rm -f $subdir/_transMakefile
439*63eb84d1Schristosdone
440*63eb84d1Schristosrm -f $tmpname
441*63eb84d1Schristosfor i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
442*63eb84d1Schristos  test -f po/$i || echo "disappeared: $i"
443*63eb84d1Schristosdone
444*63eb84d1Schristosfor i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
445*63eb84d1Schristos   msgmerge -q -o po/$i po/$i po/$i
446*63eb84d1Schristos   egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
447*63eb84d1Schristos  if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
448*63eb84d1Schristos	echo "will update $i"
449*63eb84d1Schristos	msgmerge -q po.backup/backup_$i po/$i > temp.pot
450*63eb84d1Schristos	mv temp.pot po/$i
451*63eb84d1Schristos  else
452*63eb84d1Schristos    if test -f po.backup/backup_$i; then
453*63eb84d1Schristos      test -z "$VERBOSE" || echo "I'm restoring $i"
454*63eb84d1Schristos      mv po.backup/backup_$i po/$i
455*63eb84d1Schristos      rm po.backup/$i
456*63eb84d1Schristos    else
457*63eb84d1Schristos      echo "will add $i"
458*63eb84d1Schristos    fi
459*63eb84d1Schristos  fi
460*63eb84d1Schristosdone
461*63eb84d1Schristosrm -f temp.pot
462*63eb84d1Schristosrm -rf po.backup
463*63eb84d1Schristos}
464*63eb84d1Schristos
465*63eb84d1Schristosadmindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
466*63eb84d1Schristostest "x$admindir" = "x$0" && admindir=.
467*63eb84d1Schristos
468*63eb84d1Schristostest "x$MAKE" = x && MAKE=make
469*63eb84d1Schristosmakefile_am=Makefile.am
470*63eb84d1Schristosmakefile_wo=Makefile.am
471*63eb84d1Schristosif test -f Makefile.am.in; then
472*63eb84d1Schristos  makefile_am=Makefile.am.in
473*63eb84d1Schristos  makefile_wo=Makefile.am.in.wo
474*63eb84d1Schristosfi
475*63eb84d1Schristos
476*63eb84d1Schristos# Sucking AUTOCONF detection code - commented out
477*63eb84d1Schristos#. $admindir/detect-autoconf.sh
478*63eb84d1SchristosAUTOCONF="autoconf"
479*63eb84d1SchristosAUTOHEADER="autoheader"
480*63eb84d1SchristosAUTOM4TE="autom4te"
481*63eb84d1SchristosAUTOMAKE="automake"
482*63eb84d1SchristosACLOCAL="aclocal -I m4"
483*63eb84d1Schristos
484*63eb84d1Schristos###
485*63eb84d1Schristos### Main
486*63eb84d1Schristos###
487*63eb84d1Schristos
488*63eb84d1Schristosarg=`echo $1 | tr '\-.' __`
489*63eb84d1Schristoscase $arg in
490*63eb84d1Schristos  cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
491*63eb84d1Schristos  cvs_clean | package_merge | package_messages ) $arg ;;
492*63eb84d1Schristos  * ) echo "Usage: cvs.sh <target>"
493*63eb84d1Schristos      echo "Target can be one of:"
494*63eb84d1Schristos      echo "    cvs cvs-clean dist"
495*63eb84d1Schristos      echo "    configure.in configure.files"
496*63eb84d1Schristos      echo "    package-merge package-messages"
497*63eb84d1Schristos      echo ""
498*63eb84d1Schristos      echo "Usage: anything but $1"
499*63eb84d1Schristos      exit 1 ;;
500*63eb84d1Schristosesac
501*63eb84d1Schristos
502*63eb84d1Schristosif test -f Makefile.am.in.wo; then
503*63eb84d1Schristos  rm Makefile.am.in.wo
504*63eb84d1Schristosfi
505*63eb84d1Schristos
506*63eb84d1Schristosexit 0
507