From: Thiemo Seufer Date: Fri, 16 Sep 2005 13:26:39 +0000 (+0000) Subject: 0.9.4.72: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=babd45f7788c2f50c9d6193c1c7108e0a6b3a547;p=sbcl.git 0.9.4.72: Robustify the build system scripts. --- diff --git a/binary-distribution.sh b/binary-distribution.sh index 6054554..8266154 100755 --- a/binary-distribution.sh +++ b/binary-distribution.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Create a binary distribution. (make.sh should be run first to create # the various binary files, and make-doc.sh should also be run to diff --git a/clean.sh b/clean.sh index 0868e80..e09790d 100755 --- a/clean.sh +++ b/clean.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Remove everything in directories which are only used for output. # In most cases, we can remove the directories, too. diff --git a/distclean.sh b/distclean.sh index 5d46a9f..861996f 100644 --- a/distclean.sh +++ b/distclean.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # a superset of clean.sh, cleaning up not only automatically # generated files but other things (e.g. customization files) diff --git a/find-gnumake.sh b/find-gnumake.sh index e32c3a1..df76c7e 100644 --- a/find-gnumake.sh +++ b/find-gnumake.sh @@ -1,3 +1,4 @@ +#!/bin/false # Not a shell script, but something intended to be sourced from shell scripts find_gnumake() { # the GNU dialect of "make" -- easier to find or port it than to diff --git a/html-distribution.sh b/html-distribution.sh index 7f38f0f..b52ae9a 100644 --- a/html-distribution.sh +++ b/html-distribution.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Create a distribution containing the HTML versions of system # documentation. (make-doc.sh needs to be run first, in order to diff --git a/install.sh b/install.sh index 8773aa0..31b8c9f 100644 --- a/install.sh +++ b/install.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Install SBCL files into the usual places. diff --git a/make-config.sh b/make-config.sh index a330f88..131f6fe 100644 --- a/make-config.sh +++ b/make-config.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # The make-config.sh script uses information about the target machine # to set things up for compilation. It's vaguely like a stripped-down @@ -267,4 +268,3 @@ if [ `uname` = "SunOS" ] ; then PATH=/usr/xpg4/bin:$PATH fi echo '"'`hostname`-`id -un`-`date +%Y-%m-%d-%H-%M-%S`'"' > output/build-id.tmp - diff --git a/make-genesis-2.sh b/make-genesis-2.sh index a76ea79..908ce95 100644 --- a/make-genesis-2.sh +++ b/make-genesis-2.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # want to run it by itself is if you're trying to cross-compile the @@ -29,7 +30,7 @@ echo //entering make-genesis-2.sh # file at that time; but we needed to run it earlier in order to # get to where we can write a .core file.) echo //loading and running GENESIS to create cold-sbcl.core -$SBCL_XC_HOST <<-'EOF' || exit 1 +$SBCL_XC_HOST <<-'EOF' (setf *print-level* 5 *print-length* 5) (load "src/cold/shared.lisp") (in-package "SB-COLD") diff --git a/make-host-1.sh b/make-host-1.sh index 34598a0..3719026 100644 --- a/make-host-1.sh +++ b/make-host-1.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # want to run it by itself is if you're trying to cross-compile the @@ -16,7 +17,8 @@ echo //entering make-host-1.sh LANG=C -export LANG +LC_ALL=C +export LANG LC_ALL # Compile and load the cross-compiler. (We load it here not because we're # about to use it, but because it's written under the assumption that each diff --git a/make-host-2.sh b/make-host-2.sh index 580af2f..0321ad3 100644 --- a/make-host-2.sh +++ b/make-host-2.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # want to run it by itself is if you're trying to cross-compile the @@ -16,7 +17,8 @@ echo //entering make-host-2.sh LANG=C -export LANG +LC_ALL=C +export LANG LC_ALL # In some cases, a debugging build of the system will creates a core # file output/after-xc.core in the next step. In cases where it @@ -43,7 +45,7 @@ rm -f output/after-xc.core # the fasl files into the new host Lisp, and that doesn't seem to be # an enormously important disadvantage, either.) echo //running cross-compiler to create target object files -$SBCL_XC_HOST <<-'EOF' || exit 1 +$SBCL_XC_HOST <<-'EOF' ;;; ;;; Set up the cross-compiler. diff --git a/make-target-1.sh b/make-target-1.sh index 7fbf974..4952416 100644 --- a/make-target-1.sh +++ b/make-target-1.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # want to run it by itself is if you're trying to cross-compile the @@ -16,7 +17,8 @@ echo //entering make-target-1.sh LANG=C -export LANG +LC_ALL=C +export LANG LC_ALL # Build the runtime system and symbol table (.nm) file. # @@ -26,21 +28,15 @@ export LANG # could come either before or after running the cross compiler; that # doesn't matter.) echo //building runtime system and symbol table file -cd ./src/runtime -$GNUMAKE clean || exit 1 -$GNUMAKE depend || exit 1 -$GNUMAKE all || exit 1 -cd ../.. + +# The clean is needed for Darwin's readonlyspace hack. +$GNUMAKE -C src/runtime clean +# $GNUMAKE -C src/runtime depend +$GNUMAKE -C src/runtime all # Use a little C program to grab stuff from the C header files and # smash it into Lisp source code. -cd ./tools-for-build -$GNUMAKE -I../src/runtime grovel-headers || exit 1 -cd .. +$GNUMAKE -C tools-for-build -I../src/runtime grovel-headers tools-for-build/grovel-headers > output/stuff-groveled-from-headers.lisp -# after-grovel-headers may not exist for all platforms (used for -# Darwin hacks) -cd ./src/runtime -$GNUMAKE after-grovel-headers || true -cd .. +$GNUMAKE -C src/runtime after-grovel-headers diff --git a/make-target-2.sh b/make-target-2.sh index 0155ac7..ceacef7 100644 --- a/make-target-2.sh +++ b/make-target-2.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # want to run it by itself is if you're trying to cross-compile the @@ -16,7 +17,8 @@ echo //entering make-target-2.sh LANG=C -export LANG +LC_ALL=C +export LANG LC_ALL # Do warm init stuff, e.g. building and loading CLOS, and stuff which # can't be done until CLOS is running. @@ -30,7 +32,7 @@ export LANG echo //doing warm init ./src/runtime/sbcl \ --core output/cold-sbcl.core \ ---sysinit /dev/null --userinit /dev/null <<-'EOF' || exit 1 +--sysinit /dev/null --userinit /dev/null <<-'EOF' ;; Now that we use the compiler for macros, interpreted ;; /SHOW doesn't work until later in init. #+sb-show (print "/hello, world!") diff --git a/make-target-contrib.sh b/make-target-contrib.sh index af56892..3646a5c 100644 --- a/make-target-contrib.sh +++ b/make-target-contrib.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # This is a script to be run as part of make.sh. The only time you'd # probably want to run it by itself is if you're cross-compiling the @@ -14,7 +15,8 @@ # files for more information. LANG=C -export LANG +LC_ALL=C +export LANG LC_ALL . ./find-gnumake.sh find_gnumake diff --git a/make.sh b/make.sh index 8826ede..cb83c37 100755 --- a/make.sh +++ b/make.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # "When we build software, it's a good idea to have a reliable method # for getting an executable from it. We want any two reconstructions @@ -54,8 +55,7 @@ LANG=C LC_ALL=C -export LANG -export LC_ALL +export LANG LC_ALL build_started=`date` echo "//starting build: $build_started" @@ -70,10 +70,10 @@ 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 || exit 1 +sh make-config.sh # Enforce the source policy for no bogus whitespace -tools-for-build/canonicalize-whitespace || exit 1 +tools-for-build/canonicalize-whitespace # The make-host-*.sh scripts are run on the cross-compilation host, # and the make-target-*.sh scripts are run on the target machine. In @@ -102,11 +102,11 @@ tools-for-build/canonicalize-whitespace || exit 1 # 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. -time sh make-host-1.sh || exit 1 -time sh make-target-1.sh || exit 1 -time sh make-host-2.sh || exit 1 -time sh make-target-2.sh || exit 1 -time sh make-target-contrib.sh || exit 1 +time sh make-host-1.sh +time sh make-target-1.sh +time sh make-host-2.sh +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` diff --git a/slam.sh b/slam.sh index 95a3194..cb86e73 100644 --- a/slam.sh +++ b/slam.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # a quick and dirty way of partially rebuilding the system after a # change @@ -105,12 +106,12 @@ export SBCL_XC_HOST . ./find-gnumake.sh find_gnumake -sh make-target-1.sh || exit 1 +sh make-target-1.sh # Instead of doing the full make-host-2.sh, we (1) use after-xc.core # to rebuild only obviously-out-of-date Lisp files, then (2) run # GENESIS. -$LISP $CORE output/after-xc.core $INIT <<'EOF' || exit 1 +$LISP $CORE output/after-xc.core $INIT <<'EOF' (load "src/cold/slam.lisp") EOF # (This ^ used to be @@ -120,9 +121,9 @@ EOF # rebuild-this-stem requests on the command line to supplement # the rebuild-obviously-outdated-stems logic above.) # -sh make-genesis-2.sh || exit 1 +sh make-genesis-2.sh -sh make-target-2.sh || exit 1 +sh make-target-2.sh echo //ordinary termination of slam.sh date diff --git a/source-distribution.sh b/source-distribution.sh index 748c082..62efe12 100755 --- a/source-distribution.sh +++ b/source-distribution.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # Create a source distribution. (You should run clean.sh first.) diff --git a/src/runtime/Config.alpha-linux b/src/runtime/Config.alpha-linux index a72b7f1..42df1fc 100644 --- a/src/runtime/Config.alpha-linux +++ b/src/runtime/Config.alpha-linux @@ -20,3 +20,7 @@ OS_SRC = linux-os.c alpha-linux-os.c OS_LIBS = -ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.alpha-osf1 b/src/runtime/Config.alpha-osf1 index 7ad95d6..0553f48 100644 --- a/src/runtime/Config.alpha-osf1 +++ b/src/runtime/Config.alpha-osf1 @@ -39,3 +39,7 @@ OS_SRC = osf1-os.c alpha-osf1-os.c OS_LIBS = #-ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.hppa-linux b/src/runtime/Config.hppa-linux index 23adcd4..72449bd 100644 --- a/src/runtime/Config.hppa-linux +++ b/src/runtime/Config.hppa-linux @@ -19,3 +19,7 @@ OS_SRC = linux-os.c hppa-linux-os.c OS_LIBS = -ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.mips-linux b/src/runtime/Config.mips-linux index 3f1c112..ac11f32 100644 --- a/src/runtime/Config.mips-linux +++ b/src/runtime/Config.mips-linux @@ -19,3 +19,7 @@ OS_SRC = linux-os.c mips-linux-os.c OS_LIBS = -ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.ppc-linux b/src/runtime/Config.ppc-linux index 97fc869..a2c5a17 100644 --- a/src/runtime/Config.ppc-linux +++ b/src/runtime/Config.ppc-linux @@ -20,3 +20,7 @@ OS_SRC = linux-os.c ppc-linux-os.c OS_LIBS = -ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.sparc-linux b/src/runtime/Config.sparc-linux index 2a2c075..1ad0213 100644 --- a/src/runtime/Config.sparc-linux +++ b/src/runtime/Config.sparc-linux @@ -20,3 +20,7 @@ OS_SRC = linux-os.c sparc-linux-os.c OS_LIBS = -ldl GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.sparc-sunos b/src/runtime/Config.sparc-sunos index 62a00df..4a29086 100644 --- a/src/runtime/Config.sparc-sunos +++ b/src/runtime/Config.sparc-sunos @@ -22,3 +22,7 @@ OS_SRC = sunos-os.c sparc-sunos-os.c OS_LIBS = -ldl -lsocket -lnsl -lrt GC_SRC = cheneygc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.x86-bsd b/src/runtime/Config.x86-bsd index a8f20c0..8f1960c 100644 --- a/src/runtime/Config.x86-bsd +++ b/src/runtime/Config.x86-bsd @@ -17,3 +17,7 @@ OS_SRC = bsd-os.c undefineds.c x86-bsd-os.c OS_LIBS = # -ldl GC_SRC = gencgc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.x86-linux b/src/runtime/Config.x86-linux index c9b9781..693cd74 100644 --- a/src/runtime/Config.x86-linux +++ b/src/runtime/Config.x86-linux @@ -36,3 +36,6 @@ OS_LIBS += $(shell if grep LISP_FEATURE_SB_THREAD genesis/config.h \ GC_SRC = gencgc.c +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.x86-sunos b/src/runtime/Config.x86-sunos index b364aca..5a3ee1b 100644 --- a/src/runtime/Config.x86-sunos +++ b/src/runtime/Config.x86-sunos @@ -13,3 +13,6 @@ OS_LIBS= -ldl -lsocket -lnsl -lrt GC_SRC= gencgc.c +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/src/runtime/Config.x86_64-linux b/src/runtime/Config.x86_64-linux index b607996..a615c96 100644 --- a/src/runtime/Config.x86_64-linux +++ b/src/runtime/Config.x86_64-linux @@ -37,3 +37,7 @@ OS_LIBS += $(shell if grep LISP_FEATURE_SB_THREAD genesis/config.h \ CFLAGS += -fno-omit-frame-pointer GC_SRC = gencgc.c + +# Nothing to do for after-grovel-headers. +.PHONY: after-grovel-headers +after-grovel-headers: diff --git a/tagify.sh b/tagify.sh index 386bbb6..02ddf3a 100755 --- a/tagify.sh +++ b/tagify.sh @@ -1,3 +1,4 @@ #!/bin/sh +set -e etags `find $PWD/src -name '*.lisp' -o -name '*.c' -o -name '*.h'` diff --git a/version.lisp-expr b/version.lisp-expr index 6cd77ea..79890fd 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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".) -"0.9.4.71" +"0.9.4.72" diff --git a/wc.sh b/wc.sh index 1cc99c7..1189408 100755 --- a/wc.sh +++ b/wc.sh @@ -1,4 +1,5 @@ #!/bin/sh +set -e # How big is this project anyway? Crudely estimate non-comment source lines..