[exim-cvs] Build process: Mention Local/Makefile-<buildname>

Top Page
Delete this message
Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Build process: Mention Local/Makefile-<buildname>
Gitweb: https://git.exim.org/exim.git/commitdiff/8459057864e8acfbbd91611cc44779310d6149dc
Commit:     8459057864e8acfbbd91611cc44779310d6149dc
Parent:     1f93955ec73611886a4dc90bde07c3b91b666f53
Author:     Heiko Schlittermann (HS12-RIPE) <hs@???>
AuthorDate: Wed Mar 13 21:43:52 2019 +0100
Committer:  Heiko Schlittermann (HS12-RIPE) <hs@???>
CommitDate: Wed Mar 13 21:43:52 2019 +0100


    Build process: Mention Local/Makefile-<buildname>
---
 src/Makefile   | 22 ++++++++++------------
 src/README     |  1 +
 src/src/EDITME | 12 +++++++-----
 3 files changed, 18 insertions(+), 17 deletions(-)


diff --git a/src/Makefile b/src/Makefile
index 761b295..3aa3cc3 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 225295e..d9379f7 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 b2c27da..a5bc8d0 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