From: Chris Hanson <org/chris-hanson/cph>
Date: Fri, 16 Nov 2018 07:03:45 +0000 (-0800)
Subject: Change plugins to use the already-compiled toolchain.
X-Git-Tag: mit-scheme-pucked-10.1.2~16^2~92
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=f9240424db225dafffa5fb6078d371ce1cd0bad8;p=mit-scheme.git

Change plugins to use the already-compiled toolchain.
---

diff --git a/src/Makefile.in b/src/Makefile.in
index 219821bd5..ab78d479d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -119,6 +119,19 @@ all-native: all-xml
 @IF_X11@all-native: all-x11
 @IF_X11_SCREEN@all-native: all-x11-screen
 
+# Plugins all depend on this target to make sure that they can use it
+# to compile themselves.
+.PHONY: all-toolchain
+all-toolchain: microcode/scheme
+all-toolchain: lib/runtime.com
+all-toolchain: lib/all.com
+all-toolchain: all-compiler
+all-toolchain: all-cref
+all-toolchain: all-ffi
+all-toolchain: all-runtime
+all-toolchain: all-sf
+all-toolchain: all-star-parser
+
 # XXX This should really depend on microcode/gen-nonce and
 # microcode/extract-liarc-decls instead of microcode/scheme, but
 # splitting up dependencies within the microcode subdirectory is more
@@ -396,8 +409,8 @@ bundle-xml: xml/xml-unx.c
 all-blowfish: compile-blowfish
 
 .PHONY: compile-blowfish
-compile-blowfish: compile-runtime compile-ffi
-	(cd blowfish && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-blowfish: all-toolchain
+	(cd blowfish && $(MAKE))
 
 .PHONY: compile-blowfish-c
 compile-blowfish-c:
@@ -411,11 +424,11 @@ compile-blowfish-c:
 all-edwin: compile-edwin
 
 .PHONY: compile-edwin
-compile-edwin: compile-runtime compile-xml
+compile-edwin: all-toolchain compile-xml
 @IF_BLOWFISH@compile-edwin: compile-blowfish
 @IF_GDBM@compile-edwin: compile-gdbm
 @IF_X11@compile-edwin: compile-x11
-	(cd edwin && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+	(cd edwin && $(MAKE))
 
 ################
 # gdbm
@@ -425,8 +438,8 @@ compile-edwin: compile-runtime compile-xml
 all-gdbm: compile-gdbm
 
 .PHONY: compile-gdbm
-compile-gdbm: compile-runtime compile-ffi
-	(cd gdbm && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-gdbm: all-toolchain
+	(cd gdbm && $(MAKE))
 
 .PHONY: compile-gdbm-c
 compile-gdbm-c:
@@ -440,8 +453,8 @@ compile-gdbm-c:
 all-imail: compile-imail
 
 .PHONY: compile-imail
-compile-imail: compile-runtime compile-sos compile-edwin compile-star-parser
-	(cd imail && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-imail: all-toolchain compile-sos compile-edwin
+	(cd imail && $(MAKE))
 
 ################
 # mcrypt
@@ -451,8 +464,8 @@ compile-imail: compile-runtime compile-sos compile-edwin compile-star-parser
 all-mcrypt: compile-mcrypt
 
 .PHONY: compile-mcrypt
-compile-mcrypt: compile-runtime compile-ffi
-	(cd mcrypt && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-mcrypt: all-toolchain
+	(cd mcrypt && $(MAKE))
 
 .PHONY: compile-mcrypt-c
 compile-mcrypt-c:
@@ -466,8 +479,8 @@ compile-mcrypt-c:
 all-pgsql: compile-pgsql
 
 .PHONY: compile-pgsql
-compile-pgsql: compile-runtime compile-ffi
-	(cd pgsql && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-pgsql: all-toolchain
+	(cd pgsql && $(MAKE))
 
 .PHONY: compile-pgsql-c
 compile-pgsql-c:
@@ -481,8 +494,8 @@ compile-pgsql-c:
 all-x11: compile-x11
 
 .PHONY: compile-x11
-compile-x11: compile-runtime compile-ffi
-	(cd x11 && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-x11: all-toolchain
+	(cd x11 && $(MAKE))
 
 .PHONY: compile-x11-c
 compile-x11-c:
@@ -496,8 +509,8 @@ compile-x11-c:
 all-x11-screen: compile-x11-screen
 
 .PHONY: compile-x11-screen
-compile-x11-screen: compile-runtime compile-x11 compile-edwin
-	(cd x11-screen && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+compile-x11-screen: all-toolchain compile-x11 compile-edwin
+	(cd x11-screen && $(MAKE))
 
 #####################
 ### Cross compilation
diff --git a/src/blowfish/Makefile.am b/src/blowfish/Makefile.am
index 12f666774..04ae7aef6 100644
--- a/src/blowfish/Makefile.am
+++ b/src/blowfish/Makefile.am
@@ -25,7 +25,7 @@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)blowfish
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -57,10 +57,9 @@ blowfish-shim.c: stamp-shim
 blowfish-const.c: stamp-shim
 blowfish-types.bin: stamp-shim
 stamp-shim: blowfish-shim.h $(cdecls)
-	touch stamp-shim
 	echo '(generate-shim "blowfish" "#include \"blowfish-shim.h\"")' \
-	| $(MIT_SCHEME_EXE) --batch-mode \
-	|| rm stamp-shim
+	    | $(MIT_SCHEME_EXE) --batch-mode
+	echo "done" > $@
 
 blowfish-const.bin: blowfish-const.scm
 	echo '(sf "blowfish-const")' | $(MIT_SCHEME_EXE) --batch-mode
@@ -70,8 +69,8 @@ blowfish-const.scm: blowfish-const
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: stamp-shim $(sources) blowfish.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = blowfish-const* blowfish-shim.c
 CLEANFILES += *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
diff --git a/src/blowfish/compile.sh b/src/blowfish/compile.sh
index 6b5f9d9df..55dbe832f 100755
--- a/src/blowfish/compile.sh
+++ b/src/blowfish/compile.sh
@@ -36,5 +36,4 @@ report=blowfish-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/blowfish/configure.ac b/src/blowfish/configure.ac
index 1d818e79b..b1d1d9de1 100644
--- a/src/blowfish/configure.ac
+++ b/src/blowfish/configure.ac
@@ -123,26 +123,26 @@ if test "${with_openssl}" != no; then
 fi
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_INCLUDEDIR}" = x; then
     MIT_SCHEME_INCLUDEDIR=`( echo "(display (->namestring" ;\
                              echo "          (directory-pathname" ;\
                              echo "           (system-library-pathname" ;\
                              echo '            "mit-scheme.h"))))' ) \
-                           | ${MIT_SCHEME_EXE} --batch-mode`
+                           | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="blowfish-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -170,7 +170,7 @@ ${MIT_SCHEME_PKD}: stamp-scheme"
 docdir='$(datarootdir)/doc/$(MIT_SCHEME_PROJECT)'
 
 AC_SUBST([MIT_SCHEME_PROJECT])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_CFLAGS])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_INCLUDEDIR])
diff --git a/src/configure.ac b/src/configure.ac
index 8cc73871c..aac501cdc 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -391,6 +391,10 @@ export MIT_SCHEME_INCLUDEDIR
 export MIT_SCHEME_OS_SUFFIX
 export MIT_SCHEME_CC_TYPE
 
+# Plugins use this one
+MIT_SCHEME_TOOLCHAIN_EXE=../run-build
+export MIT_SCHEME_TOOLCHAIN_EXE
+
 AC_CONFIG_SUBDIRS([microcode])
 if test x"${enable_blowfish}" = xyes; then
     AC_CONFIG_SUBDIRS([blowfish])
diff --git a/src/edwin/Makefile.am b/src/edwin/Makefile.am
index ff758bd1b..67fed9061 100644
--- a/src/edwin/Makefile.am
+++ b/src/edwin/Makefile.am
@@ -24,7 +24,7 @@
 
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)edwin
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -42,8 +42,8 @@ include $(srcdir)/source-dependencies.am
 edwin.bld: stamp-scheme
 edwin-@MIT_SCHEME_OS_SUFFIX@.pkd: stamp-scheme
 stamp-scheme: $(sources) edwin.ldr edwin.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd *.bld
 CLEANFILES += stamp-scheme
diff --git a/src/edwin/compile.sh b/src/edwin/compile.sh
index c63e39c4c..bd220283b 100755
--- a/src/edwin/compile.sh
+++ b/src/edwin/compile.sh
@@ -12,12 +12,12 @@
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or (at
 # your option) any later version.
-# 
+#
 # MIT/GNU Scheme is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with MIT/GNU Scheme; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
@@ -27,6 +27,7 @@
 
 set -e
 : ${MIT_SCHEME_EXE=mit-scheme}
+echo ${MIT_SCHEME_EXE}
 ${MIT_SCHEME_EXE} --batch-mode <<\EOF
 
 (begin
@@ -37,5 +38,6 @@ suffix=`echo "(display (microcode-id/operating-system-suffix))" \
 	| ${MIT_SCHEME_EXE} --batch-mode`
 report=edwin-$suffix.crf
 if [ -s "$report" ]; then
+    echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
 fi
diff --git a/src/edwin/configure.ac b/src/edwin/configure.ac
index 10e0148e4..bad9afe12 100644
--- a/src/edwin/configure.ac
+++ b/src/edwin/configure.ac
@@ -35,19 +35,19 @@ AM_INIT_AUTOMAKE
 AC_PROG_INSTALL
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 AC_SUBST([MIT_SCHEME_PROJECT])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_OS_SUFFIX])
 AC_CONFIG_FILES([Makefile])
diff --git a/src/gdbm/Makefile.am b/src/gdbm/Makefile.am
index f196ec55a..ff6883c24 100644
--- a/src/gdbm/Makefile.am
+++ b/src/gdbm/Makefile.am
@@ -25,7 +25,7 @@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)gdbm
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -57,10 +57,9 @@ gdbm-shim.c: stamp-shim
 gdbm-const.c: stamp-shim
 gdbm-types.bin: stamp-shim
 stamp-shim: gdbm-shim.h $(cdecls)
-	touch stamp-shim
 	echo '(generate-shim "gdbm" "#include \"gdbm-shim.h\"")' \
-	| $(MIT_SCHEME_EXE) --batch-mode \
-	|| rm stamp-shim
+	    | $(MIT_SCHEME_EXE) --batch-mode
+	echo "done" > $@
 
 gdbm-const.bin: gdbm-const.scm
 	echo '(sf "gdbm-const")' | $(MIT_SCHEME_EXE) --batch-mode
@@ -70,8 +69,8 @@ gdbm-const.scm: gdbm-const
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: stamp-shim $(sources) gdbm.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = gdbm-const* gdbm-shim.c
 CLEANFILES += *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
diff --git a/src/gdbm/compile.sh b/src/gdbm/compile.sh
index 04df7ca99..b6f8c39ef 100755
--- a/src/gdbm/compile.sh
+++ b/src/gdbm/compile.sh
@@ -36,5 +36,4 @@ report=gdbm-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/gdbm/configure.ac b/src/gdbm/configure.ac
index c48e642ba..c0c52744b 100644
--- a/src/gdbm/configure.ac
+++ b/src/gdbm/configure.ac
@@ -78,26 +78,26 @@ AC_CHECK_HEADER([gdbm.h],[],[
 LIBS="-lgdbm"
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_INCLUDEDIR}" = x; then
     MIT_SCHEME_INCLUDEDIR=`( echo "(display (->namestring" ;\
                              echo "          (directory-pathname" ;\
                              echo "           (system-library-pathname" ;\
                              echo '            "mit-scheme.h"))))' ) \
-                           | ${MIT_SCHEME_EXE} --batch-mode`
+                           | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="gdbm-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -126,7 +126,7 @@ docdir='$(datarootdir)/doc/$(MIT_SCHEME_PROJECT)'
 
 AC_SUBST([MIT_SCHEME_PROJECT])
 AC_SUBST([MIT_CFLAGS])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_INCLUDEDIR])
 AC_SUBST([MIT_SCHEME_PKD])
diff --git a/src/imail/Makefile.am b/src/imail/Makefile.am
index 21eb79f61..e4b55cb57 100644
--- a/src/imail/Makefile.am
+++ b/src/imail/Makefile.am
@@ -24,7 +24,7 @@
 
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)imail
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -79,8 +79,8 @@ imap-syntax.bci: stamp-scheme
 imap-syntax.com: stamp-scheme
 imail-@MIT_SCHEME_OS_SUFFIX@.pkd: stamp-scheme
 stamp-scheme: $(sources) imail.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
 CLEANFILES += stamp-scheme
diff --git a/src/imail/compile.sh b/src/imail/compile.sh
index 83fc7cf7f..6ca22ee9c 100755
--- a/src/imail/compile.sh
+++ b/src/imail/compile.sh
@@ -34,5 +34,6 @@ suffix=`echo "(display (microcode-id/operating-system-suffix))" \
 	| ${MIT_SCHEME_EXE} --batch-mode`
 report=imail-$suffix.crf
 if [ -s "$report" ]; then
+    echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
 fi
diff --git a/src/imail/configure.ac b/src/imail/configure.ac
index 4e86a4b0b..953f84086 100644
--- a/src/imail/configure.ac
+++ b/src/imail/configure.ac
@@ -35,22 +35,22 @@ AM_INIT_AUTOMAKE
 AC_PROG_INSTALL
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 # Install plugin docs in Scheme's docdir.
 docdir='$(datarootdir)/doc/$(MIT_SCHEME_PROJECT)'
 
 AC_SUBST([MIT_SCHEME_PROJECT])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_OS_SUFFIX])
 AC_CONFIG_FILES([Makefile])
diff --git a/src/mcrypt/Makefile.am b/src/mcrypt/Makefile.am
index d891d6a35..8a28de283 100644
--- a/src/mcrypt/Makefile.am
+++ b/src/mcrypt/Makefile.am
@@ -25,7 +25,7 @@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)mcrypt
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -57,10 +57,9 @@ mcrypt-shim.c: stamp-shim
 mcrypt-const.c: stamp-shim
 mcrypt-types.bin: stamp-shim
 stamp-shim: mcrypt-shim.h $(cdecls)
-	touch stamp-shim
 	echo '(generate-shim "mcrypt" "#include \"mcrypt-shim.h\"")' \
-	| $(MIT_SCHEME_EXE) --batch-mode \
-	|| rm stamp-shim
+	    | $(MIT_SCHEME_EXE) --batch-mode
+	echo "done" > $@
 
 mcrypt-const.bin: mcrypt-const.scm
 	echo '(sf "mcrypt-const")' | $(MIT_SCHEME_EXE) --batch-mode
@@ -70,8 +69,8 @@ mcrypt-const.scm: mcrypt-const
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: stamp-shim $(sources) mcrypt.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = mcrypt-const* mcrypt-shim.c
 CLEANFILES += *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
diff --git a/src/mcrypt/compile.sh b/src/mcrypt/compile.sh
index 20003883d..83047304f 100755
--- a/src/mcrypt/compile.sh
+++ b/src/mcrypt/compile.sh
@@ -36,5 +36,4 @@ report=mcrypt-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/mcrypt/configure.ac b/src/mcrypt/configure.ac
index 28b6e9374..8af778e3b 100644
--- a/src/mcrypt/configure.ac
+++ b/src/mcrypt/configure.ac
@@ -108,26 +108,26 @@ CFLAGS="${MCRYPT_CFLAGS} ${CFLAGS}"
 LIBS="${LIBS} ${MCRYPT_LIBS}"
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 rif test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_INCLUDEDIR}" = x; then
     MIT_SCHEME_INCLUDEDIR=`( echo "(display (->namestring" ;\
                              echo "          (directory-pathname" ;\
                              echo "           (system-library-pathname" ;\
                              echo '            "mit-scheme.h"))))' ) \
-                           | ${MIT_SCHEME_EXE} --batch-mode`
+                           | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="mcrypt-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -153,7 +153,7 @@ ${MIT_SCHEME_PKD}: stamp-scheme"
 
 AC_SUBST([MIT_SCHEME_PROJECT])
 AC_SUBST([MIT_CFLAGS])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_INCLUDEDIR])
 AC_SUBST([MIT_SCHEME_PKD])
diff --git a/src/pgsql/Makefile.am b/src/pgsql/Makefile.am
index 06c500ea2..f27fd0560 100644
--- a/src/pgsql/Makefile.am
+++ b/src/pgsql/Makefile.am
@@ -25,7 +25,7 @@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)pgsql
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -57,10 +57,9 @@ pgsql-shim.c: stamp-shim
 pgsql-const.c: stamp-shim
 pgsql-types.bin: stamp-shim
 stamp-shim: pgsql-shim.h $(cdecls)
-	touch stamp-shim
 	echo '(generate-shim "pgsql" "#include \"pgsql-shim.h\"")' \
-	| $(MIT_SCHEME_EXE) --batch-mode \
-	|| rm stamp-shim
+	    | $(MIT_SCHEME_EXE) --batch-mode
+	echo "done" > $@
 
 pgsql-const.bin: pgsql-const.scm
 	echo '(sf "pgsql-const")' | $(MIT_SCHEME_EXE) --batch-mode
@@ -70,8 +69,8 @@ pgsql-const.scm: pgsql-const
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: stamp-shim $(sources) pgsql.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = pgsql-const* pgsql-shim.c
 CLEANFILES += *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
diff --git a/src/pgsql/compile.sh b/src/pgsql/compile.sh
index c6abb7523..867dd9940 100755
--- a/src/pgsql/compile.sh
+++ b/src/pgsql/compile.sh
@@ -36,5 +36,4 @@ report=pgsql-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/pgsql/configure.ac b/src/pgsql/configure.ac
index 74342a77c..a315aacee 100644
--- a/src/pgsql/configure.ac
+++ b/src/pgsql/configure.ac
@@ -109,26 +109,26 @@ AC_DEFINE([HAVE_LIBPQ_FE_H], [1],
 	  [Define to 1 if you have the <libpq-fe.h> header file.])
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_INCLUDEDIR}" = x; then
     MIT_SCHEME_INCLUDEDIR=`( echo "(display (->namestring" ;\
                              echo "          (directory-pathname" ;\
                              echo "           (system-library-pathname" ;\
                              echo '            "mit-scheme.h"))))' ) \
-                           | ${MIT_SCHEME_EXE} --batch-mode`
+                           | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="pgsql-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -154,7 +154,7 @@ ${MIT_SCHEME_PKD}: stamp-scheme"
 
 AC_SUBST([MIT_SCHEME_PROJECT])
 AC_SUBST([MIT_CFLAGS])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_INCLUDEDIR])
 AC_SUBST([MIT_SCHEME_PKD])
diff --git a/src/x11-screen/Makefile.am b/src/x11-screen/Makefile.am
index ccaab4ba9..46e168813 100644
--- a/src/x11-screen/Makefile.am
+++ b/src/x11-screen/Makefile.am
@@ -24,7 +24,7 @@
 
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)x11-screen
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -41,8 +41,8 @@ scmlib_sub_DATA += make.scm @MIT_SCHEME_PKD@
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: $(sources) x11-screen.pkg
-	touch stamp-scheme
-	if ! ./compile.sh; then rm stamp-scheme; exit 1; fi
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
+	echo "done" > $@
 
 CLEANFILES = *.bin *.ext *.com *.bci *.moc *.fni *.crf *.fre *.pkd
 CLEANFILES += stamp-scheme
diff --git a/src/x11-screen/compile.sh b/src/x11-screen/compile.sh
index 781e5dc91..e70d1d8f2 100755
--- a/src/x11-screen/compile.sh
+++ b/src/x11-screen/compile.sh
@@ -36,5 +36,4 @@ report=x11-screen-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/x11-screen/configure.ac b/src/x11-screen/configure.ac
index b3ac05f66..19386b2ac 100644
--- a/src/x11-screen/configure.ac
+++ b/src/x11-screen/configure.ac
@@ -35,19 +35,19 @@ AM_INIT_AUTOMAKE
 AC_PROG_INSTALL
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="x11-screen-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -72,7 +72,7 @@ MIT_SCHEME_DEPS="${MIT_SCHEME_DEPS}
 ${MIT_SCHEME_PKD}: stamp-scheme"
 
 AC_SUBST([MIT_SCHEME_PROJECT])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_PKD])
 AC_SUBST([MIT_SCHEME_SCMs])
diff --git a/src/x11/Makefile.am b/src/x11/Makefile.am
index 14db1303d..50b7d0d5d 100644
--- a/src/x11/Makefile.am
+++ b/src/x11/Makefile.am
@@ -25,7 +25,7 @@
 ACLOCAL_AMFLAGS = -I m4
 EXTRA_DIST = autogen.sh
 
-MIT_SCHEME_EXE = @MIT_SCHEME_EXE@
+MIT_SCHEME_EXE = @MIT_SCHEME_TOOLCHAIN_EXE@
 scmlibdir = @MIT_SCHEME_LIBDIR@
 scmlib_subdir = $(scmlibdir)x11
 scmdocdir = $(datarootdir)/doc/@MIT_SCHEME_PROJECT@
@@ -70,7 +70,7 @@ x11-const.scm: x11-const$(EXEEXT)
 
 @MIT_SCHEME_DEPS@
 stamp-scheme: stamp-shim $(sources) x11-const.bin x11.pkg
-	./compile.sh
+	MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) ./compile.sh
 	echo "done" > $@
 
 MOSTLYCLEANFILES = $(scmlib_LTLIBRARIES) x11-const
diff --git a/src/x11/compile.sh b/src/x11/compile.sh
index b158101ff..6fdc7e6e8 100755
--- a/src/x11/compile.sh
+++ b/src/x11/compile.sh
@@ -36,5 +36,4 @@ report=x11-$suffix.crf
 if [ -s "$report" ]; then
     echo "$0: warning: $report is not empty"
     awk "{printf \"$report:%d: %s\\n\",NR,\$0}" $report
-    exit 1
 fi
diff --git a/src/x11/configure.ac b/src/x11/configure.ac
index ab3bdad83..78033369e 100644
--- a/src/x11/configure.ac
+++ b/src/x11/configure.ac
@@ -100,26 +100,26 @@ if test "${no_x}" != yes; then
 fi
 
 MIT_SCHEME_PROJECT=mit-scheme
-: ${MIT_SCHEME_EXE=mit-scheme}
+: ${MIT_SCHEME_TOOLCHAIN_EXE=mit-scheme}
 if test x"${MIT_SCHEME_LIBDIR}" = x; then
     MIT_SCHEME_LIBDIR=`( echo "(display (->namestring" ;\
 			 echo "          (system-library-directory-pathname)))" ) \
-		       | ${MIT_SCHEME_EXE} --batch-mode`
+		       | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_INCLUDEDIR}" = x; then
     MIT_SCHEME_INCLUDEDIR=`( echo "(display (->namestring" ;\
                              echo "          (directory-pathname" ;\
                              echo "           (system-library-pathname" ;\
                              echo '            "mit-scheme.h"))))' ) \
-                           | ${MIT_SCHEME_EXE} --batch-mode`
+                           | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_OS_SUFFIX}" = x; then
     MIT_SCHEME_OS_SUFFIX=`echo "(display (microcode-id/operating-system-suffix))" \
-                          | ${MIT_SCHEME_EXE} --batch-mode`
+                          | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 if test x"${MIT_SCHEME_CC_TYPE}" = x; then
     MIT_SCHEME_CC_TYPE=`echo "(display microcode-id/compiled-code-type)" \
-                        | ${MIT_SCHEME_EXE} --batch-mode`
+                        | ${MIT_SCHEME_TOOLCHAIN_EXE} --batch-mode`
 fi
 
 MIT_SCHEME_PKD="x11-${MIT_SCHEME_OS_SUFFIX}.pkd"
@@ -146,7 +146,7 @@ ${MIT_SCHEME_PKD}: stamp-scheme"
 AC_SUBST([MIT_CFLAGS])
 AC_SUBST([MIT_LIBS])
 AC_SUBST([MIT_SCHEME_PROJECT])
-AC_SUBST([MIT_SCHEME_EXE])
+AC_SUBST([MIT_SCHEME_TOOLCHAIN_EXE])
 AC_SUBST([MIT_SCHEME_LIBDIR])
 AC_SUBST([MIT_SCHEME_INCLUDEDIR])
 AC_SUBST([MIT_SCHEME_PKD])