1DESTDIR ?= 2PREFIX ?= /usr/local 3BINDIR = $(PREFIX)/bin 4SHAREDIR = $(PREFIX)/share/imapfilter 5MANDIR = $(PREFIX)/man 6 7SSLCAPATH = /etc/ssl/certs 8SSLCAFILE = /etc/ssl/cert.pem 9 10MYCFLAGS = 11MYLDFLAGS = 12MYLIBS = 13 14INCDIRS = 15LIBDIRS = 16 17LIBLUA = -llua 18LIBPCRE = -lpcre2-8 19LIBSSL = -lssl 20LIBCRYPTO = -lcrypto 21 22CFLAGS = -Wall -Wextra -O \ 23 -DCONFIG_SHAREDIR='"$(SHAREDIR)"' \ 24 -DCONFIG_SSL_CAPATH='"$(SSLCAPATH)"' \ 25 -DCONFIG_SSL_CAFILE='"$(SSLCAFILE)"' \ 26 $(INCDIRS) $(MYCFLAGS) 27LDFLAGS = $(LIBDIRS) $(MYLDFLAGS) 28LIBS = -lm $(LIBLUA) $(LIBPCRE) $(LIBSSL) $(LIBCRYPTO) $(MYLIBS) 29 30MAN1 = imapfilter.1 31MAN5 = imapfilter_config.5 32 33LUA = common.lua set.lua regex.lua account.lua mailbox.lua message.lua \ 34 options.lua auxiliary.lua 35 36BIN = imapfilter 37OBJ = auth.o buffer.o cert.o core.o file.o imapfilter.o list.o log.o lua.o \ 38 memory.o misc.o namespace.o pcre.o regexp.o request.o response.o \ 39 session.o signal.o socket.o system.o 40 41all: $(BIN) 42 43$(BIN): $(OBJ) 44 $(CC) -o $(BIN) $(LDFLAGS) $(OBJ) $(LIBS) 45 46$(OBJ): imapfilter.h 47buffer.o: buffer.h 48cert.o: pathnames.h session.h 49file.o: pathnames.h 50imapfilter.o: buffer.h list.h pathnames.h regexp.h session.h version.h 51list.o: list.h 52log.o: list.h pathnames.h session.h 53lua.o: pathnames.h 54namespace.o: buffer.h 55regexp.o: regexp.h 56request.o: buffer.h session.h 57response.o: buffer.h regexp.h session.h 58session.o: list.h session.h 59socket.o: session.h 60 61install: $(BIN) 62 mkdir -p $(DESTDIR)$(BINDIR) && \ 63 cp -f $(BIN) $(DESTDIR)$(BINDIR) && \ 64 chmod 0755 $(DESTDIR)$(BINDIR)/$(BIN) 65 mkdir -p $(DESTDIR)$(SHAREDIR) && \ 66 cp -f $(LUA) $(DESTDIR)$(SHAREDIR) && \ 67 chmod 0644 $(DESTDIR)$(SHAREDIR)/$(LUA) 68 mkdir -p $(DESTDIR)$(MANDIR)/man1 && \ 69 cp -f ../doc/$(MAN1) $(DESTDIR)$(MANDIR)/man1 && \ 70 chmod 0644 $(DESTDIR)$(MANDIR)/man1/$(MAN1) 71 mkdir -p $(DESTDIR)$(MANDIR)/man5 && \ 72 cp -f ../doc/$(MAN5) $(DESTDIR)$(MANDIR)/man5 && \ 73 chmod 0644 $(DESTDIR)$(MANDIR)/man5/$(MAN5) 74 75uninstall: 76 rm -f $(DESTDIR)$(BINDIR)/$(BIN) 77 cd $(DESTDIR)$(SHAREDIR) && rm -f $(LUA) 78 rm -f $(DESTDIR)$(MANDIR)/man1/$(MAN1) 79 rm -f $(DESTDIR)$(MANDIR)/man5/$(MAN5) 80 81clean: 82 rm -f $(OBJ) $(BIN) *~ 83