X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/4840604e4f365545a43f01d0e953ce33afd1c3d5..7685ce68148a083d7759e78d01aa5198fc099c44:/src/OS/Makefile-Base diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base index 1500e85ec..87a803704 100644 --- a/src/OS/Makefile-Base +++ b/src/OS/Makefile-Base @@ -32,7 +32,8 @@ FE = $(FULLECHO) # up-to-date. Then the os-specific source files and the C configuration file # are set up, and finally it goes to the main Exim target. -all: $(EDITME) checklocalmake Makefile os.h os.c config.h version.h allexim +all: allexim +config: $(EDITME) checklocalmake Makefile os.h os.c config.h version.h checklocalmake: @if $(SHELL) $(SCRIPTS)/newer $(EDITME)-$(OSTYPE) $(EDITME) || \ @@ -94,20 +95,19 @@ config.h: Makefile buildconfig ../src/config.h.defaults $(EDITME) # therefore always be run, even if the files exist. This shouldn't in fact be a # problem, but it does no harm. Other make programs will just ignore this. -.PHONY: all allexim buildauths buildlookups buildpdkim buildrouters \ +.PHONY: all config allexim buildauths buildlookups buildpdkim buildrouters \ buildtransports checklocalmake clean # This is the real default target for all the various exim binaries and # scripts, once the configuring stuff is done. -allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \ +allexim: $(EXIM_MONITOR) exicyclog exinext exiwhat \ exigrep eximstats exipick exiqgrep exiqsumm \ transport-filter.pl convert4r3 convert4r4 \ exim_checkaccess \ exim_dbmbuild exim_dumpdb exim_fixdb exim_tidydb exim_lock \ - buildlookups buildrouters buildtransports \ - buildauths buildpdkim exim + exim # Targets for special-purpose configuration header builders @@ -117,7 +117,7 @@ buildconfig: buildconfig.c # Target for the exicyclog utility script -exicyclog: Makefile config.h ../src/exicyclog.src +exicyclog: config ../src/exicyclog.src @rm -f exicyclog @sed \ -e "s?PROCESSED_FLAG?This file has been so processed.?"\ @@ -142,7 +142,7 @@ exicyclog: Makefile config.h ../src/exicyclog.src @echo ">>> exicyclog script built" # Target for the exinext utility script -exinext: Makefile config.h ../src/exinext.src +exinext: config ../src/exinext.src @rm -f exinext @sed \ -e "s?PROCESSED_FLAG?This file has been so processed.?"\ @@ -157,7 +157,7 @@ exinext: Makefile config.h ../src/exinext.src @echo ">>> exinext script built" # Target for the exiwhat utility script -exiwhat: Makefile config.h ../src/exiwhat.src +exiwhat: config ../src/exiwhat.src @rm -f exiwhat @sed \ -e "s?PROCESSED_FLAG?This file has been so processed.?"\ @@ -178,7 +178,7 @@ exiwhat: Makefile config.h ../src/exiwhat.src @echo ">>> exiwhat script built" # Target for the exim_checkaccess utility script -exim_checkaccess: Makefile config.h ../src/exim_checkaccess.src +exim_checkaccess: config ../src/exim_checkaccess.src @rm -f exim_checkaccess @sed \ -e "s?PROCESSED_FLAG?This file has been so processed.?"\ @@ -194,7 +194,7 @@ exim_checkaccess: Makefile config.h ../src/exim_checkaccess.src @echo ">>> exim_checkaccess script built"; echo "" # Target for the Exim monitor start-up script -eximon: Makefile config.h ../src/eximon.src ../OS/eximon.conf-Default \ +eximon: config ../src/eximon.src ../OS/eximon.conf-Default \ ../Local/eximon.conf @rm -f eximon $(SHELL) $(SCRIPTS)/Configure-eximon @@ -317,8 +317,8 @@ OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \ local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \ $(OBJ_WITH_OLD_DEMIME) $(OBJ_EXPERIMENTAL) -exim: lookups/lookups.a auths/auths.a pdkim/pdkim.a \ - routers/routers.a transports/transports.a \ +exim: buildlookups buildauths pdkim/pdkim.a \ + buildrouters buildtransports \ $(OBJ_EXIM) version.o @echo "$(LNCC) -o exim" $(FE)$(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \ @@ -355,7 +355,7 @@ exim_dumpdb: $(OBJ_DUMPDB) OBJ_FIXDB = exim_fixdb.o util-os.o util-store.o -exim_fixdb: $(OBJ_FIXDB) auths/auths.a +exim_fixdb: $(OBJ_FIXDB) buildauths @echo "$(LNCC) -o exim_fixdb" $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_fixdb $(LFLAGS) $(OBJ_FIXDB) \ auths/auths.a $(LIBS) $(EXTRALIBS) $(DBMLIB) @@ -531,7 +531,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 config.h local_scan.h ../$(LOCAL_SCAN_SOURCE) +local_scan.o: config local_scan.h ../$(LOCAL_SCAN_SOURCE) @echo "$(CC) local_scan.c" $(FE)$(CC) -c $(CFLAGS) -I. $(INCLUDE) -o local_scan.o ../$(LOCAL_SCAN_SOURCE) @@ -578,7 +578,7 @@ spool_out.o: $(HDRS) spool_out.c std-crypto.o: $(HDRS) std-crypto.c store.o: $(HDRS) store.c string.o: $(HDRS) string.c -tls.o: $(HDRS) tls.c tls-gnu.c tls-openssl.c +tls.o: $(HDRS) tls.c tls-gnu.c tlscert-gnu.c tls-openssl.c tlscert-openssl.c tod.o: $(HDRS) tod.c transport.o: $(HDRS) transport.c tree.o: $(HDRS) tree.c @@ -621,7 +621,7 @@ drtables.o: $(HDRS) drtables.c # When using parallel make, we don't have the dependency to force building # in the sub-directory unless we force that dependency: -$(OBJ_LOOKUPS): lookups/lookups.a +$(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 @@ -649,7 +649,7 @@ $(MONBIN): $(HDRS) # The lookups library. -buildlookups lookups/lookups.a: config.h version.h +buildlookups: config @cd lookups && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \ CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" HDRS="../version.h $(PHDRS)" \ FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" \ @@ -658,7 +658,7 @@ buildlookups lookups/lookups.a: config.h version.h # The routers library. -buildrouters routers/routers.a: config.h +buildrouters: config @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)" @@ -666,7 +666,7 @@ buildrouters routers/routers.a: config.h # The transports library. -buildtransports transports/transports.a: config.h +buildtransports: config @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)" @@ -674,7 +674,7 @@ buildtransports transports/transports.a: config.h # The library of authorization modules -buildauths auths/auths.a: config.h +buildauths: config @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)" @@ -682,7 +682,8 @@ buildauths auths/auths.a: config.h # The PDKIM library -buildpdkim pdkim/pdkim.a: config.h +buildpdkim: pdkim/pdkim.a +pdkim/pdkim.a: config @cd pdkim && $(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)"