X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e70f46d132433f71c48f0467d4833f2d79f3d53a..cf8067530b3e075230051d459782a1074db5b211:/bootstrap diff --git a/bootstrap b/bootstrap index 8828a7e5..d357ee46 100755 --- a/bootstrap +++ b/bootstrap @@ -29,6 +29,28 @@ nl=' LC_ALL=C export LC_ALL +usage() { + echo >&2 "\ +Usage: $0 [OPTION]... +Bootstrap this package from the CVS sources. + +Options: + --gnulib-srcdir=DIRNAME Specify the local directory where gnulib + sources reside. Use this if you already + have gnulib sources on your machine, and + do not want to waste your bandwidth dowloading + them again. + --force Bootstrap even if the sources didn't come from CVS. + --skip-po Do not download po files. + --cvs-user=USERNAME Set the CVS username to be used when accessing + the gnulib repository. + +If the file .bootstrap.conf exists in the current working directory, its +contents are read as shell variables to configure the bootstrap. + +Running without arguments will suffice in most cases. +" +} # Configuration. @@ -86,6 +108,10 @@ XGETTEXT_OPTIONS='\\\ # Files we don't want to import. excluded_files= +# File that should exist with CVS checkout, but not with +# the distributed version. +CVS_only_file=CVS + # Override the default configuration, if necessary. test -r bootstrap.conf && . ./bootstrap.conf @@ -97,7 +123,7 @@ for option do case $option in --help) - echo "$0: usage: $0 [--gnulib-srcdir=DIR] [--cvs-user=USERNAME] [--skip-po]" + usage exit;; --gnulib-srcdir=*) GNULIB_SRCDIR=`expr "$option" : '--gnulib-srcdir=\(.*\)'`;; @@ -105,12 +131,19 @@ do CVS_USER=`expr "$option" : '--cvs-user=\(.*\)'`;; --skip-po) SKIP_PO=t;; + --force) + CVS_only_file=;; *) echo >&2 "$0: $option: unknown option" exit 1;; esac done +if test -n "$CVS_only_file" && test ! -r "$CVS_only_file"; then + echo "$0: Bootstrapping from a non-CVS distribution is a bit risky." >&2 + exit 1 +fi + echo "$0: Bootstrapping CVS $package..." cleanup_gnulib() { @@ -293,10 +326,13 @@ slurp() { if test $file = Makefile.am; then copied=$copied${sep}gnulib.mk; sep=$nl remove_intl='/^[^#].*\/intl/s/^/#/' - sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || { + no_dep=no-dependencies + remove_no_dep="/^AUTOMAKE_OPTIONS =.* $no_dep/s/ $no_dep//" + sed_xform="$remove_intl;$remove_no_dep" + sed "$sed_xform" $1/$dir/$file | cmp -s - $dir/gnulib.mk || { echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." && rm -f $dir/gnulib.mk && - sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk + sed "$sed_xform" $1/$dir/$file >$dir/gnulib.mk } elif { test "${2+set}" = set && test -r $2/$dir/$file; } || grep -F "/$file/" $dir/CVS/Entries 2>/dev/null | @@ -348,6 +384,7 @@ gnulib_tool_options="\ --m4-base $bt/m4/\ --source-base $bt/lib/\ --tests-base $bt/tests\ + --local-dir gl\ " echo "$0: $gnulib_tool $gnulib_tool_options --import ..." $gnulib_tool $gnulib_tool_options --import $gnulib_modules && @@ -406,13 +443,18 @@ sed ' ' po/Makevars.template >po/Makevars if test -d runtime-po; then - # Likewise for runtime-po/Makevars, except also change a few other parameters. + # Similarly for runtime-po/Makevars, but not quite the same. rm -f runtime-po/Makevars sed ' - s/^\(DOMAIN\) *=.*/\1 = '"$package"'-runtime/ - s/^\(subdir\) *=.*/\1 = runtime-po/ - s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = '"$XGETTEXT_OPTIONS_RUNTIME"'/ - ' runtime-po/Makevars + /^DOMAIN *=.*/s/=.*/= '"$package"'-runtime/ + /^subdir *=.*/s/=.*/= runtime-po/ + /^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-'"$package"'@gnu.org/ + /^XGETTEXT_OPTIONS *=/{ + s/$/ \\/ + a\ + '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} + } + ' runtime-po/Makevars # Copy identical files from po to runtime-po. (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)