Use 3m to build CS on Windows

The extra time to build 3m via CGC seems worth it, especially when
building Chez Scheme's boot files.
This commit is contained in:
Matthew Flatt 2019-06-11 19:14:37 -06:00
parent 204b5cb52e
commit e51c44fa3d
4 changed files with 33 additions and 15 deletions

View File

@ -414,7 +414,7 @@ WIN32_CS_COPY_ARGS_EXCEPT_SUT = PKGS="$(PKGS)" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS_
WIN32_CS_COPY_ARGS = PKGS="$(PKGS)" WIN32_CS_SETUP_TARGET=$(WIN32_CS_SETUP_TARGET) $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS_SUT)
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_BOOT_ARGS = SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=3m WIN32_PLAIN_RACKET=racket\racket3m
win32-cs:
IF "$(RACKET)" == "" $(MAKE) win32-racket-then-cs $(WIN32_BOOT_ARGS) $(WIN32_CS_COPY_ARGS)

View File

@ -1,10 +1,10 @@
set BUILD_LEVEL=cgc
set BUILD_LEVEL=3m
call build.bat
..\..\RacketCGC.exe -O "info@compiler/cm" -l- setup --boot ../setup-go.rkt ../build/compiled ^
ignored ../build/ignored.d ^
csbuild.rkt ^
--racketcs-suffix "" --pull ^
-- --depth 1
..\..\Racket3m.exe -O "info@compiler/cm" -l- setup --boot ../setup-go.rkt ../build/compiled ^
ignored ../build/ignored.d ^
csbuild.rkt ^
--racketcs-suffix "" --pull ^
-- --depth 1
..\..\Racket.exe -N "raco" -l- setup

View File

@ -30,7 +30,7 @@ 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 not defined BUILD_LEVEL set BUILD_LEVEL="all"
if "%BUILD_LEVEL%"=="cgc" goto doneBuilding
cd ..\gracket
@ -42,10 +42,12 @@ REM Assumes that Racket is started in a subdirectory of here:
set BOOT_SETUP=-W "info@compiler/cm error" -l- setup --boot ../../setup-go.rkt ../compiled
cd gc2
..\..\..\racketcgc -G ..\%BUILD_CONFIG% %BOOT_SETUP% make.none ../compiled/make.dep make.rkt
..\..\..\racketcgc -G ..\%BUILD_CONFIG% %BOOT_SETUP% make.none ../compiled/make.dep make.rkt --build-level %BUILD_LEVEL%
if errorlevel 1 exit /B 1
cd ..
if "%BUILD_LEVEL%"=="3m" goto doneBuilding
cd mzstart
msbuild mzstart%PLTSLNVER%.sln /p:Configuration=Release /p:Platform=%BUILDMODE%
if errorlevel 1 exit /B 1

View File

@ -1,7 +1,18 @@
#lang racket/base
(require racket/system
racket/cmdline
(for-label "../../racket/gc2/xform-mod.rkt"))
(define suffix "")
(command-line
#:once-each
[("--build-level") level "Specify a suffix-determining build level"
(unless (equal? level "all")
(set! suffix level))]
#:args ()
(void))
(define (system- s)
(eprintf "~a\n" s)
(system s))
@ -275,7 +286,7 @@
(c-compile "../../racket/src/mzsj86.c" "xsrc/mzsj86.obj" '() mz-inc)
(define dll "../../../lib/libracket3mxxxxxxx.dll")
(define exe "../../../Racket.exe")
(define exe (format "../../../Racket~a.exe" suffix))
(define libs "kernel32.lib user32.lib ws2_32.lib shell32.lib advapi32.lib")
@ -368,7 +379,8 @@
null
exe
"")
(system- "mt.exe -manifest ../racket/racket.manifest -outputresource:../../../Racket.exe;1")
(system- (format "mt.exe -manifest ../racket/racket.manifest -outputresource:~a;1"
exe))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -393,14 +405,17 @@
(check-rc "gracket.res" "../gracket/gracket.rc" "../gracket/gracket.ico")
(define gui-exe (format "../../../lib/GRacket~a.exe" suffix))
(link-exe (list
"gracket.res"
"xsrc/grmain.obj"
(find-build-file "racket" "MemoryModule.obj"))
'("advapi32.lib")
"../../../lib/GRacket.exe"
gui-exe
" /subsystem:windows")
(system- "mt.exe -manifest ../gracket/gracket.manifest -outputresource:../../../lib/GRacket.exe;1")
(system- (format "mt.exe -manifest ../gracket/gracket.manifest -outputresource:~a;1"
gui-exe))
(system- (format "~a /MT /O2 /DMZ_PRECISE_GC /I../../racket/include /I.. /c ../../racket/dynsrc/mzdyn.c /Fomzdyn3m.obj"
cl.exe))
@ -418,5 +433,6 @@
(copy-file/diff "mzdyn3m.exp" "../../../lib/msvc/mzdyn3m.exp")
(copy-file/diff "mzdyn3m.obj" "../../../lib/msvc/mzdyn3m.obj")
(parameterize ([current-command-line-arguments (vector "../../../lib/system.rktd")])
(dynamic-require "../../racket/mksystem.rkt" #f))
(when (equal? suffix "")
(parameterize ([current-command-line-arguments (vector "../../../lib/system.rktd")])
(dynamic-require "../../racket/mksystem.rkt" #f)))