#
# SMTP-proxy Makefile
#

# mks_vir version
#LINK=libmksd.o
#DEFS=-DSCANNER_MKSD
#DEFS=-DSCANNER_MKSD -DUSE_SHARED_MEM -DFILTER_CHUNKING
#DEFS=-DSCANNER_MKSD -DUSE_SHARED_MEM -DFILTER_CHUNKING -DPOLISH

# clamav version
#LINK=
#DEFS=-DSCANNER_CLAMD
#DEFS=-DSCANNER_CLAMD -DUSE_SHARED_MEM -DFILTER_CHUNKING
#DEFS=-DSCANNER_CLAMD -DUSE_SHARED_MEM -DFILTER_CHUNKING -DPOLISH
#-DDEFAULT_CONFIG_FILE=\"/etc/smtp-gated.conf\"


PREFIX=/usr/local
SPOOL=/var/spool
CONF=/etc/smtp-gated.conf
LINK=scan.o conffile.o config.o daemon.o util.o md5.o smtp-gated.o
WARN=-Wall
#-Winline -Wshadow -Werror -Wconversion
#CC=gcc
CC=gcc
INSTALL=install
OPTS=-O2
DEFS=


export PREFIX INSTALL

# compilation

all: smtp-gated tags
	make -C ../lib $@

%.o: %.c *.h Makefile
	$(CC) $(WARN) $(OPTS) $(DEFS) -c $< -o $@

smtp-gated: $(LINK) Makefile
	$(CC) $(WARN) $(OPTS) $(DEFS) $(LINK) -o smtp-gated

md5: md5.c md5.h Makefile
	$(CC) $(WARN) $(OPTS) -DMD5_TEST $< -o $@

tags: *.c *.h
	@ctags *.c *.h 2>/dev/null || : 

clean:
	rm -rf libmksd.a *.o *~ core smtp-gated md5 tags

distclean: clean

#	make -C lib $@
#	make -C tests $@

# installation/upgrade

install: iinfo ibin idirs iusers idist iman

upgrade: bbin ibin iman
	@echo "# verifying configuration file..."
	$(PREFIX)/sbin/smtp-gated $(CONF) -t >/dev/null
	@echo "# restarting smtp-proxy..."
	/etc/init.d/smtp-gated restart

# helpers

iinfo:
	@echo "If you want to upgrade, please use 'make upgrade'"
	@echo "-------------------------------------------------"
	@echo "# creating directories & user/group 'smtpgw'"

bbin:
	@echo "# making backup of old binary if needed"
	cp -a $(PREFIX)/sbin/smtp-gated $(PREFIX)/sbin/smtp-gated.old || :

ibin: smtp-gated
	@echo "# installing binary..."
	strip smtp-gated
	chmod 755 smtp-gated
	chown root:root smtp-gated
	mv smtp-gated $(PREFIX)/sbin/

iman:	
	make -C ../lib $@

idirs: 
	mkdir -p $(SPOOL)/smtp-gated/msg $(SPOOL)/smtp-gated/lock
	mkdir -p /var/run/smtp-gated

iusers:
	addgroup smtpgw
	adduser -d $(SPOOL)/smtp-gated -g smtpgw smtpgw
	chown -R smtpgw:smtpgw $(SPOOL)/smtp-gated
	chown -R smtpgw:smtpgw /var/run/smtp-gated

idist:
	grep -q -i -E 'red hat|redhat' /etc/issue && make redhat || :
	grep -q -i 'debian' /etc/issue && make debian || :

redhat:
	@echo "# installing RedHat startup script"
	[ -f /etc/init.d/smtp-gated ] || cp lib/redhat.init /etc/init.d/
	chown root:root /etc/init.d/smtp-gated
	@echo "# run ntsysv to setup service autostart"

debian:
	@echo "# installing Debian startup script"
	[ -f /etc/init.d/smtp-gated ] || cp lib/debian.init /etc/init.d/
	chown root:root /etc/init.d/smtp-gated
	@echo "# use update-rc.d to setup service autostart"



