# 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: utils exim
+all: utils exim dynmodules
config: $(EDITME) checklocalmake Makefile os.c config.h version.h version.sh macro.c
exim_openssl exim_gnutls: clean exim
.PHONY: all config utils \
buildauths buildlookups buildpdkim buildrouters \
- buildtransports checklocalmake clean
+ buildtransports dynmodules checklocalmake clean
utils: $(EXIM_MONITOR) exicyclog exinext exiwhat \
# The utility for dumping the contents of an exim database
-OBJ_DUMPDB = exim_dumpdb.o util-os.o util-store.o
+OBJ_DUMPDB = exim_dumpdb.o util-os.o util-store.o util-xtextencode.o
exim_dumpdb: $(OBJ_DUMPDB)
@echo "$(LNCC) -o exim_dumpdb"
# The utility for interrogating/fixing the contents of an exim database
-OBJ_FIXDB = exim_fixdb.o util-os.o util-store.o util-md5.o
+OBJ_FIXDB = exim_fixdb.o util-os.o util-store.o util-md5.o util-xtextencode.o
exim_fixdb: $(OBJ_FIXDB)
@echo "$(LNCC) -o exim_fixdb"
# The utility for tidying the contents of an exim database
-OBJ_TIDYDB = exim_tidydb.o util-os.o util-store.o
+OBJ_TIDYDB = exim_tidydb.o util-os.o util-store.o util-xtextencode.o
exim_tidydb: $(OBJ_TIDYDB)
@echo "$(LNCC) -o exim_tidydb"
- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_tidydb $(LFLAGS) $(OBJ_TIDYDB) \
+ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_tidydb $(LFLAGS) \
+ $(OBJ_TIDYDB) \
$(LIBS) $(EXTRALIBS) $(DBMLIB)
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) exim_tidydb; \
# The utility for building dbm files
-exim_dbmbuild: exim_dbmbuild.o
+OBJ_DBMBUILD = exim_dbmbuild.o util-xtextencode.o
+
+exim_dbmbuild: $(OBJ_DBMBUILD)
@echo "$(LNCC) -o exim_dbmbuild"
- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dbmbuild $(LFLAGS) exim_dbmbuild.o \
+ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dbmbuild $(LFLAGS) \
+ $(OBJ_DBMBUILD) \
$(LIBS) $(EXTRALIBS) $(DBMLIB)
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) exim_dbmbuild; \
util-string.o \
util-tod.o \
util-tree.o \
+ util-xtextencode.o \
$(MONBIN)
eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) ../exim_monitor/em_version.c \
@echo "$(CC) -DCOMPILE_UTILITY tree.c"
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-tree.o tree.c
+util-xtextencode.o: $(HDRS) xtextencode.c
+ @echo "$(CC) -DCOMPILE_UTILITY xtextencode.c"
+ $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY -o util-xtextencode.o xtextencode.c
+
util-os.o: $(HDRS) os.c
@echo "$(CC) -DCOMPILE_UTILITY os.c"
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) \
# Targets for the various libraries that Exim uses.
+# Copies of modules built as dynamic-load libraries
+
+dynmodules: buildlookups buildrouters buildtransports buildauths
+ rm -fr dynmodules
+ mkdir dynmodules
+ for d in lookup router transport auth; do \
+ for f in $${d}s/*.so; do \
+ [ -e $$f ] && ln $$f dynmodules/`basename $$f .so`_$$d.so; \
+ done; \
+ done; \
+ true
+
# The lookups library.
buildlookups: config