3 # Bootstrap this package from checked-out sources.
5 # Copyright (C) 2003-2010 Free Software Foundation, Inc.
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 # Originally written by Paul Eggert. The canonical version of this
21 # script is maintained as build-aux/bootstrap in gnulib, however, to
22 # be useful to your project, you should place a copy of it under
23 # version control in the top-level directory of your project. The
24 # intent is that all customization can be done with a bootstrap.conf
25 # file also maintained in your version control; gnulib comes with a
26 # template build-aux/bootstrap.conf to get you started.
28 # Please report bugs or propose patches to bug-gnulib@gnu.org.
33 # Ensure file names are sorted consistently across platforms.
39 # Temporary directory names.
41 bt_regex=`echo "$bt"| sed 's/\./[.]/g'`
47 Bootstrap this package from the checked-out sources.
50 --gnulib-srcdir=DIRNAME Specify the local directory where gnulib
51 sources reside. Use this if you already
52 have gnulib sources on your machine, and
53 do not want to waste your bandwidth downloading
54 them again. Defaults to \$GNULIB_SRCDIR.
55 --copy Copy files instead of creating symbolic links.
56 --force Attempt to bootstrap even if the sources seem
57 not to have been checked out.
58 --skip-po Do not download po files.
60 If the file $0.conf exists in the same directory as this script, its
61 contents are read as shell variables to configure the bootstrap.
63 For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
66 Running without arguments will suffice in most cases.
72 # Name of the Makefile.am
75 # List of gnulib modules needed.
78 # Any gnulib files needed that are not in modules.
81 # A function to be called after everything else in this script.
82 # Override it via your own definition in bootstrap.conf.
83 bootstrap_epilogue() { :; }
85 # The command to download all .po files for a specified domain into
86 # a specified directory. Fill in the first %s is the domain name, and
87 # the second with the destination directory. Use rsync's -L and -r
88 # options because the latest/%s directory and the .po files within are
90 po_download_command_format=\
91 "rsync -Lrtvz 'translationproject.org::tp/latest/%s/' '%s'"
93 extract_package_name='
105 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
110 package=`sed -n "$extract_package_name" configure.ac` || exit
111 gnulib_name=lib$package
119 # Extra files from gnulib, which override files from other sources.
121 $build_aux/install-sh
124 $build_aux/texinfo.tex
126 $build_aux/config.guess
127 $build_aux/config.sub
131 # Additional gnulib-tool options to use. Use "\newline" to break lines.
132 gnulib_tool_option_extras=
134 # Other locale categories that need message catalogs.
135 EXTRA_LOCALE_CATEGORIES=
137 # Additional xgettext options to use. Use "\\\newline" to break lines.
138 XGETTEXT_OPTIONS='\\\
139 --flag=_:1:pass-c-format\\\
140 --flag=N_:1:pass-c-format\\\
141 --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
144 # Package bug report address and copyright holder for gettext files
145 COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
146 MSGID_BUGS_ADDRESS=bug-$package@gnu.org
148 # Files we don't want to import.
151 # File that should exist in the top directory of a checked out hierarchy,
152 # but not in a distribution tarball.
153 checkout_only_file=README-hacking
155 # Whether to use copies instead of symlinks.
158 # Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
159 # those files to be generated in directories like lib/, m4/, and po/.
160 # Or set it to 'auto' to make this script select which to use based
161 # on which version control system (if any) is used in the source directory.
164 # find_tool ENVVAR NAMES...
165 # -------------------------
166 # Search for a required program. Use the value of ENVVAR, if set,
167 # otherwise find the first of the NAMES that can be run (i.e.,
168 # supports --version). If found, set ENVVAR to the program name,
175 eval "find_tool_res=\$$find_tool_envvar"
176 if test x"$find_tool_res" = x; then
179 if ($i --version </dev/null) >/dev/null 2>&1; then
185 find_tool_error_prefix="\$$find_tool_envvar: "
187 if test x"$find_tool_res" = x; then
188 echo >&2 "$0: one of these is required: $find_tool_names"
191 ($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
192 echo >&2 "$0: ${find_tool_error_prefix}cannot run $find_tool_res --version"
195 eval "$find_tool_envvar=\$find_tool_res"
196 eval "export $find_tool_envvar"
199 # Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6.
200 find_tool SHA1SUM sha1sum gsha1sum shasum
202 # Override the default configuration, if necessary.
203 # Make sure that bootstrap.conf is sourced from the current directory
204 # if we were invoked as "sh bootstrap".
206 */*) test -r "$0.conf" && . "$0.conf" ;;
207 *) test -r "$0.conf" && . ./"$0.conf" ;;
211 if test "$vc_ignore" = auto; then
213 test -d .git && vc_ignore=.gitignore
214 test -d CVS && vc_ignore="$vc_ignore .cvsignore"
217 # Translate configuration into internal form.
228 GNULIB_SRCDIR=`expr "X$option" : 'X--gnulib-srcdir=\(.*\)'`;;
232 checkout_only_file=;;
236 echo >&2 "$0: $option: unknown option"
241 if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
242 echo "$0: Bootstrapping from a non-checked-out distribution is risky." >&2
246 # If $STR is not already on a line by itself in $FILE, insert it,
247 # sorting the new contents of the file and replacing $FILE with the result.
248 insert_sorted_if_absent() {
251 test -f $file || touch $file
252 echo "$str" | sort -u - $file | cmp - $file > /dev/null \
253 || echo "$str" | sort -u - $file -o $file \
257 # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
259 grep '^[ ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
260 >/dev/null && found_aux_dir=yes
261 grep '^[ ]*AC_CONFIG_AUX_DIR('"$build_aux"')' configure.ac \
262 >/dev/null && found_aux_dir=yes
263 if test $found_aux_dir = no; then
264 echo "$0: expected line not found in configure.ac. Add the following:" >&2
265 echo " AC_CONFIG_AUX_DIR([$build_aux])" >&2
269 # If $build_aux doesn't exist, create it now, otherwise some bits
270 # below will malfunction. If creating it, also mark it as ignored.
271 if test ! -d $build_aux; then
273 for dot_ig in x $vc_ignore; do
274 test $dot_ig = x && continue
275 insert_sorted_if_absent $dot_ig $build_aux
279 # Note this deviates from the version comparison in automake
280 # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
281 # but this should suffice as we won't be specifying old
282 # version formats or redundant trailing .0 in bootstrap.conf.
283 # If we did want full compatibility then we should probably
284 # use m4_version_compare from autoconf.
285 sort_ver() { # sort -V is not generally available
289 # split on '.' and compare each component
292 p1=$(echo "$ver1" | cut -d. -f$i)
293 p2=$(echo "$ver2" | cut -d. -f$i)
297 elif [ ! "$p2" ]; then
300 elif [ ! "$p1" = "$p2" ]; then
301 if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
303 elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
305 else # numeric, then lexicographic comparison
306 lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
307 if [ "$lp" = "$p2" ]; then
322 $app --version >/dev/null 2>&1 || return 1
324 $app --version 2>&1 |
325 sed -n '# extract version within line
326 s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
329 # extract version at start of line
330 s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
336 #the following essentially does s/5.005/5.5/
337 s/\.0*\([1-9]\)/.\1/g
345 while read app req_ver; do
346 # Honor $APP variables ($TAR, $AUTOCONF, etc.)
347 appvar=`echo $app | tr '[a-z]' '[A-Z]'`
348 test "$appvar" = TAR && appvar=AMTAR
349 eval "app=\${$appvar-$app}"
350 inst_ver=$(get_version $app)
351 if [ ! "$inst_ver" ]; then
352 echo "Error: '$app' not found" >&2
354 elif [ ! "$req_ver" = "-" ]; then
355 latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
356 if [ ! "$latest_ver" = "$inst_ver" ]; then
357 echo "Error: '$app' version == $inst_ver is too old" >&2
358 echo " '$app' version >= $req_ver is required" >&2
368 echo "Program Min_version"
369 echo "----------------------"
371 echo "----------------------"
372 # can't depend on column -t
375 if ! printf "$buildreq" | check_versions; then
376 test -f README-prereq &&
377 echo "See README-prereq for notes on obtaining these prerequisite programs:" >&2
383 echo "$0: Bootstrapping from checked-out $package sources..."
385 # See if we can use gnulib's git-merge-changelog merge driver.
386 if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
387 if git config merge.merge-changelog.driver >/dev/null ; then
389 elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
390 echo "initializing git-merge-changelog driver"
391 git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
392 git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
394 echo "consider installing git-merge-changelog from gnulib"
401 rm -fr "$gnulib_path"
405 git_modules_config () {
406 test -f .gitmodules && git config --file .gitmodules "$@"
409 gnulib_path=`git_modules_config submodule.gnulib.path`
413 case ${GNULIB_SRCDIR--} in
415 if git_modules_config submodule.gnulib.url >/dev/null; then
416 echo "$0: getting gnulib files..."
417 git submodule init || exit $?
418 git submodule update || exit $?
420 elif [ ! -d "$gnulib_path" ]; then
421 echo "$0: getting gnulib files..."
423 trap cleanup_gnulib 1 2 13 15
425 git clone --help|grep depth > /dev/null && shallow='--depth 2' || shallow=
426 git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
431 GNULIB_SRCDIR=$gnulib_path
434 # Use GNULIB_SRCDIR as a reference. Assumes git 1.6.4 or newer.
435 if test -d "$GNULIB_SRCDIR"/.git && \
436 git_modules_config submodule.gnulib.url >/dev/null; then
437 echo "$0: getting gnulib files..."
438 git submodule update --init --reference "$GNULIB_SRCDIR" \
439 "$gnulib_path" || exit $?
440 GNULIB_SRCDIR=$gnulib_path
445 gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
446 <$gnulib_tool || exit
450 download_po_files() {
453 echo "$0: getting translations into $subdir for $domain..."
454 cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
458 # Download .po files to $po_dir/.reference and copy only the new
459 # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
461 # Directory containing primary .po files.
462 # Overwrite them only when we're sure a .po file is new.
466 # Download *.po files into this dir.
467 # Usually contains *.s1 checksum files.
468 ref_po_dir="$po_dir/.reference"
470 test -d $ref_po_dir || mkdir $ref_po_dir || return
471 download_po_files $ref_po_dir $domain \
472 && ls "$ref_po_dir"/*.po 2>/dev/null |
473 sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
475 langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
476 test "$langs" = '*' && langs=x
478 case $po in x) continue;; esac
479 new_po="$ref_po_dir/$po.po"
480 cksum_file="$ref_po_dir/$po.s1"
481 if ! test -f "$cksum_file" ||
482 ! test -f "$po_dir/$po.po" ||
483 ! $SHA1SUM -c --status "$cksum_file" \
484 < "$new_po" > /dev/null; then
485 echo "updated $po_dir/$po.po..."
486 cp "$new_po" "$po_dir/$po.po" \
487 && $SHA1SUM < "$new_po" > "$cksum_file"
495 update_po_files po $package || exit
498 if test -d runtime-po; then
499 update_po_files runtime-po $package-runtime || exit
510 # If the destination directory doesn't exist, create it.
511 # This is required at least for "lib/uniwidth/cjk.h".
512 dst_dir=`dirname "$dst"`
513 if ! test -d "$dst_dir"; then
516 # If we've just created a directory like lib/uniwidth,
517 # tell version control system(s) it's ignorable.
518 # FIXME: for now, this does only one level
519 parent=`dirname "$dst_dir"`
520 for dot_ig in x $vc_ignore; do
521 test $dot_ig = x && continue
523 insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
529 test ! -h "$dst" || {
530 echo "$0: rm -f $dst" &&
535 cmp -s "$src" "$dst" || {
536 echo "$0: cp -fp $src $dst" &&
541 src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
542 dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
543 test "$src_i" = "$dst_i" || {
549 *//* | */../* | */./* | /*/*/*/*/*/)
550 echo >&2 "$0: invalid symlink calculation: $src -> $dst"
552 /*/*/*/*/) dot_dots=../../../;;
553 /*/*/*/) dot_dots=../../;;
554 /*/*/) dot_dots=../;;
558 echo "$0: ln -fs $dot_dots$src $dst" &&
559 ln -fs "$dot_dots$src" "$dst"
565 cp_mark_as_generated()
570 if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
571 symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst"
572 elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
573 symlink_to_dir $local_gl_dir "$cp_dst"
576 *.[ch]) c1='/* '; c2=' */';;
577 *.texi) c1='@c '; c2= ;;
578 *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
582 # If the destination directory doesn't exist, create it.
583 # This is required at least for "lib/uniwidth/cjk.h".
584 dst_dir=`dirname "$cp_dst"`
585 test -d "$dst_dir" || mkdir -p "$dst_dir"
587 if test -z "$c1"; then
588 cmp -s "$cp_src" "$cp_dst" || {
589 # Copy the file first to get proper permissions if it
590 # doesn't already exist. Then overwrite the copy.
591 echo "$0: cp -f $cp_src $cp_dst" &&
593 cp "$cp_src" "$cp_dst-t" &&
594 sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
595 mv -f "$cp_dst-t" "$cp_dst"
598 # Copy the file first to get proper permissions if it
599 # doesn't already exist. Then overwrite the copy.
600 cp "$cp_src" "$cp_dst-t" &&
602 echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
603 echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
604 sed "s!$bt_regex/!!g" "$cp_src"
606 if cmp -s "$cp_dst-t" "$cp_dst"; then
609 echo "$0: cp $cp_src $cp_dst # with edits" &&
610 mv -f "$cp_dst-t" "$cp_dst"
616 version_controlled_file() {
621 grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
622 grep '^/[^/]*/[0-9]' > /dev/null && found=yes
623 elif test -d .git; then
624 git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
625 elif test -d .svn; then
626 svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
628 echo "$0: no version control for $dir/$file?" >&2
634 for dir in . `(cd $1 && find * -type d -print)`; do
637 for file in `ls -a $1/$dir`; do
640 .*) continue;; # FIXME: should all file names starting with "." be ignored?
642 test -d $1/$dir/$file && continue
643 for excluded_file in $excluded_files; do
644 test "$dir/$file" = "$excluded_file" && continue 2
646 if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then
647 copied=$copied${sep}$gnulib_mk; sep=$nl
648 remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
649 sed "$remove_intl" $1/$dir/$file | cmp - $dir/$gnulib_mk > /dev/null || {
650 echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
651 rm -f $dir/$gnulib_mk &&
652 sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
654 elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
655 version_controlled_file $dir $file; then
656 echo "$0: $dir/$file overrides $1/$dir/$file"
658 copied=$copied$sep$file; sep=$nl
659 if test $file = gettext.m4; then
660 echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
663 /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
664 AC_DEFUN([AM_INTL_SUBDIR], [])
665 /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
666 AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
668 AC_DEFUN([gl_LOCK_EARLY], [])
669 ' $1/$dir/$file >$dir/$file
671 cp_mark_as_generated $1/$dir/$file $dir/$file
676 for dot_ig in x $vc_ignore; do
677 test $dot_ig = x && continue
679 if test -n "$copied"; then
680 insert_sorted_if_absent $ig "$copied"
681 # If an ignored file name ends with .in.h, then also add
682 # the name with just ".h". Many gnulib headers are generated,
683 # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
684 # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
685 f=`echo "$copied"|sed 's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
686 insert_sorted_if_absent $ig "$f"
688 # For files like sys_stat.in.h and sys_time.in.h, record as
689 # ignorable the directory we might eventually create: sys/.
690 f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
691 insert_sorted_if_absent $ig "$f"
698 # Create boot temporary directories to import from gnulib and gettext.
700 mkdir $bt $bt2 || exit
702 # Import from gnulib.
704 gnulib_tool_options="\
707 --aux-dir $bt/$build_aux\
708 --doc-base $bt/$doc_base\
710 --m4-base $bt/$m4_base/\
711 --source-base $bt/$source_base/\
712 --tests-base $bt/$tests_base\
713 --local-dir $local_gl_dir\
714 $gnulib_tool_option_extras\
716 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
717 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
720 for file in $gnulib_files; do
721 symlink_to_dir "$GNULIB_SRCDIR" $file || exit
725 # Import from gettext.
727 grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
730 if test $with_gettext = yes; then
731 echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..."
732 cp configure.ac $bt2 &&
733 (cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac) &&
734 slurp $bt2 $bt || exit
736 rm -fr $bt $bt2 || exit
738 # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
739 # gnulib-populated directories. Such .m4 files would cause aclocal to fail.
740 # The following requires GNU find 4.2.3 or newer. Considering the usual
741 # portability constraints of this script, that may seem a very demanding
742 # requirement, but it should be ok. Ignore any failure, which is fine,
743 # since this is only a convenience to help developers avoid the relatively
744 # unusual case in which a symlinked-to .m4 file is git-removed from gnulib
745 # between successive runs of this script.
746 find "$m4_base" "$source_base" \
747 -depth \( -name '*.m4' -o -name '*.[ch]' \) \
748 -type l -xtype l -delete > /dev/null 2>&1
750 # Reconfigure, getting other files.
752 # Skip autoheader if it's not needed.
753 grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null ||
758 "${ACLOCAL-aclocal} --force -I m4" \
759 "${AUTOCONF-autoconf} --force" \
760 "${AUTOHEADER-autoheader} --force" \
761 "${AUTOMAKE-automake} --add-missing --copy --force-missing"
763 if test "$command" = libtool; then
765 # We'd like to use grep -E, to see if any of LT_INIT,
766 # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
767 # but that's not portable enough (e.g., for Solaris).
768 grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
770 grep '^[ ]*LT_INIT' configure.ac >/dev/null \
772 test $use_libtool = 0 \
774 command="${LIBTOOLIZE-libtoolize} -c -f"
776 echo "$0: $command ..."
781 # Get some extra files from gnulib, overriding existing files.
782 for file in $gnulib_extra_files; do
784 */INSTALL) dst=INSTALL;;
785 build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
788 symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit
791 if test $with_gettext = yes; then
792 # Create gettext configuration.
793 echo "$0: Creating po/Makevars from po/Makevars.template ..."
796 /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
797 /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
798 /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
799 /^XGETTEXT_OPTIONS *=/{
802 '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
804 ' po/Makevars.template >po/Makevars
806 if test -d runtime-po; then
807 # Similarly for runtime-po/Makevars, but not quite the same.
808 rm -f runtime-po/Makevars
810 /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
811 /^subdir *=.*/s/=.*/= runtime-po/
812 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
813 /^XGETTEXT_OPTIONS *=/{
816 '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
818 ' <po/Makevars.template >runtime-po/Makevars
820 # Copy identical files from po to runtime-po.
821 (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
827 echo "$0: done. Now you can run './configure'."