]> git.saurik.com Git - bison.git/blobdiff - bootstrap
Fix test failure reported by Tom Lane in
[bison.git] / bootstrap
index 8828a7e5b1ae7d541eefc0f42c78367f5c6d8eb0..d357ee46966e95629846d5f448ef9ca02fc23453 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -29,6 +29,28 @@ nl='
 LC_ALL=C
 export LC_ALL
 
 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.
 
 
 # Configuration.
 
@@ -86,6 +108,10 @@ XGETTEXT_OPTIONS='\\\
 # Files we don't want to import.
 excluded_files=
 
 # 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
 
 # Override the default configuration, if necessary.
 test -r bootstrap.conf && . ./bootstrap.conf
 
@@ -97,7 +123,7 @@ for option
 do
   case $option in
   --help)
 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=\(.*\)'`;;
     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;;
     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
 
   *)
     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() {
 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/^/#/'
       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 &&
          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 |
        }
       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\
  --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 &&
 "
 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
 ' 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 '
   rm -f runtime-po/Makevars
   sed '
-    s/^\(DOMAIN\) *=.*/\1 = '"$package"'-runtime/
-    s/^\(subdir\) *=.*/\1 = runtime-po/
-    s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = '"$XGETTEXT_OPTIONS_RUNTIME"'/
-  ' <po/Makevars >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+}
+    }
+  ' <po/Makevars.template >runtime-po/Makevars
 
   # Copy identical files from po to runtime-po.
   (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
 
   # Copy identical files from po to runtime-po.
   (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)