cs: fix cross-build bootstrap
Fix the relevant makefile target.
This commit is contained in:
parent
bd5677da70
commit
c4f44eaedd
|
@ -14,7 +14,9 @@
|
||||||
"config.rkt")
|
"config.rkt")
|
||||||
|
|
||||||
;; Set `SCHEME_SRC` and `MACH` to specify the ChezScheme source
|
;; Set `SCHEME_SRC` and `MACH` to specify the ChezScheme source
|
||||||
;; directory and the target machine.
|
;; directory and the target machine. Set the `MAKE_BOOT_FOR_CROSS`
|
||||||
|
;; environment variable to generate just enough to run `configure`
|
||||||
|
;; for a corss build.
|
||||||
|
|
||||||
(unless scheme-dir
|
(unless scheme-dir
|
||||||
(error "set `SCHEME_SRC` environment variable"))
|
(error "set `SCHEME_SRC` environment variable"))
|
||||||
|
@ -297,6 +299,16 @@
|
||||||
(eval `(mkequates.h ,(path->string (build-path out-subdir "equates.h"))))
|
(eval `(mkequates.h ,(path->string (build-path out-subdir "equates.h"))))
|
||||||
(plumber-flush-all (current-plumber))
|
(plumber-flush-all (current-plumber))
|
||||||
|
|
||||||
|
(when (getenv "MAKE_BOOT_FOR_CROSS")
|
||||||
|
;; Working bootfiles are not needed for a cross build (only the
|
||||||
|
;; ".h" files are needed), so just make dummy files in that case
|
||||||
|
;; to let `configure` work
|
||||||
|
(define (touch p)
|
||||||
|
(unless (file-exists? p) (call-with-output-file* p void)))
|
||||||
|
(touch (build-path out-subdir "petite.boot"))
|
||||||
|
(touch (build-path out-subdir "scheme.boot"))
|
||||||
|
(exit))
|
||||||
|
|
||||||
(for ([s (in-list '("ftype.ss"
|
(for ([s (in-list '("ftype.ss"
|
||||||
"fasl.ss"
|
"fasl.ss"
|
||||||
"reloc.ss"
|
"reloc.ss"
|
||||||
|
|
|
@ -148,12 +148,15 @@ SCHEME_CONFIG_VARS = CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LD="$(LD)" LDFLAGS="$(LD
|
||||||
scheme-make-finish:
|
scheme-make-finish:
|
||||||
env SCHEME_SRC="$(SCHEME_SRC)" MACH="$(MACH)" $(BOOTSTRAP_RACKET) $(srcdir)/../bootstrap/make-boot.rkt
|
env SCHEME_SRC="$(SCHEME_SRC)" MACH="$(MACH)" $(BOOTSTRAP_RACKET) $(srcdir)/../bootstrap/make-boot.rkt
|
||||||
cd $(SCHEME_SRC) && ./configure @SCHEME_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS)
|
cd $(SCHEME_SRC) && ./configure @SCHEME_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS)
|
||||||
|
$(MAKE) sync-bootfiles
|
||||||
|
cd $(SCHEME_SRC) && $(MAKE)
|
||||||
|
|
||||||
|
sync-bootfiles:
|
||||||
mkdir -p $(SCHEME_SRC)/$(MACH)/boot/$(MACH)
|
mkdir -p $(SCHEME_SRC)/$(MACH)/boot/$(MACH)
|
||||||
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/equates.h
|
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/equates.h
|
||||||
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/scheme.h
|
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/scheme.h
|
||||||
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/petite.boot
|
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/petite.boot
|
||||||
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/scheme.boot
|
$(MAKE) $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/scheme.boot
|
||||||
cd $(SCHEME_SRC) && $(MAKE)
|
|
||||||
|
|
||||||
# If "equates.h", etc., are newly built since previous build, move them into place
|
# If "equates.h", etc., are newly built since previous build, move them into place
|
||||||
$(SCHEME_SRC)/$(MACH)/boot/$(MACH)/equates.h: $(SCHEME_SRC)/boot/$(MACH)/equates.h
|
$(SCHEME_SRC)/$(MACH)/boot/$(MACH)/equates.h: $(SCHEME_SRC)/boot/$(MACH)/equates.h
|
||||||
|
@ -167,6 +170,8 @@ $(SCHEME_SRC)/$(MACH)/boot/$(MACH)/scheme.boot: $(SCHEME_SRC)/boot/$(MACH)/schem
|
||||||
|
|
||||||
scheme-cross:
|
scheme-cross:
|
||||||
cd $(SCHEME_SRC) && git submodule -q init && git submodule -q update
|
cd $(SCHEME_SRC) && git submodule -q init && git submodule -q update
|
||||||
|
env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_SRC)" MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) $(srcdir)/../bootstrap/make-boot.rkt
|
||||||
|
$(MAKE) sync-bootfiles MACH="$(TARGET_MACH)"
|
||||||
cd $(SCHEME_SRC) && ./configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS)
|
cd $(SCHEME_SRC) && ./configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS)
|
||||||
cd $(SCHEME_SRC)/$(TARGET_MACH)/c && $(MAKE) o=o cross=t
|
cd $(SCHEME_SRC)/$(TARGET_MACH)/c && $(MAKE) o=o cross=t
|
||||||
$(MAKE) $(SCHEME_SRC)/$(TARGET_MACH)/s/xpatch
|
$(MAKE) $(SCHEME_SRC)/$(TARGET_MACH)/s/xpatch
|
||||||
|
|
Loading…
Reference in New Issue
Block a user