# $Id: Makefile 38 2006-12-07 11:58:44Z gerbier $
# recommanded by debian install guide
DESTDIR=

PACKAGE=rpmorphan

SHELL = /bin/sh
VERSION=$(shell grep Version rpmorphan.lsm | awk '{print $$2}')

BINDIR = $(DESTDIR)/usr/bin
MANDIR = $(DESTDIR)/usr/share/man
MAN1DIR = $(MANDIR)/man1
DOCDIR=$(DESTDIR)/usr/share/doc/$(PACKAGE)-$(VERSION)
# for keep file
DATADIR=$(DESTDIR)/var/lib/rpmorphan

DOC = Authors Changelog COPYING NEWS Todo $(PACKAGE).lsm $(PACKAGE).spec Makefile Readme rpmorphanrc.sample
DATA = keep

# others programs
PROG2=rpmusage
LIB=$(PACKAGE)-lib

PROGS =  $(PACKAGE) $(PROG2)
MANPAGES1 := $(addsuffix .1, $(PROGS))
HTMLPAGES := $(addsuffix .1.html, $(PROGS))
SCRIPTS := $(addsuffix .pl, $(PROGS) $(LIB) )

# convert pod to other doc format
%.1 : %.pl
	pod2man $^ > $@

%.1.html : %.pl
	pod2html --header $^ | sed -f html.sed > $@

# loop to check all perl scripts
define check_perl_script
	for fic in $(SCRIPTS);do	\
		perl -cw $$fic || exit;		\
		perlcritic -v 10 -1 $$fic || exit;	\
	done;
endef

# loop to make links on all programs
define make_links
	for fic in $(PROGS);do        \
		cd $(BINDIR) && ln -s $$fic.pl $$fic;	\
	done;
endef

check : $(SCRIPTS)
	$(check_perl_script)

# default target : build man
# and check syntaxe
man : $(MANPAGES1)

all: install

install : $(DOC) $(MANPAGES1) $(SCRIPTS)
	mkdir -p              $(BINDIR)
	install -m 755 $(SCRIPTS) $(BINDIR)
	$(make_links)
	mkdir -p                $(MAN1DIR)
	install -m 644 ${MANPAGES1} $(MAN1DIR)
	mkdir -p                $(DOCDIR)
	install -m 644 ${DOC}	$(DOCDIR)
	mkdir -p                $(DATADIR)
	install -m 644 ${DATA}	$(DATADIR)

uninstall :
	cd $(BINDIR) && rm $(SCRIPTS) $(PROGS)
	cd $(MAN1DIR) && rm ${MANPAGES1}
	rm -rf $(DOCDIR)
	rm -rf $(DATADIR)

dist : $(DOC) $(MANPAGES1) $(SCRIPTS)
	mkdir $(PACKAGE)-$(VERSION)
	cp $(DATA) $(DOC) $(MANPAGES1) $(SCRIPTS) $(PACKAGE)-$(VERSION)
	tar cvfz $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
	rm -rf $(PACKAGE)-$(VERSION)

rpm : dist
	rpmbuild -ta --sign $(PACKAGE)-$(VERSION).tar.gz
	
clean :
	rm -f $(MANPAGES1)
	rm -f $(PACKAGE)-$(VERSION).tar.gz
	rm -f pod2*
	rm -f *.html
	

# to be done on root account juster after the package install

html : $(HTMLPAGES)

help :
	@echo "available target are :"
	@echo "make : build files"
	@echo "make man : build man page from pod"
	@echo "make install : install software"
	@echo "make all : same as make install"
	@echo "make uninstall : remove software"
	@echo "make dist : build a tar.gz package"
	@echo "make rpm : build an rpm package"
	@echo "make clean : remove temporary files"
	@echo "make html : build html doc from pod"
	@echo "make help : check perl syntaxe"
	@echo "make help : this help"
