VERSION=`date +%Y%m%d`

DESTDIR=
progname=sagator
etcdir=$(DESTDIR)/etc
bindir=$(DESTDIR)/usr/bin
sbindir=$(bindir)/../sbin
libdir=$(DESTDIR)/usr/lib/$(progname)
docdir=$(DESTDIR)/usr/share/doc/$(progname)
chrootdir=/var/spool/vscan

# python module config
PYTHONVER=python2.2
CFLAGS=-I/usr/include/$(PYTHONVER)/
LIBS=-l$(PYTHONVER) -L/usr/lib/$(PYTHONVER)/config -lc -lpthread -ldl -lm -lutil
OBJS=/usr/lib/$(PYTHONVER)/config/python.o


all:	doc compile

compile: libclamavmodule
	python2 /usr/lib/python2.2/compileall.pyc -l -d . . \
	  || python /usr/lib/python1.5/compileall.pyc -l -d . .

install: compile
	mkdir -p $(bindir) $(libdir) $(etcdir)/cron.daily $(docdir) \
	  $(DESTDIR)/$(chrootdir) $(sbindir) $(etcdir)/rc.d/init.d
	cp -f *.py *.pyc $(libdir)
	ln -sf ../lib/$(progname)/sagator.py $(sbindir)/sagator
	ln -sf ../lib/$(progname)/sqback.py $(bindir)/sqback
	ln -sf ../lib/$(progname)/fmag.py $(bindir)/fmag
	ln -sf ../usr/lib/$(progname)/config.py $(etcdir)/$(progname).config
	# install libclamav
	cp -f libclamavmodule.so $(libdir) || true
	# install init script
	cp scripts/sagator.init $(etcdir)/rc.d/init.d/sagator
	chmod +x $(etcdir)/rc.d/init.d/sagator
	# install makechroot
	cp scripts/makechroot.sh $(sbindir)/mkchroot.sagator
	# install freshclam.sagator
	echo "#!/bin/sh" > $(etcdir)/cron.daily/sagator
	echo "/usr/bin/freshclam --quiet --datadir=$(chrootdir)/usr/share/clamav \\" >> $(etcdir)/cron.daily/sagator
	echo "  && kill -HUP `cat /var/run/sagator-master.pid`" >> $(etcdir)/cron.daily/sagator
	chmod +x $(etcdir)/cron.daily/sagator
	echo "Don't forget to set chroot"

makeroot:
	./scripts/makechroot.sh $(DESTDIR)$(chrootdir)

clean:
	rm -f *~ *.pyc *.o *.so root/tmp/* root/tmp/quarantine/*

doc:
	python2 -c 'import base; help(base)' > README.scanners.t
	python2 -c 'import mimeparse; help(mimeparse)' >> README.scanners.t
	python2 -c 'import decompress; help(decompress)' >> README.scanners.t
	python2 -c 'import clamav; help(clamav)' >> README.scanners.t
	python2 -c 'import spamassassin; help(spamassassin)' >> README.scanners.t
	python2 -c 'import nodold; help(nodold)' >> README.scanners.t
	python2 -c 'import sophie; help(sophie)' >> README.scanners.t
	awk 'BEGIN {class=1} / *class / {class=1} \
	     /^Help on module/ {class=1} \
	     /-------/ {if (class==1) {print ""};class=0} \
	     {if (class==1) {print}}' \
	README.scanners.t > README.scanners
	rm -f README.scanners.t

libclamavmodule:
	gcc -c libclamavmodule.c -o libclamavmodule.o $(CFLAGS)
	ld -shared -o libclamavmodule.so libclamavmodule.o $(OBJS) $(LIBS) -lclamav
	strip libclamavmodule.so

pycompatmodule:
	gcc -c pycompatmodule.c -o pycompatmodule.o $(CFLAGS)
	ld -shared -o pycompatmodule.so pycompatmodule.o $(OBJS) $(LIBS)
	strip pycompatmodule.so

version:
	echo "%define version $(VERSION)" > scripts/sagator.spec
	echo "%define rel 1" >> scripts/sagator.spec
	cat scripts/sagator.spec.in >> scripts/sagator.spec

pack:	version doc clean
	(cd ..;tar cvjf snapshots/sagator-$(VERSION).tar.bz2 sagator/*)

rpm:	clean pack
	rpmbuild -ta ../snapshots/sagator-$(VERSION).tar.bz2
