]> git.saurik.com Git - bison.git/blame - bootstrap
Improve forward-compatibility with GNU M4.
[bison.git] / bootstrap
CommitLineData
01c56de4
AD
1#! /bin/sh
2
bbb44d83 3# Bootstrap this package from checked-out sources.
01c56de4 4
1cfe6375
JD
5# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
6# Inc.
1f65350a 7
f16b0819 8# This program is free software: you can redistribute it and/or modify
1f65350a 9# it under the terms of the GNU General Public License as published by
f16b0819
PE
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
6d8e724d 12
1f65350a
PE
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
6d8e724d 17
1f65350a 18# You should have received a copy of the GNU General Public License
f16b0819 19# along with this program. If not, see <http://www.gnu.org/licenses/>.
1f65350a
PE
20
21# Written by Paul Eggert.
22
3b2942e6
PE
23nl='
24'
5a2baae7 25
62a9592d 26# Ensure file names are sorted consistently across platforms.
b5240ba5 27# Also, ensure diagnostics are in English, e.g., "wget --help" below.
a9f027b9
PE
28LC_ALL=C
29export LC_ALL
30
6d8e724d
PE
31local_gl_dir=gl
32
bbb44d83
PE
33# Temporary directory names.
34bt='._bootmp'
35bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
36bt2=${bt}2
37
e3ddc1e3
PE
38usage() {
39 echo >&2 "\
40Usage: $0 [OPTION]...
10f429ef 41Bootstrap this package from the checked-out sources.
e3ddc1e3
PE
42
43Options:
44 --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
d7be4085
AD
45 sources reside. Use this if you already
46 have gnulib sources on your machine, and
47 do not want to waste your bandwidth downloading
48 them again.
46356ea4 49 --copy Copy files instead of creating symbolic links.
10f429ef 50 --force Attempt to bootstrap even if the sources seem
d7be4085 51 not to have been checked out.
e3ddc1e3 52 --skip-po Do not download po files.
bbb44d83 53 --cvs-user=USERNAME Set the username to use when checking out
d7be4085 54 sources from the gnulib repository.
e3ddc1e3 55
6d8e724d 56If the file bootstrap.conf exists in the current working directory, its
e3ddc1e3
PE
57contents are read as shell variables to configure the bootstrap.
58
59Running without arguments will suffice in most cases.
60"
61}
3b2942e6
PE
62
63# Configuration.
64
6d8e724d
PE
65# Name of the Makefile.am
66gnulib_mk=gnulib.mk
67
3b2942e6
PE
68# List of gnulib modules needed.
69gnulib_modules=
70
71# Any gnulib files needed that are not in modules.
72gnulib_files=
73
6d8e724d
PE
74# The command to download all .po files for a specified domain into
75# a specified directory. Fill in the first %s is the domain name, and
76# the second with the destination directory. Use rsync's -L and -r
77# options because the latest/%s directory and the .po files within are
78# all symlinks.
79po_download_command_format=\
80"rsync -Lrtvz 'translationproject.org::tp/latest/%s/' '%s'"
3b2942e6
PE
81
82extract_package_name='
83 /^AC_INIT(/{
84 /.*,.*,.*,/{
85 s///
86 s/[][]//g
87 p
88 q
89 }
90 s/AC_INIT(\[*//
91 s/]*,.*//
92 s/^GNU //
93 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
94 s/[^A-Za-z0-9_]/-/g
95 p
96 }
97'
98package=`sed -n "$extract_package_name" configure.ac` || exit
bbb44d83 99gnulib_name=lib$package
3b2942e6 100
bbb44d83 101build_aux=build-aux
3b2942e6 102# Extra files from gnulib, which override files from other sources.
bbb44d83
PE
103gnulib_extra_files="
104 $build_aux/install-sh
105 $build_aux/missing
106 $build_aux/mdate-sh
107 $build_aux/texinfo.tex
108 $build_aux/depcomp
109 $build_aux/config.guess
110 $build_aux/config.sub
3b2942e6 111 doc/INSTALL
bbb44d83 112"
3b2942e6 113
6d8e724d
PE
114# Additional gnulib-tool options to use. Use "\newline" to break lines.
115gnulib_tool_option_extras=
116
3b2942e6
PE
117# Other locale categories that need message catalogs.
118EXTRA_LOCALE_CATEGORIES=
119
120# Additional xgettext options to use. Use "\\\newline" to break lines.
121XGETTEXT_OPTIONS='\\\
122 --flag=_:1:pass-c-format\\\
123 --flag=N_:1:pass-c-format\\\
124 --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
125'
126
127# Files we don't want to import.
128excluded_files=
129
10f429ef
PE
130# File that should exist in the top directory of a checked out hierarchy,
131# but not in a distribution tarball.
bbb44d83 132checkout_only_file=README-hacking
e3ddc1e3 133
46356ea4
PE
134# Whether to use copies instead of symlinks.
135copy=false
136
6d8e724d
PE
137# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
138# those files to be generated in directories like lib/, m4/, and po/.
139# Or set it to 'auto' to make this script select which to use based
140# on which version control system (if any) is used in the source directory.
141vc_ignore=auto
142
d7be4085
AD
143# find_tool ENVVAR NAMES...
144# -------------------------
145find_tool ()
146{
147 # Find sha1sum, named gsha1sum on MacPorts.
148 find_tool_envvar=$1
149 shift
150 if eval test x"\$$find_tool_envvar" = x; then
151 for i
152 do
153 if ($i --version </dev/null) >/dev/null 2>&1; then
154 find_tool_res=$i
155 break
156 fi
157 done
158 fi
159 if test x"$find_tool_res" = x; then
160 echo >&2 "$0: $find_tool_name is required"
161 exit 1
162 fi
163 ($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
164 echo >&2 "$0: cannot run $find_tool_res --version"
165 exit 1
166 }
167 eval "$find_tool_envvar=\"$find_tool_res\""
168 eval "export $find_tool_envvar"
169}
170
171# Find sha1sum, named gsha1sum on MacPorts.
172find_tool SHA1SUM sha1sum gsha1sum
173
3b2942e6
PE
174# Override the default configuration, if necessary.
175test -r bootstrap.conf && . ./bootstrap.conf
176
6d8e724d
PE
177if test "$vc_ignore" = auto; then
178 vc_ignore=
179 test -d .git && vc_ignore=.gitignore
180 test -d CVS && vc_ignore="$vc_ignore .cvsignore"
181fi
182
3b2942e6
PE
183# Translate configuration into internal form.
184
1f65350a
PE
185# Parse options.
186
187for option
188do
189 case $option in
190 --help)
e3ddc1e3 191 usage
1f65350a
PE
192 exit;;
193 --gnulib-srcdir=*)
e23d0dd7 194 GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;;
1f65350a 195 --cvs-user=*)
e23d0dd7 196 CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;;
1f65350a
PE
197 --skip-po)
198 SKIP_PO=t;;
e3ddc1e3 199 --force)
bbb44d83 200 checkout_only_file=;;
46356ea4
PE
201 --copy)
202 copy=true;;
1f65350a
PE
203 *)
204 echo >&2 "$0: $option: unknown option"
205 exit 1;;
206 esac
207done
208
bbb44d83 209if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
10f429ef 210 echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
e3ddc1e3
PE
211 exit 1
212fi
213
bbb44d83
PE
214# If $STR is not already on a line by itself in $FILE, insert it,
215# sorting the new contents of the file and replacing $FILE with the result.
216insert_sorted_if_absent() {
217 file=$1
218 str=$2
6d8e724d 219 test -f $file || touch $file
bbb44d83
PE
220 echo "$str" | sort -u - $file | cmp -s - $file \
221 || echo "$str" | sort -u - $file -o $file \
222 || exit 1
223}
224
225# Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
226found_aux_dir=no
227grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
228 >/dev/null && found_aux_dir=yes
229grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
230 >/dev/null && found_aux_dir=yes
231if test $found_aux_dir = no; then
232 echo "$0: expected line not found in configure.ac. Add the following:" >&2
6d8e724d
PE
233 echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2
234 exit 1
bbb44d83
PE
235fi
236
237# If $build_aux doesn't exist, create it now, otherwise some bits
238# below will malfunction. If creating it, also mark it as ignored.
239if test ! -d $build_aux; then
240 mkdir $build_aux
6d8e724d
PE
241 for dot_ig in x $vc_ignore; do
242 test $dot_ig = x && continue
243 insert_sorted_if_absent $dot_ig $build_aux
bbb44d83
PE
244 done
245fi
246
247echo "$0: Bootstrapping from checked-out $package sources..."
1f65350a 248
e10a80ee
PE
249cleanup_gnulib() {
250 status=$?
251 rm -fr gnulib
252 exit $status
253}
254
1f65350a
PE
255# Get gnulib files.
256
257case ${GNULIB_SRCDIR--} in
258-)
259 if [ ! -d gnulib ]; then
260 echo "$0: getting gnulib files..."
261
26546b42
PE
262 case ${CVS_AUTH-pserver} in
263 pserver)
264 CVS_PREFIX=':pserver:anonymous@';;
1f65350a
PE
265 ssh)
266 CVS_PREFIX="$CVS_USER${CVS_USER+@}";;
267 *)
268 echo "$0: $CVS_AUTH: Unknown CVS access method" >&2
269 exit 1;;
270 esac
271
272 case $CVS_RSH in
3b2942e6 273 '') CVS_RSH=ssh; export CVS_RSH;;
1f65350a
PE
274 esac
275
e10a80ee
PE
276 trap cleanup_gnulib 1 2 13 15
277
1cfe6375 278 cvs -z3 -q -d ${CVS_PREFIX}pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD ||
e10a80ee 279 cleanup_gnulib
1f65350a 280
e10a80ee 281 trap - 1 2 13 15
1f65350a
PE
282 fi
283 GNULIB_SRCDIR=gnulib
284esac
285
284d8a13
PE
286gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
287<$gnulib_tool || exit
1f65350a 288
1f65350a
PE
289# Get translations.
290
6d8e724d 291download_po_files() {
5a2baae7
PE
292 subdir=$1
293 domain=$2
6d8e724d
PE
294 echo "$0: getting translations into $subdir for $domain..."
295 cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
296 eval "$cmd"
297}
5a2baae7 298
6d8e724d
PE
299# Download .po files to $po_dir/.reference and copy only the new
300# or modified ones into $po_dir. Also update $po_dir/LINGUAS.
301update_po_files() {
302 # Directory containing primary .po files.
303 # Overwrite them only when we're sure a .po file is new.
304 po_dir=$1
305 domain=$2
306
307 # Download *.po files into this dir.
308 # Usually contains *.s1 checksum files.
309 ref_po_dir="$po_dir/.reference"
310
311 test -d $ref_po_dir || mkdir $ref_po_dir || return
312 download_po_files $ref_po_dir $domain \
313 && ls "$ref_po_dir"/*.po 2>/dev/null |
314 sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
315
316 for po in `cd $ref_po_dir && echo *.po|sed 's/\.po//g'`; do
317 new_po="$ref_po_dir/$po.po"
318 cksum_file="$ref_po_dir/$po.s1"
d7be4085 319 if ! "$SHA1SUM" -c --status "$cksum_file" < "$new_po" > /dev/null; then
6d8e724d 320 echo "updated $po_dir/$po.po..."
d7be4085 321 cp "$new_po" "$po_dir/$po.po" && "$SHA1SUM" < "$new_po" > "$cksum_file"
6d8e724d
PE
322 fi
323 done
5a2baae7
PE
324}
325
1f65350a
PE
326case $SKIP_PO in
327'')
bbb44d83 328 if test -d po; then
6d8e724d 329 update_po_files po $package || exit
bbb44d83 330 fi
f7ab6a50 331
3b2942e6 332 if test -d runtime-po; then
6d8e724d 333 update_po_files runtime-po $package-runtime || exit
3b2942e6 334 fi;;
1f65350a
PE
335esac
336
1cfe6375
JD
337check_dst_dir()
338{
339 dst=$1
340 # If the destination directory doesn't exist, create it.
341 # This is required at least for "lib/uniwidth/cjk.h".
342 dst_dir=`dirname "$dst"`
343 if ! test -d "$dst_dir"; then
344 mkdir -p "$dst_dir"
345
346 # If we've just created a directory like lib/uniwidth,
347 # tell version control system(s) it's ignorable.
348 # FIXME: for now, this does only one level
349 parent=`dirname "$dst_dir"`
350 for dot_ig in x $vc_ignore; do
351 test $dot_ig = x && continue
352 ig=$parent/$dot_ig
353 insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
354 done
355 fi
356}
357
6d8e724d 358symlink_to_dir()
e70f46d1 359{
6d8e724d
PE
360 src=$1/$2
361 dst=${3-$2}
e70f46d1
PE
362
363 test -f "$src" && {
6d8e724d 364
1cfe6375 365 check_dst_dir "$dst"
6d8e724d 366
46356ea4
PE
367 if $copy; then
368 {
369 test ! -h "$dst" || {
370 echo "$0: rm -f $dst" &&
371 rm -f "$dst"
372 }
373 } &&
374 test -f "$dst" &&
375 cmp -s "$src" "$dst" || {
376 echo "$0: cp -fp $src $dst" &&
377 cp -fp "$src" "$dst"
378 }
379 else
380 test -h "$dst" &&
381 src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
382 dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
383 test "$src_i" = "$dst_i" || {
384 dot_dots=
385 case $src in
386 /*) ;;
387 *)
388 case /$dst/ in
389 *//* | */../* | */./* | /*/*/*/*/*/)
390 echo >&2 "$0: invalid symlink calculation: $src -> $dst"
391 exit 1;;
392 /*/*/*/*/) dot_dots=../../../;;
393 /*/*/*/) dot_dots=../../;;
394 /*/*/) dot_dots=../;;
395 esac;;
396 esac
397
398 echo "$0: ln -fs $dot_dots$src $dst" &&
399 ln -fs "$dot_dots$src" "$dst"
400 }
401 fi
e70f46d1
PE
402 }
403}
404
3b2942e6
PE
405cp_mark_as_generated()
406{
407 cp_src=$1
408 cp_dst=$2
1f65350a 409
e70f46d1 410 if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
6d8e724d
PE
411 symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst"
412 elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
413 symlink_to_dir $local_gl_dir "$cp_dst"
e70f46d1
PE
414 else
415 case $cp_dst in
416 *.[ch]) c1='/* '; c2=' */';;
417 *.texi) c1='@c '; c2= ;;
418 *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
419 *) c1= ; c2= ;;
420 esac
1f65350a 421
e70f46d1
PE
422 if test -z "$c1"; then
423 cmp -s "$cp_src" "$cp_dst" || {
424 echo "$0: cp -f $cp_src $cp_dst" &&
bbb44d83
PE
425 rm -f "$cp_dst" &&
426 sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst"
e70f46d1
PE
427 }
428 else
1cfe6375 429 check_dst_dir "$cp_dst"
e70f46d1
PE
430 # Copy the file first to get proper permissions if it
431 # doesn't already exist. Then overwrite the copy.
432 cp "$cp_src" "$cp_dst-t" &&
433 (
434 echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
435 echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
bbb44d83 436 sed "s!$bt_regex/!!g" "$cp_src"
e70f46d1
PE
437 ) > $cp_dst-t &&
438 if cmp -s "$cp_dst-t" "$cp_dst"; then
439 rm -f "$cp_dst-t"
440 else
441 echo "$0: cp $cp_src $cp_dst # with edits" &&
442 mv -f "$cp_dst-t" "$cp_dst"
443 fi
444 fi
445 fi
3b2942e6 446}
1f65350a 447
10f429ef
PE
448version_controlled_file() {
449 dir=$1
450 file=$2
451 found=no
452 if test -d CVS; then
453 grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
454 grep '^/[^/]*/[0-9]' > /dev/null && found=yes
455 elif test -d .git; then
456 git-rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
457 else
458 echo "$0: no version control for $dir/$file?" >&2
459 fi
460 test $found = yes
461}
462
3b2942e6
PE
463slurp() {
464 for dir in . `(cd $1 && find * -type d -print)`; do
465 copied=
466 sep=
6d8e724d
PE
467 for file in `ls -a $1/$dir`; do
468 case $file in
469 .|..) continue;;
470 .*) continue;; # FIXME: should all file names starting with "." be ignored?
471 esac
472 test -d $1/$dir/$file && continue
3b2942e6
PE
473 for excluded_file in $excluded_files; do
474 test "$dir/$file" = "$excluded_file" && continue 2
475 done
476 if test $file = Makefile.am; then
d7be4085 477 copied=$copied${sep}$gnulib_mk; sep=$nl
bbb44d83 478 remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
d7be4085 479 sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/$gnulib_mk || {
6d8e724d
PE
480 echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
481 rm -f $dir/$gnulib_mk &&
482 sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
e70f46d1
PE
483 }
484 elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
10f429ef 485 version_controlled_file $dir $file; then
3b2942e6
PE
486 echo "$0: $dir/$file overrides $1/$dir/$file"
487 else
488 copied=$copied$sep$file; sep=$nl
489 if test $file = gettext.m4; then
490 echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
491 rm -f $dir/$file
492 sed '
493 /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
494 AC_DEFUN([AM_INTL_SUBDIR], [
495 /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
496 AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
497 $a\
498 AC_DEFUN([gl_LOCK_EARLY], [])
499 ' $1/$dir/$file >$dir/$file
500 else
3b2942e6
PE
501 cp_mark_as_generated $1/$dir/$file $dir/$file
502 fi
503 fi || exit
504 done
505
6d8e724d
PE
506 for dot_ig in x $vc_ignore; do
507 test $dot_ig = x && continue
5691bf57 508 ig=$dir/$dot_ig
6d8e724d 509 if test -n "$copied"; then
bbb44d83
PE
510 insert_sorted_if_absent $ig "$copied"
511 # If an ignored file name ends with _.h, then also add
512 # the name with just ".h". Many gnulib headers are generated,
513 # e.g., stdint_.h -> stdint.h, dirent_.h ->..., etc.
6d8e724d
PE
514 # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
515 f=`echo "$copied"|sed 's/_\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
516 insert_sorted_if_absent $ig "$f"
517
518 # For files like sys_stat_.h and sys_time_.h, record as
519 # ignorable the directory we might eventually create: sys/.
520 f=`echo "$copied"|sed 's/sys_.*_\.h$/sys/'`
bbb44d83 521 insert_sorted_if_absent $ig "$f"
5691bf57
PE
522 fi
523 done
3b2942e6
PE
524 done
525}
1f65350a
PE
526
527
3b2942e6 528# Create boot temporary directories to import from gnulib and gettext.
3b2942e6
PE
529rm -fr $bt $bt2 &&
530mkdir $bt $bt2 || exit
531
532# Import from gnulib.
533
534gnulib_tool_options="\
535 --import\
536 --no-changelog\
bbb44d83 537 --aux-dir $bt/$build_aux\
3b2942e6 538 --doc-base $bt/doc\
bbb44d83 539 --lib $gnulib_name\
3b2942e6
PE
540 --m4-base $bt/m4/\
541 --source-base $bt/lib/\
542 --tests-base $bt/tests\
6d8e724d
PE
543 --local-dir $local_gl_dir\
544$gnulib_tool_option_extras\
3b2942e6
PE
545"
546echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
547$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
548slurp $bt || exit
549
550for file in $gnulib_files; do
6d8e724d 551 symlink_to_dir "$GNULIB_SRCDIR" $file || exit
3b2942e6 552done
1f65350a 553
e23d0dd7 554
3b2942e6 555# Import from gettext.
bbb44d83
PE
556with_gettext=yes
557grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
558 with_gettext=no
62a9592d 559
bbb44d83
PE
560if test $with_gettext = yes; then
561 echo "$0: (cd $bt2; autopoint) ..."
562 cp configure.ac $bt2 &&
563 (cd $bt2 && autopoint && rm configure.ac) &&
564 slurp $bt2 $bt || exit
b4068c7c 565
bbb44d83
PE
566 rm -fr $bt $bt2 || exit
567fi
3b2942e6 568
6d8e724d
PE
569# Coreutils is unusual in that it generates some of its test-related
570# Makefile.am files. That must be done before invoking automake.
571mam_template=tests/Makefile.am.in
572if test -f $mam_template; then
573 PERL=perl
574 for tool in cut head join pr sort tac tail test tr uniq wc; do
575 m=tests/$tool/Makefile.am
576 t=${m}t
577 rm -f $m $t
578 sed -n '1,/^##test-files-begin/p' $mam_template > $t
579 echo "x = $tool" >> $t
580 srcdir=tests/$tool
581 $PERL -I$srcdir -w -- tests/mk-script $srcdir --list >> $t
582 sed -n '/^##test-files-end/,$p' $mam_template >> $t
583 chmod -w $t
584 mv $t $m
585 done
586fi
3b2942e6
PE
587
588# Reconfigure, getting other files.
62a9592d
PE
589
590for command in \
bbb44d83 591 libtool \
62a9592d
PE
592 'aclocal --force -I m4' \
593 'autoconf --force' \
594 'autoheader --force' \
595 'automake --add-missing --copy --force-missing';
596do
bbb44d83
PE
597 if test "$command" = libtool; then
598 grep '^[ ]*AM_PROG_LIBTOOL\>' configure.ac >/dev/null ||
599 continue
600 command='libtoolize -c -f'
601 fi
62a9592d
PE
602 echo "$0: $command ..."
603 $command || exit
604done
605
606
3b2942e6 607# Get some extra files from gnulib, overriding existing files.
3b2942e6 608for file in $gnulib_extra_files; do
3b2942e6 609 case $file in
e70f46d1 610 */INSTALL) dst=INSTALL;;
6d8e724d 611 build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
e70f46d1 612 *) dst=$file;;
3b2942e6 613 esac
6d8e724d 614 symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit
3b2942e6
PE
615done
616
bbb44d83
PE
617if test $with_gettext = yes; then
618 # Create gettext configuration.
619 echo "$0: Creating po/Makevars from po/Makevars.template ..."
620 rm -f po/Makevars
3b2942e6 621 sed '
bbb44d83
PE
622 /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
623 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
624 /^XGETTEXT_OPTIONS *=/{
625 s/$/ \\/
626 a\
627 '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
628 }
629 ' po/Makevars.template >po/Makevars
3b2942e6 630
bbb44d83
PE
631 if test -d runtime-po; then
632 # Similarly for runtime-po/Makevars, but not quite the same.
633 rm -f runtime-po/Makevars
634 sed '
635 /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
636 /^subdir *=.*/s/=.*/= runtime-po/
637 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
638 /^XGETTEXT_OPTIONS *=/{
639 s/$/ \\/
640 a\
641 '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
642 }
643 ' <po/Makevars.template >runtime-po/Makevars
644
645 # Copy identical files from po to runtime-po.
646 (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
647 fi
3b2942e6 648fi
1f65350a
PE
649
650echo "$0: done. Now you can run './configure'."