X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=make.sh;h=39cf8023e685ee5fc68dc9e434933fbf068f6bea;hb=a51d83191034919bc76367268929e234d62164db;hp=8ab680dda7e84a0b3d974b9b49d784d15274252b;hpb=57bf8a7e65a81a8cff946a65e7e33e3f9b948ac6;p=sbcl.git diff --git a/make.sh b/make.sh index 8ab680d..39cf802 100755 --- a/make.sh +++ b/make.sh @@ -39,42 +39,62 @@ SBCL_XC_HOST="sbcl --disable-debugger --no-userinit --no-sysinit" 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 < 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. is + taken to be megabytes unless explicitly suffixed with Gb in + order to specify the size in gigabytes. + --xc-host= Specify the Common Lisp compilation host. The string provided should be a command to invoke the @@ -138,8 +168,10 @@ echo "//Starting build: $build_started" # 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 @@ -222,6 +254,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 <