X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/c1ac69960f6c08393233fe99fe44a1c99373e6df..b52bc06efc7a59bd262994eda285d2b125b767d7:/src/OS/Makefile-Base diff --git a/src/OS/Makefile-Base b/src/OS/Makefile-Base index 6b85608d9..cc38cb1ee 100644 --- a/src/OS/Makefile-Base +++ b/src/OS/Makefile-Base @@ -1,4 +1,4 @@ -# $Cambridge: exim/src/OS/Makefile-Base,v 1.6 2005/05/17 09:53:34 ph10 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 @@ -96,14 +96,14 @@ 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 buildpcre buildrouters \ +.PHONY: all allexim buildauths buildlookups 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 buildpcre $(EXIM_MONITOR) exicyclog exinext exiwhat \ +allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \ exigrep eximstats exipick exiqgrep exiqsumm \ transport-filter.pl convert4r3 convert4r4 \ exim_checkaccess \ @@ -298,7 +298,7 @@ convert4r4: Makefile ../src/convert4r4.src OBJ_WITH_CONTENT_SCAN = malware.o mime.o regex.o spam.o spool_mbox.o OBJ_WITH_OLD_DEMIME = demime.o -OBJ_EXPERIMENTAL = bmi_spam.o spf.o srs.o dk.o +OBJ_EXPERIMENTAL = bmi_spam.o spf.o srs.o dk.o dkim-exim.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. @@ -314,7 +314,7 @@ 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: pcre/libpcre.a lookups/lookups.a auths/auths.a \ +exim: lookups/lookups.a auths/auths.a \ routers/routers.a transports/transports.a \ $(OBJ_EXIM) version.c @echo " " @@ -325,12 +325,11 @@ exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \ rm -f exim @echo "$(LNCC) -o exim" $(FE)$(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \ - pcre/libpcre.a \ routers/routers.a transports/transports.a lookups/lookups.a \ auths/auths.a \ $(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \ $(EXTRALIBS_EXIM) $(DBMLIB) $(LOOKUP_LIBS) $(AUTH_LIBS) \ - $(PERL_LIBS) $(TLS_LIBS) $(LDFLAGS) + $(PERL_LIBS) $(TLS_LIBS) $(PCRE_LIBS) $(LDFLAGS) @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ echo $(STRIP_COMMAND) exim; \ $(STRIP_COMMAND) exim; \ @@ -429,14 +428,14 @@ MONBIN = em_StripChart.o $(EXIMON_TEXTPOP) em_globals.o em_init.o \ OBJ_MONBIN = util-spool_in.o util-store.o util-string.o tod.o tree.o $(MONBIN) -eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) pcre/libpcre.a \ +eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) \ ../exim_monitor/em_version.c @echo "$(CC) exim_monitor/em_version.c" $(FE)$(CC) -o em_version.o -c \ $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c @echo "$(LNCC) -o eximon.bin" $(FE)$(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \ - $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 pcre/libpcre.a \ + $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 $(PCRE_LIBS) \ $(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ echo $(STRIP_COMMAND) eximon.bin; \ @@ -526,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) @@ -596,9 +595,11 @@ demime.o: $(HDRS) demime.c # Dependencies for EXPERIMENTAL_* modules bmi_spam.o: $(HDRS) bmi_spam.c -spf.o: $(HDRS) spf.c -srs.o: $(HDRS) srs.c -dk.o: $(HDRS) dk.c +spf.o: $(HDRS) spf.h spf.c +srs.o: $(HDRS) srs.h srs.c +dk.o: $(HDRS) dk.h dk.c +dkim-exim.o: $(HDRS) dkim-exim.h dkim-exim.c +dcc.o: $(HDRS) dcc.h dcc.c # The module containing tables of available lookups, routers, auths, and # transports must be rebuilt if any of them are. However, because the makefiles @@ -633,63 +634,37 @@ $(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. - -# The PCRE regex library. Move the pcretest program to the util directory. Some -# "clever" versions of make notice that there are two successive shell -# commands, and they run them in the same shell. This means that we have to -# take care to encapsulate change of directory in parentheses, so that it -# reverts when it should. - -buildpcre: - @(cd pcre; $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" \ - FE="$(FE)" CFLAGS="$(CFLAGS) $(PCRE_CFLAGS)" \ - RANLIB="$(RANLIB)" HDRS="$(PHDRS)" \ - INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)") - @if $(SHELL) $(SCRIPTS)/newer pcre/libpcre.a exim; then \ - rm -f exim eximon.bin; fi - @echo " " +# 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)" HDRS="$(PHDRS)" \ + FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \ INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $(LOOKUP_INCLUDE)"; \ echo " " # 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)" HDRS="$(PHDRS)" \ + FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \ INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \ echo " " # 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)" HDRS="$(PHDRS)" \ + FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \ INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \ echo " " # 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)" HDRS="$(PHDRS)" \ + FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \ INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"; \ echo " " @@ -727,15 +702,16 @@ test_dbfn: config.h dbfn.c dummies.o sa-globals.o sa-os.o store.o \ tod.o version.o $(LIBS) $(DBMLIB) rm -f dbfn.o -test_host: config.h host.c dns.c dummies.o sa-globals.o sa-os.o store.o \ - string.o tod.o tree.o +test_host: config.h child.c host.c dns.c dummies.c sa-globals.o os.o \ + store.o string.o tod.o tree.o + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST child.c $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST host.c $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST dns.c $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST dummies.c $(LNCC) -o test_host $(LFLAGS) \ - host.o dns.o dummies.o sa-globals.o os.o store.o string.o tod.o tree.o \ - $(LIBS) $(LIBRESOLV) - rm -f dummies.o host.o dns.o + host.o child.o dns.o dummies.o sa-globals.o os.o store.o string.o \ + tod.o tree.o $(LIBS) $(LIBRESOLV) + rm -f child.o dummies.o host.o dns.o test_os: os.h os.c dummies.o sa-globals.o store.o string.o tod.o $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE os.c