summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Finch <dot@dot.at>2008-02-14 13:49:35 +0000
committerTony Finch <dot@dot.at>2008-02-14 13:49:35 +0000
commit23510047606339a2fd8433d0542145445b60ff78 (patch)
treed7ab2f06b82677f6328bbc757dbaf11e98b83a03
parent65a7d8c381dfb4788ecd5c40a28365acb1f377e1 (diff)
Fix parallel build (make -j). Fixes: bug #668.
-rw-r--r--doc/doc-txt/ChangeLog3
-rw-r--r--src/Makefile9
-rw-r--r--src/OS/Makefile-Base25
-rw-r--r--src/src/auths/Makefile3
-rw-r--r--src/src/lookups/Makefile3
-rw-r--r--src/src/routers/Makefile3
-rw-r--r--src/src/transports/Makefile3
7 files changed, 16 insertions, 33 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 6c84133b4..7963b581e 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.544 2008/02/12 12:52:51 nm4 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.545 2008/02/14 13:49:35 fanf2 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -32,6 +32,7 @@ TF/03 Bugzilla 615: When checking the local_parts router precondition
NM/05 Bugzilla 521: Integrated SPF Best Guess support contributed by
Robert Millan. Documentation is in experimental-spec.txt
+TF/04 Bugzilla 668: Fix parallel build (make -j).
Exim version 4.69
diff --git a/src/Makefile b/src/Makefile
index c1233fced..cf7968db0 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/Makefile,v 1.4 2005/09/12 13:55:54 ph10 Exp $
+# $Cambridge: exim/src/Makefile,v 1.5 2008/02/14 13:49:35 fanf2 Exp $
# Top-level makefile for Exim; handles creating a build directory with
# appropriate links, and then creating and running the main makefile in that
@@ -27,7 +27,8 @@ buildname=$${build:-`$(SHELL) scripts/os-type`-`$(SHELL) scripts/arch-type`}
# 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.
-all: Local/Makefile configure go
+all: Local/Makefile configure
+ @cd build-$(buildname); $(MAKE) SHELL=$(SHELL) $(MFLAGS)
Local/Makefile:
@echo ""
@@ -62,10 +63,6 @@ makefile: build-directory
@cd build-$(buildname); $(RM_COMMAND) -f Makefile; \
build=$(build) $(SHELL) ../scripts/Configure-Makefile
-# Go to the build directory and do the business
-
-go:; @cd build-$(buildname); $(MAKE) SHELL=$(SHELL) $(MFLAGS)
-
# The installation commands are kept in a separate script, which expects
# to be run from inside the build directory.
diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base
index f3d377676..cc38cb1ee 100644
--- a/src/OS/Makefile-Base
+++ b/src/OS/Makefile-Base
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/OS/Makefile-Base,v 1.14 2008/01/17 13:03:35 tom Exp $
+# $Cambridge: exim/src/OS/Makefile-Base,v 1.15 2008/02/14 13:49:35 fanf2 Exp $
# This file is the basis of the main makefile for Exim and friends. The
# makefile at the top level arranges to build the main makefile by calling
@@ -525,7 +525,7 @@ util-os.o: $(HDRS) os.c
# The local scan module depends only on its own special header, and is compiled
# from a source whose location is set by configuration.
-local_scan.o: Makefile local_scan.h ../$(LOCAL_SCAN_SOURCE)
+local_scan.o: Makefile config.h local_scan.h ../$(LOCAL_SCAN_SOURCE)
@echo "$(CC) local_scan.c"
$(FE)$(CC) -c $(CFLAGS) -I. $(INCLUDE) -o local_scan.o ../$(LOCAL_SCAN_SOURCE)
@@ -634,22 +634,11 @@ $(MONBIN): $(HDRS)
../exim_monitor/`echo $@ | sed 's/o$$/c/'`
-# Targets for the various libraries that Exim uses. This coding is tedious,
-# because different versions of "make" behave in different ways with regard
-# to rebuilding. If these target names are of the form pcre/libpcre.a, for
-# example, then a forcing mechanism is required to get them obeyed each time.
-# That's fine on Solaris and other systems; the rebuilding of the exim target
-# happens only if the libraries are actually rebuilt. However, on IRIX, if
-# the target is forced, the exim target gets unnecessarily rebuilt even if
-# the .a file is not. Contrariwise, if we use dummy names, they don't interact
-# with the building of exim (and eximon.bin), but for libpcre Exim doesn't get
-# rebuilt when it should. (For the others it does, because they remove
-# drtables.o when they rebuild.) To get round this, we forcibly remove the
-# binary when it needs to be rebuilt.
+# Targets for the various libraries that Exim uses.
# The lookups library.
-buildlookups:
+buildlookups lookups/lookups.a: config.h
@cd lookups; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $(LOOKUP_INCLUDE)"; \
@@ -657,7 +646,7 @@ buildlookups:
# The routers library.
-buildrouters:
+buildrouters routers/routers.a: config.h
@cd routers; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
@@ -665,7 +654,7 @@ buildrouters:
# The transports library.
-buildtransports:
+buildtransports transports/transports.a: config.h
@cd transports; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
@@ -673,7 +662,7 @@ buildtransports:
# The library of authorization modules
-buildauths:
+buildauths auths/auths.a: config.h
@cd auths; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \
diff --git a/src/src/auths/Makefile b/src/src/auths/Makefile
index 3df035dd3..c26717ae9 100644
--- a/src/src/auths/Makefile
+++ b/src/src/auths/Makefile
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/src/auths/Makefile,v 1.5 2006/10/16 15:44:36 ph10 Exp $
+# $Cambridge: exim/src/src/auths/Makefile,v 1.6 2008/02/14 13:49:35 fanf2 Exp $
# Make file for building a library containing all the available authorization
# methods, and calling it auths.a. In addition, there are functions that are
@@ -17,7 +17,6 @@ auths.a: $(OBJ)
@echo "$(AR) auths.a"
$(FE)$(AR) auths.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
diff --git a/src/src/lookups/Makefile b/src/src/lookups/Makefile
index f19679a06..48d208d02 100644
--- a/src/src/lookups/Makefile
+++ b/src/src/lookups/Makefile
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/src/lookups/Makefile,v 1.7 2007/09/28 12:21:57 tom Exp $
+# $Cambridge: exim/src/src/lookups/Makefile,v 1.8 2008/02/14 13:49:35 fanf2 Exp $
# Make file for building a library containing all the available lookups and
# calling it lookups.a. This is called from the main make file, after cd'ing
@@ -14,7 +14,6 @@ lookups.a: $(OBJ)
@echo "$(AR) lookups.a"
@$(AR) lookups.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
diff --git a/src/src/routers/Makefile b/src/src/routers/Makefile
index 637122b1d..54e6ec989 100644
--- a/src/src/routers/Makefile
+++ b/src/src/routers/Makefile
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/src/routers/Makefile,v 1.3 2005/09/12 13:50:03 ph10 Exp $
+# $Cambridge: exim/src/src/routers/Makefile,v 1.4 2008/02/14 13:49:35 fanf2 Exp $
# Make file for building a library containing all the available routers and
# calling it routers.a. This is called from the main make file, after cd'ing
@@ -18,7 +18,6 @@ routers.a: $(OBJ)
@echo "$(AR) routers.a"
@$(AR) routers.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
diff --git a/src/src/transports/Makefile b/src/src/transports/Makefile
index 2cbeb7c50..dff6a3686 100644
--- a/src/src/transports/Makefile
+++ b/src/src/transports/Makefile
@@ -1,4 +1,4 @@
-# $Cambridge: exim/src/src/transports/Makefile,v 1.3 2005/09/12 13:50:04 ph10 Exp $
+# $Cambridge: exim/src/src/transports/Makefile,v 1.4 2008/02/14 13:49:35 fanf2 Exp $
# Make file for building a library containing all the available transports and
# calling it transports.a. This is called from the main make file, after cd'ing
@@ -11,7 +11,6 @@ transports.a: $(OBJ)
@echo "$(AR) transports.a"
@$(AR) transports.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"