cs: repairs to Windows build client

This commit is contained in:
Matthew Flatt 2018-10-25 16:56:26 -06:00
parent f3708c208d
commit 3b9bc21304
2 changed files with 98 additions and 21 deletions

View File

@ -263,6 +263,7 @@ EXTRA_REPOS_BASE =
# Redirected for `cs-as-is` and `cs-base`:
CS_SETUP_TARGET = plain-in-place-after-base
WIN32_CS_SETUP_TARGET = win32-in-place-after-base
cs:
if [ "$(CPUS)" = "" ] ; \
@ -365,23 +366,30 @@ clone-ChezScheme-as-extra:
cd racket/src/build/ChezScheme && git clone $(GIT_CLONE_ARGS_qq) $(EXTRA_REPOS_BASE)stex/.git
cd racket/src/build/ChezScheme && git clone $(GIT_CLONE_ARGS_qq) $(EXTRA_REPOS_BASE)zlib/.git
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_EXCEPT_PKGS_SUT = SRC_CATALOG="$(SRC_CATALOG)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" \
SCHEME_SRC="$(SCHEME_SRC)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)"
WIN32_CS_COPY_ARGS_EXCEPT_SUT = PKGS="$(PKGS)" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS_SUT)
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-cs:
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)
IF not "$(RACKET)" == "" $(MAKE) win32-just-cs RACKET="$(RACKET)" $(WIN32_CS_COPY_ARGS)
win32-cs-base:
$(MAKE) win32-cs $(WIN32_CS_COPY_ARGS_EXCEPT_SUT) RACKET="$(RACKET)" WIN32_CS_SETUP_TARGET=nothing-after-base
win32-racket-then-cs:
$(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)
$(MAKE) win32-base PKGS="" $(WIN32_CS_COPY_ARGS_EXCEPT_PKGS_SUT) WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
$(MAKE) win32-just-cs RACKET=$(WIN32_PLAIN_RACKET) $(WIN32_CS_COPY_ARGS_BOOT)
CSBUILD_ARGUMENTS = --scheme-dir "$(SCHEME_SRC)" \
--racketcs-suffix "$(RACKETCS_SUFFIX)" \
--boot-mode "$(SETUP_BOOT_MODE)"
--boot-mode "$(SETUP_BOOT_MODE)" \
--extra-repos-base "$(EXTRA_REPOS_BASE)" \
-- $(GIT_CLONE_ARGS_qq)
WIN32_SETUP_BOOT = -O "info@compiler/cm" \
-l- setup $(SETUP_BOOT_MODE) racket/src/setup-go.rkt racket/src/build/compiled \
@ -393,7 +401,7 @@ win32-just-cs:
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)
$(MAKE) win32-in-place-after-base WIN32_PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) $(WIN32_CS_COPY_ARGS)
$(MAKE) $(WIN32_CS_SETUP_TARGET) WIN32_PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) $(WIN32_CS_COPY_ARGS)
# ------------------------------------------------------------
# Configuration options for building installers
@ -668,7 +676,7 @@ WIN32_CLIENT_BASE = win32-base
PROP_ARGS = SERVER=$(SERVER) SERVER_PORT=$(SERVER_PORT) SERVER_HOSTS="$(SERVER_HOSTS)" \
PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" BUILD_STAMP="$(BUILD_STAMP)" \
EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" \
EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" \
RELEASE_MODE=$(RELEASE_MODE) SOURCE_MODE=$(SOURCE_MODE) \
VERSIONLESS_MODE=$(VERSIONLESS_MODE) MAC_PKG_MODE=$(MAC_PKG_MODE) \
PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" INSTALL_NAME="$(INSTALL_NAME)" \
@ -748,7 +756,7 @@ win32-bundle:
win32-bundle-from-server:
$(MAKE) win32-bundle $(COPY_ARGS)
$(WIN32_RACKET) -l distro-build/unpack-collects http://$(SVR_PRT)/$(SERVER_COLLECTS_PATH)
$(WIN32_RACKET) -l- distro-build/unpack-collects $(UNPACK_COLLECTS_FLAGS) http://$(SVR_PRT)/$(SERVER_COLLECTS_PATH)
$(WIN32_BUNDLE_RACO) pkg install $(REMOTE_INST_AUTO) $(PKG_SOURCE_MODE) $(REQUIRED_PKGS)
$(WIN32_BUNDLE_RACO) pkg install $(REMOTE_INST_AUTO) $(PKG_SOURCE_MODE) $(PKGS)

View File

@ -9,27 +9,34 @@
(define-runtime-path here ".")
(define scheme-dir-provided? #f)
(define abs-scheme-dir (build-path here 'up "build" "ChezScheme"))
(define machine (if (= 32 (system-type 'word))
"ti3nt"
"ta6nt"))
(define cs-suffix "CS")
(define boot-mode "--chain")
(define extra-repos-base #f)
(define git-clone-args '())
(command-line
#:once-each
[("--scheme-dir") dir "Select the Chez Scheme build directory, unless <dir> is \"\""
(unless (equal? dir "")
(set! abs-scheme-dir (path->complete-path dir)))]
(unless (equal? dir "")
(set! scheme-dir-provided? #t)
(set! abs-scheme-dir (path->complete-path dir)))]
[("--racketcs-suffix") str "Select the suffix for RacketCS"
(set! cs-suffix (string-upcase str))]
(set! cs-suffix (string-upcase str))]
[("--boot-mode") mode "Select the mode for Racket bootstrapping"
(set! boot-mode mode)]
(set! boot-mode mode)]
[("--machine") mach "Select the Chez Scheme machine name"
(set! machine mach)]
(set! machine mach)]
[("--extra-repos-base") url "Clone repos from <url>ChezScheme/.git, etc."
(unless (equal? url "")
(set! extra-repos-base url))]
#:args
()
(void))
clone-arg
(set! git-clone-args clone-arg))
(current-directory here)
@ -58,11 +65,31 @@
;; ----------------------------------------
(unless (directory-exists? scheme-dir)
(system*! "git"
"clone"
"--depth" "1"
"https://github.com/mflatt/ChezScheme"
scheme-dir))
(define (clone from to [git-clone-args '()])
(apply system*! (append
(list "git"
"clone")
git-clone-args
(list from to))))
(cond
[extra-repos-base
;; Intentionally not using `git-clone-args`
(clone (format "~aChezScheme/.git" extra-repos-base)
scheme-dir)
(clone (format "~ananopass/.git" extra-repos-base)
(build-path scheme-dir "nanopass"))
(clone (format "~astex/.git" extra-repos-base)
(build-path scheme-dir "stex"))
(clone (format "~aglib/.git" extra-repos-base)
(build-path scheme-dir "zlib"))]
[else
(clone "https://github.com/mflatt/ChezScheme"
scheme-dir
git-clone-args)]))
(unless scheme-dir-provided?
(parameterize ([current-directory scheme-dir])
(system*! "git" "pull")))
(unless (file-exists? (build-path scheme-dir "zlib" "Makefile"))
(parameterize ([current-directory scheme-dir])
@ -175,3 +202,45 @@
(format "../../Racket~a.exe" cs-suffix)
(build-path scheme-dir machine "boot" machine)
"../build/racket.boot")
;; ----------------------------------------
;; Finish installation with "mzstart", "mrstart", and other
;; implementation-independent details as in "build.bat"
(define (get-status src)
(system*! "cl" src)
(system* (path-replace-suffix src #".exe")))
(define buildmode (if (get-status "rbuildmode.c")
"x64"
"win32"))
(define pltslnver (cond
[(not (get-status "checkvs9.c")) "9"]
[(not (get-status "genvsx.c")) "X"]
[else ""]))
(make-directory* "../../etc")
(make-directory* "../../doc")
(make-directory* "../../share")
(copy-file "../COPYING-libscheme.txt"
"../../share/COPYING-libscheme.txt"
#t)
(copy-file "../COPYING_LESSER.txt"
"../../share/COPYING_LESSER.txt"
#t)
(copy-file "../COPYING.txt"
"../../share/COPYING.txt"
#t)
(parameterize ([current-directory "mzstart"])
(system*! "msbuild"
(format "mzstart~a.sln" pltslnver)
"/p:Configuration=Release"
(format "/p:Platform=~a" buildmode)))
(parameterize ([current-directory "mrstart"])
(system*! "msbuild"
(format "mrstart~a.sln" pltslnver)
"/p:Configuration=Release"
(format "/p:Platform=~a" buildmode)))