X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=make.sh;h=a82b3c257811555cfda412b4d1abc422353349fc;hb=HEAD;hp=30a91a8318282a6ab3ad545f82567cbbbb3482b2;hpb=c22ea074a048ada3caed985e12fc71e453d0c3a7;p=sbcl.git diff --git a/make.sh b/make.sh index 30a91a8..a82b3c2 100755 --- a/make.sh +++ b/make.sh @@ -20,169 +20,20 @@ export LANG LC_ALL # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -print_help="no" +# If you're cross-compiling, make-config.sh should "do the right +# thing" when run on the target machine, with the minor caveat that +# any --xc-host parameter should be suitable for the host machine +# instead of the target. +sh make-config.sh "$@" || exit $? -# The classic form here was to use --userinit $DEVNULL --sysinit -# $DEVNULL, but that doesn't work on Win32 because SBCL doesn't handle -# device names properly. We still need $DEVNULL to be NUL on Win32 -# because it's used elsewhere (such as canonicalize-whitespace), so we -# need an alternate solution for the init file overrides. --no-foos -# have now been available long enough that this should not stop anyone -# from building. -if [ "$OSTYPE" = "cygwin" -o "$OSTYPE" = "msys" ] -then - SBCL_PREFIX="$PROGRAMFILES/sbcl" -else - SBCL_PREFIX="/usr/local" -fi -SBCL_XC_HOST="sbcl --disable-debugger --no-userinit --no-sysinit" -export SBCL_XC_HOST - -# Parse command-line options. -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 - *=*) - # For ease of scripting treat skip valued options with empty - # values. - optarg=`expr "X$option" : '[^=]*=\(.*\)'` || optarg_ok=false - option=`expr "X$option" : 'X\([^=]*=\).*'` - ;; - *) - optarg="" - ;; - esac - - case $option in - --help | -help | -h) - print_help="yes" ;; - --prefix=) - $optarg_ok && SBCL_PREFIX=$optarg - ;; - --xc-host=) - $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 < Specify the install location. - - Script install.sh installs SBCL under the specified prefix - path: runtime as prefix/bin/sbcl, additional files under - prefix/lib/sbcl, and documentation under prefix/share. - - This option also affects the binaries: built-in default for - SBCL_HOME is: prefix/lib/sbcl/ - - Default prefix is: /usr/local - - --xc-host= Specify the Common Lisp compilation host. - - The string provided should be a command to invoke the - cross-compilation Lisp system in such a way, that it reads - commands from standard input, and terminates when it reaches end - of file on standard input. - - Examples: - - "sbcl --disable-debugger --no-sysinit --no-userinit" - Use an existing SBCL binary as a cross-compilation - host even though you have stuff in your - initialization files which makes it behave in such a - non-standard way that it keeps the build from - working. Also disable the debugger instead of - waiting endlessly for a programmer to help it out - with input on *DEBUG-IO*. (This is the default.) - - "sbcl" - Use an existing SBCL binary as a cross-compilation - host, including your initialization files and - building with the debugger enabled. Not recommended - for casual users. - - "lisp -noinit -batch" - Use an existing CMU CL binary as a cross-compilation - host when you have weird things in your .cmucl-init - file. -EOF - exit -fi +. output/prefix.def +. output/build-config build_started=`date` echo "//Starting build: $build_started" # Apparently option parsing succeeded. Print out the results. echo "//Options: --prefix='$SBCL_PREFIX' --xc-host='$SBCL_XC_HOST'" -# Save prefix for make and install.sh. -mkdir -p output -echo "SBCL_PREFIX='$SBCL_PREFIX'" > output/prefix.def - -# FIXME: Tweak this script, and the rest of the system, to support -# a second bootstrapping pass in which the cross-compilation host is -# known to be SBCL itself, so that the cross-compiler can do some -# optimizations (especially specializable arrays) that it doesn't -# know how to implement how in a portable way. (Or maybe that wouldn't -# require a second pass, just testing at build-the-cross-compiler time -# whether the cross-compilation host returns suitable values from -# UPGRADED-ARRAY-ELEMENT-TYPE?) - -if [ "$OSTYPE" = "cygwin" -o "$OSTYPE" = "msys" ] ; then - DEVNULL=NUL -else - DEVNULL=/dev/null -fi -export DEVNULL - -. ./find-gnumake.sh -find_gnumake - -# If you're cross-compiling, you should probably just walk through the -# make-config.sh script by hand doing the right thing on both the host -# and target machines. -sh make-config.sh - # Enforce the source policy for no bogus whitespace tools-for-build/canonicalize-whitespace @@ -220,7 +71,7 @@ time sh make-target-2.sh time sh make-target-contrib.sh NCONTRIBS=`find contrib -name Makefile -print | wc -l` -NPASSED=`find contrib -name test-passed -print | wc -l` +NPASSED=`find obj/asdf-cache -name test-passed.test-report -print | wc -l` echo echo "The build seems to have finished successfully, including $NPASSED (out of $NCONTRIBS)" echo "contributed modules. If you would like to run more extensive tests on"