fanf2 2008/02/14 13:49:35 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src Makefile
exim-src/OS Makefile-Base
exim-src/src/auths Makefile
exim-src/src/lookups Makefile
exim-src/src/routers Makefile
exim-src/src/transports Makefile
Log:
Fix parallel build (make -j). Fixes: bug #668.
Revision Changes Path
1.545 +1 -0 exim/exim-doc/doc-txt/ChangeLog
1.5 +2 -5 exim/exim-src/Makefile
1.15 +6 -17 exim/exim-src/OS/Makefile-Base
1.6 +0 -1 exim/exim-src/src/auths/Makefile
1.8 +0 -1 exim/exim-src/src/lookups/Makefile
1.4 +0 -1 exim/exim-src/src/routers/Makefile
1.4 +0 -1 exim/exim-src/src/transports/Makefile
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.544
retrieving revision 1.545
diff -u -r1.544 -r1.545
--- ChangeLog 12 Feb 2008 12:52:51 -0000 1.544
+++ ChangeLog 14 Feb 2008 13:49:35 -0000 1.545
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.544 2008/02/12 12:52:51 nm4 Exp $
+$Cambridge: exim/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 @@
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
Index: Makefile
===================================================================
RCS file: /home/cvs/exim/exim-src/Makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Makefile 12 Sep 2005 13:55:54 -0000 1.4
+++ Makefile 14 Feb 2008 13:49:35 -0000 1.5
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/Makefile,v 1.4 2005/09/12 13:55:54 ph10 Exp $
+# $Cambridge: exim/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 @@
# 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 @@
@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.
Index: Makefile-Base
===================================================================
RCS file: /home/cvs/exim/exim-src/OS/Makefile-Base,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Makefile-Base 17 Jan 2008 13:03:35 -0000 1.14
+++ Makefile-Base 14 Feb 2008 13:49:35 -0000 1.15
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/OS/Makefile-Base,v 1.14 2008/01/17 13:03:35 tom Exp $
+# $Cambridge: exim/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 @@
# 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 @@
../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 @@
# 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 @@
# 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 @@
# 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)"; \
Index: Makefile
===================================================================
RCS file: /home/cvs/exim/exim-src/src/auths/Makefile,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile 16 Oct 2006 15:44:36 -0000 1.5
+++ Makefile 14 Feb 2008 13:49:35 -0000 1.6
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/src/auths/Makefile,v 1.5 2006/10/16 15:44:36 ph10 Exp $
+# $Cambridge: exim/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 @@
@echo "$(AR) auths.a"
$(FE)$(AR) auths.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
Index: Makefile
===================================================================
RCS file: /home/cvs/exim/exim-src/src/lookups/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile 28 Sep 2007 12:21:57 -0000 1.7
+++ Makefile 14 Feb 2008 13:49:35 -0000 1.8
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/src/lookups/Makefile,v 1.7 2007/09/28 12:21:57 tom Exp $
+# $Cambridge: exim/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 @@
@echo "$(AR) lookups.a"
@$(AR) lookups.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
Index: Makefile
===================================================================
RCS file: /home/cvs/exim/exim-src/src/routers/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile 12 Sep 2005 13:50:03 -0000 1.3
+++ Makefile 14 Feb 2008 13:49:35 -0000 1.4
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/src/routers/Makefile,v 1.3 2005/09/12 13:50:03 ph10 Exp $
+# $Cambridge: exim/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 @@
@echo "$(AR) routers.a"
@$(AR) routers.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"
Index: Makefile
===================================================================
RCS file: /home/cvs/exim/exim-src/src/transports/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Makefile 12 Sep 2005 13:50:04 -0000 1.3
+++ Makefile 14 Feb 2008 13:49:35 -0000 1.4
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/src/transports/Makefile,v 1.3 2005/09/12 13:50:04 ph10 Exp $
+# $Cambridge: exim/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 @@
@echo "$(AR) transports.a"
@$(AR) transports.a $(OBJ)
$(RANLIB) $@
- @$(RM_COMMAND) -rf ../drtables.o
.SUFFIXES: .o .c
.c.o:; @echo "$(CC) $*.c"