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.
435 if test -d "$GNULIB_SRCDIR"/.git && \
436 git_modules_config submodule.gnulib.url >/dev/null; then
437 echo "$0: getting gnulib files..."
438 if git submodule --help|grep reference > /dev/null; then
439 # Prefer the one-liner available in git 1.6.4 or newer.
440 git submodule update --init --reference "$GNULIB_SRCDIR" \
441 "$gnulib_path" || exit $?
443 # This fallback allows at least git 1.5.5.
444 if test -f "$gnulib_path"/gnulib-tool; then
445 # Since file already exists, assume submodule init already complete.
446 git submodule update || exit $?
448 # Older git can't clone into an empty directory.
449 rmdir "$gnulib_path" 2>/dev/null
450 git clone --reference "$GNULIB_SRCDIR" \
451 "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
452 && git submodule init && git submodule update \
456 GNULIB_SRCDIR=$gnulib_path
461 gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
462 <$gnulib_tool || exit
466 download_po_files() {
469 echo "$0: getting translations into $subdir for $domain..."
470 cmd=`printf "$po_download_command_format" "$domain" "$subdir"`
474 # Download .po files to $po_dir/.reference and copy only the new
475 # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
477 # Directory containing primary .po files.
478 # Overwrite them only when we're sure a .po file is new.
482 # Download *.po files into this dir.
483 # Usually contains *.s1 checksum files.
484 ref_po_dir="$po_dir/.reference"
486 test -d $ref_po_dir || mkdir $ref_po_dir || return
487 download_po_files $ref_po_dir $domain \
488 && ls "$ref_po_dir"/*.po 2>/dev/null |
489 sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
491 langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
492 test "$langs" = '*' && langs=x
494 case $po in x) continue;; esac
495 new_po="$ref_po_dir/$po.po"
496 cksum_file="$ref_po_dir/$po.s1"
497 if ! test -f "$cksum_file" ||
498 ! test -f "$po_dir/$po.po" ||
499 ! $SHA1SUM -c --status "$cksum_file" \
500 < "$new_po" > /dev/null; then
501 echo "updated $po_dir/$po.po..."
502 cp "$new_po" "$po_dir/$po.po" \
503 && $SHA1SUM < "$new_po" > "$cksum_file"
511 update_po_files po $package || exit
514 if test -d runtime-po; then
515 update_po_files runtime-po $package-runtime || exit
526 # If the destination directory doesn't exist, create it.
527 # This is required at least for "lib/uniwidth/cjk.h".
528 dst_dir=`dirname "$dst"`
529 if ! test -d "$dst_dir"; then
532 # If we've just created a directory like lib/uniwidth,
533 # tell version control system(s) it's ignorable.
534 # FIXME: for now, this does only one level
535 parent=`dirname "$dst_dir"`
536 for dot_ig in x $vc_ignore; do
537 test $dot_ig = x && continue
539 insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
545 test ! -h "$dst" || {
546 echo "$0: rm -f $dst" &&
551 cmp -s "$src" "$dst" || {
552 echo "$0: cp -fp $src $dst" &&
557 src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 &&
558 dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 &&
559 test "$src_i" = "$dst_i" || {
565 *//* | */../* | */./* | /*/*/*/*/*/)
566 echo >&2 "$0: invalid symlink calculation: $src -> $dst"
568 /*/*/*/*/) dot_dots=../../../;;
569 /*/*/*/) dot_dots=../../;;
570 /*/*/) dot_dots=../;;
574 echo "$0: ln -fs $dot_dots$src $dst" &&
575 ln -fs "$dot_dots$src" "$dst"
581 cp_mark_as_generated()
586 if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
587 symlink_to_dir "$GNULIB_SRCDIR" "$cp_dst"
588 elif cmp -s "$cp_src" "$local_gl_dir/$cp_dst"; then
589 symlink_to_dir $local_gl_dir "$cp_dst"
592 *.[ch]) c1='/* '; c2=' */';;
593 *.texi) c1='@c '; c2= ;;
594 *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
598 # If the destination directory doesn't exist, create it.
599 # This is required at least for "lib/uniwidth/cjk.h".
600 dst_dir=`dirname "$cp_dst"`
601 test -d "$dst_dir" || mkdir -p "$dst_dir"
603 if test -z "$c1"; then
604 cmp -s "$cp_src" "$cp_dst" || {
605 # Copy the file first to get proper permissions if it
606 # doesn't already exist. Then overwrite the copy.
607 echo "$0: cp -f $cp_src $cp_dst" &&
609 cp "$cp_src" "$cp_dst-t" &&
610 sed "s!$bt_regex/!!g" "$cp_src" > "$cp_dst-t" &&
611 mv -f "$cp_dst-t" "$cp_dst"
614 # Copy the file first to get proper permissions if it
615 # doesn't already exist. Then overwrite the copy.
616 cp "$cp_src" "$cp_dst-t" &&
618 echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
619 echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
620 sed "s!$bt_regex/!!g" "$cp_src"
622 if cmp -s "$cp_dst-t" "$cp_dst"; then
625 echo "$0: cp $cp_src $cp_dst # with edits" &&
626 mv -f "$cp_dst-t" "$cp_dst"
632 version_controlled_file() {
637 grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
638 grep '^/[^/]*/[0-9]' > /dev/null && found=yes
639 elif test -d .git; then
640 git rm -n "$dir/$file" > /dev/null 2>&1 && found=yes
641 elif test -d .svn; then
642 svn log -r HEAD "$dir/$file" > /dev/null 2>&1 && found=yes
644 echo "$0: no version control for $dir/$file?" >&2
650 for dir in . `(cd $1 && find * -type d -print)`; do
653 for file in `ls -a $1/$dir`; do
656 .*) continue;; # FIXME: should all file names starting with "." be ignored?
658 test -d $1/$dir/$file && continue
659 for excluded_file in $excluded_files; do
660 test "$dir/$file" = "$excluded_file" && continue 2
662 if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then
663 copied=$copied${sep}$gnulib_mk; sep=$nl
664 remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
665 sed "$remove_intl" $1/$dir/$file | cmp - $dir/$gnulib_mk > /dev/null || {
666 echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
667 rm -f $dir/$gnulib_mk &&
668 sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
670 elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
671 version_controlled_file $dir $file; then
672 echo "$0: $dir/$file overrides $1/$dir/$file"
674 copied=$copied$sep$file; sep=$nl
675 if test $file = gettext.m4; then
676 echo "$0: patching m4/gettext.m4 to remove need for intl/* ..."
679 /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
680 AC_DEFUN([AM_INTL_SUBDIR], [])
681 /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
682 AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
684 AC_DEFUN([gl_LOCK_EARLY], [])
685 ' $1/$dir/$file >$dir/$file
687 cp_mark_as_generated $1/$dir/$file $dir/$file
692 for dot_ig in x $vc_ignore; do
693 test $dot_ig = x && continue
695 if test -n "$copied"; then
696 insert_sorted_if_absent $ig "$copied"
697 # If an ignored file name ends with .in.h, then also add
698 # the name with just ".h". Many gnulib headers are generated,
699 # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
700 # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
701 f=`echo "$copied"|sed 's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
702 insert_sorted_if_absent $ig "$f"
704 # For files like sys_stat.in.h and sys_time.in.h, record as
705 # ignorable the directory we might eventually create: sys/.
706 f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
707 insert_sorted_if_absent $ig "$f"
714 # Create boot temporary directories to import from gnulib and gettext.
716 mkdir $bt $bt2 || exit
718 # Import from gnulib.
720 gnulib_tool_options="\
723 --aux-dir $bt/$build_aux\
724 --doc-base $bt/$doc_base\
726 --m4-base $bt/$m4_base/\
727 --source-base $bt/$source_base/\
728 --tests-base $bt/$tests_base\
729 --local-dir $local_gl_dir\
730 $gnulib_tool_option_extras\
732 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
733 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
736 for file in $gnulib_files; do
737 symlink_to_dir "$GNULIB_SRCDIR" $file || exit
741 # Import from gettext.
743 grep '^[ ]*AM_GNU_GETTEXT_VERSION(' configure.ac >/dev/null || \
746 if test $with_gettext = yes; then
747 echo "$0: (cd $bt2; ${AUTOPOINT-autopoint}) ..."
748 cp configure.ac $bt2 &&
749 (cd $bt2 && ${AUTOPOINT-autopoint} && rm configure.ac) &&
750 slurp $bt2 $bt || exit
752 rm -fr $bt $bt2 || exit
754 # Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
755 # gnulib-populated directories. Such .m4 files would cause aclocal to fail.
756 # The following requires GNU find 4.2.3 or newer. Considering the usual
757 # portability constraints of this script, that may seem a very demanding
758 # requirement, but it should be ok. Ignore any failure, which is fine,
759 # since this is only a convenience to help developers avoid the relatively
760 # unusual case in which a symlinked-to .m4 file is git-removed from gnulib
761 # between successive runs of this script.
762 find "$m4_base" "$source_base" \
763 -depth \( -name '*.m4' -o -name '*.[ch]' \) \
764 -type l -xtype l -delete > /dev/null 2>&1
766 # Reconfigure, getting other files.
768 # Skip autoheader if it's not needed.
769 grep -E '^[ ]*AC_CONFIG_HEADERS?\>' configure.ac >/dev/null ||
774 "${ACLOCAL-aclocal} --force -I m4" \
775 "${AUTOCONF-autoconf} --force" \
776 "${AUTOHEADER-autoheader} --force" \
777 "${AUTOMAKE-automake} --add-missing --copy --force-missing"
779 if test "$command" = libtool; then
781 # We'd like to use grep -E, to see if any of LT_INIT,
782 # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
783 # but that's not portable enough (e.g., for Solaris).
784 grep '^[ ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
786 grep '^[ ]*LT_INIT' configure.ac >/dev/null \
788 test $use_libtool = 0 \
790 command="${LIBTOOLIZE-libtoolize} -c -f"
792 echo "$0: $command ..."
797 # Get some extra files from gnulib, overriding existing files.
798 for file in $gnulib_extra_files; do
800 */INSTALL) dst=INSTALL;;
801 build-aux/*) dst=$build_aux/`expr "$file" : 'build-aux/\(.*\)'`;;
804 symlink_to_dir "$GNULIB_SRCDIR" $file $dst || exit
807 if test $with_gettext = yes; then
808 # Create gettext configuration.
809 echo "$0: Creating po/Makevars from po/Makevars.template ..."
812 /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
813 /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
814 /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
815 /^XGETTEXT_OPTIONS *=/{
818 '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
820 ' po/Makevars.template >po/Makevars
822 if test -d runtime-po; then
823 # Similarly for runtime-po/Makevars, but not quite the same.
824 rm -f runtime-po/Makevars
826 /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/
827 /^subdir *=.*/s/=.*/= runtime-po/
828 /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/
829 /^XGETTEXT_OPTIONS *=/{
832 '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
834 ' <po/Makevars.template >runtime-po/Makevars
836 # Copy identical files from po to runtime-po.
837 (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
843 echo "$0: done. Now you can run './configure'."