#
#	Global values
DEBIAN_PACKAGE=taquiones-admin
DESTDIR ?= /tmp

#
#	Source modules (all .pm files under the lib directory)
MODULES=$(shell find lib -name "*.pm")
BINARIES=$(wildcard bin/*.pl)
MANPAGES=$(subst bin,/usr/share/man/man1, $(subst pl,1,$(BINARIES)))
EXAMPLES=$(wildcard examples/*.p[lm])
CHECK_SOURCES=$(MODULES) $(BINARIES) 
CONFIGS=conf/taquiones-admin.conf
DOCS=$(shell grep '^doc/[^examples]' MANIFEST)
EXAMPLES=$(shell grep '^doc/examples/' MANIFEST)
DOCDIR=$(DESTDIR)/usr/share/doc/$(DEBIAN_PACKAGE)
EXAMPLESDIR=$(DESTDIR)/usr/share/doc/$(DEBIAN_PACKAGE)/examples

#
#	Instalación 
INSTALL=/usr/bin/install
BINMODE=-o root -g root -m 0555
CONFMODE=-o root -g root -m 0644
DOCMODE=-o root -g root -m 0444
DEBUILD=debuild -uc -us 

#
#	Test program
DEBUG=bin/dspam-training.pl
#DEBUG=bin/fix-spam-maildirs.pl
#DEBUG=bin/dspam-falsepositive.pl
ARGS=--user victor --remove data/coco.msg 
ENVIRONMENT=TAQUIONES_ADMIN_DEBUG=1

#
#	External tools
PERL ?= perl -Ilib
PERL_CHECK ?= $(PERL) -cw
PERL_DEBUG ?= $(PERL) -d:ptkdb
PROVE=$(shell which prove)
INSTALL=$(shell which install)
PERL_BUILD=$(PERL) Build

#
#	Do nothing for default
all:

#
#	Check syntax
.PHONY: check $(CHECK_SOURCES)

check:	$(CHECK_SOURCES)

$(CHECK_SOURCES):
	$(PERL_CHECK) $@

#
#	Test programs
test:	

#
#	Debug program
debug:		check $(DEBUG)
	$(ENVIRONMENT) $(PERL_DEBUG) $(DEBUG) $(ARGS)

.PHONY: data

data:	
	cd data; make clean; make 

distclean:	build
	$(PERL_BUILD) distclean
	find . -name "*.orig" -o -name "*.bak" | perl -nle unlink
	ls *.deb *.dsc *.upload *.changes *.build | perl -nle unlink

clean:
	rm -f *.orig *.bak
	-$(PERL_BUILD) clean

build:	Build
	$(PERL_BUILD)
	cd $(shell $(PERL_BUILD showdistdir)); ls
	
Build:	Build.PL
	$(PERL) $?

binary:	Build	
	$(PERL_BUILD) --destdir=$(DESTDIR) 

test:
	$(PERL_BUILD) test

#
#	Instalación del paquete
install:	install-perl install-config install-doc

install-perl: Build
	$(PERL_BUILD) install destdir=$(DESTDIR) 

install-config:
	$(INSTALL) $(CONFMODE) $(CONFIGS) $(DESTDIR)/etc

install-doc: 	$(DOCDIR) $(EXAMPLESDIR)
	$(INSTALL) $(DOCMODE) $(DOCS) $(DOCDIR)
	$(INSTALL) $(DOCMODE) $(EXAMPLES) $(EXAMPLESDIR)

$(EXAMPLESDIR):
	mkdir $@

$(DOCDIR):
	mkdir $@

#
#	Debian package
deb:	Build	
	$(PERL_BUILD) distdir
	cd $(shell $(PERL_BUILD) showdistdir); $(DEBUILD) 
	
release:	
	cd $(shell $(PERL_BUILD) showdistdir); debrelease -t taquiones

