export SBCL_XC_HOST
# Parse command-line options.
-function bad_option() {
+bad_option() {
echo $1
echo "Enter \"$0 --help\" for list of valid options."
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
+ ;;
+ --dynamic-space-size=)
+ $optarg_ok && SBCL_DYNAMIC_SPACE_SIZE=$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
Default prefix is: /usr/local
+ --dynamic-space-size=<size> Default dynamic-space size for target.
+
+ This specifies the default dynamic-space size for the SBCL
+ being built. If you need to control the dynamic-space size
+ of the host SBCL, use the --xc-host option.
+
+ If not provided, the default is platform-specific. <size> is
+ taken to be megabytes unless explicitly suffixed with Gb in
+ order to specify the size in gigabytes.
+
--xc-host=<string> Specify the Common Lisp compilation host.
The string provided should be a command to invoke the
# Apparently option parsing succeeded. Print out the results.
echo "//Options: --prefix='$SBCL_PREFIX' --xc-host='$SBCL_XC_HOST'"
+mkdir -p output
# Save prefix for make and install.sh.
echo "SBCL_PREFIX='$SBCL_PREFIX'" > output/prefix.def
+echo "$SBCL_DYNAMIC_SPACE_SIZE" > output/dynamic-space-size.txt
# FIXME: Tweak this script, and the rest of the system, to support
# a second bootstrapping pass in which the cross-compilation host is
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"