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/; s,^#line.*LINENO.*\$,/* \$& */, ;" 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
62
automake*1.5d* | automake*1.5* | automake*1.5-* )
63
echo "*** YOU'RE USING $AUTOMAKE_STRING."
64
echo "*** KDE requires automake 1.6.1 or newer"
67
automake*1.6.* | automake*1.7* | automake*1.8.* | automake*1.9* ) : ;;
69
echo "*** AUTOMAKE NOT FOUND!."
70
echo "*** KDE requires automake 1.6.1 or newer"
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
103
echo "*** Creating list of subdirectories"
106
if test -r Makefile.am.in; then
107
echo "*** Creating Makefile.am"
108
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
110
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
115
echo "*** Creating configure.in"
118
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
121
echo "*** Creating aclocal.m4"
123
echo "*** Creating configure"
124
call_and_fix_autoconf
126
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
127
echo "*** Creating config.h template"
128
$AUTOHEADER || exit 1
131
echo "*** Creating Makefile templates"
133
if test -z "$UNSERMAKE"; then
134
echo "*** Postprocessing Makefile templates"
135
perl -w admin/am_edit || exit 1
138
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
140
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
143
echo "*** Creating date/time stamp"
147
echo " Don't forget to run ./configure"
148
echo " If you haven't done so in a while, run ./configure --help"
153
check_autotool_versions
156
### First build all of the files necessary to do just "make"
158
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
160
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4
162
if test -r configure.in.in; then
167
$MAKE -f $makefile_wo top_srcdir=. ./configure.in
171
$AUTOMAKE --foreign --include-deps
172
perl -w admin/am_edit
173
call_and_fix_autoconf
175
if grep "^cvs-local:" $makefile_am >/dev/null; then
177
$MAKE -f $makefile_wo cvs-local top_srcdir=.
181
### Then make messages
184
LIST=`find ./po -name "*.po"`
186
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
187
msgfmt -o $file2 $i || touch $file2
190
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
192
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
201
perl -w ../admin/am_edit
202
call_and_fix_autoconf
208
rm -f configure.in configure.in.new
210
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
211
cat `fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"` > configure.in.new
212
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
213
if test -f Makefile.am.in; then
214
subdirs=`cat subdirs`
215
for dir in $subdirs; do
216
dir=`echo $dir | sed -e "s,[-+.],_,g"`
217
echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.in.new
221
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
222
if test -n "$UNSERMAKE"; then
223
echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new
224
echo "AC_CONFIG_FILES([ Makefile.calls ])" >> configure.in.new
227
if test -f inst-apps; then
228
topleveldirs=`cat inst-apps`
231
for dir in `ls -1d * | sort`; do
232
if test "$dir" != "debian" && test -d $dir; then
233
topleveldirs="$topleveldirs $dir"
238
for topleveldir in $topleveldirs; do
239
if test -f $topleveldir/configure.in; then
242
if test -f $topleveldir/Makefile.am; then :; else
246
mfs=`find $topleveldir -name Makefile.am -print | fgrep -v "/." | \
247
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
249
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
250
if test -n "$UNSERMAKE"; then
251
echo "AC_CONFIG_FILES([ $i.rules ])" >> configure.in.new
252
echo "AC_CONFIG_FILES([ $i.calls ])" >> configure.in.new
257
files=`cat configure.files`
258
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
259
for file in $list; do
260
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
263
if test -n "$UNSERMAKE"; then
264
echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new
267
midfiles=`cat configure.files | fgrep "configure.in.mid"`
268
test -n "$midfiles" && cat $midfiles >> configure.in.new
270
echo "AC_OUTPUT" >> configure.in.new
272
if test -f configure.in.in; then
273
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
274
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
276
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
277
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
278
if test -n "$line"; then
279
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
280
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
282
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
283
configure.in.new > configure.in && mv configure.in configure.in.new
286
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
289
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
291
modulename=`basename $modulename`
292
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
293
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
296
if test -n "$kde_use_qt_param"; then
297
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
298
configure.in.new > configure.in && mv configure.in configure.in.new
300
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
301
sed -e "s#@VERSION@#$VERSION#" > configure.in
302
botfiles=`cat configure.files | egrep "configure.in.bot"`
303
test -n "$botfiles" && cat $botfiles >> configure.in
304
cat $admindir/configure.in.bot.end >> configure.in
305
rm -f configure.in.new
311
for i in . .. ../.. ../../..; do
312
if test -x $i/admin; then admindir=$i/admin; break; fi
314
rm -f configure.files
315
touch configure.files
316
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
317
echo $admindir/configure.in.min >> configure.files
319
test -f configure.in.in && echo configure.in.in >> configure.files
320
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
321
if test -f inst-apps; then
325
list="$list `find $i/ -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
326
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
329
list=`find . -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
330
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
332
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
333
echo $i >> configure.files
335
test -f configure.in.mid && echo configure.in.mid >> configure.files
336
test -f configure.in.bot && echo configure.in.bot >> configure.files
341
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
342
# as many modules contain rules to create subdirs without any
343
# dependencies make won't create it unless there is no file.
344
# so we check if that's a dummy rule or one that works
345
rm -f subdirs.cvs.sh.$$
346
if test -f subdirs; then
347
mv subdirs subdirs.cvs.sh.$$
350
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
351
if test -f subdirs.cvs.sh.$$; then
352
if test -s subdirs; then
355
mv subdirs.cvs.sh.$$ subdirs
367
if test -f inst-apps; then
368
idirs=`cat inst-apps`
373
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
374
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
376
if test -f $i/Makefile.am; then
377
case " $compilefirst $compilelast " in
386
for d in $compilefirst; do
387
echo $d >> ./_SUBDIRS
391
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
395
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
400
done ) | tsort >> ./_SUBDIRS
402
for d in $compilelast; do
403
echo $d >> ./_SUBDIRS
406
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
409
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
414
if test -f Makefile.am.in; then
415
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
416
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
420
if test -f inst-apps; then
421
idirs=`cat inst-apps`
426
case " $compilefirst $compilelast " in
432
if test -n "$UNSERMAKE"; then
433
cp Makefile.am.in Makefile.am
434
chmod u+w Makefile.am
436
for i in $compilefirst $dirs $compilelast; do
437
vari=`echo $i | sed -e "s,[-+],_,g"`
438
echo "if $vari""_SUBDIR_included" >> Makefile.am
439
echo "$vari""_SUBDIR=$i" >> Makefile.am
440
echo "endif" >> Makefile.am
441
topsubdirs="$topsubdirs \$($vari""_SUBDIR)"
443
echo "SUBDIRS=$topsubdirs" >> Makefile.am
445
cat Makefile.am.in | \
446
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
447
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
448
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
455
if test -d CVS; then :; else
456
echo "You don't have a toplevel CVS directory."
457
echo "You most certainly didn't use cvs to get these sources."
458
echo "But this function depends on cvs's information."
461
perl $admindir/cvs-clean.pl
467
for cat in $catalogs; do
468
msgmerge -o $cat.new $cat $PACKAGE.pot
469
if test -s $cat.new; then
470
grep -v "\"POT-Creation" $cat.new > $cat.new.2
471
grep -v "\"POT-Creation" $cat >> $cat.new.1
472
if diff $cat.new.1 $cat.new.2; then
477
rm -f $cat.new.1 $cat.new.2
487
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
488
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
489
cp po/$i po.backup/backup_$i
490
touch -r po/$i po.backup/backup_$i
494
podir=${podir:-$PWD/po}
495
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
496
dirs=`for i in $files; do echo \`dirname $i\`; done`
497
tmpname="$PWD/messages.log"
498
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
499
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
500
export EXTRACTRC PREPARETIPS
502
for subdir in $dirs; do
503
test -z "$VERBOSE" || echo "Making messages in $subdir"
505
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
506
$EXTRACTRC *.rc *.ui > rc.cpp
508
candidates=`ls -1 *.rc *.ui 2>/dev/null`
509
if test -n "$candidates"; then
510
echo "$subdir has *.rc or *.ui files, but not correct messages line"
513
if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then
514
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
515
else echo " " > _translatorinfo.cpp
517
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
519
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \
520
XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-${KDEDIR:-/usr/local/kde}/include}/kde.pot" \
523
if test "$exit_code" != 0; then
524
echo "make exit code: $exit_code"
526
) 2>&1 | grep -v '^make\[1\]' > $tmpname
527
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
528
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
529
rm -f $subdir/_translatorinfo.cpp
530
rm -f $subdir/_transMakefile
533
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
534
test -f po/$i || echo "disappeared: $i"
536
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
537
msgmerge -q -o po/$i po/$i po/$i
538
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
539
if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
540
echo "will update $i"
541
msgmerge -q po.backup/backup_$i po/$i > temp.pot
544
if test -f po.backup/backup_$i; then
545
test -z "$VERBOSE" || echo "I'm restoring $i"
546
mv po.backup/backup_$i po/$i
558
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
559
test "x$admindir" = "x$0" && admindir=.
561
test "x$MAKE" = x && MAKE=make
562
makefile_am=Makefile.am
563
makefile_wo=Makefile.am
564
if test -f Makefile.am.in; then
565
makefile_am=Makefile.am.in
566
makefile_wo=Makefile.am.in.wo
569
# Suck in the AUTOCONF detection code
570
. $admindir/detect-autoconf.sh
576
arg=`echo $1 | tr '\-.' __`
578
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
579
cvs_clean | package_merge | package_messages | Makefile_am ) $arg ;;
580
configure ) call_and_fix_autoconf ;;
581
* ) echo "Usage: cvs.sh <target>"
582
echo "Target can be one of:"
583
echo " cvs cvs-clean dist"
584
echo " configure.in configure.files"
585
echo " package-merge package-messages"
587
echo "Usage: anything but $1"
591
if test -f Makefile.am.in.wo; then