#
# systems which install in /usr
inc  = -I/usr/include/mysql
lib  = -L/usr/lib/mysql
# systems with single mysql subdir
inc += -I/usr/local/mysql/include -I/usr/local/mysql/include/mysql
lib += -L/usr/local/mysql/lib -L/usr/local/mysql/lib/mysql
# freebsd ports
inc += -I/usr/local/include/mysql
lib += -L/usr/local/lib/mysql
# netbsd pkgsrc
inc += -I/usr/pkg/include/mysql
lib += -L/usr/pkg/lib/mysql

CC       := gcc
CPPFLAGS := -O $(inc)
CFLAGS   := -g -W -Wall -DMAXFDS=1023
OS_NAME  := $(shell uname | tr [A-Z] [a-z])
LDLIBS    = $(lib) -lmysqlclient -lz

ifeq "${OS_NAME}" "sunos"
LDLIBS   += -lsocket -lnsl -lm
endif

.c.o:
	@echo "  compiling ${CFLAGS} $<"
	@${CC} ${CPPFLAGS} ${CFLAGS} -o $@ -c $<

all:
	@echo ""
	@echo "Possible options are:"
	@echo ""
	@echo "  make build"
	@echo "  make install | install-strip"
	@echo "  make clean"
	@echo ""
	@exit

build: policyd cleanup stats

linux: all
solaris: all
freebsd: all

policyd: policyd_start syslog.o generic.o policyd.o sockets.o greylist.o \
        throttle.o spamtrap.o blacklist.o whitelist.o blacklist_helo.o   \
       	throttle_host.o throttle_sasl.o throttle_from.o throttle_rcpt.o  \
	cleanup.o mysql.o helo.o stats.o
	@echo ""
	@echo "[*] Linking policyd*"
	@$(CC) $(CFLAGS) $(CPPFLAGS) syslog.o policyd.o generic.o mysql.o greylist.o \
        throttle.o sockets.o spamtrap.o blacklist.o blacklist_helo.o whitelist.o \
        throttle_host.o throttle_sasl.o throttle_from.o throttle_rcpt.o helo.o \
        $(LDLIBS) -o policyd

cleanup: syslog.o generic.o sockets.o cleanup.o
	@echo "[*] Linking cleanup*"
	@$(CC) $(CFLAGS) $(CPPFLAGS) syslog.o cleanup.o generic.o sockets.o mysql.o $(LDLIBS) -o cleanup

stats: syslog.o generic.o sockets.o stats.o
	@echo "[*] Linking stats*"
	@$(CC) $(CFLAGS) $(CPPFLAGS) syslog.o stats.o generic.o sockets.o mysql.o $(LDLIBS) -o stats
	@echo ""

policyd_start:
	@echo ""
	@echo "[-] Building Policy Daemon:"
	@echo ""
	@echo "[*] Building Objects:"
	@echo ""

clean:
	rm -f *.o core policyd cleanup stats

install: policyd cleanup stats
	mkdir -p /usr/local/policyd
	cp -f stats cleanup policyd /usr/local/policyd
	cp -i policyd.conf /usr/local/policyd

install-strip: policyd cleanup stats
	mkdir -p /usr/local/policyd
	strip stats cleanup policyd
	cp -f stats cleanup policyd /usr/local/policyd
	cp -i policyd.conf /usr/local/policyd

