From c6fa5dfa8280de53bfbfd4921bc8bb5945dd5f19 Mon Sep 17 00:00:00 2001 From: Phil Pennock Date: Thu, 10 Nov 2011 04:44:04 -0500 Subject: [PATCH] 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 deb0e44f1..de387e027 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 5a90cf3b1..035f6f23f 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 -- 2.25.1