# optional, Local/* files at the front of this file, to create Makefile in the
# build directory.
#
-# Copyright (c) The Exim Maintainers 1995 - 2018
+# Copyright (c) The Exim Maintainers 1995 - 2022
+# SPDX-License-Identifier: GPL-2.0-or-later
SHELL = $(MAKE_SHELL)
SCRIPTS = ../scripts
# Build (link) the os.h file
os.h: $(SCRIPTS)/Configure-os.h \
- $(O)/os.h-Darwin \
$(O)/os.h-FreeBSD \
$(O)/os.h-GNU \
$(O)/os.h-Linux \
routers/redirect.h
OBJ_MACRO = macro_predef.o \
- macro-globals.o macro-readconf.o macro-route.o macro-transport.o macro-drtables.o \
- macro-tls.o \
+ macro-globals.o macro-readconf.o macro-expand.o macro-route.o \
+ macro-transport.o macro-drtables.o macro-acl.o macro-tls.o \
macro-appendfile.o macro-autoreply.o macro-lmtp.o macro-pipe.o macro-queuefile.o \
macro-smtp.o macro-accept.o macro-dnslookup.o macro-ipliteral.o macro-iplookup.o \
macro-manualroute.o macro-queryprogram.o macro-redirect.o \
macro-readconf.o : readconf.c
@echo "$(CC) -DMACRO_PREDEF readconf.c"
$(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ readconf.c
+macro-expand.o : expand.c
+ @echo "$(CC) -DMACRO_PREDEF expand.c"
+ $(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ expand.c
macro-route.o : route.c
@echo "$(CC) -DMACRO_PREDEF route.c"
$(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ route.c
macro-drtables.o : drtables.c
@echo "$(CC) -DMACRO_PREDEF drtables.c"
$(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ drtables.c
+macro-acl.o: acl.c
+ @echo "$(CC) -DMACRO_PREDEF acl.c"
+ $(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ acl.c
macro-tls.o: tls.c tls-gnu.c tls-openssl.c
@echo "$(CC) -DMACRO_PREDEF tls.c"
$(FE)$(CC) -c $(CFLAGS) -DMACRO_PREDEF $(INCLUDE) -o $@ tls.c
dmarc.o \
imap_utf7.o \
spf.o \
- srs.o \
utf8.o
# Targets for final binaries; the main one has a build number which is
OBJ_EXIM = acl.o base64.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 dkim_transport.o hash.o \
- header.o host.o ip.o log.o lss.o match.o md5.o moan.o \
- os.o parse.o queue.o \
- rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o \
+ filtertest.o globals.o dkim.o dkim_transport.o dnsbl.o hash.o \
+ header.o host.o host_address.o ip.o log.o lss.o match.o md5.o moan.o \
+ os.o parse.o priv.o queue.o \
+ rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o regex_cache.o \
route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o \
std-crypto.o store.o string.o tls.o tod.o transport.o tree.o verify.o \
environment.o macro.o \
# The complete modules list also includes some specially compiled versions of
# code from the main Exim source tree.
-OBJ_MONBIN = util-spool_in.o \
+OBJ_MONBIN = util-host_address.o \
+ util-queue.o \
+ util-spool_in.o \
util-store.o \
util-string.o \
- util-queue.o \
util-tod.o \
util-tree.o \
$(MONBIN)
HDRS = blob.h \
config.h \
dbfunctions.h \
- dbstuff.h \
exim.h \
functions.h \
globals.h \
hash.h \
+ hintsdb.h \
+ hintsdb_structs.h \
local_scan.h \
macros.h \
mytypes.h \
os.h
PHDRS = ../config.h \
../dbfunctions.h \
- ../dbstuff.h \
../exim.h \
../functions.h \
../globals.h \
+ ../hintsdb.h \
+ ../hintsdb_structs.h \
../local_scan.h \
../macros.h \
../mytypes.h \
.c.o:; @echo "$(CC) $*.c"
$(FE)$(CC) -c $(CFLAGS) -I. $(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $*.c
-# Update Exim's version information and build the version object.
+# Update Exim's version information and build the version object. The dependency
+# chain here avoids problems under parallel-make.
-version.h version.sh::
+version.sh:
@../scripts/reversion
+version.h: version.sh
+
cnumber.h: version.h
version.o: $(HDRS) cnumber.h version.h version.c
# Utilities use special versions of some modules - typically with debugging
# calls cut out.
+util-host_address.o: $(HDRS) host_address.c
+ @echo "$(CC) -DCOMPILE_UTILITY host_address.c"
+ $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-host_address.o host_address.c
+
+util-md5.o: $(HDRS) md5.c
+ @echo "$(CC) -DCOMPILE_UTILITY queue.c"
+ $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-md5.o md5.c
+
util-spool_in.o: $(HDRS) spool_in.c
@echo "$(CC) -DCOMPILE_UTILITY spool_in.c"
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-spool_in.o spool_in.c
@echo "$(CC) -DCOMPILE_UTILITY string.c"
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-string.o string.c
-util-md5.o: $(HDRS) md5.c
- @echo "$(CC) -DCOMPILE_UTILITY queue.c"
- $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-md5.o md5.c
-
util-queue.o: $(HDRS) queue.c
@echo "$(CC) -DCOMPILE_UTILITY queue.c"
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-queue.o queue.c
deliver.o: $(HDRS) transports/smtp.h deliver.c
directory.o: $(HDRS) directory.c
dns.o: $(HDRS) dns.c
+dnsbl.o: $(HDRS) dnsbl.c
enq.o: $(HDRS) enq.c
exim.o: $(HDRS) exim.c
expand.o: $(HDRS) expand.c
hash.o: $(HDRS) hash.c
header.o: $(HDRS) header.c
host.o: $(HDRS) host.c
+host_address.o: $(HDRS) host_address.c
ip.o: $(HDRS) ip.c
log.o: $(HDRS) log.c
lss.o: $(HDRS) lss.c
moan.o: $(HDRS) moan.c
os.o: $(HDRS) $(OS_C_INCLUDES) os.c
parse.o: $(HDRS) parse.c
+priv.o: $(HDRS) priv.c
queue.o: $(HDRS) queue.c
rda.o: $(HDRS) rda.c
readconf.o: $(HDRS) readconf.c
receive.o: $(HDRS) receive.c
retry.o: $(HDRS) retry.c
rewrite.o: $(HDRS) rewrite.c
+regex_cache.o: $(HDRS) regex_cache.c
rfc2047.o: $(HDRS) rfc2047.c
route.o: $(HDRS) route.c
search.o: $(HDRS) search.c
dmarc.o: $(HDRS) pdkim/pdkim.h dmarc.h dmarc.c
imap_utf7.o: $(HDRS) imap_utf7.c
spf.o: $(HDRS) spf.h spf.c
-srs.o: $(HDRS) srs.h srs.c
utf8.o: $(HDRS) utf8.c
# The module containing tables of available lookups, routers, auths, and
em_xs.o: ../exim_monitor/em_xs.c ../exim_monitor/em_hdr.h
em_version.o: ../exim_monitor/em_version.c ../exim_monitor/em_hdr.h
$(MONBIN): $(HDRS)
- @echo "$(CC) exim_monitor/`echo $@ | sed 's/o$$/c/'`"
- $(FE)$(CC) -o $@ -c $(CFLAGS) -I. -I../exim_monitor $(INCLUDE) $(XINCLUDE) \
- ../exim_monitor/`echo $@ | sed 's/o$$/c/'`
+ @echo "$(CC) exim_monitor/$(@:.o=.c)"
+ $(FE)$(CC) -o $@ -c $(CFLAGS) -DCOMPILE_UTILITY -I. -I../exim_monitor $(INCLUDE) $(XINCLUDE) \
+ ../exim_monitor/$(@:.o=.c)
# Targets for the various libraries that Exim uses.
rm -f dbfn.o store.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
+ host_address.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 child.o dns.o dummies.o sa-globals.o os.o store.o string.o \
+ host.o host_address.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