DESTDIR = /usr/local
BINDIR = /usr/local/bin
SHAREDIR = /usr/local/share/imapfilter
MANDIR = /usr/local/man

INCDIRS = -I/usr/local/include
LIBDIRS = -L/usr/local/lib

MYCFLAGS = -Wall -O
MYLDFLAGS = 

DEFS = -DMAKEFILE_SHAREDIR='"$(SHAREDIR)"'

CFLAGS = $(MYCFLAGS) $(DEFS) $(INCDIRS)
LDFLAGS = $(MYLDFLAGS) $(LIBDIRS)

LIBS = -lm -llua -llualib -lssl -lcrypto

MAN_BIN = imapfilter.1
MAN_CONFIG = imapfilter_config.5

INTERFACE_LUA = interface.lua
AUXILIARY_LUA = auxiliary.lua

BIN = imapfilter
OBJ = auth.o buffer.o cert.o core.o file.o imap.o imapfilter.o log.o lua.o \
	memory.o misc.o request.o response.o session.o signal.o socket.o \
	system.o

all: $(BIN)

$(BIN): $(OBJ)
	$(CC) -o $(BIN) $(LDFLAGS) $(OBJ) $(LIBS)

$(OBJ): imapfilter.h
buffer.o imap.o imapfilter.o request.o response.o: buffer.h
cert.o file.o imapfilter.o log.o lua.o: pathnames.h
imapfilter.o log.o session.o: queue.h
auth.o cert.o imap.o imapfilter.o log.o request.o response.o session.o \
	socket.o: session.h
imapfilter.o: version.h

install: $(BIN)
	if test ! -d $(BINDIR); then mkdir -p $(BINDIR); fi
	cp -f $(BIN) $(BINDIR) && chmod 0755 $(BINDIR)/$(BIN)
	if test ! -d $(SHAREDIR); then mkdir -p $(SHAREDIR); fi
	cp -f $(INTERFACE_LUA) $(SHAREDIR) && \
		chmod 0644 $(SHAREDIR)/$(INTERFACE_LUA)
	cp -f $(AUXILIARY_LUA) $(SHAREDIR) && \
		chmod 0644 $(SHAREDIR)/$(AUXILIARY_LUA)
	if test ! -d $(MANDIR)/man1; then mkdir -p $(MANDIR)/man1; fi
	cp -f $(MAN_BIN) $(MANDIR)/man1 && chmod 0644 $(MANDIR)/man1/$(MAN_BIN)
	if test ! -d $(MANDIR)/man5; then mkdir -p $(MANDIR)/man5; fi
	cp -f $(MAN_CONFIG) $(MANDIR)/man5 && chmod 0644 $(MANDIR)/man5/$(MAN_CONFIG)

deinstall:
	rm -f $(BINDIR)/$(BIN) $(SHAREDIR)/$(INTERFACE_LUA) \
		$(SHAREDIR)/$(AUXILIARY_LUA) $(MANDIR)/man1/$(MAN_BIN) \
		$(MANDIR)/man5/$(MAN_CONFIG)

uninstall: deinstall

clean:
	rm -f $(OBJ) $(BIN) imapfilter.core core *.orig *.BAK *~

distclean: clean
	@if test -f .Makefile; then mv -f .Makefile Makefile; fi
