diff --git a/Makefile b/Makefile index 7f9c7ad414..8524d7a098 100644 --- a/Makefile +++ b/Makefile @@ -178,6 +178,8 @@ INSTALL_SETUP_ARGS = $(SELF_FLAGS_qq) PLT_SETUP_OPTIONS="$(JOB_OPTIONS) $(PLT_SE BASE_INSTALL_TARGET = plain-base-install +WIN32_BUILD_LEVEL = 3m + base: if [ "$(CPUS)" = "" ] ; \ then $(MAKE) plain-base ; \ @@ -205,7 +207,7 @@ win32-base: $(MAKE) win32-remove-setup-dlls IF NOT EXIST build\config cmd /c mkdir build\config cmd /c echo #hash((links-search-files . ())) > build\config\config.rktd - cmd /c racket\src\worksp\build-at racket\src\worksp ..\..\..\build\config $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) + cmd /c racket\src\worksp\build-at racket\src\worksp ..\..\..\build\config $(WIN32_BUILD_LEVEL) $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) # Start by removing DLLs that may be loaded by `raco setup` win32-remove-setup-dlls: @@ -365,17 +367,29 @@ clone-ChezScheme-as-extra: WIN32_CS_COPY_ARGS_EXCEPT_PKGS = SRC_CATALOG="$(SRC_CATALOG)" WIN32_CS_COPY_ARGS = PKGS="$(PKGS)" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS) +WIN32_CS_COPY_ARGS_BOOT = $(WIN32_CS_COPY_ARGS) SETUP_BOOT_MODE="$(SETUP_BOOT_MODE)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" + +WIN32_BOOT_ARGS = SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=cgc WIN32_PLAIN_RACKET=racket\racketcgc win32-cs: - IF "$(RACKET)" == "" $(MAKE) win32-racket-then-cs $(WIN32_CS_COPY_ARGS) + IF "$(RACKET)" == "" $(MAKE) win32-racket-then-cs $(WIN32_BOOT_ARGS) $(WIN32_CS_COPY_ARGS) IF not "$(RACKET)" == "" $(MAKE) win32-just-cs RACKET="$(RACKET)" SCHEME_SRC="$(SCHEME_SRC)" $(WIN32_CS_COPY_ARGS) win32-racket-then-cs: - $(MAKE) win32-minimal-in-place PKGS="" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS) - $(MAKE) win32-just-cs RACKET=$(WIN32_PLAIN_RACKET) SCHEME_SRC="$(SCHEME_SRC)" $(WIN32_CS_COPY_ARGS) + $(MAKE) win32-base PKGS="" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS) WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" + $(MAKE) win32-just-cs RACKET=$(WIN32_PLAIN_RACKET) SCHEME_SRC="$(SCHEME_SRC)" $(WIN32_CS_COPY_ARGS_BOOT) + +CSBUILD_ARGUMENTS = --scheme-dir "$(SCHEME_SRC)" \ + --racketcs-suffix "$(RACKETCS_SUFFIX)" \ + --boot-mode "$(SETUP_BOOT_MODE)" + +WIN32_SETUP_BOOT = -O "info@compiler/cm" \ + -l- setup $(SETUP_BOOT_MODE) racket/src/setup-go.rkt racket/src/build/compiled \ + ignored racket/src/build/ignored.d win32-just-cs: - cmd /c $(RACKET) racket\src\worksp\csbuild.rkt --scheme-dir "$(SCHEME_SRC)" + IF NOT EXIST racket\src\build cmd /c mkdir racket\src\build + cmd /c $(RACKET) $(WIN32_SETUP_BOOT) racket\src\worksp\csbuild.rkt $(CSBUILD_ARGUMENTS) IF NOT EXIST build\config cmd /c mkdir build\config cmd /c echo #hash((links-search-files . ())) > build\config\config.rktd racket\racket$(RACKETCS_SUFFIX) -G build\config -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) diff --git a/racket/src/worksp/build-at.bat b/racket/src/worksp/build-at.bat index f8c6646124..f53c4a0f82 100644 --- a/racket/src/worksp/build-at.bat +++ b/racket/src/worksp/build-at.bat @@ -1,10 +1,11 @@ cd %1 set BUILD_CONFIG=%2 +set BUILD_LEVEL=%3 set PLT_SETUP_OPTIONS=--no-foreign-libs :suloop -if "%3"=="" goto sudone -set PLT_SETUP_OPTIONS=%PLT_SETUP_OPTIONS% %3 +if "%4"=="" goto sudone +set PLT_SETUP_OPTIONS=%PLT_SETUP_OPTIONS% %4 shift goto suloop :sudone diff --git a/racket/src/worksp/build.bat b/racket/src/worksp/build.bat index eb78db0766..c373a9f55e 100644 --- a/racket/src/worksp/build.bat +++ b/racket/src/worksp/build.bat @@ -30,6 +30,9 @@ if errorlevel 1 exit /B 1 if errorlevel 1 exit /B 1 msbuild racket%PLTSLNVER%.sln /p:Configuration=Release /p:Platform=%BUILDMODE% +if not defined BUILD_LEVEL set BUILD_LEVEL="3m" +if "%BUILD_LEVEL%"=="cgc" goto doneBuilding + cd ..\gracket msbuild gracket%PLTSLNVER%.sln /p:Configuration=Release /p:Platform=%BUILDMODE% if errorlevel 1 exit /B 1 @@ -78,3 +81,5 @@ if errorlevel 1 exit /B 1 ..\..\racket -G ..\%BUILD_CONFIG% -u gendef.rkt if errorlevel 1 exit /B 1 + +:doneBuilding diff --git a/racket/src/worksp/cs/Makefile b/racket/src/worksp/cs/Makefile index 05172caa15..141f2e8014 100644 --- a/racket/src/worksp/cs/Makefile +++ b/racket/src/worksp/cs/Makefile @@ -12,8 +12,10 @@ LIBS = $(RKTIO_LIB) \ DEST = ..\..\build\raw_racketcs.exe CSDIR = ..\..\cs\c +COMP_SUBDIR = /DCS_COMPILED_SUBDIR + $(DEST): $(CSDIR).\main.c $(CSDIR)\boot.c $(RKTIO_LIB) - cl /Fe$(DEST) /Ox /MT $(INCS) $(CSDIR)\main.c $(CSDIR)\boot.c $(LIBS) + cl /Fe$(DEST) /Ox /MT $(COMP_SUBDIR) $(INCS) $(CSDIR)\main.c $(CSDIR)\boot.c $(LIBS) # Useful for debugging: diff --git a/racket/src/worksp/csbuild.rkt b/racket/src/worksp/csbuild.rkt index 325367a898..5683da1400 100644 --- a/racket/src/worksp/csbuild.rkt +++ b/racket/src/worksp/csbuild.rkt @@ -13,12 +13,18 @@ (define machine (if (= 32 (system-type 'word)) "ti3nt" "ta6nt")) +(define cs-suffix "CS") +(define boot-mode "--chain") (command-line #:once-each [("--scheme-dir") dir "Select the Chez Scheme build directory, unless