# 
# 
#                            Policy Daemon
# 
#  policy daemon is used in conjuction with postfix to combat spam.
#
#  Copyright (C) 2004 Cami Sardinha (cami@mweb.co.za)
#
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the  GNU General  Public License as published by the
#  Free Software Foundation;  either version 2 of the License, or (at your
#  option) any later version.
#
#  This program  is  distributed  in the hope that  it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
#  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
#  for more details.
#
#  You should have received a copy of the GNU General Public License along
#  with this program; if not, write to the Free Software Foundation Inc.,
#  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
###############################################################################
#
# Please setup your default paths for includes, example follows:
#
# 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
OS_NAME  := $(shell uname | tr [A-Z] [a-z])
LDLIBS    = $(lib) -lmysqlclient -lz
ifeq "${OS_NAME}" "sunos"
LDFLAGS  += -lsocket -lnsl -lm
endif

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

build: policyd cleanup

linux: all
solaris: all
freebsd: all

policyd: policyd_start syslog.o generic.o policyd.o greylist.o \
	throttle.o sockets.o mysql.o spamtrap.o blacklist.o whitelist.o cleanup.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 whitelist.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
	@echo ""

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

greylist.o:
	@echo "  compiling greylist.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c greylist.c
throttle.o:
	@echo "  compiling throttle.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c throttle.c
policyd.o:
	@echo "  compiling policyd.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c policyd.c
sockets.o:
	@echo "  compiling sockets.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c sockets.c
mysql.o:
	@echo "  compiling mysql.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c mysql.c
spamtrap.o:
	@echo "  compiling spamtrap.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c spamtrap.c
cleanup.o:
	@echo "  compiling cleanup.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c cleanup.c
generic.o:
	@echo "  compiling generic.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c generic.c
blacklist.o:
	@echo "  compiling blacklist.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c blacklist.c
whitelist.o:
	@echo "  compiling whitelist.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c whitelist.c
syslog.o:
	@echo "  compiling syslog.c"
	@$(CC) $(CFLAGS) $(CPPFLAGS) -c syslog.c

clean:
	rm -f *.o core policyd cleanup

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

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

