TARGETS	= $(OBJDIR)clint.log $(OBJDIR)date$(EXEEXT) $(OBJDIR)email$(EXEEXT) $(OBJDIR)fixme.log $(OBJDIR)imap4$(EXEEXT) $(OBJDIR)plugins$(EXEEXT) $(OBJDIR)tests.log $(OBJDIR)xmllint.log
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
BINDIR	= $(PREFIX)/bin
SBINDIR	= $(PREFIX)/sbin
CC	= cc
CPPFLAGSF= -I ../include
CPPFLAGS=
CFLAGSF	= -fPIE
CFLAGS	= -W -Wall -g -O2 -pedantic -D_FORTIFY_SOURCE=2 -fstack-protector
LDFLAGS	= -pie -Wl,-z,relro -Wl,-z,now
EXEEXT	=
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(OBJDIR)date$(EXEEXT) $(OBJDIR)email$(EXEEXT) $(OBJDIR)imap4$(EXEEXT) $(OBJDIR)plugins$(EXEEXT)

$(OBJDIR)clint.log: clint.sh
	./clint.sh -P "$(PREFIX)" -- "$(OBJDIR)clint.log"

date_OBJS = $(OBJDIR)date.o
date_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
date_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)

$(OBJDIR)date$(EXEEXT): $(date_OBJS)
	$(CC) -o $(OBJDIR)date$(EXEEXT) $(date_OBJS) $(date_LDFLAGS)

email_OBJS = $(OBJDIR)email.o
email_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
email_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L$(OBJDIR)../src -Wl,-rpath,$(OBJDIR)../src -lMailer

$(OBJDIR)email$(EXEEXT): $(email_OBJS)
	$(CC) -o $(OBJDIR)email$(EXEEXT) $(email_OBJS) $(email_LDFLAGS)

$(OBJDIR)fixme.log: fixme.sh
	./fixme.sh -P "$(PREFIX)" -- "$(OBJDIR)fixme.log"

imap4_OBJS = $(OBJDIR)imap4.o
imap4_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags glib-2.0 libSystem` `pkg-config --cflags openssl`
imap4_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs glib-2.0 libSystem` `pkg-config --libs openssl`

$(OBJDIR)imap4$(EXEEXT): $(imap4_OBJS)
	$(CC) -o $(OBJDIR)imap4$(EXEEXT) $(imap4_OBJS) $(imap4_LDFLAGS)

plugins_OBJS = $(OBJDIR)plugins.o
plugins_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags gtk+-3.0`
plugins_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gtk+-3.0`

$(OBJDIR)plugins$(EXEEXT): $(plugins_OBJS)
	$(CC) -o $(OBJDIR)plugins$(EXEEXT) $(plugins_OBJS) $(plugins_LDFLAGS)

$(OBJDIR)tests.log: $(OBJDIR)date $(OBJDIR)email $(OBJDIR)imap4 pkgconfig.sh $(OBJDIR)plugins tests.sh
	./tests.sh -P "$(PREFIX)" -- "$(OBJDIR)tests.log"

$(OBJDIR)xmllint.log: xmllint.sh
	./xmllint.sh -P "$(PREFIX)" -- "$(OBJDIR)xmllint.log"

$(OBJDIR)date.o: date.c ../src/helper.c
	$(CC) $(date_CFLAGS) -o $(OBJDIR)date.o -c date.c

$(OBJDIR)email.o: email.c $(OBJDIR)../src/libMailer.a
	$(CC) $(email_CFLAGS) -o $(OBJDIR)email.o -c email.c

$(OBJDIR)imap4.o: imap4.c ../src/account/imap4.c
	$(CC) $(imap4_CFLAGS) -o $(OBJDIR)imap4.o -c imap4.c

$(OBJDIR)plugins.o: plugins.c
	$(CC) $(plugins_CFLAGS) -o $(OBJDIR)plugins.o -c plugins.c

clean:
	$(RM) -- $(date_OBJS) $(email_OBJS) $(imap4_OBJS) $(plugins_OBJS)
	./clint.sh -c -P "$(PREFIX)" -- "$(OBJDIR)clint.log"
	./fixme.sh -c -P "$(PREFIX)" -- "$(OBJDIR)fixme.log"
	./tests.sh -c -P "$(PREFIX)" -- "$(OBJDIR)tests.log"
	./xmllint.sh -c -P "$(PREFIX)" -- "$(OBJDIR)xmllint.log"

distclean: clean
	$(RM) -- $(TARGETS)

install: all

uninstall:

.PHONY: all clean distclean install uninstall
