Makefile: auto-build cross Chez in jerboa-{linux,freebsd}-amd64 when absent
ober
6fc7dca19ecede4308b1e7ffd4700ff272c933ec
--- a/Makefile +++ b/Makefile @@ -286,11 +286,14 @@ jerboa-cross: chez build mcp-check lsp-gen chez-cross CC="$(CROSS_CC)" \ $(SCHEME) --script support/build-jerboa-multicall.ss -# Convenience targets: assume `make chez-cross` already produced the cross Chez. +# Convenience targets: build the cross Chez on demand (only if absent), then +# the multicall. Re-running is fast once `.chez-cross-<m>` exists. jerboa-linux-amd64: chez build mcp-check lsp-gen @command -v x86_64-linux-musl-gcc >/dev/null 2>&1 || { echo "ERROR: x86_64-linux-musl-gcc not on PATH" >&2; exit 1; } - @test -d "$(JERBOA_HOME)/.chez-cross-ta6le" || { echo "ERROR: .chez-cross-ta6le not found (make chez-cross CHEZ_TARGET_MACHINE=ta6le CROSS_CC=x86_64-linux-musl-gcc)" >&2; exit 1; } - @test -f "$(CHEZ_BUILD_DIR)/xc-ta6le/s/xpatch" || { echo "ERROR: ta6le xpatch not found" >&2; exit 1; } + @if test ! -d "$(JERBOA_HOME)/.chez-cross-ta6le" || test ! -f "$(CHEZ_BUILD_DIR)/xc-ta6le/s/xpatch"; then \ + echo "=== cross Chez (ta6le) missing — building it first ==="; \ + $(MAKE) chez-cross CHEZ_TARGET_MACHINE=ta6le CROSS_CC=x86_64-linux-musl-gcc; \ + fi @echo "=== Cross-building jerboa multicall: linux-amd64 (ta6le) ===" @JERBOA_HOME=$(JERBOA_HOME) TARGET_MACHINE=ta6le \ JERBOA_CROSS_PREFIX=$(JERBOA_HOME)/.chez-cross-ta6le \ @@ -300,8 +303,10 @@ jerboa-linux-amd64: chez build mcp-check lsp-gen jerboa-freebsd-amd64: chez build mcp-check lsp-gen @test -x "$(JERBOA_HOME)/support/cross-cc-freebsd-amd64" || { echo "ERROR: support/cross-cc-freebsd-amd64 not found/executable" >&2; exit 1; } - @test -d "$(JERBOA_HOME)/.chez-cross-ta6fb" || { echo "ERROR: .chez-cross-ta6fb not found (make chez-cross CHEZ_TARGET_MACHINE=ta6fb CROSS_CC=...)" >&2; exit 1; } - @test -f "$(CHEZ_BUILD_DIR)/xc-ta6fb/s/xpatch" || { echo "ERROR: ta6fb xpatch not found" >&2; exit 1; } + @if test ! -d "$(JERBOA_HOME)/.chez-cross-ta6fb" || test ! -f "$(CHEZ_BUILD_DIR)/xc-ta6fb/s/xpatch"; then \ + echo "=== cross Chez (ta6fb) missing — building it first ==="; \ + $(MAKE) chez-cross CHEZ_TARGET_MACHINE=ta6fb CROSS_CC="$(JERBOA_HOME)/support/cross-cc-freebsd-amd64"; \ + fi @echo "=== Cross-building jerboa multicall: freebsd-amd64 (ta6fb) ===" @JERBOA_HOME=$(JERBOA_HOME) TARGET_MACHINE=ta6fb \ JERBOA_CROSS_PREFIX=$(JERBOA_HOME)/.chez-cross-ta6fb \