diff options
Diffstat (limited to 'gnu/packages/patches/racket-backport-8.12-chez-configure.patch')
-rw-r--r-- | gnu/packages/patches/racket-backport-8.12-chez-configure.patch | 423 |
1 files changed, 423 insertions, 0 deletions
diff --git a/gnu/packages/patches/racket-backport-8.12-chez-configure.patch b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch new file mode 100644 index 0000000000..483948fec9 --- /dev/null +++ b/gnu/packages/patches/racket-backport-8.12-chez-configure.patch @@ -0,0 +1,423 @@ +From 82157f5b3fb9f71ad7fc978c428d423d06a4a0df Mon Sep 17 00:00:00 2001 +From: Philip McGrath <philip@philipmcgrath.com> +Date: Wed, 28 Feb 2024 19:41:22 -0500 +Subject: [PATCH 1/2] Chez Scheme: Repairs and improvements for building with + external dependencies + +* configure: support `ZUO=<zuo>` + +Supplying `ZUO=<zuo>` skips the submodule check in `configure` +and configures the generated makefile not to build or remove Zuo. + +* configure: support `STEXLIB=<stex>` + +For compatibility with older scripts, when not explicitly configured, +continue to honor the `STEXLIB` environment variable at build time. + +(cherry picked from commit 694fbd47a125c7fde10a328c6fda199dac19f802) +--- + racket/src/ChezScheme/BUILDING | 5 ++-- + racket/src/ChezScheme/build.zuo | 13 +++++++--- + racket/src/ChezScheme/configure | 27 ++++++++++++++++++++- + racket/src/ChezScheme/makefiles/Makefile.in | 6 ++--- + 4 files changed, 40 insertions(+), 11 deletions(-) + +diff --git a/racket/src/ChezScheme/BUILDING b/racket/src/ChezScheme/BUILDING +index 50fde27771..2df29b5bd8 100644 +--- a/racket/src/ChezScheme/BUILDING ++++ b/racket/src/ChezScheme/BUILDING +@@ -155,7 +155,8 @@ information on the supported options. + The generated makefile mostly just ensures that a `zuo` executable is + built in a `bin` directory, and then it defers the actual build work + to `zuo`, which uses the "main.zuo" file. If you have `zuo` installed, +-you can use `zuo` directly instead of `make`. In general, instead of ++you can use `zuo` directly instead of `make`: in that case, you may ++wish to use `./configure ZUO=<zuo>`. In general, instead of + the command `make X` to build target `X` as described below, you can + use `zuo . X` (or `bin/zuo . X` after `bin/zuo` is built). + +@@ -339,7 +340,7 @@ The makefile supports several targets: + * `make clean` + + Removes all built elements from the workarea, and then removes +- `bin/zuo`. ++ `bin/zuo` (unless configured with `ZUO=<zuo>`). + + + WINDOWS VIA COMMAND PROMPT +diff --git a/racket/src/ChezScheme/build.zuo b/racket/src/ChezScheme/build.zuo +index a211632a89..432cc6e5a1 100644 +--- a/racket/src/ChezScheme/build.zuo ++++ b/racket/src/ChezScheme/build.zuo +@@ -218,10 +218,15 @@ + token)) + + (define stexlib +- (let ((found (assoc "STEXLIB" (hash-ref (runtime-env) 'env)))) +- (if found +- (cdr found) +- (at-source "stex")))) ++ (let ([configured (hash-ref config 'STEXLIB "")] ++ [env (assoc "STEXLIB" (hash-ref (runtime-env) 'env))]) ++ (cond ++ [(not (equal? "" configured)) ++ configured] ++ [env ++ (cdr env)] ++ [else ++ (at-source "stex")]))) + (define stex-sources + (source-tree stexlib)) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index 721d1d1335..f88c6f7625 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -93,6 +93,7 @@ default_warning_flags="-Wpointer-arith -Wall -Wextra -Wno-implicit-fallthrough" + CFLAGS_ADD= + zlibLib= + LZ4Lib= ++STEXLIB= + Kernel=KernelLib + buildKernelOnly=no + enableFrompb=yes +@@ -102,6 +103,7 @@ empetite=no + moreBootFiles= + preloadBootFiles= + alwaysUseBootFile= ++zuoExternal= + + CONFIG_UNAME=`uname` + +@@ -442,6 +444,12 @@ while [ $# != 0 ] ; do + LZ4=*) + LZ4Lib=`echo $1 | sed -e 's/^LZ4=//'` + ;; ++ STEXLIB=*) ++ STEXLIB=`echo $1 | sed -e 's/^STEXLIB=//'` ++ ;; ++ ZUO=*) ++ zuoExternal=`echo $1 | sed -e 's/^ZUO=//'` ++ ;; + *) + echo "option '$1' unrecognized or missing an argument; try $0 --help" + exit 1 +@@ -667,6 +675,8 @@ if [ "$help" = "yes" ]; then + echo " STRIP=<strip> executable stripper" + echo " ZLIB=<lib> link to <lib> instead of own zlib" + echo " LZ4=<lib> link to <lib> instead of own LZ4" ++ echo " STEXLIB=<stex> build docs with <stex> instead of own stex" ++ echo " ZUO=<zuo> build with <zuo> instead of own Zuo" + echo "" + echo "Available machine types: $machs" + echo "" +@@ -869,6 +879,16 @@ if [ "$addflags" = "yes" ] ; then + fi + fi + ++if [ "${zuoExternal}" = "" ] ; then ++ ZUO="bin/zuo" ++ RM_ZUO="rm -f bin/zuo" ++ ZUO_TARGET="bin/zuo" ++else ++ ZUO="${zuoExternal}" ++ RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" ++ ZUO_TARGET="DoNotBuildZuo" ++fi ++ + # more compile and link flags for c/Mf-unix and mats/Mf-unix + mdinclude= + mdcppflags= +@@ -1039,7 +1059,7 @@ cp "$srcdir"/makefiles/buildmain.zuo main.zuo + # Some idea, but in the workarea, so it refers to "workarea.zuo" here: + cp "$srcdir"/makefiles/workmain.zuo $w/main.zuo + +-# The content of "$w/Makefile" records configuration decisions, ++# The content of "$w/Mf-config" records configuration decisions, + # and the Zuo build script takes it from there + cat > $w/Mf-config << END + srcdir=$srcdir +@@ -1075,6 +1095,7 @@ cursesLib=$cursesLib + ncursesLib=$ncursesLib + zlibLib=$zlibLib + LZ4Lib=$LZ4Lib ++STEXLIB=$STEXLIB + warningFlags=$warningFlags + Kernel=$Kernel + installscriptname=$installscriptname +@@ -1086,6 +1107,10 @@ preloadBootFiles=$preloadBootFiles + alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + ++ZUO=$ZUO ++RM_ZUO=$RM_ZUO ++ZUO_TARGET=$ZUO_TARGET ++ + InstallBin=$installbin + InstallLib=$installlib + InstallMan=$installman/man1 +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index cfdd0230a3..4865bf2e2f 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -3,8 +3,6 @@ workarea=$(w) + + include $(workarea)/Mf-config + +-ZUO=bin/zuo +- + .PHONY: build + build: $(ZUO) + + $(ZUO) $(workarea) MAKE="$(MAKE)" +@@ -140,9 +138,9 @@ pkg: $(ZUO) + .PHONY: clean + clean: $(ZUO) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" +- rm -f bin/zuo ++ $(RM_ZUO) + + # Using `+` here means that $(ZUO) gets built even if `-n`/`--dry-run` is provided to `make` +-$(ZUO): $(srcdir)/../zuo/zuo.c ++$(ZUO_TARGET): $(srcdir)/../zuo/zuo.c + + mkdir -p bin + + $(CC_FOR_BUILD) -DZUO_LIB_PATH='"'"$(upsrcdir)/../zuo/lib"'"' -o $(ZUO) $(srcdir)/../zuo/zuo.c + +base-commit: 78fef00d4d16a79fdf6ab31924b3a80cadf4b368 +-- +2.41.0 + + +From e2bc69c5ce7437dd9a1b30ac1b12b3a56872c491 Mon Sep 17 00:00:00 2001 +From: Matthew Flatt <mflatt@racket-lang.org> +Date: Sun, 10 Mar 2024 09:13:40 -0600 +Subject: [PATCH 2/2] Chez Scheme: adjust `configure ZUO=<command>` support + +Continuing from 694fbd47a1, adjust the generated makefile so the +supplied `<command>` is not a makefile dependency. That way, `ZUO=zuo` +works if `zuo` is installed and the current build directory is not the +source directory. (The `zuo` executable is a dependency in a real and +relevant sense, but not in the sense of dependencies that we normally +track in makefiles.) + +Also adapt the makefile for the case that `ZUO=...` is not supplied +and the build directory is not the source directory, in which case +`ZUO_LIB_PATH` needs to be relative to the source directory. + +Using `make ZUO=zuo` can also work, but in that case, `bin/zuo` is +still built as a dependency. It's possible that some portable makefile +magic could overcome that limitation, but it doesn't seem important. + +(cherry picked from commit 28157ba88d48fe645563f46f6c00d6626b3428fa) +--- + racket/src/ChezScheme/configure | 3 + + racket/src/ChezScheme/makefiles/Makefile.in | 70 +++++++++++---------- + 2 files changed, 40 insertions(+), 33 deletions(-) + +diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure +index f88c6f7625..201dbe580f 100755 +--- a/racket/src/ChezScheme/configure ++++ b/racket/src/ChezScheme/configure +@@ -881,10 +881,12 @@ fi + + if [ "${zuoExternal}" = "" ] ; then + ZUO="bin/zuo" ++ ZUO_DEP="${ZUO}" + RM_ZUO="rm -f bin/zuo" + ZUO_TARGET="bin/zuo" + else + ZUO="${zuoExternal}" ++ ZUO_DEP="" + RM_ZUO="@echo 'Not cleaning external ${zuoExternal}'" + ZUO_TARGET="DoNotBuildZuo" + fi +@@ -1108,6 +1110,7 @@ alwaysUseBootFile=$alwaysUseBootFile + relativeBootFiles=$relativeBootFiles + + ZUO=$ZUO ++ZUO_DEP=$ZUO_DEP + RM_ZUO=$RM_ZUO + ZUO_TARGET=$ZUO_TARGET + +diff --git a/racket/src/ChezScheme/makefiles/Makefile.in b/racket/src/ChezScheme/makefiles/Makefile.in +index 4865bf2e2f..5ce237178e 100644 +--- a/racket/src/ChezScheme/makefiles/Makefile.in ++++ b/racket/src/ChezScheme/makefiles/Makefile.in +@@ -4,51 +4,55 @@ workarea=$(w) + include $(workarea)/Mf-config + + .PHONY: build +-build: $(ZUO) ++build: $(ZUO_DEP) + + $(ZUO) $(workarea) MAKE="$(MAKE)" + + .PHONY: run +-run: $(ZUO) ++run: $(ZUO_DEP) + + $(ZUO) $(workarea) run + + .PHONY: kernel +-kernel: $(ZUO) ++kernel: $(ZUO_DEP) + + $(ZUO) $(workarea) kernel MAKE="$(MAKE)" + + .PHONY: install +-install: $(ZUO) ++install: $(ZUO_DEP) + $(ZUO) $(workarea) install MAKE="$(MAKE)" + + .PHONY: uninstall +-uninstall: $(ZUO) ++uninstall: $(ZUO_DEP) + + $(ZUO) $(workarea) uninstall MAKE="$(MAKE)" + +-.PHONY: test +-test: $(ZUO) +- + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++.PHONY: test-one ++test-one: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test-one MAKE="$(MAKE)" + + .PHONY: test-some-fast +-test-some-fast: $(ZUO) ++test-some-fast: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some-fast MAKE="$(MAKE)" + + .PHONY: test-some +-test-some: $(ZUO) ++test-some: $(ZUO_DEP) + + $(ZUO) $(workarea) test-some MAKE="$(MAKE)" + ++.PHONY: test ++test: $(ZUO_DEP) ++ + $(ZUO) $(workarea) test MAKE="$(MAKE)" ++ + .PHONY: test-more +-test-more: $(ZUO) ++test-more: $(ZUO_DEP) + + $(ZUO) $(workarea) test-more MAKE="$(MAKE)" + + .PHONY: coverage +-coverage: $(ZUO) ++coverage: $(ZUO_DEP) + + $(ZUO) $(workarea) coverage MAKE="$(MAKE)" + + .PHONY: bootfiles +-bootfiles: $(ZUO) ++bootfiles: $(ZUO_DEP) + + $(ZUO) $(workarea) bootfiles MAKE="$(MAKE)" + + .PHONY: reset +-reset: $(ZUO) ++reset: $(ZUO_DEP) + + $(ZUO) $(workarea) reset MAKE="$(MAKE)" + + # Supply XM=<machine> to build boot files for <machine> +@@ -57,86 +61,86 @@ boot: + + $(ZUO) $(workarea) boot "$(XM)" MAKE="$(MAKE)" + + # `<machine>.boot` as alias for `boot XM=<machine>` +-%.boot: $(ZUO) ++%.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot $* MAKE="$(MAKE)" + + .PHONY: auto.boot +-auto.boot: $(ZUO) ++auto.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot MAKE="$(MAKE)" + + SCHEME=scheme + + .PHONY: cross.boot +-cross.boot: $(ZUO) ++cross.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) boot SCHEME="$(SCHEME)" MAKE="$(MAKE)" + + .PHONY: re.boot +-re.boot: $(ZUO) ++re.boot: $(ZUO_DEP) + + $(ZUO) $(workarea) reboot SCHEME="$(SCHEME)" + + # Supply XM=<machine> to build boot files for <machine> + # with o=3 d=0 for the cross compiler, and only after + # building the kernel for the configured machine + .PHONY: bootquick +-bootquick: $(ZUO) ++bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick "$(XM)" MAKE="$(MAKE)" + + # `<machine>.bootquick` as alias for `boot XM=<machine>` +-%.bootquick: $(ZUO) ++%.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick $* MAKE="$(MAKE)" + +-auto.bootquick: $(ZUO) ++auto.bootquick: $(ZUO_DEP) + + $(ZUO) $(workarea) bootquick MAKE="$(MAKE)" + + # Supply XM=<machine>-<tag>.bootpbchunk to repackage boot files for + # <machine> with pbchunk sources, including additional + # boot files + .PHONY: bootpbchunk +-bootpbchunk: $(ZUO) ++bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk "$(XM)" $(ARGS) MAKE="$(MAKE)" + + # `<machine>.bootpbchunk` as alias for `pbchunk XM=<machine>` +-%.bootpbchunk: $(ZUO) ++%.bootpbchunk: $(ZUO_DEP) + + $(ZUO) $(workarea) bootpbchunk $* $(ARGS) MAKE="$(MAKE)" + + .PHONY: docs +-docs: build $(ZUO) ++docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) docs MAKE="$(MAKE)" + + .PHONY: csug +-csug: build $(ZUO) ++csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) csug MAKE="$(MAKE)" + + .PHONY: release_notes +-release_notes: build $(ZUO) ++release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) release_notes MAKE="$(MAKE)" + + .PHONY: install-docs +-install-docs: build $(ZUO) ++install-docs: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-docs MAKE="$(MAKE)" + + .PHONY: install-csug +-install-csug: build $(ZUO) ++install-csug: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-csug MAKE="$(MAKE)" + + .PHONY: install-release_notes +-install-release_notes: build $(ZUO) ++install-release_notes: build $(ZUO_DEP) + + $(ZUO) $(workarea) install-release_notes MAKE="$(MAKE)" + + .PHONY: bintar +-bintar: $(ZUO) ++bintar: $(ZUO_DEP) + + $(ZUO) $(workarea) bintar MAKE="$(MAKE)" + + .PHONY: rpm +-rpm: $(ZUO) ++rpm: $(ZUO_DEP) + + $(ZUO) $(workarea) rpm MAKE="$(MAKE)" + + .PHONY: pkg +-pkg: $(ZUO) ++pkg: $(ZUO_DEP) + + $(ZUO) $(workarea) pkg MAKE="$(MAKE)" + + .PHONY: clean +-clean: $(ZUO) ++clean: $(ZUO_DEP) + + $(ZUO) $(workarea) clean MAKE="$(MAKE)" + $(RM_ZUO) + +-- +2.41.0 + |