1.0.41.52: more make.sh tweakery
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 18 Aug 2010 14:49:27 +0000 (14:49 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 18 Aug 2010 14:49:27 +0000 (14:49 +0000)
 * Empty string as the value for an option is treated as if the option
   wasn't provided at all, which makes scripting builds easier.

 * Temporary support for legacy-style xc host specifications for the
   benefit of clbuild &co. Add a noisy message to the end of the build
   so people will hopefully notice.

make.sh
version.lisp-expr

diff --git a/make.sh b/make.sh
index 599c8da..37e16d9 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -45,36 +45,53 @@ bad_option() {
     exit 1
 }
 
+some_options=false
 for option
 do
+  optarg_ok=true
   # Split --foo=bar into --foo and bar.
   case $option in
       *=*)
-        optarg=`expr "X$option" : '[^=]*=\(.*\)'` || true
+        # For ease of scripting treat skip valued options with empty
+        # values.
+        optarg=`expr "X$option" : '[^=]*=\(.*\)'` || optarg_ok=false
         option=`expr "X$option" : 'X\([^=]*=\).*'`
-       if test -z "$optarg"
-       then
-           bad_option "Command-line option has no value: $option"
-       fi
-       ;;
+        ;;
       *)
         optarg=""
-       ;;
+        ;;
   esac
 
   case $option in
       --help | -help | -h)
-         print_help="yes" ;;
+        print_help="yes" ;;
       --prefix=)
-         SBCL_PREFIX=$optarg ;;
+        $optarg_ok && SBCL_PREFIX=$optarg
+        ;;
       --xc-host=)
-         SBCL_XC_HOST=$optarg ;;
-
-  *)
-    bad_option "Unknown command-line option to $0: \"$option\""
+        $optarg_ok && SBCL_XC_HOST=$optarg
+        ;
+      -*)
+        bad_option "Unknown command-line option to $0: \"$option\""
+        ;;
+      *)
+        if $some_options
+        then
+            bad_option "Unknown command-line option to $0: \"$option\""
+        else
+            legacy_xc_spec=$option
+        fi
+        ;;
   esac
+  some_options=true
 done
 
+# Previously XC host was provided as a positional argument. 
+if test -n "$legacy_xc_spec"
+then
+    SBCL_XC_HOST="$legacy_xc_spec"
+fi
+
 if test "$print_help" = "yes"
 then
   cat <<EOF
@@ -222,6 +239,23 @@ echo "To install SBCL (more information in INSTALL):"
 echo
 echo "  sh install.sh"
 
+# This is probably the best place to ensure people will see this.
+if test -n "$legacy_xc_spec"
+then
+    echo <<EOF
+******************************************************************************
+**
+**  Old-style XC-host specification detected: '$SBCL_XC_HOST'
+**
+**  Since 1.0.41.45 SBCL expects the XC-host to be specified using
+**  the --xc-host='myhost' command line option, not with a positional
+**  argument. The legacy style still works, but will not be supported
+**  indefinitely. Please update your build procedure.
+**
+******************************************************************************
+EOF
+fi
+
 build_finished=`date`
 echo
 echo "//build started:  $build_started"
index 2253b52..f657d06 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.41.51"
+"1.0.41.52"