2 # Print a version string.
3 scriptversion
=2011-05-03.08
; # UTC
5 # Bootstrap this package from checked-out sources.
7 # Copyright (C) 2003-2011 Free Software Foundation, Inc.
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
22 # Originally written by Paul Eggert. The canonical version of this
23 # script is maintained as build-aux/bootstrap in gnulib, however, to
24 # be useful to your project, you should place a copy of it under
25 # version control in the top-level directory of your project. The
26 # intent is that all customization can be done with a bootstrap.conf
27 # file also maintained in your version control; gnulib comes with a
28 # template build-aux/bootstrap.conf to get you started.
30 # Please report bugs or propose patches to bug-gnulib@gnu.org.
35 # Ensure file names are sorted consistently across platforms.
41 # Temporary directory names.
43 bt_regex
=`echo "$bt"| sed 's/\./[.]/g'`
49 Usage: $me [OPTION]...
50 Bootstrap this package from the checked-out sources.
53 --gnulib-srcdir=DIRNAME specify the local directory where gnulib
54 sources reside. Use this if you already
55 have gnulib sources on your machine, and
56 do not want to waste your bandwidth downloading
57 them again. Defaults to \$GNULIB_SRCDIR
58 --bootstrap-sync if this bootstrap script is not identical to
59 the version in the local gnulib sources,
60 update this script, and then restart it with
61 /bin/sh or the shell \$CONFIG_SHELL
62 --no-bootstrap-sync do not check whether bootstrap is out of sync
63 --copy copy files instead of creating symbolic links
64 --force attempt to bootstrap even if the sources seem
65 not to have been checked out
66 --no-git do not use git to update gnulib. Requires that
67 --gnulib-srcdir point to a correct gnulib snapshot
68 --skip-po do not download po files
70 If the file $me.conf exists in the same directory as this script, its
71 contents are read as shell variables to configure the bootstrap.
73 For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
76 Running without arguments will suffice in most cases.
82 # Name of the Makefile.am
85 # List of gnulib modules needed.
88 # Any gnulib files needed that are not in modules.
91 # A function to be called to edit gnulib.mk right after it's created.
92 # Override it via your own definition in bootstrap.conf.
93 gnulib_mk_hook
() { :; }
95 # A function to be called after everything else in this script.
96 # Override it via your own definition in bootstrap.conf.
97 bootstrap_epilogue
() { :; }
99 # The command to download all .po files for a specified domain into
100 # a specified directory. Fill in the first %s is the domain name, and
101 # the second with the destination directory. Use rsync's -L and -r
102 # options because the latest/%s directory and the .po files within are
104 po_download_command_format
=\
105 "rsync --delete --exclude '*.s1' -Lrtvz \
106 'translationproject.org::tp/latest/%s/' '%s'"
108 extract_package_name
='
120 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
125 package
=`sed -n "$extract_package_name" configure.ac` ||
exit
126 gnulib_name
=lib
$package
134 # Extra files from gnulib, which override files from other sources.
136 $build_aux/install-sh
139 $build_aux/texinfo.tex
141 $build_aux/config.guess
142 $build_aux/config.sub
146 # Additional gnulib-tool options to use. Use "\newline" to break lines.
147 gnulib_tool_option_extras
=
149 # Other locale categories that need message catalogs.
150 EXTRA_LOCALE_CATEGORIES
=
152 # Additional xgettext options to use. Use "\\\newline" to break lines.
153 XGETTEXT_OPTIONS
='\\\
154 --flag=_:1:pass-c-format\\\
155 --flag=N_:1:pass-c-format\\\
156 --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
159 # Package bug report address and copyright holder for gettext files
160 COPYRIGHT_HOLDER
='Free Software Foundation, Inc.'
161 MSGID_BUGS_ADDRESS
=bug-
$package@gnu.org
163 # Files we don't want to import.
166 # File that should exist in the top directory of a checked out hierarchy,
167 # but not in a distribution tarball.
168 checkout_only_file
=README-hacking
170 # Whether to use copies instead of symlinks.
173 # Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
174 # those files to be generated in directories like lib/, m4/, and po/.
175 # Or set it to 'auto' to make this script select which to use based
176 # on which version control system (if any) is used in the source directory.
179 # Set this to true in bootstrap.conf to enable --bootstrap-sync by
183 # Use git to update gnulib sources
186 # find_tool ENVVAR NAMES...
187 # -------------------------
188 # Search for a required program. Use the value of ENVVAR, if set,
189 # otherwise find the first of the NAMES that can be run (i.e.,
190 # supports --version). If found, set ENVVAR to the program name,
197 eval "find_tool_res=\$$find_tool_envvar"
198 if test x
"$find_tool_res" = x
; then
201 if ($i --version </dev
/null
) >/dev
/null
2>&1; then
207 find_tool_error_prefix
="\$$find_tool_envvar: "
209 if test x
"$find_tool_res" = x
; then
210 echo >&2 "$me: one of these is required: $find_tool_names"
213 ($find_tool_res --version </dev
/null
) >/dev
/null
2>&1 ||
{
214 echo >&2 "$me: ${find_tool_error_prefix}cannot run $find_tool_res --version"
217 eval "$find_tool_envvar=\$find_tool_res"
218 eval "export $find_tool_envvar"
221 # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6.
222 find_tool SHA1SUM
sha1sum gsha1sum shasum
224 # Override the default configuration, if necessary.
225 # Make sure that bootstrap.conf is sourced from the current directory
226 # if we were invoked as "sh bootstrap".
228 */*) test -r "$0.conf" && .
"$0.conf" ;;
229 *) test -r "$0.conf" && . .
/"$0.conf" ;;
233 if test "$vc_ignore" = auto
; then
235 test -d .git
&& vc_ignore
=.gitignore
236 test -d CVS
&& vc_ignore
="$vc_ignore .cvsignore"
239 # Translate configuration into internal form.
250 GNULIB_SRCDIR
=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;;
254 checkout_only_file
=;;
258 bootstrap_sync
=true
;;
260 bootstrap_sync
=false
;;
264 echo >&2 "$0: $option: unknown option"
269 if $use_git ||
test -d "$GNULIB_SRCDIR"; then
272 echo "$0: Error: --no-git requires --gnulib-srcdir" >&2
276 if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
277 echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
281 # If $STR is not already on a line by itself in $FILE, insert it,
282 # sorting the new contents of the file and replacing $FILE with the result.
283 insert_sorted_if_absent
() {
286 test -f $file ||
touch $file
287 echo "$str" |
sort -u - $file |
cmp - $file > /dev
/null \
288 ||
echo "$str" |
sort -u - $file -o $file \
292 # Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
293 # insert_sorted_if_absent.
297 case $vc_ignore_file in
299 # A .gitignore entry that does not start with `/' applies
300 # recursively to subdirectories, so prepend `/' to every
302 pattern
=`echo "$pattern" | sed s,^,/,`;;
304 insert_sorted_if_absent
"$vc_ignore_file" "$pattern"
307 # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
309 grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
310 >/dev
/null
&& found_aux_dir
=yes
311 grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
312 >/dev
/null
&& found_aux_dir
=yes
313 if test $found_aux_dir = no
; then
314 echo "$0: expected line not found in configure.ac. Add the following:" >&2
315 echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2
319 # If $build_aux doesn't exist, create it now, otherwise some bits
320 # below will malfunction. If creating it, also mark it as ignored.
321 if test ! -d $build_aux; then
323 for dot_ig
in x
$vc_ignore; do
324 test $dot_ig = x
&& continue
325 insert_vc_ignore
$dot_ig $build_aux
329 # Note this deviates from the version comparison in automake
330 # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
331 # but this should suffice as we won't be specifying old
332 # version formats or redundant trailing .0 in bootstrap.conf.
333 # If we did want full compatibility then we should probably
334 # use m4_version_compare from autoconf.
335 sort_ver
() { # sort -V is not generally available
339 # split on '.' and compare each component
342 p1
=$
(echo "$ver1" | cut
-d.
-f$i)
343 p2
=$
(echo "$ver2" | cut
-d.
-f$i)
347 elif [ ! "$p2" ]; then
350 elif [ ! "$p1" = "$p2" ]; then
351 if [ "$p1" -gt "$p2" ] 2>/dev
/null
; then # numeric comparison
353 elif [ "$p2" -gt "$p1" ] 2>/dev
/null
; then # numeric comparison
355 else # numeric, then lexicographic comparison
356 lp=$
(printf "$p1\n$p2\n" | LANG
=C
sort -n |
tail -n1)
357 if [ "$lp" = "$p2" ]; then
372 $app --version >/dev
/null
2>&1 ||
return 1
374 $app --version 2>&1 |
375 sed -n '# Move version to start of line.
376 s/.*[v ]\([0-9]\)/\1/
378 # Skip lines that do not start with version.
381 # Remove characters after the version.
384 # The first component must be digits only.
385 s/^\([0-9]*\)[a-z-].*/\1/
387 #the following essentially does s/5.005/5.5/
388 s/\.0*\([1-9]\)/.\1/g
396 while read app req_ver
; do
397 # We only need libtoolize from the libtool package.
398 if test "$app" = libtool
; then
401 # Exempt git if --no-git is in effect.
402 if test "$app" = git
; then
405 # Honor $APP variables ($TAR, $AUTOCONF, etc.)
406 appvar
=`echo $app | tr '[a-z]-' '[A-Z]_'`
407 test "$appvar" = TAR
&& appvar
=AMTAR
409 GZIP
) ;; # Do not use $GZIP: it contains gzip options.
410 *) eval "app=\${$appvar-$app}" ;;
412 inst_ver
=$
(get_version
$app)
413 if [ ! "$inst_ver" ]; then
414 echo "$me: Error: '$app' not found" >&2
416 elif [ ! "$req_ver" = "-" ]; then
417 latest_ver
=$
(sort_ver
$req_ver $inst_ver | cut
-d' ' -f2)
418 if [ ! "$latest_ver" = "$inst_ver" ]; then
419 echo "$me: Error: '$app' version == $inst_ver is too old" >&2
420 echo " '$app' version >= $req_ver is required" >&2
430 echo "Program Min_version"
431 echo "----------------------"
432 printf %s
"$buildreq"
433 echo "----------------------"
434 # can't depend on column -t
438 # We'd like to use grep -E, to see if any of LT_INIT,
439 # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
440 # but that's not portable enough (e.g., for Solaris).
441 grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac
>/dev
/null \
443 grep '^[ ]*LT_INIT' configure.ac
>/dev
/null \
445 if test $use_libtool = 1; then
446 find_tool LIBTOOLIZE glibtoolize libtoolize
449 if ! printf "$buildreq" | check_versions
; then
451 if test -f README-prereq
; then
452 echo "$0: See README-prereq for how to get the prerequisite programs" >&2
454 echo "$0: Please install the prerequisite programs" >&2
459 echo "$0: Bootstrapping from checked-out $package sources..."
461 # See if we can use gnulib's git-merge-changelog merge driver.
462 if test -d .git
&& (git
--version) >/dev
/null
2>/dev
/null
; then
463 if git config merge.merge-changelog.driver
>/dev
/null
; then
465 elif (git-merge-changelog
--version) >/dev
/null
2>/dev
/null
; then
466 echo "$0: initializing git-merge-changelog driver"
467 git config merge.merge-changelog.name
'GNU-style ChangeLog merge driver'
468 git config merge.merge-changelog.driver
'git-merge-changelog %O %A %B'
470 echo "$0: consider installing git-merge-changelog from gnulib"
477 rm -fr "$gnulib_path"
481 git_modules_config
() {
482 test -f .gitmodules
&& git config
--file .gitmodules
"$@"
485 gnulib_path
=`git_modules_config submodule.gnulib.path`
486 test -z "$gnulib_path" && gnulib_path
=gnulib
490 case ${GNULIB_SRCDIR--} in
492 if git_modules_config submodule.gnulib.url
>/dev
/null
; then
493 echo "$0: getting gnulib files..."
494 git submodule init ||
exit $?
495 git submodule update ||
exit $?
497 elif [ ! -d "$gnulib_path" ]; then
498 echo "$0: getting gnulib files..."
500 trap cleanup_gnulib
1 2 13 15
503 git clone
-h 2>&1 |
grep -- --depth > /dev
/null
&& shallow
='--depth 2'
504 git clone
$shallow git
://git.sv.gnu.org
/gnulib
"$gnulib_path" ||
509 GNULIB_SRCDIR
=$gnulib_path
512 # Use GNULIB_SRCDIR as a reference.
513 if test -d "$GNULIB_SRCDIR"/.git
&& \
514 git_modules_config submodule.gnulib.url
>/dev
/null
; then
515 echo "$0: getting gnulib files..."
516 if git submodule
-h|
grep -- --reference > /dev
/null
; then
517 # Prefer the one-liner available in git 1.6.4 or newer.
518 git submodule update
--init --reference "$GNULIB_SRCDIR" \
519 "$gnulib_path" ||
exit $?
521 # This fallback allows at least git 1.5.5.
522 if test -f "$gnulib_path"/gnulib-tool
; then
523 # Since file already exists, assume submodule init already complete.
524 git submodule update ||
exit $?
526 # Older git can't clone into an empty directory.
527 rmdir "$gnulib_path" 2>/dev
/null
528 git clone
--reference "$GNULIB_SRCDIR" \
529 "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
530 && git submodule init
&& git submodule update \
534 GNULIB_SRCDIR
=$gnulib_path
539 if $bootstrap_sync; then
540 cmp -s "$0" "$GNULIB_SRCDIR/build-aux/bootstrap" ||
{
541 echo "$0: updating bootstrap and restarting..."
543 'cp "$1" "$2" && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
544 -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
545 "$0" "$@" --no-bootstrap-sync
549 gnulib_tool
=$GNULIB_SRCDIR/gnulib-tool
550 <$gnulib_tool ||
exit
554 download_po_files
() {
557 echo "$me: getting translations into $subdir for $domain..."
558 cmd
=`printf "$po_download_command_format" "$domain" "$subdir"`
562 # Mirror .po files to $po_dir/.reference and copy only the new
563 # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
564 # Note po files that exist locally only are left in $po_dir but will
565 # not be included in LINGUAS and hence will not be distributed.
567 # Directory containing primary .po files.
568 # Overwrite them only when we're sure a .po file is new.
572 # Mirror *.po files into this dir.
573 # Usually contains *.s1 checksum files.
574 ref_po_dir
="$po_dir/.reference"
576 test -d $ref_po_dir || mkdir
$ref_po_dir ||
return
577 download_po_files
$ref_po_dir $domain \
578 && ls "$ref_po_dir"/*.po
2>/dev
/null |
579 sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" ||
return
581 langs
=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
582 test "$langs" = '*' && langs
=x
584 case $po in x
) continue;; esac
585 new_po
="$ref_po_dir/$po.po"
586 cksum_file
="$ref_po_dir/$po.s1"
587 if ! test -f "$cksum_file" ||
588 ! test -f "$po_dir/$po.po" ||
589 ! $SHA1SUM -c --status "$cksum_file" \
590 < "$new_po" > /dev
/null
; then
591 echo "$me: updated $po_dir/$po.po..."
592 cp "$new_po" "$po_dir/$po.po" \
593 && $SHA1SUM < "$new_po" > "$cksum_file"
601 update_po_files po
$package ||
exit
604 if test -d runtime-po
; then
605 update_po_files runtime-po
$package-runtime ||
exit
616 # If the destination directory doesn't exist, create it.
617 # This is required at least for "lib/uniwidth/cjk.h".
618 dst_dir
=`dirname "$dst"`
619 if ! test -d "$dst_dir"; then
622 # If we've just created a directory like lib/uniwidth,
623 # tell version control system(s) it's ignorable.
624 # FIXME: for now, this does only one level
625 parent
=`dirname "$dst_dir"`
626 for dot_ig
in x
$vc_ignore; do
627 test $dot_ig = x
&& continue
629 insert_vc_ignore
$ig `echo "$dst_dir"|sed 's,.*/,,'`
635 test ! -h "$dst" ||
{
636 echo "$me: rm -f $dst" &&
641 cmp -s "$src" "$dst" ||
{
642 echo "$me: cp -fp $src $dst" &&
647 src_ls
=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i
=$1 &&
648 dst_ls
=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i
=$1 &&
649 test "$src_i" = "$dst_i" ||
{
655 *//* |
*/..
/* |
*/.
/* |
/*/*/*/*/*/)
656 echo >&2 "$me: invalid symlink calculation: $src -> $dst"
658 /*/*/*/*/) dot_dots
=..
/..
/..
/;;
659 /*/*/*/) dot_dots
=..
/..
/;;
660 /*/*/) dot_dots
=..
/;;
664 echo "$me: ln -fs $dot_dots$src $dst" &&
665 ln -fs "$dot_dots$src" "$dst"
671 cp_mark_as_generated
()
676 if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
677 symlink_to_dir
"$GNULIB_SRCDIR" "$cp_dst"
678 elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
679 symlink_to_dir
$local_gl_dir "$cp_dst"
682 *.
[ch
]) c1
='/* '; c2
=' */';;
683 *.texi
) c1
='@c '; c2
= ;;
684 *.
m4|
*/Make
*|Make
*) c1
='# ' ; c2
= ;;
688 # If the destination directory doesn't exist, create it.
689 # This is required at least for "lib/uniwidth/cjk.h".
690 dst_dir
=`dirname "$cp_dst"`
691 test -d "$dst_dir" || mkdir
-p "$dst_dir"
693 if test -z "$c1"; then
694 cmp -s "$cp_src" "$cp_dst" ||
{
695 # Copy the file first to get proper permissions if it
696 # doesn't already exist. Then overwrite the copy.
697 echo "$me: cp -f $cp_src $cp_dst" &&
699 cp "$cp_src" "$cp_dst-t" &&
700 sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
701 mv -f "$cp_dst-t" "$cp_dst"
704 # Copy the file first to get proper permissions if it
705 # doesn't already exist. Then overwrite the copy.
706 cp "$cp_src" "$cp_dst-t" &&
708 echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
709 echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
710 sed "s!$bt_regex/!!g" "$cp_src"
712 if cmp -s "$cp_dst-t" "$cp_dst"; then
715 echo "$me: cp $cp_src $cp_dst # with edits" &&
716 mv -f "$cp_dst-t" "$cp_dst"
722 version_controlled_file
() {
727 grep -F "/$file/" $dir/CVS
/Entries
2>/dev
/null |
728 grep '^/[^/]*/[0-9]' > /dev
/null
&& found
=yes
729 elif test -d .git
; then
730 git
rm -n "$dir/$file" > /dev
/null
2>&1 && found
=yes
731 elif test -d .svn
; then
732 svn log
-r HEAD
"$dir/$file" > /dev
/null
2>&1 && found
=yes
734 echo "$me: no version control for $dir/$file?" >&2
740 for dir
in .
`(cd $1 && find * -type d -print)`; do
743 for file in `ls -a $1/$dir`; do
746 # FIXME: should all file names starting with "." be ignored?
749 test -d $1/$dir/$file && continue
750 for excluded_file
in $excluded_files; do
751 test "$dir/$file" = "$excluded_file" && continue 2
753 if test $file = Makefile.am
&& test "X$gnulib_mk" != XMakefile.am
; then
754 copied
=$copied${sep}$gnulib_mk; sep
=$nl
755 remove_intl
='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
756 sed "$remove_intl" $1/$dir/$file |
757 cmp - $dir/$gnulib_mk > /dev
/null ||
{
758 echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
759 rm -f $dir/$gnulib_mk &&
760 sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
761 gnulib_mk_hook
$dir/$gnulib_mk
763 elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
764 version_controlled_file
$dir $file; then
765 echo "$me: $dir/$file overrides $1/$dir/$file"
767 copied
=$copied$sep$file; sep
=$nl
768 if test $file = gettext.
m4; then
769 echo "$me: patching m4/gettext.m4 to remove need for intl/* ..."
772 /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
773 AC_DEFUN([AM_INTL_SUBDIR], [])
774 /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
775 AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
777 AC_DEFUN([gl_LOCK_EARLY], [])
778 ' $1/$dir/$file >$dir/$file
780 cp_mark_as_generated
$1/$dir/$file $dir/$file
785 for dot_ig
in x
$vc_ignore; do
786 test $dot_ig = x
&& continue
788 if test -n "$copied"; then
789 insert_vc_ignore
$ig "$copied"
790 # If an ignored file name ends with .in.h, then also add
791 # the name with just ".h". Many gnulib headers are generated,
792 # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
793 # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
802 insert_vc_ignore
$ig "$f"
804 # For files like sys_stat.in.h and sys_time.in.h, record as
805 # ignorable the directory we might eventually create: sys/.
806 f
=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
807 insert_vc_ignore
$ig "$f"
814 # Create boot temporary directories to import from gnulib and gettext.
816 mkdir
$bt $bt2 ||
exit
818 # Import from gnulib.
820 gnulib_tool_options
="\
823 --aux-dir $bt/$build_aux\
824 --doc-base $bt/$doc_base\
826 --m4-base $bt/$m4_base/\
827 --source-base $bt/$source_base/\
828 --tests-base $bt/$tests_base\
829 --local-dir $local_gl_dir\
830 $gnulib_tool_option_extras\
832 if test $use_libtool = 1; then
833 case "$gnulib_tool_options " in
835 *) gnulib_tool_options
="$gnulib_tool_options --libtool" ;;
838 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
839 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
842 for file in $gnulib_files; do
843 symlink_to_dir
"$GNULIB_SRCDIR" $file ||
exit
847 # Import from gettext.
849 grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac
>/dev
/null || \
852 if test $with_gettext = yes; then
853 echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..."
854 cp configure.ac
$bt2 &&
855 (cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac
) &&
856 slurp
$bt2 $bt ||
exit
858 rm -fr $bt $bt2 ||
exit
860 # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
861 # gnulib-populated directories. Such .m4 files would cause aclocal to fail.
862 # The following requires GNU find 4.2.3 or newer. Considering the usual
863 # portability constraints of this script, that may seem a very demanding
864 # requirement, but it should be ok. Ignore any failure, which is fine,
865 # since this is only a convenience to help developers avoid the relatively
866 # unusual case in which a symlinked-to .m4 file is git-removed from gnulib
867 # between successive runs of this script.
868 find "$m4_base" "$source_base" \
869 -depth \
( -name '*.m4' -o -name '*.[ch]' \
) \
870 -type l
-xtype l
-delete > /dev
/null
2>&1
872 # Reconfigure, getting other files.
874 # Skip autoheader if it's not needed.
875 grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac
>/dev
/null ||
880 "${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
881 "${AUTOCONF-autoconf} --force" \
882 "${AUTOHEADER-autoheader} --force" \
883 "${AUTOMAKE-automake} --add-missing --copy --force-missing"
885 if test "$command" = libtool
; then
886 test $use_libtool = 0 \
888 command="${LIBTOOLIZE-libtoolize} -c -f"
890 echo "$0: $command ..."
891 eval "$command" ||
exit
895 # Get some extra files from gnulib, overriding existing files.
896 for file in $gnulib_extra_files; do
898 */INSTALL
) dst
=INSTALL
;;
899 build-aux
/*) dst
=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
902 symlink_to_dir
"$GNULIB_SRCDIR" $file $dst ||
exit
905 if test $with_gettext = yes; then
906 # Create gettext configuration.
907 echo "$0: Creating po/Makevars from po/Makevars.template ..."
910 /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
911 /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
912 /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
913 /^XGETTEXT_OPTIONS *=/{
916 '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
918 ' po
/Makevars.template
>po
/Makevars ||
exit 1
920 if test -d runtime-po
; then
921 # Similarly for runtime-po/Makevars, but not quite the same.
922 rm -f runtime-po
/Makevars
924 /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
925 /^subdir *=.*/s/=.*/= runtime-po/
926 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
927 /^XGETTEXT_OPTIONS *=/{
930 '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
932 ' po
/Makevars.template
>runtime-po
/Makevars ||
exit 1
934 # Copy identical files from po to runtime-po.
935 (cd po
&& cp -p Makefile.
in.
in *-quot *.header
*.
sed *.sin ..
/runtime-po
)
941 echo "$0: done. Now you can run './configure'."
944 # eval: (add-hook 'write-file-hooks 'time-stamp)
945 # time-stamp-start: "scriptversion="
946 # time-stamp-format: "%:y-%02m-%02d.%02H"
947 # time-stamp-time-zone: "UTC"
948 # time-stamp-end: "; # UTC"