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