summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>2019-03-13 21:43:52 +0100
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>2019-03-13 21:43:52 +0100
commit8459057864e8acfbbd91611cc44779310d6149dc (patch)
tree762d31c9f289aed3110b1be6ac5d82a04a7beab7 /src
parent1f93955ec73611886a4dc90bde07c3b91b666f53 (diff)
Build process: Mention Local/Makefile-<buildname>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile22
-rw-r--r--src/README1
-rw-r--r--src/src/EDITME12
3 files changed, 18 insertions, 17 deletions
diff --git a/src/Makefile b/src/Makefile
index 761b2956c..3aa3cc374 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,35 +13,33 @@
SHELL=/bin/sh
RM_COMMAND=/bin/rm
-# If a build name has not been specified by running this make file via a
-# command of the form "make build=xxxx", then determine the name of the
-# operating system and the machine architecture and use that. This does not
-# provide an override for the OS type and architecture type; they still have
-# to be used for the OS-specific files. To override them, you can set the
+# The buildname defaults to "<os-type>-<arch-type>". It can be
+# overridden by the "build" parameter when invoking make (e.g. make
+# build=xxx) This does not provide an override for the OS type and
+# architecture type used during the build process; they still have to be
+# used for the OS-specific files. To override them, you can set the
# shell variables OSTYPE and ARCHTYPE when running make.
#
-# EXIM_BUILD_SUFFIX should be used to enable parallel builds on a file
-# system shared among different Linux distros (same os-type, same
-# arch-type). The ../test/runtest script is expected to honour the
-# EXIM_BUILD_SUFFIX when searching the Exim binary.
-# NOTE: EXIM_BUILD_SUFFIX is considered *experimental*.
+# EXIM_BUILD_SUFFIX gets appended to the buildname. (This enables
+# parallel builds on a file system shared among different Linux distros
+# (same os-type, same arch-type). The ../test/runtest script honours the
+# EXIM_BUILD_SUFFIX when searching the Exim binary.)
buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}$${EXIM_BUILD_SUFFIX:+.$$EXIM_BUILD_SUFFIX}
# The default target checks for the existence of Local/Makefile, that the main
# makefile is built and up-to-date, and then it runs it.
+# If Local/Makefile-<buildname> exists, it is read too.
all: Local/Makefile configure
@cd build-$(buildname); $(MAKE) SHELL=$(SHELL) $(MFLAGS)
-
# This pair for the convenience of of the Debian maintainers
exim: Local/Makefile configure
@cd build-$(buildname); $(MAKE) SHELL=$(SHELL) $(MFLAGS) exim
utils: Local/Makefile configure
@cd build-$(buildname); $(MAKE) SHELL=$(SHELL) $(MFLAGS) utils
-
Local/Makefile:
@echo ""
@echo "*** Please create Local/Makefile by copying src/EDITME and making"
diff --git a/src/README b/src/README
index 225295efb..d9379f7f8 100644
--- a/src/README
+++ b/src/README
@@ -150,6 +150,7 @@ system and architecture types respectively, the files used are:
Local/Makefile-<ostype>
Local/Makefile-<archtype>
Local/Makefile-<ostype>-<archtype>
+ Local/Makefile-<buildname>
OS/Makefile-Base
Of the Local/* files, only Local/Makefile is required to exist; the rest are
diff --git a/src/src/EDITME b/src/src/EDITME
index b2c27dafe..a5bc8d0aa 100644
--- a/src/src/EDITME
+++ b/src/src/EDITME
@@ -12,11 +12,13 @@
# Exim distribution directory before running the "make" command.
# Things that depend on the operating system have default settings in
-# OS/Makefile-Default, but these are overridden for some OS by files called
-# called OS/Makefile-<osname>. You can further override these by creating files
-# called Local/Makefile-<osname>, where "<osname>" stands for the name of your
-# operating system - look at the names in the OS directory to see which names
-# are recognized.
+# OS/Makefile-Default, but these are overridden for some OS by files
+# called called OS/Makefile-<osname>. You can further override these by
+# creating files called Local/Makefile-<osname>, and
+# Local/Makefile-<buildname> (where "<osname>" stands for the name of
+# your operating system - look at the names in the OS directory to see
+# which names are recognized, and "<buildname>" is derived from the
+# environment variable "build")
# However, if you are building Exim for a single OS only, you don't need to
# worry about setting up Local/Makefile-<osname>. Any build-time configuration