Gitweb:
http://git.exim.org/exim.git/commitdiff/c6fa5dfa8280de53bfbfd4921bc8bb5945dd5f19
Commit: c6fa5dfa8280de53bfbfd4921bc8bb5945dd5f19
Parent: ccee17956fb0d611dd5f45adb6ba31afc4eafd01
Author: Phil Pennock <pdp@???>
AuthorDate: Thu Nov 10 04:44:04 2011 -0500
Committer: Phil Pennock <pdp@???>
CommitDate: Thu Nov 10 04:44:04 2011 -0500
Parallel build fixes for lookups
Make lookups depend upon PHDRS not HDRS.
Make parent dir depend upon child build target for lookups
---
src/OS/Makefile-Base | 11 ++++++-
src/src/lookups/Makefile | 74 +++++++++++++++++++++++-----------------------
2 files changed, 47 insertions(+), 38 deletions(-)
diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base
index deb0e44..de387e0 100644
--- a/src/OS/Makefile-Base
+++ b/src/OS/Makefile-Base
@@ -303,6 +303,8 @@ OBJ_EXPERIMENTAL = bmi_spam.o spf.o srs.o dcc.o
# Targets for final binaries; the main one has a build number which is
# updated each time. We don't bother with that for the auxiliaries.
+OBJ_LOOKUPS = lookups/lf_quote.o lookups/lf_check_file.o lookups/lf_sqlperform.o
+
OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \
directory.o dns.o drtables.o enq.o exim.o expand.o filter.o \
filtertest.o globals.o dkim.o \
@@ -311,7 +313,7 @@ OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \
rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o \
route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o \
store.o string.o tls.o tod.o transport.o tree.o verify.o \
- lookups/lf_quote.o lookups/lf_check_file.o lookups/lf_sqlperform.o \
+ $(OBJ_LOOKUPS) \
local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \
$(OBJ_WITH_OLD_DEMIME) $(OBJ_EXPERIMENTAL)
@@ -458,6 +460,8 @@ PHDRS = ../config.h ../dbfunctions.h ../dbstuff.h ../exim.h ../functions.h ../gl
version.h::
@../scripts/reversion
+cnumber.h: version.h
+
version.o: $(HDRS) cnumber.h version.h version.c
# This is the dummy module for use by test compiles of individual modules. It
@@ -611,6 +615,11 @@ dcc.o: $(HDRS) dcc.h dcc.c
drtables.o: $(HDRS) drtables.c
+# We depend upon object files built as part of building the lookups library
+# When using parallel make, we don't have the dependency to force building
+# in the sub-directory unless we force that dependency:
+
+$(OBJ_LOOKUPS): buildlookups
# The exim monitor's private modules - the sources live in a private
# subdirectory. The final binary combines the private modules with some
diff --git a/src/src/lookups/Makefile b/src/src/lookups/Makefile
index 5a90cf3..035f6f2 100644
--- a/src/src/lookups/Makefile
+++ b/src/src/lookups/Makefile
@@ -24,44 +24,44 @@ lookups.a: $(OBJ)
.c.so:; @echo "$(CC) -shared $*.c"
$(FE)$(CC) $(LOOKUP_$*_INCLUDE) $(LOOKUP_$*_LIBS) -DDYNLOOKUP $(CFLAGS_DYNAMIC) $(CFLAGS) $(INCLUDE) $(DLFLAGS) $*.c -o $@
-lf_check_file.o: $(HDRS) lf_check_file.c lf_functions.h
-lf_quote.o: $(HDRS) lf_quote.c lf_functions.h
-lf_sqlperform.o: $(HDRS) lf_sqlperform.c lf_functions.h
+lf_check_file.o: $(PHDRS) lf_check_file.c lf_functions.h
+lf_quote.o: $(PHDRS) lf_quote.c lf_functions.h
+lf_sqlperform.o: $(PHDRS) lf_sqlperform.c lf_functions.h
-cdb.o: $(HDRS) cdb.c
-dbmdb.o: $(HDRS) dbmdb.c
-dnsdb.o: $(HDRS) dnsdb.c
-dsearch.o: $(HDRS) dsearch.c
-ibase.o: $(HDRS) ibase.c
-ldap.o: $(HDRS) ldap.c
-lsearch.o: $(HDRS) lsearch.c
-mysql.o: $(HDRS) mysql.c
-nis.o: $(HDRS) nis.c
-nisplus.o: $(HDRS) nisplus.c
-oracle.o: $(HDRS) oracle.c
-passwd.o: $(HDRS) passwd.c
-pgsql.o: $(HDRS) pgsql.c
-spf.o: $(HDRS) spf.c
-sqlite.o: $(HDRS) sqlite.c
-testdb.o: $(HDRS) testdb.c
-whoson.o: $(HDRS) whoson.c
+cdb.o: $(PHDRS) cdb.c
+dbmdb.o: $(PHDRS) dbmdb.c
+dnsdb.o: $(PHDRS) dnsdb.c
+dsearch.o: $(PHDRS) dsearch.c
+ibase.o: $(PHDRS) ibase.c
+ldap.o: $(PHDRS) ldap.c
+lsearch.o: $(PHDRS) lsearch.c
+mysql.o: $(PHDRS) mysql.c
+nis.o: $(PHDRS) nis.c
+nisplus.o: $(PHDRS) nisplus.c
+oracle.o: $(PHDRS) oracle.c
+passwd.o: $(PHDRS) passwd.c
+pgsql.o: $(PHDRS) pgsql.c
+spf.o: $(PHDRS) spf.c
+sqlite.o: $(PHDRS) sqlite.c
+testdb.o: $(PHDRS) testdb.c
+whoson.o: $(PHDRS) whoson.c
-cdb.so: $(HDRS) cdb.c
-dbmdb.so: $(HDRS) dbmdb.c
-dnsdb.so: $(HDRS) dnsdb.c
-dsearch.so: $(HDRS) dsearch.c
-ibase.so: $(HDRS) ibase.c
-ldap.so: $(HDRS) ldap.c
-lsearch.so: $(HDRS) lsearch.c
-mysql.so: $(HDRS) mysql.c
-nis.so: $(HDRS) nis.c
-nisplus.so: $(HDRS) nisplus.c
-oracle.so: $(HDRS) oracle.c
-passwd.so: $(HDRS) passwd.c
-pgsql.so: $(HDRS) pgsql.c
-spf.so: $(HDRS) spf.c
-sqlite.so: $(HDRS) sqlite.c
-testdb.so: $(HDRS) testdb.c
-whoson.so: $(HDRS) whoson.c
+cdb.so: $(PHDRS) cdb.c
+dbmdb.so: $(PHDRS) dbmdb.c
+dnsdb.so: $(PHDRS) dnsdb.c
+dsearch.so: $(PHDRS) dsearch.c
+ibase.so: $(PHDRS) ibase.c
+ldap.so: $(PHDRS) ldap.c
+lsearch.so: $(PHDRS) lsearch.c
+mysql.so: $(PHDRS) mysql.c
+nis.so: $(PHDRS) nis.c
+nisplus.so: $(PHDRS) nisplus.c
+oracle.so: $(PHDRS) oracle.c
+passwd.so: $(PHDRS) passwd.c
+pgsql.so: $(PHDRS) pgsql.c
+spf.so: $(PHDRS) spf.c
+sqlite.so: $(PHDRS) sqlite.c
+testdb.so: $(PHDRS) testdb.c
+whoson.so: $(PHDRS) whoson.c
# End