Support non-GNU `make'
This commit is contained in:
parent
35608b36b4
commit
1cd844d0a6
|
@ -182,12 +182,15 @@ Building Installers
|
||||||
To build distribution installers, do not use `make in-place' or just
|
To build distribution installers, do not use `make in-place' or just
|
||||||
`make', but instead start from a clean repository.
|
`make', but instead start from a clean repository.
|
||||||
|
|
||||||
Use one non-Windows machine as a server, where packages will be
|
Use one non-Windows machine as a server[*], where packages will be
|
||||||
pre-built. Then, create platform-specific installers on N client
|
pre-built. Then, create platform-specific installers on N client
|
||||||
machines, each of which contacts the server machine to obtain
|
machines, each of which contacts the server machine to obtain
|
||||||
pre-built packages. The server can act as a client, naturally, to
|
pre-built packages. The server can act as a client, naturally, to
|
||||||
create an installer for the server's platform.
|
create an installer for the server's platform.
|
||||||
|
|
||||||
|
[*] GNU `make' is required on the server machine, but any `make'
|
||||||
|
should work on client machines.
|
||||||
|
|
||||||
Running Build Farms
|
Running Build Farms
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
40
Makefile
40
Makefile
|
@ -36,20 +36,25 @@ LINK_MODE = --save
|
||||||
CPUS =
|
CPUS =
|
||||||
|
|
||||||
in-place:
|
in-place:
|
||||||
if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-in-place ; else $(MAKE) cpus-in-place ; fi
|
if [ "$(CPUS)" = "" ] ; \
|
||||||
|
then $(MAKE) plain-in-place PKGS="$(PKGS)" ; \
|
||||||
|
else $(MAKE) cpus-in-place PKGS="$(PKGS)" ; fi
|
||||||
|
|
||||||
cpus-in-place:
|
cpus-in-place:
|
||||||
$(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)"
|
$(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)" PKGS="$(PKGS)"
|
||||||
|
|
||||||
|
# Explicitly propagate variables for non-GNU `make's:
|
||||||
|
PKG_LINK_COPY_ARGS = PKGS="$(PKGS)" LINK_MODE="$(LINK_MODE)"
|
||||||
|
|
||||||
plain-in-place:
|
plain-in-place:
|
||||||
$(MAKE) base
|
$(MAKE) base
|
||||||
if $(MACOSX_CHECK) ; then $(MAKE) native-from-git ; fi
|
if $(MACOSX_CHECK) ; then $(MAKE) native-from-git ; fi
|
||||||
$(MAKE) pkg-links LINK_MODE="$(LINK_MODE)"
|
$(MAKE) pkg-links $(PKG_LINK_COPY_ARGS)
|
||||||
$(PLAIN_RACKET) -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)
|
$(PLAIN_RACKET) -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)
|
||||||
|
|
||||||
win32-in-place:
|
win32-in-place:
|
||||||
$(MAKE) win32-base
|
$(MAKE) win32-base
|
||||||
$(MAKE) win32-pkg-links PKGS="$(PKGS)" LINK_MODE="$(LINK_MODE)"
|
$(MAKE) win32-pkg-links $(PKG_LINK_COPY_ARGS)
|
||||||
$(WIN32_PLAIN_RACKET) -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)
|
$(WIN32_PLAIN_RACKET) -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)
|
||||||
|
|
||||||
again:
|
again:
|
||||||
|
@ -218,6 +223,9 @@ win32-pkg-links:
|
||||||
# ------------------------------------------------------------
|
# ------------------------------------------------------------
|
||||||
# On a server platform (for an installer build):
|
# On a server platform (for an installer build):
|
||||||
|
|
||||||
|
# These targets require GNU `make', so that we don't have to propagate
|
||||||
|
# variables through all of the target layers.
|
||||||
|
|
||||||
server:
|
server:
|
||||||
$(MAKE) base
|
$(MAKE) base
|
||||||
$(MAKE) server-from-base
|
$(MAKE) server-from-base
|
||||||
|
@ -228,7 +236,9 @@ build/site.rkt:
|
||||||
echo "(machine)" >> build/site.rkt
|
echo "(machine)" >> build/site.rkt
|
||||||
|
|
||||||
stamp:
|
stamp:
|
||||||
if [ "$(BUILD_STAMP)" = '' ] ; then $(MAKE) stamp-as-inferred ; else $(MAKE) stamp-as-given ; fi
|
if [ "$(BUILD_STAMP)" = '' ] ; \
|
||||||
|
then $(MAKE) stamp-as-inferred ; \
|
||||||
|
else $(MAKE) stamp-as-given ; fi
|
||||||
stamp-as-given:
|
stamp-as-given:
|
||||||
echo "$(BUILD_STAMP)" > build/stamp.txt
|
echo "$(BUILD_STAMP)" > build/stamp.txt
|
||||||
stamp-as-inferred:
|
stamp-as-inferred:
|
||||||
|
@ -241,7 +251,9 @@ stamp-from-date:
|
||||||
local-from-base:
|
local-from-base:
|
||||||
$(MAKE) build/site.rkt
|
$(MAKE) build/site.rkt
|
||||||
$(MAKE) stamp
|
$(MAKE) stamp
|
||||||
if [ "$(SRC_CATALOG)" = 'local' ] ; then $(MAKE) build-from-local ; else $(MAKE) build-from-catalog ; fi
|
if [ "$(SRC_CATALOG)" = 'local' ] ; \
|
||||||
|
then $(MAKE) build-from-local ; \
|
||||||
|
else $(MAKE) build-from-catalog ; fi
|
||||||
|
|
||||||
server-from-base:
|
server-from-base:
|
||||||
$(MAKE) local-from-base
|
$(MAKE) local-from-base
|
||||||
|
@ -350,14 +362,6 @@ binary-catalog-server:
|
||||||
# keep the "build/user" directory on the grounds that the
|
# keep the "build/user" directory on the grounds that the
|
||||||
# client is the same as the server.
|
# client is the same as the server.
|
||||||
|
|
||||||
client:
|
|
||||||
if [ ! -d build/log ] ; then rm -rf build/user ; fi
|
|
||||||
$(MAKE) base
|
|
||||||
$(MAKE) distro-build-from-server
|
|
||||||
$(MAKE) bundle-from-server
|
|
||||||
$(MAKE) bundle-config
|
|
||||||
$(MAKE) installer-from-bundle
|
|
||||||
|
|
||||||
COPY_ARGS = SERVER=$(SERVER) PKGS="$(PKGS)" BUILD_STAMP="$(BUILD_STAMP)" \
|
COPY_ARGS = SERVER=$(SERVER) PKGS="$(PKGS)" BUILD_STAMP="$(BUILD_STAMP)" \
|
||||||
RELEASE_MODE=$(RELEASE_MODE) SOURCE_MODE=$(SOURCE_MODE) \
|
RELEASE_MODE=$(RELEASE_MODE) SOURCE_MODE=$(SOURCE_MODE) \
|
||||||
PKG_SOURCE_MODE=$(PKG_SOURCE_MODE) INSTALL_NAME="$(INSTALL_NAME)"\
|
PKG_SOURCE_MODE=$(PKG_SOURCE_MODE) INSTALL_NAME="$(INSTALL_NAME)"\
|
||||||
|
@ -366,6 +370,14 @@ COPY_ARGS = SERVER=$(SERVER) PKGS="$(PKGS)" BUILD_STAMP="$(BUILD_STAMP)" \
|
||||||
DIST_DESC="$(DIST_DESC)" README="$(README)" \
|
DIST_DESC="$(DIST_DESC)" README="$(README)" \
|
||||||
JOB_OPTIONS="$(JOB_OPTIONS)"
|
JOB_OPTIONS="$(JOB_OPTIONS)"
|
||||||
|
|
||||||
|
client:
|
||||||
|
if [ ! -d build/log ] ; then rm -rf build/user ; fi
|
||||||
|
$(MAKE) base $(COPY_ARGS)
|
||||||
|
$(MAKE) distro-build-from-server $(COPY_ARGS)
|
||||||
|
$(MAKE) bundle-from-server $(COPY_ARGS)
|
||||||
|
$(MAKE) bundle-config $(COPY_ARGS)
|
||||||
|
$(MAKE) installer-from-bundle $(COPY_ARGS)
|
||||||
|
|
||||||
SET_BUNDLE_CONFIG_q = $(BUNDLE_CONFIG) "" "" "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q)
|
SET_BUNDLE_CONFIG_q = $(BUNDLE_CONFIG) "" "" "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q)
|
||||||
|
|
||||||
win32-client:
|
win32-client:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user