From 57cfc0aac9f8cc5d00fa1155367dfd055da27761 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Sun, 27 Feb 2011 01:49:00 +0100 Subject: make backend selection at runtime --- Makefile | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b833a3f..f405d3d 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,9 @@ INSTALLDIR ?= $(moduledir)/imap # Kill CFLAGS from dovecot-config CFLAGS := $(CFLAGSORIG) +backenddir := /usr/lib/dovecot-antispam +CFLAGS += '-DBACKENDDIR="$(backenddir)"' + # includes/flags we need for building a dovecot plugin INCS += -DHAVE_CONFIG_H INCS += -I$(DOVECOT)/ @@ -21,6 +24,7 @@ INCS += -I$(DOVECOT)/src/imap/ # output name LIBRARY_NAME ?= lib90_$(PLUGINNAME)_plugin.so +objs = antispam-storage.o antispam-plugin.o # debug rules ifeq ("$(DEBUG)", "stderr") @@ -37,32 +41,14 @@ ifeq ("$(DEBUG_VERBOSE)", "1") CFLAGS += -DCONFIG_DEBUG_VERBOSE endif -# backend error check -ifeq ("$(BACKEND)", "") -error: verify_config - @echo "Error! no backend configured" - @false -endif - -# per-backend rules -ifeq ("$(BACKEND)", "dspam-exec") -objs += signature.o -endif -ifeq ("$(BACKEND)", "signature-log") -objs += signature.o -endif -ifeq ("$(BACKEND)", "crm114-exec") -objs += signature.o -endif +BACKENDS = dspam-exec.so signature-log.so crm114-exec.so mailtrain.so spool2dir.so # main make rules CFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) CC ?= cc HOSTCC ?= cc -objs += antispam-plugin.o antispam-storage.o $(BACKEND).o - -all: verify_config $(LIBRARY_NAME) +all: verify_config $(LIBRARY_NAME) $(BACKENDS) antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-plugin.h dovecot-version.h $(CC) -c $(CFLAGS) $(INCS) -o $@ $< @@ -71,7 +57,7 @@ antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-p $(CC) -c $(CFLAGS) $(INCS) -o $@ $< $(LIBRARY_NAME): $(objs) - $(CC) $(CFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) + $(CC) $(CFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) -ldl dovecot-version: dovecot-version.c $(CONFIG) $(HOSTCC) $(INCS) -o dovecot-version dovecot-version.c @@ -82,11 +68,23 @@ dovecot-version.h: dovecot-version antispam-version.h: version.sh ./version.sh > antispam-version.h +dspam-exec.so: dspam-exec.o signature.o +signature-log.so: signature-log.o signature.o +crm114-exec.so: crm114-exec.o signature.o +mailtrain.so: mailtrain.o +spool2dir.so: spool2dir.o + +$(BACKENDS): + $(CC) $(CFLAGS) $(INCS) $(LDFLAGS) -shared -o $@ $^ + + clean: rm -f *.so *.o *~ dovecot-version dovecot-version.h antispam-version.h install: all install -o $(USER) -g $(GROUP) -m 0755 $(LIBRARY_NAME) $(DESTDIR)$(INSTALLDIR)/ + mkdir -p $(DESTDIR)$(backenddir) + install -o $(USER) -g $(GROUP) -m 0755 $(BACKENDS) $(DESTDIR)$(backenddir)/ verify_config: @if [ ! -r $(CONFIG) ]; then \ -- cgit v1.2.3 From 1e00dcf27da691bc645965a2c40bfd1b5329456e Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Sun, 27 Feb 2011 02:02:34 +0100 Subject: be packaging friendly --- Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index f405d3d..b7e446a 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ INSTALLDIR ?= $(moduledir)/imap CFLAGS := $(CFLAGSORIG) backenddir := /usr/lib/dovecot-antispam -CFLAGS += '-DBACKENDDIR="$(backenddir)"' +LOCALCFLAGS += '-DBACKENDDIR="$(backenddir)"' # includes/flags we need for building a dovecot plugin INCS += -DHAVE_CONFIG_H @@ -28,36 +28,36 @@ objs = antispam-storage.o antispam-plugin.o # debug rules ifeq ("$(DEBUG)", "stderr") -CFLAGS += -DCONFIG_DEBUG -DDEBUG_STDERR +LOCALCFLAGS += -DCONFIG_DEBUG -DDEBUG_STDERR objs += debug.o else ifeq ("$(DEBUG)", "syslog") -CFLAGS += -DCONFIG_DEBUG -DDEBUG_SYSLOG +LOCALCFLAGS += -DCONFIG_DEBUG -DDEBUG_SYSLOG objs += debug.o endif endif ifeq ("$(DEBUG_VERBOSE)", "1") -CFLAGS += -DCONFIG_DEBUG_VERBOSE +LOCALCFLAGS += -DCONFIG_DEBUG_VERBOSE endif BACKENDS = dspam-exec.so signature-log.so crm114-exec.so mailtrain.so spool2dir.so # main make rules -CFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) +LOCALCFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) CC ?= cc HOSTCC ?= cc all: verify_config $(LIBRARY_NAME) $(BACKENDS) antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-plugin.h dovecot-version.h - $(CC) -c $(CFLAGS) $(INCS) -o $@ $< + $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< %.o: %.c $(CONFIG) antispam-plugin.h dovecot-version.h antispam-version.h - $(CC) -c $(CFLAGS) $(INCS) -o $@ $< + $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< $(LIBRARY_NAME): $(objs) - $(CC) $(CFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) -ldl + $(CC) $(CFLAGS) $(LOCALCFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) -ldl dovecot-version: dovecot-version.c $(CONFIG) $(HOSTCC) $(INCS) -o dovecot-version dovecot-version.c @@ -75,16 +75,16 @@ mailtrain.so: mailtrain.o spool2dir.so: spool2dir.o $(BACKENDS): - $(CC) $(CFLAGS) $(INCS) $(LDFLAGS) -shared -o $@ $^ + $(CC) $(CFLAGS) $(INCS) $(LOCALCFLAGS) $(LDFLAGS) -o $@ $^ clean: rm -f *.so *.o *~ dovecot-version dovecot-version.h antispam-version.h install: all - install -o $(USER) -g $(GROUP) -m 0755 $(LIBRARY_NAME) $(DESTDIR)$(INSTALLDIR)/ + install -p -m 0755 $(LIBRARY_NAME) $(DESTDIR)$(INSTALLDIR)/ mkdir -p $(DESTDIR)$(backenddir) - install -o $(USER) -g $(GROUP) -m 0755 $(BACKENDS) $(DESTDIR)$(backenddir)/ + install -p -m 0755 $(BACKENDS) $(DESTDIR)$(backenddir)/ verify_config: @if [ ! -r $(CONFIG) ]; then \ -- cgit v1.2.3 From d52daf7e31928c1b52bef6e57ec316f5f057d85a Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 27 Feb 2011 11:35:01 +0100 Subject: rename mailtrain to pipe --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b7e446a..0516a6f 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ ifeq ("$(DEBUG_VERBOSE)", "1") LOCALCFLAGS += -DCONFIG_DEBUG_VERBOSE endif -BACKENDS = dspam-exec.so signature-log.so crm114-exec.so mailtrain.so spool2dir.so +BACKENDS = dspam-exec.so signature-log.so crm114-exec.so pipe.so spool2dir.so # main make rules LOCALCFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) @@ -71,7 +71,7 @@ antispam-version.h: version.sh dspam-exec.so: dspam-exec.o signature.o signature-log.so: signature-log.o signature.o crm114-exec.so: crm114-exec.o signature.o -mailtrain.so: mailtrain.o +pipe.so: pipe.o spool2dir.so: spool2dir.o $(BACKENDS): -- cgit v1.2.3 From 7a13a04dc0ef562e53097f614e887285965d4659 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 27 Feb 2011 15:40:03 +0100 Subject: build in all backend plugins --- Makefile | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 0516a6f..b7a5653 100644 --- a/Makefile +++ b/Makefile @@ -7,9 +7,6 @@ INSTALLDIR ?= $(moduledir)/imap # Kill CFLAGS from dovecot-config CFLAGS := $(CFLAGSORIG) -backenddir := /usr/lib/dovecot-antispam -LOCALCFLAGS += '-DBACKENDDIR="$(backenddir)"' - # includes/flags we need for building a dovecot plugin INCS += -DHAVE_CONFIG_H INCS += -I$(DOVECOT)/ @@ -41,14 +38,14 @@ ifeq ("$(DEBUG_VERBOSE)", "1") LOCALCFLAGS += -DCONFIG_DEBUG_VERBOSE endif -BACKENDS = dspam-exec.so signature-log.so crm114-exec.so pipe.so spool2dir.so +objs += dspam-exec.o signature-log.o crm114-exec.o pipe.o spool2dir.o # main make rules LOCALCFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) CC ?= cc HOSTCC ?= cc -all: verify_config $(LIBRARY_NAME) $(BACKENDS) +all: verify_config $(LIBRARY_NAME) antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-plugin.h dovecot-version.h $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< @@ -68,23 +65,12 @@ dovecot-version.h: dovecot-version antispam-version.h: version.sh ./version.sh > antispam-version.h -dspam-exec.so: dspam-exec.o signature.o -signature-log.so: signature-log.o signature.o -crm114-exec.so: crm114-exec.o signature.o -pipe.so: pipe.o -spool2dir.so: spool2dir.o - -$(BACKENDS): - $(CC) $(CFLAGS) $(INCS) $(LOCALCFLAGS) $(LDFLAGS) -o $@ $^ - clean: rm -f *.so *.o *~ dovecot-version dovecot-version.h antispam-version.h install: all install -p -m 0755 $(LIBRARY_NAME) $(DESTDIR)$(INSTALLDIR)/ - mkdir -p $(DESTDIR)$(backenddir) - install -p -m 0755 $(BACKENDS) $(DESTDIR)$(backenddir)/ verify_config: @if [ ! -r $(CONFIG) ]; then \ -- cgit v1.2.3 From 17fd064d36e1e6962305d78844605dd8f22c4837 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 27 Feb 2011 15:59:49 +0100 Subject: remove -ldl --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b7a5653..de754bf 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,7 @@ antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-p $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< $(LIBRARY_NAME): $(objs) - $(CC) $(CFLAGS) $(LOCALCFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) -ldl + $(CC) $(CFLAGS) $(LOCALCFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) dovecot-version: dovecot-version.c $(CONFIG) $(HOSTCC) $(INCS) -o dovecot-version dovecot-version.c -- cgit v1.2.3 From 65d997f8fe4c3786044dc79047dce5fc56facde5 Mon Sep 17 00:00:00 2001 From: Ron Date: Sun, 6 Mar 2011 11:24:29 +1030 Subject: Add signature.o back to the build And drop a stray tab in the prerequisites. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index de754bf..9e56245 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ ifeq ("$(DEBUG_VERBOSE)", "1") LOCALCFLAGS += -DCONFIG_DEBUG_VERBOSE endif -objs += dspam-exec.o signature-log.o crm114-exec.o pipe.o spool2dir.o +objs += dspam-exec.o signature-log.o crm114-exec.o pipe.o spool2dir.o signature.o # main make rules LOCALCFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) @@ -50,7 +50,7 @@ all: verify_config $(LIBRARY_NAME) antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-plugin.h dovecot-version.h $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< -%.o: %.c $(CONFIG) antispam-plugin.h dovecot-version.h antispam-version.h +%.o: %.c $(CONFIG) antispam-plugin.h dovecot-version.h antispam-version.h $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< $(LIBRARY_NAME): $(objs) -- cgit v1.2.3 From 27d016eeb4536fdebd89882133fc5daa614ecf17 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 12 Mar 2011 12:27:23 +0100 Subject: make debugging dynamic --- Makefile | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 9e56245..68c30a3 100644 --- a/Makefile +++ b/Makefile @@ -21,23 +21,7 @@ INCS += -I$(DOVECOT)/src/imap/ # output name LIBRARY_NAME ?= lib90_$(PLUGINNAME)_plugin.so -objs = antispam-storage.o antispam-plugin.o - -# debug rules -ifeq ("$(DEBUG)", "stderr") -LOCALCFLAGS += -DCONFIG_DEBUG -DDEBUG_STDERR -objs += debug.o -else -ifeq ("$(DEBUG)", "syslog") -LOCALCFLAGS += -DCONFIG_DEBUG -DDEBUG_SYSLOG -objs += debug.o -endif -endif - -ifeq ("$(DEBUG_VERBOSE)", "1") -LOCALCFLAGS += -DCONFIG_DEBUG_VERBOSE -endif - +objs = antispam-storage.o antispam-plugin.o debug.o objs += dspam-exec.o signature-log.o crm114-exec.o pipe.o spool2dir.o signature.o # main make rules -- cgit v1.2.3 From 808eaa49efe2dc2438ef98ddf4bac4cfd2898a3d Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 12 Mar 2011 13:03:45 +0100 Subject: remove need for .config file --- Makefile | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 68c30a3..5b4b00a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,9 @@ -# include config file +# include config file if present CONFIG ?= .config -include $(CONFIG) CFLAGSORIG := $(CFLAGS) +DOVECOT ?= /usr/include/dovecot +PLUGINNAME ?= antispam -include $(DOVECOT)/dovecot-config INSTALLDIR ?= $(moduledir)/imap # Kill CFLAGS from dovecot-config @@ -29,18 +31,18 @@ LOCALCFLAGS += -fPIC -shared -Wall -Wextra -DPLUGINNAME=$(PLUGINNAME) CC ?= cc HOSTCC ?= cc -all: verify_config $(LIBRARY_NAME) +all: $(LIBRARY_NAME) -antispam-storage.o: antispam-storage.c antispam-storage-*.c $(CONFIG) antispam-plugin.h dovecot-version.h +antispam-storage.o: antispam-storage.c antispam-storage-*.c antispam-plugin.h dovecot-version.h $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< -%.o: %.c $(CONFIG) antispam-plugin.h dovecot-version.h antispam-version.h +%.o: %.c antispam-plugin.h dovecot-version.h antispam-version.h $(CC) -c $(CFLAGS) $(LOCALCFLAGS) $(INCS) -o $@ $< $(LIBRARY_NAME): $(objs) $(CC) $(CFLAGS) $(LOCALCFLAGS) $(INCS) $(objs) -o $(LIBRARY_NAME) $(LDFLAGS) -dovecot-version: dovecot-version.c $(CONFIG) +dovecot-version: dovecot-version.c $(HOSTCC) $(INCS) -o dovecot-version dovecot-version.c dovecot-version.h: dovecot-version @@ -53,13 +55,12 @@ antispam-version.h: version.sh clean: rm -f *.so *.o *~ dovecot-version dovecot-version.h antispam-version.h -install: all +install: all checkinstalldir install -p -m 0755 $(LIBRARY_NAME) $(DESTDIR)$(INSTALLDIR)/ -verify_config: - @if [ ! -r $(CONFIG) ]; then \ - echo -e "\nBuilding the plugin requires a configuration file"; \ - echo -e $(CONFIG)'. Copy defconfig ("cp defconfig' $(CONFIG)'")' ; \ - echo -e "to create an example configuration.\n"; \ - exit 1; \ +checkinstalldir: + @if [ ! -d "$(DESTDIR)$(INSTALLDIR)/" ] ; then \ + echo "Installation directory $(DESTDIR)$(INSTALLDIR)/ doesn't exist," ; \ + echo "run make install INSTALLDIR=..." ; \ + exit 2 ; \ fi -- cgit v1.2.3