Get native-from-liarc compilation working (finally).
authorChris Hanson <org/chris-hanson/cph>
Fri, 15 Jun 2007 03:41:35 +0000 (03:41 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 15 Jun 2007 03:41:35 +0000 (03:41 +0000)
v7/src/Makefile.in
v7/src/etc/make-native.sh [new file with mode: 0755]

index a42cf106d3d7743108d063ad368936f6e0e59a5b..571fdde2a80fce2e871486fd2914fe3c9970d1e4 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.43 2007/06/13 13:36:38 cph Exp $
+# $Id: Makefile.in,v 1.44 2007/06/15 03:41:35 cph Exp $
 #
 # Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
 #     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -82,19 +82,23 @@ all-liarc:
 compile-microcode:
        (cd microcode && $(MAKE) all)
 
+stamp_install-microcode: compile-microcode
+       (cd microcode; $(MAKE) install)
+       echo "done" > $@
+
 build-bands:
        @$(top_srcdir)/etc/build-bands.sh
 
+# **** Make liarc distribution from native ****
+
 liarc-dist:
        @$(top_srcdir)/etc/compile-boot-compiler.sh mit-scheme
        @$(top_srcdir)/etc/c-prepare.sh mit-scheme
        $(MAKE) distclean
 
-stamp_install-liarc-microcode: compile-microcode
-       (cd microcode; $(MAKE) install)
-       echo "done" > $@
+# **** Build liarc from distribution ****
 
-stamp_compile-liarc-boot-bundles: stamp_install-liarc-microcode
+stamp_compile-liarc-boot-bundles: stamp_install-microcode
        @for BN in $(LIARC_BOOT_BUNDLES); do \
            CMD="(cd $${BN} && $(MAKE) compile-liarc-bundle)";\
            echo "$${CMD}"; eval "$${CMD}";\
@@ -134,23 +138,20 @@ install-liarc-bundles: stamp_compile-liarc-bundles
            echo "$${CMD}"; eval "$${CMD}";\
        done
 
+# **** Build native from liarc ****
 
+stamp_build-native-boot-compiler: stamp_install-microcode
+       @$(top_srcdir)/etc/build-boot-compiler.sh
+       echo "done" > $@
 
+stamp_install-native-boot-compiler: stamp_build-native-boot-compiler
+       $(MAKE) install-auxdir-top
+       echo "done" > $@
 
-native-from-liarc: boot-lib/native-compiler.com clean
-       $(MAKE) compile-microcode
-       @$(top_srcdir)/etc/compile.sh boot-lib/scheme --library boot-lib \
-           --band boot-lib/native-compiler.com
-       rm -rf boot-lib
-
-boot-lib/native-compiler.com: boot-lib/scheme native-prepare
-       @$(top_srcdir)/etc/build-boot-compiler.sh native-compiler.com
-
-native-prepare:
-       @$(top_srcdir)/etc/compile-boot-compiler.sh mit-scheme-c
-       (cd compiler && $(MAKE) compile-liarc-bundle)
-       @$(top_srcdir)/etc/native-prepare.sh mit-scheme-c
-
+stamp_native-compile-scheme: compile-microcode
+       @$(top_srcdir)/etc/compile.sh boot-root/bin/scheme \
+           --band boot-compiler.com
+       echo "done" > $@
 
 
 mostlyclean clean distclean maintainer-clean c-clean:
diff --git a/v7/src/etc/make-native.sh b/v7/src/etc/make-native.sh
new file mode 100755 (executable)
index 0000000..599c3e3
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# $Id: make-native.sh,v 1.1 2007/06/15 03:41:35 cph Exp $
+#
+# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+#     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+#     2005, 2006, 2007 Massachusetts Institute of Technology
+#
+# This file is part of MIT/GNU Scheme.
+#
+# MIT/GNU Scheme is free software; you can redistribute it and/or
+# modify 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, USA.
+
+set -e
+
+. etc/functions.sh
+
+FASTP=no
+for ARG in "${@}"; do
+    case ${ARG} in
+    --help|--help=*|--version)
+       FASTP=yes
+       ;;
+    esac
+done
+
+if [ ${FASTP} = yes ]; then
+    exec ./configure "${@}"
+fi
+
+run_cmd ./Setup.sh
+run_configure --prefix=`pwd`/boot-root
+run_cmd etc/compile-boot-compiler.sh mit-scheme-c
+run_cmd_in_dir compiler run_make compile-liarc-bundle
+run_cmd etc/native-prepare.sh mit-scheme-c
+run_make compile-microcode
+
+run_cmd_in_dir runtime ../microcode/scheme --library ../lib \
+    --fasl make.bin --heap 6000 <<EOF
+(begin
+  (load "../compiler/base/crsend")
+  (finish-cross-compilation:directory ".."))
+EOF
+
+run_make stamp_install-native-boot-compiler
+run_make c-clean distclean
+
+run_configure "${@}"
+run_make stamp_native-compile-scheme
+run_make build-bands