#
# systems which install in /usr
inc  = -I/usr/include/mysql
lib  = -L/usr/lib/mysql -L/usr/lib64/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
# os x
lib += -L/usr/local/mysql


CC       ?= gcc
CPPFLAGS += -O $(inc)
CFLAGS   ?= -g -W -Wall -DMAXFDS=4096
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:	build

build: policyd_banner policyd_start policyd cleanup stats

linux: all
solaris: all
freebsd: all

policyd: syslog.o policyd.o generic.o mysql.o greylist.o throttle.o sockets.o cidr.o spamtrap.o blacklist.o blacklist_helo.o \
	whitelist.o throttle_host.o throttle_sasl.o throttle_from.o throttle_rcpt.o helo.o
	@echo ""
	@echo "[*] Linking policyd*"
	@$(CC) $(CFLAGS) $(CPPFLAGS) \
	syslog.o policyd.o generic.o mysql.o greylist.o throttle.o sockets.o cidr.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 cidr.o cleanup.o generic.o sockets.o mysql.o
	@echo "[*] Linking cleanup*"
	@$(CC) $(CFLAGS) $(CPPFLAGS) \
	syslog.o cidr.o cleanup.o generic.o sockets.o mysql.o \
	$(LDLIBS) -o cleanup

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

policyd_start: blacklist.o blacklist_helo.o cidr.o cleanup.o \
	generic.o greylist.o helo.o mysql.o policyd.o sockets.o \
	spamtrap.o stats.o syslog.o throttle.o throttle_from.o \
	throttle_host.o throttle_rcpt.o throttle_sasl.o whitelist.o

policyd_banner:
	@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

upgrade: policyd cleanup stats
	cp -f stats cleanup policyd /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



syntax highlighted by Code2HTML, v. 0.9.1