0.8.1.16:
[sbcl.git] / make.sh
diff --git a/make.sh b/make.sh
index 9d48783..080b45a 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -1,4 +1,3 @@
-
 #!/bin/sh
 
 # "When we build software, it's a good idea to have a reliable method
 #                 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
-#   "sbcl --noprogrammer"
+#   "sbcl --disable-debugger"
 #                 to use an existing SBCL binary as a cross-compilation host
-#                 and tell it to handle errors as best it can by itself,
-#                 without trying to use *DEBUG-IO* to ask for help from
-#                 the programmer
+#                 and tell it to handle errors as best it can by itself
+#                 (probably by dying with an error code) instead of waiting
+#                 endlessly for a programmer to help it out with input
+#                 on *DEBUG-IO*
 #   "lisp -batch" to use an existing CMU CL binary as a cross-compilation host
 #   "lisp -noinit -batch" 
 #                 to use an existing CMU CL binary as a cross-compilation host
 #                 when you have weird things in your .cmucl-init file
+#   "openmcl --batch"
+#                 to use an OpenMCL binary as a cross-compilation host
+#   "clisp"
+#                 to use a CLISP binary as a cross-compilation host
 #
 # FIXME: Make a more sophisticated command line parser, probably
 # accepting "sh make.sh --xc-host foolisp" instead of the
 # 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?)
-export SBCL_XC_HOST="${1:-sbcl --noprogrammer}"
+# FIXME: --noprogrammer was deprecated in sbcl-0.7.5, replaced by 
+# --disable-debugger. We still use the old form here because the
+# change was not preannounced, and it would be rude to make our new
+# version of SBCL unbootstrappable by immediately prior versions.
+# But in a year or so the --noprogrammer here can change to
+# --disable-debugger (and the deprecated --noprogrammer support can
+# go away completely).
+SBCL_XC_HOST="${1:-sbcl --noprogrammer}"
+export SBCL_XC_HOST
 echo //SBCL_XC_HOST=\"$SBCL_XC_HOST\"
 
+# the GNU dialect of "make" -- easier to find or port it than to
+# try to figure out how to port to the local dialect...
+if [ "$GNUMAKE" != "" ] ; then
+  # The user is evidently trying to tell us something.
+  GNUMAKE="$GNUMAKE"
+elif [ -x "`which gmake`" ] ; then
+  # "gmake" is the preferred name in *BSD.
+  GNUMAKE=gmake
+elif [ "GNU Make" = "`make -v | head -n 1 | cut -b 0-8`" ]; then
+  GNUMAKE=make
+else
+  echo "GNU Make not found. Try setting the environment variable GNUMAKE."
+  exit 1
+fi
+
+export GNUMAKE
+echo //GNUMAKE=\"$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.
@@ -67,17 +98,32 @@ sh make-config.sh || exit 1
 #     identify the target architecture).
 #   On the host system:
 #     SBCL_XC_HOST=<whatever> sh make-host-1.sh
-#   Copy src/runtime/sbcl.h from the host system to the target system.
+#   Copy src/runtime/genesis/*.h from the host system to the target 
+#     system.
 #   On the target system:
 #     sh make-target-1.sh
-#   Copy src/runtime/sbcl.nm from the target system to the host system.
+#   Copy src/runtime/sbcl.nm and output/stuff-groveled-from-headers.lisp
+#     from the target system to the host system.
 #   On the host system:
 #     SBCL_XC_HOST=<whatever> sh make-host-2.sh
 #   Copy output/cold-sbcl.core from the host system to the target system.
 #   On the target system:
-#     sh make-host-2.sh
+#     sh make-target-2.sh
+#     sh make-target-contrib.sh
+# Or, if you can set up the files somewhere shared (with NFS, AFS, or
+# whatever) between the host machine and the target machine, the basic
+# procedure above should still work, but you can skip the "copy" steps.
 sh make-host-1.sh   || exit 1
 sh make-target-1.sh || exit 1
 sh make-host-2.sh   || exit 1
 sh make-target-2.sh || exit 1
+sh make-target-contrib.sh || exit 1
+
+# Sometimes people used to see the "No tests failed." output from the last
+# DEFTEST in contrib self-tests and thing that's all that is. So...
+echo
+echo The build seems to have finished successfully. If you would like
+echo run more extensive tests on the new SBCL, you can try run-tests.sh.
+echo
+
 date