diff --git a/.makefile b/.makefile index 474937241e..95d923c967 100644 --- a/.makefile +++ b/.makefile @@ -327,7 +327,7 @@ RACKET_FOR_BOOTFILES = $(RACKET) RACKET_FOR_BUILD = $(RACKET) # This branch name changes each time the pb boot files are updated: -PB_BRANCH == circa-7.8.0.6-1 +PB_BRANCH == circa-7.8.0.6-2 PB_REPO == https://github.com/racket/pb # Alternative source for Chez Scheme boot files, normally set by @@ -438,7 +438,7 @@ pb-stage: cd $(PB_DIR) && git add . && git commit --amend -m "new build" pb-push: - git push -u origin $(PB_BRANCH) + cd $(PB_DIR) && git push -u origin $(PB_BRANCH) WIN32_BOOT_ARGS == SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=bc PLAIN_RACKET=racket\racketbc diff --git a/Makefile b/Makefile index 26ff878b45..b7e302ac93 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ RACKETCS_SUFFIX = cs RACKET = RACKET_FOR_BOOTFILES = $(RACKET) RACKET_FOR_BUILD = $(RACKET) -PB_BRANCH = circa-7.8.0.6-1 +PB_BRANCH = circa-7.8.0.6-2 PB_REPO = https://github.com/racket/pb EXTRA_REPOS_BASE = CS_CROSS_SUFFIX = @@ -300,14 +300,14 @@ maybe-fetch-pb: if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; then $(MAKE) fetch-pb EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" ; fi fetch-pb-from: mkdir -p racket/src/ChezScheme/boot - if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.6-1 https://github.com/racket/pb racket/src/ChezScheme/boot/pb ; else cd racket/src/ChezScheme/boot/pb && git fetch -q origin circa-7.8.0.6-1 ; fi - cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.6-1 + if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.6-2 https://github.com/racket/pb racket/src/ChezScheme/boot/pb ; else cd racket/src/ChezScheme/boot/pb && git fetch -q origin circa-7.8.0.6-2 ; fi + cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.6-2 pb-stage: - cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.6-1 - cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.6-1 + cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.6-2 + cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.6-2 cd racket/src/ChezScheme/boot/pb && git add . && git commit --amend -m "new build" pb-push: - git push -u origin circa-7.8.0.6-1 + cd racket/src/ChezScheme/boot/pb && git push -u origin circa-7.8.0.6-2 win-cs-base: IF "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-bc-then-cs-base SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=bc PLAIN_RACKET=racket\racketbc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" IF not "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-just-cs-base SETUP_BOOT_MODE=--chain DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" diff --git a/racket/src/cs/Makefile b/racket/src/cs/Makefile index 34552cb3c4..e1afd7dd27 100644 --- a/racket/src/cs/Makefile +++ b/racket/src/cs/Makefile @@ -21,8 +21,11 @@ DEBUG_COMP = # --debug # the Chez Scheme directory must have "/s/xpatch": CROSS_COMP = +# Can be set by a caller: +EXTRA_COMPILE_DEPS = + COMPILE_FILE = $(SCHEME) --script compile-file.ss $(UNSAFE_COMP) $(COMPRESS_COMP) $(DEBUG_COMP) $(CROSS_COMP) --dest "$(BUILDDIR)" -COMPILE_FILE_DEPS = compile-file.ss include.ss place-register.ss +COMPILE_FILE_DEPS = compile-file.ss include.ss place-register.ss $(EXTRA_COMPILE_DEPS) RACKET_SETUP_ARGS = false ../../bin/racket ../../bin/racket ../collects ../etc 0 true false 0 "" diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 6f9e2c80dc..7e062ed025 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -1,16 +1,19 @@ srcdir = @srcdir@ builddir = @builddir@ +upsrcdir = @upsrcdir@ PACKAGE = racket SCHEME_DIR = $(srcdir)/../../ChezScheme +UP_SCHEME_DIR = $(upsrcdir)/../../ChezScheme +SCHEME_WORKAREA = ChezScheme MACH = @MACH@ -SCHEME_BIN = $(SCHEME_DIR)/$(MACH)/bin/$(MACH)/scheme -SCHEME_INC = $(SCHEME_DIR)/$(MACH)/boot/$(MACH) -SCHEME = $(SCHEME_BIN) -b $(SCHEME_INC)/petite.boot -b $(SCHEME_INC)/scheme.boot +SCHEME_BIN = $(SCHEME_WORKAREA)/$(MACH)/bin/$(MACH)/scheme +SCHEME_INC = $(SCHEME_WORKAREA)/$(MACH)/boot/$(MACH) +SCHEME = $(SCHEME_BIN) -B $(SCHEME_INC)/petite.boot -B $(SCHEME_INC)/scheme.boot TARGET_MACH = @TARGET_MACH@ -SCHEME_TARGET_INC = $(SCHEME_DIR)/$(TARGET_MACH)/boot/$(TARGET_MACH) +SCHEME_TARGET_INC = $(SCHEME_WORKAREA)/$(TARGET_MACH)/boot/$(TARGET_MACH) CC = @CC@ BASE_CFLAGS = @CFLAGS@ @CPPFLAGS@ @@ -81,7 +84,7 @@ SETUP_BOOT_MODE = @SETUP_BOOT_MODE@ BOOT_COMPILED_SUBDIR = SETUP_COMMON_BOOT = -l- setup $(SETUP_BOOT_MODE) $(srcdir)/../../setup-go.rkt $(builddir)/compiled$(BOOT_COMPILED_SUBDIR) -ABS_SCHEME_DIR = "`$(SCHEME) --script $(srcdir)/../absify.ss --no-trailing-sep $(SCHEME_DIR)`" +ABS_SCHEME_WORKAREA = "`$(SCHEME) --script $(srcdir)/../absify.ss --no-trailing-sep $(SCHEME_WORKAREA)`" ABS_BUILDDIR = "`$(SCHEME) --script $(srcdir)/../absify.ss --no-trailing-sep $(builddir)`" SETUP_BOOT = -O 'info@compiler/cm' $(SETUP_COMMON_BOOT) @@ -98,15 +101,17 @@ RACKET_SO_ENV = @CONFIGURE_RACKET_SO_COMPILE@ CS_PROGS = SCHEME="$(SCHEME)" CS_OPTS = COMPRESS_COMP=@COMPRESS_COMP@ -CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_DIR)/$(TARGET_MACH)/s/xpatch" +CS_OPTScross = $(CS_OPTS) CSO=$(MACH) CROSS_COMP="--xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch" +PASS_COMPILE_DEPS = EXTRA_COMPILE_DEPS="$(SCHEME_INC)/petite.boot $(SCHEME_INC)/scheme.boot" build-racket-so: - cd $(srcdir)/.. && $(RACKET_SO_ENV) $(MAKE) "$(builddir)/racket.so" $(CS_PROGS) $(CS_OPTS@CROSS_MODE@) BUILDDIR="$(builddir)/" BOOTSTRAPPED="done" + cd $(srcdir)/.. && $(RACKET_SO_ENV) $(MAKE) "$(builddir)/racket.so" $(CS_PROGS) $(CS_OPTS@CROSS_MODE@) BUILDDIR="$(builddir)/" BOOTSTRAPPED="done" $(PASS_COMPILE_DEPS) bounce: - $(MAKE) builddir="$(ABS_BUILDDIR)" SCHEME_DIR="$(ABS_SCHEME_DIR)" $(TARGET) + $(MAKE) builddir="$(ABS_BUILDDIR)" SCHEME_WORKAREA="$(ABS_SCHEME_WORKAREA)" $(TARGET) scheme: + mkdir -p $(SCHEME_WORKAREA) if [ "$(BOOTFILE_RACKET)" != "$(DEFAULT_RACKET)" ] ; \ then $(MAKE) scheme-via-rktboot BOOTFILE_RACKET="$(BOOTFILE_RACKET)" ; \ else $(MAKE) scheme-via-pb ; fi @@ -117,26 +122,26 @@ scheme-via-rktboot: else $(MAKE) scheme-via-rktboot-at ; fi scheme-via-rktboot-at: - SCHEME_SRC="$(SCHEME_DIR)" MACH="$(MACH)" $(BOOTSTRAP_BOOTFILE_RACKET) $(SCHEME_DIR)/rktboot/make-boot.rkt - /bin/sh $(srcdir)/reset_boot.sh $(MACH) "$(srcdir)/../../ChezScheme" + SCHEME_SRC="$(SCHEME_DIR)" MACH="$(MACH)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) $(BOOTSTRAP_BOOTFILE_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt + /bin/sh $(srcdir)/reset_boot.sh $(MACH) $(SCHEME_WORKAREA) $(MAKE) mach-make scheme-via-pb: - /bin/sh $(srcdir)/check_boot.sh $(MACH) "$(srcdir)/../../ChezScheme" + /bin/sh $(srcdir)/check_boot.sh $(MACH) "$(SCHEME_DIR)" $(SCHEME_WORKAREA) if [ -f boot_pending ] ; then $(MAKE) pb-bootquick ; fi $(MAKE) mach-make pb-bootquick: $(MAKE) config-scheme MACH=pb CONFIG_SCHEME_MODE=--pb - cd $(SCHEME_DIR) && $(MAKE) reset - cd $(SCHEME_DIR) && $(MAKE) ${MACH}.bootquick + cd $(SCHEME_WORKAREA) && $(MAKE) reset + cd $(SCHEME_WORKAREA) && $(MAKE) ${MACH}.bootquick $(MAKE) config-scheme - cd $(SCHEME_DIR) && $(MAKE) reset - /bin/sh $(srcdir)/ready_boot.sh $(MACH) "$(srcdir)/../../ChezScheme" + cd $(SCHEME_WORKAREA) && $(MAKE) reset + /bin/sh $(srcdir)/ready_boot.sh $(MACH) $(SCHEME_WORKAREA) mach-make: $(MAKE) config-scheme - cd $(SCHEME_DIR) && $(MAKE) + cd $(SCHEME_WORKAREA) && $(MAKE) SCHEME_CONFIG_VARS = CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LDFLAGS="$(LDFLAGS)" \ AR="$(AR)" ARFLAGS="$(ARFLAGS)" RANLIB="$(RANLIB)" \ @@ -144,23 +149,23 @@ SCHEME_CONFIG_VARS = CC="$(CC)" CFLAGS="$(BASE_CFLAGS)" LDFLAGS="$(LDFLAGS)" \ CONFIG_SCHEME_MODE = config-scheme: - cd $(SCHEME_DIR) && ./configure $(CONFIG_SCHEME_MODE) @SCHEME_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) + cd $(SCHEME_WORKAREA) && "$(UP_SCHEME_DIR)"/configure $(CONFIG_SCHEME_MODE) @SCHEME_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) scheme-cross: - env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt - /bin/sh $(srcdir)/reset_boot.sh $(TARGET_MACH) "$(srcdir)/../../ChezScheme" - cd $(SCHEME_DIR) && ./configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) - cd $(SCHEME_DIR)/$(TARGET_MACH)/c && $(MAKE) o=o cross=t - $(MAKE) $(SCHEME_DIR)/$(TARGET_MACH)/s/xpatch + env MAKE_BOOT_FOR_CROSS=yes SCHEME_SRC="$(SCHEME_DIR)" SCHEME_WORKAREA=$(SCHEME_WORKAREA) MACH="$(TARGET_MACH)" $(BOOTSTRAP_RACKET) "$(SCHEME_DIR)"/rktboot/make-boot.rkt + /bin/sh $(srcdir)/reset_boot.sh $(TARGET_MACH) $(SCHEME_WORKAREA) + cd $(SCHEME_WORKAREA) && ./configure @SCHEME_CROSS_CONFIG_ARGS@ $(SCHEME_CONFIG_VARS) + cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/c && $(MAKE) o=o cross=t + $(MAKE) $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch # Rebuild patch file and cross "petite.boot" and "scheme.boot" when older # than the build-host "scheme.boot" -$(SCHEME_DIR)/$(TARGET_MACH)/s/xpatch: $(SCHEME_DIR)/$(MACH)/boot/$(MACH)/scheme.boot - rm -f $(SCHEME_DIR)/$(TARGET_MACH)/s/nanopass.so $(SCHEME_DIR)/$(TARGET_MACH)/s/nanopass/*.so - cd $(SCHEME_DIR)/$(TARGET_MACH)/s && $(MAKE) -f Mf-cross m=$(MACH) xm=$(TARGET_MACH) Scheme="$(SCHEME_BIN)" SCHEMEHEAPDIRS="$(SCHEME_INC)" +$(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch: $(SCHEME_WORKAREA)/$(MACH)/boot/$(MACH)/scheme.boot + rm -f $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/nanopass.so $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/nanopass/*.so + cd $(SCHEME_WORKAREA)/$(TARGET_MACH)/s && $(MAKE) -f Mf-cross m=$(MACH) xm=$(TARGET_MACH) Scheme="$(SCHEME_BIN)" SCHEMEHEAPDIRS="$(SCHEME_INC)" XPATCH = -XPATCHcross = --xpatch $(SCHEME_DIR)/$(TARGET_MACH)/s/xpatch +XPATCHcross = --xpatch $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch racket.boot: racket.so $(SCHEME) --script $(srcdir)/convert-to-boot.ss @BOOT_COMPRESS_COMP@ $(XPATCH@CROSS_MODE@) racket.so racket.boot $(TARGET_MACH) @@ -354,7 +359,7 @@ plain-install-upcased: $(MAKE) compile-xpatch.$(TARGET_MACH) $(MAKE) library-xpatch.$(TARGET_MACH) -SCHEME_XPATCH = $(SCHEME_DIR)/$(TARGET_MACH)/s/xpatch +SCHEME_XPATCH = $(SCHEME_WORKAREA)/$(TARGET_MACH)/s/xpatch compile-xpatch.$(TARGET_MACH): $(SCHEME_XPATCH) $(srcdir)/mk-cross-serve.ss $(srcdir)/cross-serve.ss $(srcdir)/../expander/env.ss $(SCHEME) --script $(srcdir)/mk-cross-serve.ss $(srcdir)/cross-serve.ss $(srcdir)/../expander/env.ss @@ -392,7 +397,7 @@ starter@NOT_MINGW@: $(srcdir)/../../start/ustart.c repack-install-libs: - $(MAKE) libracketcs.a SCHEME_DIR="$(ABS_SCHEME_DIR)" + $(MAKE) libracketcs.a SCHEME_WORKAREA="$(ABS_SCHEME_WORKAREA)" libracketcs.a: $(SCHEME_LIB_DEPS) rktio/librktio.a boot.o mkdir -p repack diff --git a/racket/src/cs/c/check_boot.sh b/racket/src/cs/c/check_boot.sh index e8ad19c922..56236c079f 100644 --- a/racket/src/cs/c/check_boot.sh +++ b/racket/src/cs/c/check_boot.sh @@ -5,11 +5,12 @@ MACH=$1 SCHEME_DIR=$2 +SCHEME_WORKAREA=$3 check_pb() { - SRC=$SCHEME_DIR/boot/pb/$1 - DEST=$SCHEME_DIR/pb/boot/pb/$1 + SRC="$SCHEME_DIR"/boot/pb/$1 + DEST=$SCHEME_WORKAREA/pb/boot/pb/$1 if [ ! -e $DEST ] ; then touch boot_pending elif [ "`/usr/bin/find "$SRC" -newer "$DEST"`" != "" ] ; then @@ -28,7 +29,7 @@ check_pb vfasl.inc check_mach() { SRC=$SCHEME_DIR/boot/pb/$1 - INIT=$SCHEME_DIR/boot/$MACH/$1 + INIT=$SCHEME_WORKAREA/boot/$MACH/$1 if [ ! -e $INIT ] ; then touch boot_pending elif [ "`/usr/bin/find "$SRC" -newer "$INIT"`" != "" ] ; then diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index cbbfa5f2de..ec05ffd5cd 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -674,6 +674,7 @@ STATIC_AR ARFLAGS AR LD +upsrcdir STRIP EGREP GREP @@ -4932,6 +4933,15 @@ fi ############## Racket and Chez Scheme ################ +case "$srcdir" in + /*) + upsrcdir=$srcdir + ;; + *) + upsrcdir=../$srcdir + ;; +esac + SCHEME_DIR=${srcdir}/../../ChezScheme MAKE_BUILD_SCHEME=checkout @@ -5581,6 +5591,7 @@ SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${disable_curse + makefiles="Makefile" diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 3536054cf3..135977928f 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -422,6 +422,15 @@ fi ############## Racket and Chez Scheme ################ +case "$srcdir" in + /*) + upsrcdir=$srcdir + ;; + *) + upsrcdir=../$srcdir + ;; +esac + SCHEME_DIR=${srcdir}/../../ChezScheme MAKE_BUILD_SCHEME=checkout @@ -676,6 +685,7 @@ m4_include(../ac/rktio_keep.m4) SCHEME_CONFIG_ARGS="--machine=${MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" +AC_SUBST(upsrcdir) AC_SUBST(CC) AC_SUBST(CFLAGS) AC_SUBST(CPPFLAGS) diff --git a/racket/src/cs/c/ready_boot.sh b/racket/src/cs/c/ready_boot.sh index 8d372a3c72..84b5f5a78f 100644 --- a/racket/src/cs/c/ready_boot.sh +++ b/racket/src/cs/c/ready_boot.sh @@ -6,11 +6,11 @@ # Then, delete `boot_pending`. MACH=$1 -SCHEME_DIR=$2 +SCHEME_WORKAREA=$2 ready_mach() { - INIT=$SCHEME_DIR/boot/$MACH/$1 + INIT=$SCHEME_WORKAREA/boot/$MACH/$1 if [ -e $INIT ] ; then touch $INIT fi diff --git a/racket/src/cs/c/reset_boot.sh b/racket/src/cs/c/reset_boot.sh index a61a841edc..bc5536d513 100644 --- a/racket/src/cs/c/reset_boot.sh +++ b/racket/src/cs/c/reset_boot.sh @@ -6,12 +6,12 @@ # Then, delete `boot_pending`. MACH=$1 -SCHEME_DIR=$2 +SCHEME_WORKAREA=$2 ready_mach() { - INIT=$SCHEME_DIR/boot/$MACH/$1 - DEST=$SCHEME_DIR/$MACH/boot/$MACH/$1 + INIT=$SCHEME_WORKAREA/boot/$MACH/$1 + DEST=$SCHEME_WORKAREA/$MACH/boot/$MACH/$1 if [ "`/usr/bin/find "$INIT" -newer "$DEST"`" != "" ] ; then cp "$INIT" "$DEST" fi