joachim99@14: #! /bin/sh joachim99@14: # joachim99@14: # cvs.sh joachim99@14: # joachim99@14: # This file contains support code from Makefile.common joachim99@14: # It defines a shell function for each known target joachim99@14: # and then does a case to call the correct function. joachim99@14: joachim99@14: call_and_fix_autoconf() joachim99@14: { joachim99@14: $AUTOCONF || exit 1 joachim99@14: if test -r configure.in.in ; then joachim99@14: perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\ joachim99@14: \\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\ joachim99@14: \\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\ joachim99@14: \\n rm -f \\\$CONFIG_STATUS.bak\\nfi\ joachim99@14: \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure joachim99@14: fi joachim99@14: } joachim99@14: joachim99@14: strip_makefile() joachim99@14: { joachim99@14: if test -f $makefile_wo; then :; else joachim99@14: perl -e '$in=0; while ( <> ) { $in = 1 if ($_=~ m/^if /); print $_ unless ($in); $in = 0 if ($_ =~ m/^endif/); }' < Makefile.am.in > $makefile_wo joachim99@14: fi joachim99@14: } joachim99@14: joachim99@14: check_autotool_versions() joachim99@14: { joachim99@14: AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` joachim99@14: case $AUTOCONF_VERSION in joachim99@14: Autoconf*2.5* | autoconf*2.5* ) : ;; joachim99@14: "" ) joachim99@14: echo "*** AUTOCONF NOT FOUND!." joachim99@14: echo "*** KDE requires autoconf 2.52, 2.53 or 2.54" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: * ) joachim99@14: echo "*** YOU'RE USING $AUTOCONF_VERSION." joachim99@14: echo "*** KDE requires autoconf 2.52, 2.53 or 2.54" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: esac joachim99@14: joachim99@14: AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` joachim99@14: case $AUTOHEADER_VERSION in joachim99@14: Autoconf*2.5* | autoheader*2.5* ) : ;; joachim99@14: "" ) joachim99@14: echo "*** AUTOHEADER NOT FOUND!." joachim99@14: echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: * ) joachim99@14: echo "*** YOU'RE USING $AUTOHEADER_VERSION." joachim99@14: echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: esac joachim99@14: joachim99@14: AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` joachim99@14: case $AUTOMAKE_STRING in joachim99@14: automake*1.5d* | automake*1.5* | automake*1.5-* ) joachim99@14: echo "*** YOU'RE USING $AUTOMAKE_STRING." joachim99@14: echo "*** KDE requires automake 1.6.1 or newer" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: automake*1.6.* | automake*1.7* ) : ;; joachim99@14: "" ) joachim99@14: echo "*** AUTOMAKE NOT FOUND!." joachim99@14: echo "*** KDE requires automake 1.6.1 or newer" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: unsermake* ) : joachim99@14: echo "*** YOU'RE USING UNSERMAKE." joachim99@14: echo "*** GOOD LUCK!! :)" joachim99@14: ;; joachim99@14: * ) joachim99@14: echo "*** YOU'RE USING $AUTOMAKE_STRING." joachim99@14: echo "*** KDE requires automake 1.6" joachim99@14: exit 1 joachim99@14: ;; joachim99@14: esac joachim99@14: } joachim99@14: joachim99@14: cvs() joachim99@14: { joachim99@14: check_autotool_versions joachim99@14: joachim99@14: ### Produce acinclude.m4 joachim99@14: if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then joachim99@14: echo "*** Creating acinclude.m4" joachim99@14: rm -f acinclude.m4 configure.files joachim99@14: joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 joachim99@14: fi joachim99@14: joachim99@14: ### Make new subdirs and configure.in. joachim99@14: ### The make calls could be optimized away here, joachim99@14: ### with a little thought. joachim99@14: if test -r configure.in.in; then joachim99@14: rm -f configure.in joachim99@14: echo "*** Creating list of subdirectories" joachim99@14: create_subdirs joachim99@14: joachim99@14: if test -r Makefile.am.in; then joachim99@14: echo "*** Creating Makefile.am" joachim99@14: if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1 joachim99@14: else joachim99@14: Makefile_am joachim99@14: fi joachim99@14: fi joachim99@14: echo "*** Creating configure.in" joachim99@14: configure_files joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 joachim99@14: fi joachim99@14: joachim99@14: echo "*** Creating aclocal.m4" joachim99@14: $ACLOCAL || exit 1 joachim99@14: echo "*** Creating configure" joachim99@14: call_and_fix_autoconf joachim99@14: joachim99@14: if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then joachim99@14: echo "*** Creating config.h template" joachim99@14: $AUTOHEADER || exit 1 joachim99@14: fi joachim99@14: joachim99@14: echo "*** Creating Makefile templates" joachim99@14: $AUTOMAKE || exit 1 joachim99@14: if test -z "$UNSERMAKE"; then joachim99@14: echo "*** Postprocessing Makefile templates" joachim99@14: perl -w admin/am_edit || exit 1 joachim99@14: fi joachim99@14: joachim99@14: if egrep "^cvs-local:" $makefile_am >/dev/null; then \ joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1 joachim99@14: fi joachim99@14: joachim99@14: echo "*** Creating date/time stamp" joachim99@14: touch stamp-h.in joachim99@14: joachim99@14: echo "*** Finished" joachim99@14: echo " Don't forget to run ./configure" joachim99@14: echo " If you haven't done so in a while, run ./configure --help" joachim99@14: } joachim99@14: joachim99@14: dist() joachim99@14: { joachim99@14: check_autotool_versions joachim99@14: joachim99@14: ### joachim99@14: ### First build all of the files necessary to do just "make" joachim99@14: ### joachim99@14: if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 joachim99@14: fi joachim99@14: if test -r configure.in.in; then joachim99@14: create_subdirs joachim99@14: Makefile_am joachim99@14: configure_files joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./configure.in joachim99@14: fi joachim99@14: $ACLOCAL joachim99@14: $AUTOHEADER joachim99@14: $AUTOMAKE --foreign --include-deps joachim99@14: perl -w admin/am_edit joachim99@14: call_and_fix_autoconf joachim99@14: touch stamp-h.in joachim99@14: if grep "^cvs-local:" $makefile_am >/dev/null; then joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo cvs-local top_srcdir=. joachim99@14: fi joachim99@14: joachim99@14: ### joachim99@14: ### Then make messages joachim99@14: ### joachim99@14: if test -d po; then joachim99@14: LIST=`find ./po -name "*.po"` joachim99@14: for i in $LIST; do joachim99@14: file2=`echo $i | sed -e "s#\.po#\.gmo#"` joachim99@14: msgfmt -o $file2 $i || touch $file2 joachim99@14: done joachim99@14: fi joachim99@14: if grep "^cvs-dist-local:" $makefile_am >/dev/null; then joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo cvs-dist-local top_srcdir=. joachim99@14: fi joachim99@14: } joachim99@14: joachim99@14: subdir_dist() joachim99@14: { joachim99@14: $ACLOCAL joachim99@14: $AUTOHEADER joachim99@14: $AUTOMAKE joachim99@14: perl -w ../admin/am_edit joachim99@14: call_and_fix_autoconf joachim99@14: touch stamp-h.in joachim99@14: } joachim99@14: joachim99@14: configure_in() joachim99@14: { joachim99@14: rm -f configure.in configure.in.new joachim99@14: kde_use_qt_param= joachim99@14: test -f configure.files || { echo "need configure.files for configure.in"; exit 1; } joachim99@14: cat `fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"` > configure.in.new joachim99@14: echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new joachim99@14: if test -f Makefile.am.in; then joachim99@14: subdirs=`cat subdirs` joachim99@14: for dir in $subdirs; do joachim99@14: dir=`echo $dir | sed -e "s,[-+.],_,g"` joachim99@14: echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.in.new joachim99@14: done joachim99@14: fi joachim99@14: joachim99@14: echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new joachim99@14: if test -n "$UNSERMAKE"; then joachim99@14: echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new joachim99@14: echo "AC_CONFIG_FILES([ Makefile.calls ])" >> configure.in.new joachim99@14: fi joachim99@14: joachim99@14: if test -f inst-apps; then joachim99@14: topleveldirs=`cat inst-apps` joachim99@14: else joachim99@14: topleveldirs= joachim99@14: for dir in `ls -1d * | sort`; do joachim99@14: if test "$dir" != "debian" && test -d $dir; then joachim99@14: topleveldirs="$topleveldirs $dir" joachim99@14: fi joachim99@14: done joachim99@14: fi joachim99@14: joachim99@14: for topleveldir in $topleveldirs; do joachim99@14: if test -f $topleveldir/configure.in; then joachim99@14: continue joachim99@14: fi joachim99@14: if test -f $topleveldir/Makefile.am; then :; else joachim99@14: continue joachim99@14: fi joachim99@14: joachim99@14: mfs=`find $topleveldir -name Makefile.am -print | fgrep -v "/." | \ joachim99@14: sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'` joachim99@14: for i in $mfs; do joachim99@14: echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new joachim99@14: if test -n "$UNSERMAKE"; then joachim99@14: echo "AC_CONFIG_FILES([ $i.rules ])" >> configure.in.new joachim99@14: echo "AC_CONFIG_FILES([ $i.calls ])" >> configure.in.new joachim99@14: fi joachim99@14: done joachim99@14: done joachim99@14: joachim99@14: files=`cat configure.files` joachim99@14: list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"` joachim99@14: for file in $list; do joachim99@14: echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new joachim99@14: done joachim99@14: joachim99@14: if test -n "$UNSERMAKE"; then joachim99@14: echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new joachim99@14: fi joachim99@14: joachim99@14: midfiles=`cat configure.files | fgrep "configure.in.mid"` joachim99@14: test -n "$midfiles" && cat $midfiles >> configure.in.new joachim99@14: joachim99@14: echo "AC_OUTPUT" >> configure.in.new joachim99@14: modulename= joachim99@14: if test -f configure.in.in; then joachim99@14: if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then joachim99@14: kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` joachim99@14: fi joachim99@14: if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then joachim99@14: line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` joachim99@14: if test -n "$line"; then joachim99@14: modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` joachim99@14: VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"` joachim99@14: fi joachim99@14: sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \ joachim99@14: configure.in.new > configure.in && mv configure.in configure.in.new joachim99@14: fi joachim99@14: fi joachim99@14: if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then joachim99@14: VERSION="\"3.1.0\"" joachim99@14: fi joachim99@14: if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then joachim99@14: modulename=`pwd`; joachim99@14: modulename=`basename $modulename` joachim99@14: esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"` joachim99@14: modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"` joachim99@14: joachim99@14: fi joachim99@14: if test -n "$kde_use_qt_param"; then joachim99@14: sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \ joachim99@14: configure.in.new > configure.in && mv configure.in configure.in.new joachim99@14: fi joachim99@14: sed -e "s#@MODULENAME@#$modulename#" configure.in.new | joachim99@14: sed -e "s#@VERSION@#$VERSION#" > configure.in joachim99@14: botfiles=`cat configure.files | egrep "configure.in.bot"` joachim99@14: test -n "$botfiles" && cat $botfiles >> configure.in joachim99@14: cat $admindir/configure.in.bot.end >> configure.in joachim99@14: rm -f configure.in.new joachim99@14: } joachim99@14: joachim99@14: configure_files() joachim99@14: { joachim99@14: admindir=NO joachim99@14: for i in . .. ../.. ../../..; do joachim99@14: if test -x $i/admin; then admindir=$i/admin; break; fi joachim99@14: done joachim99@14: rm -f configure.files joachim99@14: touch configure.files joachim99@14: if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then joachim99@14: echo $admindir/configure.in.min >> configure.files joachim99@14: fi joachim99@14: test -f configure.in.in && echo configure.in.in >> configure.files joachim99@14: # we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs joachim99@14: if test -f inst-apps; then joachim99@14: inst=`cat inst-apps` joachim99@14: list="" joachim99@14: for i in $inst; do joachim99@14: list="$list `find $i/ -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ joachim99@14: sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`" joachim99@14: done joachim99@14: else joachim99@14: list=`find . -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \ joachim99@14: sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"` joachim99@14: fi joachim99@14: for i in $list; do if test -f $i && test `dirname $i` != "." ; then joachim99@14: echo $i >> configure.files joachim99@14: fi; done joachim99@14: test -f configure.in.mid && echo configure.in.mid >> configure.files joachim99@14: test -f configure.in.bot && echo configure.in.bot >> configure.files joachim99@14: } joachim99@14: joachim99@14: create_subdirs() joachim99@14: { joachim99@14: if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then joachim99@14: # as many modules contain rules to create subdirs without any joachim99@14: # dependencies make won't create it unless there is no file. joachim99@14: # so we check if that's a dummy rule or one that works joachim99@14: rm -f subdirs.cvs.sh.$$ joachim99@14: if test -f subdirs; then joachim99@14: mv subdirs subdirs.cvs.sh.$$ joachim99@14: fi joachim99@14: strip_makefile joachim99@14: $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1 joachim99@14: if test -f subdirs.cvs.sh.$$; then joachim99@14: if test -s subdirs; then joachim99@14: rm subdirs.cvs.sh.$$ joachim99@14: else joachim99@14: mv subdirs.cvs.sh.$$ subdirs joachim99@14: fi joachim99@14: fi joachim99@14: else joachim99@14: subdirs joachim99@14: fi joachim99@14: } joachim99@14: joachim99@14: subdirs() joachim99@14: { joachim99@14: dirs= joachim99@14: idirs= joachim99@14: if test -f inst-apps; then joachim99@14: idirs=`cat inst-apps` joachim99@14: else joachim99@14: idirs=`ls -1 | sort` joachim99@14: fi joachim99@14: joachim99@14: compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` joachim99@14: compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` joachim99@14: for i in $idirs; do joachim99@14: if test -f $i/Makefile.am; then joachim99@14: case " $compilefirst $compilelast " in joachim99@14: *" $i "*) ;; joachim99@14: *) dirs="$dirs $i" joachim99@14: esac joachim99@14: fi joachim99@14: done joachim99@14: joachim99@14: : > ./_SUBDIRS joachim99@14: joachim99@14: for d in $compilefirst; do joachim99@14: echo $d >> ./_SUBDIRS joachim99@14: done joachim99@14: joachim99@14: (for d in $dirs; do joachim99@14: list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` joachim99@14: for s in $list; do joachim99@14: echo $s $d joachim99@14: done joachim99@14: list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` joachim99@14: for s in $list; do joachim99@14: echo $d $s joachim99@14: done joachim99@14: echo $d $d joachim99@14: done ) | tsort >> ./_SUBDIRS joachim99@14: joachim99@14: for d in $compilelast; do joachim99@14: echo $d >> ./_SUBDIRS joachim99@14: done joachim99@14: joachim99@14: if test -r subdirs && cmp -s subdirs _SUBDIRS; then joachim99@14: rm -f _SUBDIRS joachim99@14: fi joachim99@14: test -r _SUBDIRS && mv _SUBDIRS subdirs || true joachim99@14: } joachim99@14: joachim99@14: Makefile_am() joachim99@14: { joachim99@14: if test -f Makefile.am.in; then joachim99@14: compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` joachim99@14: compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` joachim99@14: joachim99@14: idirs= joachim99@14: dirs= joachim99@14: if test -f inst-apps; then joachim99@14: idirs=`cat inst-apps` joachim99@14: else joachim99@14: idirs=`cat subdirs` joachim99@14: fi joachim99@14: for i in $idirs; do joachim99@14: case " $compilefirst $compilelast " in joachim99@14: *" $i "*) ;; joachim99@14: *) dirs="$dirs $i" joachim99@14: esac joachim99@14: done joachim99@14: joachim99@14: if test -n "$UNSERMAKE"; then joachim99@14: cp Makefile.am.in Makefile.am joachim99@14: chmod u+w Makefile.am joachim99@14: topsubdirs= joachim99@14: for i in $compilefirst $dirs $compilelast; do joachim99@14: vari=`echo $i | sed -e "s,[-+],_,g"` joachim99@14: echo "if $vari""_SUBDIR_included" >> Makefile.am joachim99@14: echo "$vari""_SUBDIR=$i" >> Makefile.am joachim99@14: echo "endif" >> Makefile.am joachim99@14: topsubdirs="$topsubdirs \$($vari""_SUBDIR)" joachim99@14: done joachim99@14: echo "SUBDIRS=$topsubdirs" >> Makefile.am joachim99@14: else joachim99@14: cat Makefile.am.in | \ joachim99@14: sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \ joachim99@14: sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am joachim99@14: echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am joachim99@14: fi joachim99@14: fi joachim99@14: } joachim99@14: joachim99@14: cvs_clean() joachim99@14: { joachim99@14: if test -d CVS; then :; else joachim99@14: echo "You don't have a toplevel CVS directory." joachim99@14: echo "You most certainly didn't use cvs to get these sources." joachim99@14: echo "But this function depends on cvs's information." joachim99@14: exit 1 joachim99@14: fi joachim99@14: perl $admindir/cvs-clean.pl joachim99@14: } joachim99@14: joachim99@14: package_merge() joachim99@14: { joachim99@14: catalogs=$POFILES joachim99@14: for cat in $catalogs; do joachim99@14: msgmerge -o $cat.new $cat $PACKAGE.pot joachim99@14: if test -s $cat.new; then joachim99@14: grep -v "\"POT-Creation" $cat.new > $cat.new.2 joachim99@14: grep -v "\"POT-Creation" $cat >> $cat.new.1 joachim99@14: if diff $cat.new.1 $cat.new.2; then joachim99@14: rm $cat.new joachim99@14: else joachim99@14: mv $cat.new $cat joachim99@14: fi joachim99@14: rm -f $cat.new.1 $cat.new.2 joachim99@14: fi joachim99@14: done joachim99@14: } joachim99@14: joachim99@14: package_messages() joachim99@14: { joachim99@14: rm -rf po.backup joachim99@14: mkdir po.backup joachim99@14: joachim99@14: for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do joachim99@14: egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i joachim99@14: cp po/$i po.backup/backup_$i joachim99@14: touch -r po/$i po.backup/backup_$i joachim99@14: rm po/$i joachim99@14: done joachim99@14: joachim99@14: podir=${podir:-$PWD/po} joachim99@14: files=`find . -name Makefile.am | xargs egrep -l '^messages:' ` joachim99@14: dirs=`for i in $files; do echo \`dirname $i\`; done` joachim99@14: tmpname="$PWD/messages.log" joachim99@14: if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi joachim99@14: if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi joachim99@14: export EXTRACTRC PREPARETIPS joachim99@14: joachim99@14: for subdir in $dirs; do joachim99@14: test -z "$VERBOSE" || echo "Making messages in $subdir" joachim99@14: (cd $subdir joachim99@14: if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then joachim99@14: $EXTRACTRC *.rc *.ui > rc.cpp joachim99@14: else joachim99@14: candidates=`ls -1 *.rc *.ui 2>/dev/null` joachim99@14: if test -n "$candidates"; then joachim99@14: echo "$subdir has *.rc or *.ui files, but not correct messages line" joachim99@14: fi joachim99@14: fi joachim99@14: if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then joachim99@14: echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp joachim99@14: else echo " " > _translatorinfo.cpp joachim99@14: fi joachim99@14: perl -e '$mes=0; while () { 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 joachim99@14: joachim99@14: $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \ joachim99@14: XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-${KDEDIR:-/usr/local/kde}/include}/kde.pot" \ joachim99@14: messages joachim99@14: exit_code=$? joachim99@14: if test "$exit_code" != 0; then joachim99@14: echo "make exit code: $exit_code" joachim99@14: fi joachim99@14: ) 2>&1 | grep -v '^make\[1\]' > $tmpname joachim99@14: test -s $tmpname && { echo $subdir ; cat "$tmpname"; } joachim99@14: test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp joachim99@14: rm -f $subdir/_translatorinfo.cpp joachim99@14: rm -f $subdir/_transMakefile joachim99@14: done joachim99@14: rm -f $tmpname joachim99@14: for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do joachim99@14: test -f po/$i || echo "disappeared: $i" joachim99@14: done joachim99@14: for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do joachim99@14: msgmerge -q -o po/$i po/$i po/$i joachim99@14: egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot joachim99@14: if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then joachim99@14: echo "will update $i" joachim99@14: msgmerge -q po.backup/backup_$i po/$i > temp.pot joachim99@14: mv temp.pot po/$i joachim99@14: else joachim99@14: if test -f po.backup/backup_$i; then joachim99@14: test -z "$VERBOSE" || echo "I'm restoring $i" joachim99@14: mv po.backup/backup_$i po/$i joachim99@14: rm po.backup/$i joachim99@14: else joachim99@14: echo "will add $i" joachim99@14: fi joachim99@14: fi joachim99@14: done joachim99@14: rm -f temp.pot joachim99@14: rm -rf po.backup joachim99@14: } joachim99@14: joachim99@14: unset CDPATH joachim99@14: admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` joachim99@14: test "x$admindir" = "x$0" && admindir=. joachim99@14: joachim99@14: test "x$MAKE" = x && MAKE=make joachim99@14: makefile_am=Makefile.am joachim99@14: makefile_wo=Makefile.am joachim99@14: if test -f Makefile.am.in; then joachim99@14: makefile_am=Makefile.am.in joachim99@14: makefile_wo=Makefile.am.in.wo joachim99@14: fi joachim99@14: joachim99@14: # Suck in the AUTOCONF detection code joachim99@14: . $admindir/detect-autoconf.sh joachim99@14: joachim99@14: ### joachim99@14: ### Main joachim99@14: ### joachim99@14: joachim99@14: arg=`echo $1 | tr '\-.' __` joachim99@14: case $arg in joachim99@14: cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \ joachim99@14: cvs_clean | package_merge | package_messages | Makefile_am ) $arg ;; joachim99@14: configure ) call_and_fix_autoconf ;; joachim99@14: * ) echo "Usage: cvs.sh " joachim99@14: echo "Target can be one of:" joachim99@14: echo " cvs cvs-clean dist" joachim99@14: echo " configure.in configure.files" joachim99@14: echo " package-merge package-messages" joachim99@14: echo "" joachim99@14: echo "Usage: anything but $1" joachim99@14: exit 1 ;; joachim99@14: esac joachim99@14: joachim99@14: if test -f Makefile.am.in.wo; then joachim99@14: rm Makefile.am.in.wo joachim99@14: fi joachim99@14: joachim99@14: exit 0