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.
9 call_and_fix_autoconf
()
12 if test -r configure.
in.
in ; then
13 perl
-pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
14 \\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
15 \\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
16 \\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
17 \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/;" configure
23 if test -f $makefile_wo; then :; else
24 perl
-e '$in=0; while ( <> ) { $in = 1 if ($_=~ m/^if /); print $_ unless ($in); $in = 0 if ($_ =~ m/^endif/); }' < Makefile.am.
in > $makefile_wo
28 check_autotool_versions
()
30 AUTOCONF_VERSION
=`$AUTOCONF --version | head -n 1`
31 case $AUTOCONF_VERSION in
32 Autoconf
*2.5* | autoconf
*2.5* ) : ;;
34 echo "*** AUTOCONF NOT FOUND!."
35 echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
39 echo "*** YOU'RE USING $AUTOCONF_VERSION."
40 echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
45 AUTOHEADER_VERSION
=`$AUTOHEADER --version | head -n 1`
46 case $AUTOHEADER_VERSION in
47 Autoconf
*2.5* | autoheader
*2.5* ) : ;;
49 echo "*** AUTOHEADER NOT FOUND!."
50 echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
54 echo "*** YOU'RE USING $AUTOHEADER_VERSION."
55 echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
60 AUTOMAKE_STRING
=`$AUTOMAKE --version | head -n 1`
61 case $AUTOMAKE_STRING in
63 echo "*** YOU'RE USING $AUTOMAKE_STRING."
64 echo "*** KDE requires automake 1.6"
67 automake
*1.
[678].
* | automake
*1.7* ) : ;;
69 echo "*** AUTOMAKE NOT FOUND!."
70 echo "*** KDE requires automake 1.6"
74 echo "*** YOU'RE USING UNSERMAKE."
75 echo "*** GOOD LUCK!! :)"
78 echo "*** YOU'RE USING $AUTOMAKE_STRING."
79 echo "*** KDE requires automake 1.6"
87 check_autotool_versions
89 ### Produce acinclude.m4
90 if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev
/null
; then
91 echo "*** Creating acinclude.m4"
92 rm -f acinclude.
m4 configure.files
95 $MAKE -f $makefile_wo top_srcdir
=. .
/acinclude.
m4
98 ### Make new subdirs and configure.in.
99 ### The make calls could be optimized away here,
100 ### with a little thought.
101 if test -r configure.
in.
in; then
102 rm -f subdirs configure.
in
103 echo "*** Creating list of subdirectories"
105 echo "*** Creating configure.in"
108 $MAKE -f $makefile_wo top_srcdir
=. .
/configure.
in ||
exit 1
111 echo "*** Creating aclocal.m4"
113 echo "*** Creating configure"
114 call_and_fix_autoconf
116 if egrep "^AM_CONFIG_HEADER" configure.
in >/dev
/null
2>&1; then
117 echo "*** Creating config.h template"
118 $AUTOHEADER ||
exit 1
121 echo "*** Creating Makefile templates"
123 if test -z "$UNSERMAKE"; then
124 echo "*** Postprocessing Makefile templates"
125 perl
-w admin
/am_edit ||
exit 1
128 if egrep "^cvs-local:" $makefile_am >/dev
/null
; then \
130 $MAKE -f $makefile_wo cvs-local top_srcdir
=. ||
exit 1
133 echo "*** Creating date/time stamp"
137 echo " Don't forget to run ./configure"
138 echo " If you haven't done so in a while, run ./configure --help"
143 check_autotool_versions
146 ### First build all of the files necessary to do just "make"
148 if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev
/null
; then
150 $MAKE -f $makefile_wo top_srcdir
=. .
/acinclude.
m4
152 if test -r configure.
in.
in; then
156 $MAKE -f $makefile_wo top_srcdir
=. .
/configure.
in
160 $AUTOMAKE --foreign --include-deps
161 perl
-w admin
/am_edit
162 call_and_fix_autoconf
164 if grep "^cvs-local:" $makefile_am >/dev
/null
; then
166 $MAKE -f $makefile_wo cvs-local top_srcdir
=.
170 ### Then make messages
173 LIST
=`find ./po -name "*.po"`
175 file2
=`echo $i | sed -e "s#\.po#\.gmo#"`
176 msgfmt
-o $file2 $i ||
touch $file2
179 if grep "^cvs-dist-local:" $makefile_am >/dev
/null
; then
181 $MAKE -f $makefile_wo cvs-dist-local top_srcdir
=.
189 $AUTOMAKE --foreign --include-deps
190 perl
-w ..
/admin
/am_edit
191 call_and_fix_autoconf
197 rm -f configure.
in configure.
in.new
199 test -f configure.files ||
{ echo "need configure.files for configure.in"; exit 1; }
200 cat `egrep -v "configure.in.bot" < configure.files` > configure.
in.new
201 echo "KDE_CREATE_SUBDIRSLIST" >> configure.
in.new
202 if test -f Makefile.am.
in; then
203 subdirs
=`cat subdirs`
204 for dir
in $subdirs; do
205 dir
=`echo $dir | sed -e "s,[-+.],_,g"`
206 echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.
in.new
209 # echo "AC_OUTPUT( \\" >> configure.in.new
210 mfs
=`find . -type d -print | fgrep -v "/." | \
211 sed -e "s#\./##" -e "/^debian/d" | sort`
213 topleveldir
=`echo $i| sed -e "s#/.*##"`
214 if test -f $topleveldir/configure.
in; then
217 if test -f $i/Makefile.am
; then :; else
220 if test -s inst-apps
; then
221 if grep "\"^$topleveldir\"" inst-apps
> /dev
/null
2>&1; then
225 if test "$i" = "."; then
226 echo "AC_CONFIG_FILES([ Makefile ])" >> configure.
in.new
228 echo "AC_CONFIG_FILES([ $i/Makefile ])" >> configure.
in.new
230 if test -n "$UNSERMAKE"; then
231 if test "$i" = "."; then
232 echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.
in.new
234 echo "AC_CONFIG_FILES([ $i/Makefile.rules ])" >> configure.
in.new
239 files
=`cat configure.files`
240 list
=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
241 for file in $list; do
242 echo "AC_CONFIG_FILES([ $file ])" >> configure.
in.new
245 if test -n "$UNSERMAKE"; then
246 echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.
in.new
248 echo "AC_OUTPUT" >> configure.
in.new
250 if test -f configure.
in.
in; then
251 if head -n 2 configure.
in.
in |
egrep "^#MIN_CONFIG\(.*\)$" > /dev
/null
; then
252 kde_use_qt_param
=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
254 if head -n 2 configure.
in.
in |
egrep "^#MIN_CONFIG" > /dev
/null
; then
255 line
=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
256 if test -n "$line"; then
257 modulename
=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
258 VERSION
=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
260 sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
261 configure.
in.new
> configure.
in && mv configure.
in configure.
in.new
264 if test -z "$VERSION" ||
test "$VERSION" = "@VERSION@"; then
267 if test -z "$modulename" ||
test "$modulename" = "@MODULENAME@"; then
269 modulename
=`basename $modulename`
270 esc_VERSION
=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
271 modulename
=`echo $modulename | sed -e "s#-$esc_VERSION##"`
274 if test -n "$kde_use_qt_param"; then
275 sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
276 configure.
in.new
> configure.
in && mv configure.
in configure.
in.new
278 sed -e "s#@MODULENAME@#$modulename#" configure.
in.new |
279 sed -e "s#@VERSION@#$VERSION#" > configure.
in
280 botfiles
=`cat configure.files | egrep "configure.in.bot"`
281 test -n "$botfiles" && cat $botfiles >> configure.
in
282 cat $admindir/configure.
in.bot.end
>> configure.
in
283 rm -f configure.
in.new
289 for i
in . .. ..
/.. ..
/..
/..
; do
290 if test -x $i/admin
; then admindir
=$i/admin
; break; fi
292 rm -f configure.files
293 touch configure.files
294 if test -f configure.
in.
in && head -n 2 configure.
in.
in |
grep "^#MIN_CONFIG" > /dev
/null
; then
295 echo $admindir/configure.
in.min
>> configure.files
297 test -f configure.
in.
in && echo configure.
in.
in >> configure.files
298 list
=`find . -name "configure.in.in" -o -name "configure.in.bot" | \
299 sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
300 for i
in $list; do if test -f $i && test `dirname $i` != "." ; then
301 echo $i >> configure.files
303 test -f configure.
in.mid
&& echo configure.
in.mid
>> configure.files
304 test -f configure.
in.bot
&& echo configure.
in.bot
>> configure.files
310 compilefirst
=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
311 compilelast
=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
313 if test -f $i/Makefile.am
; then
314 case " $compilefirst $compilelast " in
323 for d
in $compilefirst; do
324 echo $d >> .
/_SUBDIRS
328 list
=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
332 list
=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
337 done ) |
tsort >> .
/_SUBDIRS
339 for d
in $compilelast; do
340 echo $d >> .
/_SUBDIRS
343 if test -f Makefile.am.
in; then
344 cp Makefile.am.
in Makefile.am
345 if test -n "$UNSERMAKE"; then
347 for i
in $compilefirst $dirs $compilelast; do
348 vari
=`echo $i | sed -e "s,[-+],_,g"`
349 echo "if $vari""_SUBDIR_included" >> Makefile.am
350 echo "$vari""_SUBDIR=$i" >> Makefile.am
351 echo "endif" >> Makefile.am
352 topsubdirs
="$topsubdirs \$($vari""_SUBDIR)"
354 echo "SUBDIRS=$topsubdirs" >> Makefile.am
356 echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
359 if test -r subdirs
&& diff subdirs _SUBDIRS
> /dev
/null
; then
362 test -r _SUBDIRS
&& mv _SUBDIRS subdirs || true
367 if test -d CVS
; then :; else
368 echo "You don't have a toplevel CVS directory."
369 echo "You most certainly didn't use cvs to get these sources."
370 echo "But this function depends on cvs's information."
373 perl
$admindir/cvs-clean.pl
379 for cat in $catalogs; do
380 msgmerge
-o $cat.new
$cat $PACKAGE.pot
381 if test -s $cat.new
; then
382 grep -v "\"POT-Creation" $cat.new
> $cat.new
.2
383 grep -v "\"POT-Creation" $cat >> $cat.new
.1
384 if diff $cat.new
.1 $cat.new
.2; then
389 rm -f $cat.new
.1 $cat.new
.2
399 for i
in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
400 egrep -v '^#([^:]|$)' po
/$i |
egrep '^.*[^ ]+.*$' |
grep -v "\"POT-Creation" > po.backup
/$i
401 cp po
/$i po.backup
/backup_
$i
402 touch -r po
/$i po.backup
/backup_
$i
406 podir
=${podir:-$PWD/po}
407 files
=`find . -name Makefile.am | xargs egrep -l '^messages:' `
408 dirs=`for i in $files; do echo \`dirname $i\
`; done`
409 tmpname
="$PWD/messages.log"
410 if test -z "$EXTRACTRC"; then EXTRACTRC
=extractrc
; fi
411 if test -z "$PREPARETIPS"; then PREPARETIPS
=preparetips
; fi
412 export EXTRACTRC PREPARETIPS
414 for subdir
in $dirs; do
415 test -z "$VERBOSE" ||
echo "Making messages in $subdir"
417 if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
418 $EXTRACTRC *.rc
*.ui
> rc.cpp
420 candidates
=`ls -1 *.rc *.ui 2>/dev/null`
421 if test -n "$candidates"; then
422 echo "$subdir has *.rc or *.ui files, but not correct messages line"
425 if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
426 echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
427 else echo " " > _translatorinfo.cpp
429 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
431 $MAKE -s -f _transMakefile podir
=$podir EXTRACTRC
="$EXTRACTRC" PREPARETIPS
="$PREPARETIPS" \
432 XGETTEXT
="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-$KDEDIR/include}/kde.pot" \
434 ) 2>&1 |
grep -v '^make\[1\]' > $tmpname
435 test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
436 test -f $subdir/rc.cpp
&& rm -f $subdir/rc.cpp
437 rm -f $subdir/_translatorinfo.cpp
438 rm -f $subdir/_transMakefile
441 for i
in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
442 test -f po
/$i ||
echo "disappeared: $i"
444 for i
in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
445 msgmerge
-q -o po
/$i po
/$i po
/$i
446 egrep -v '^#([^:]|$)' po
/$i |
egrep '^.*[^ ]+.*$' |
grep -v "\"POT-Creation" > temp.pot
447 if test -f po.backup
/$i && test -n "`diff temp.pot po.backup/$i`"; then
448 echo "will update $i"
449 msgmerge
-q po.backup
/backup_
$i po
/$i > temp.pot
452 if test -f po.backup
/backup_
$i; then
453 test -z "$VERBOSE" ||
echo "I'm restoring $i"
454 mv po.backup
/backup_
$i po
/$i
465 admindir
=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
466 test "x$admindir" = "x$0" && admindir
=.
468 test "x$MAKE" = x
&& MAKE
=make
469 makefile_am
=Makefile.am
470 makefile_wo
=Makefile.am
471 if test -f Makefile.am.
in; then
472 makefile_am
=Makefile.am.
in
473 makefile_wo
=Makefile.am.
in.wo
476 # Suck in the AUTOCONF detection code
477 .
$admindir/detect-autoconf.sh
483 arg
=`echo $1 | tr '\-.' __`
485 cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
486 cvs_clean | package_merge | package_messages
) $arg ;;
487 * ) echo "Usage: cvs.sh <target>"
488 echo "Target can be one of:"
489 echo " cvs cvs-clean dist"
490 echo " configure.in configure.files"
491 echo " package-merge package-messages"
493 echo "Usage: anything but $1"
497 if test -f Makefile.am.
in.wo
; then