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