#
# Makefile for dish
# 
# It is needed only to create manual pages, VERSION file, and packages
# For installing the software you can use essentially ./install.sh
#

PROG = dish
DOC_MAN = $(PROG).1
DOC_MAN_NAME="tool for parallel sysadmin of multiple hosts"
DOC_HTML = $(DOC_MAN).html
DOC_SEEALSO = seealso
DIR_SRC = src
VERSION = VERSION

# Installation directories
prefix = /usr/local
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
mandir = $(prefix)/man
man1dir = $(mandir)/man1
# Debian directories
destbin = usr/bin
destman = usr/share/man/man1


all: $(VERSION) $(DIR_SRC)/$(DOC_MAN) $(DIR_SRC)/$(DOC_HTML) $(DIR_SRC)/$(DOC_SEEALSO)
	umask 022

$(VERSION): $(DIR_SRC)/$(PROG)
	$< -V > $(VERSION)

$(DIR_SRC)/$(DOC_MAN): $(DIR_SRC)/$(PROG) $(DIR_SRC)/$(DOC_SEEALSO)
	cd $(DIR_SRC) ; \
	help2man -N -n $(DOC_MAN_NAME) -i $(DOC_SEEALSO) ../$< \
	|sed -e 's/\([^\\]\)-/\1\\-/g;s/\([^\\]\)-/\1\\-/g;' > $(DOC_MAN)

$(DIR_SRC)/$(DOC_HTML): $(DIR_SRC)/$(DOC_MAN)
	cd $(DIR_SRC) ; \
	man2html $(DOC_MAN) |egrep -vi "(^Section:|^Content-type|Return to Main Contents|^Time:|<H1>$<</H1>)" |sed -e 's_H2>_H3>_g' > $(DOC_HTML)

$(DOC_SEEALSO):

clean:
	rm -f $(VERSION) $(DIR_SRC)/$(DOC_MAN) $(DIR_SRC)/$(DOC_HTML)

install: installdirs all
	if [ -n $(DESTDIR) ] ; then \
		DESTBIN=$(DESTDIR)/$(destbin) ; \
		DESTMAN=$(DESTDIR)/$(destman) ; \
	else \
		DESTBIN=$(bindir) && DESTMAN=$(man1dir) ; \
	fi ; \
	./install.sh -i -q -b $$DESTBIN -m $$DESTMAN

uninstall:
	if [ -n $(DESTDIR) ] ; then \
		DESTBIN=$(DESTDIR)/$(destbin) ; \
		DESTMAN=$(DESTDIR)/$(destman) ; \
	else \
		DESTBIN=$(bindir) && DESTMAN=$(man1dir) ; \
	fi ; \
	./install.sh -u -q -b $$DESTBIN -m $$DESTMAN

installdirs: $(DIR_SRC)/mkinstalldirs
	cd $(DIR_SRC) ; \
	if [ -n $(DESTDIR) ] ; then \
		DESTBIN=$(DESTDIR)/$(destbin) ; \
		DESTMAN=$(DESTDIR)/$(destman) ; \
	else \
		DESTBIN=$(bindir) && DESTMAN=$(man1dir) ; \
	fi ; \
	./mkinstalldirs $$DESTBIN $$DESTMAN

tar: all $(DIR_SRC)/$(DOC_HTML)
	exclude="--exclude=debian --exclude=*-stamp \
		--exclude=*.swp" ; \
	vers=`cat $(VERSION)` ; \
	dvers=`test -f debian/changelog && \
	       head -1 debian/changelog |cut -f2 -d" "|tr -d '()'` ; \
	GZIP=--best ; \
	export GZIP ; \
	cd .. && \
	tar czpvf $(PROG)-$$vers.tar.gz $(PROG)-$$vers $$exclude && \
	tar czpvf $(PROG)_$$dvers.full.tar.gz $(PROG)-$$vers

debsrc: all tar
	debuild -S

packages: all tar
	@( debuild && \
	dvers=`test -f debian/changelog && \
	       head -1 debian/changelog |cut -f2 -d" "|tr -d '()'` && \
	umask 022 && \
	echo "" && \
	echo Trying to convert $(PROG)_$${dvers}_all.deb to RPM && \
	su -c "alien -k -r ../$(PROG)_$${dvers}_all.deb" && \
	mv -f *.rpm ..)

sums:
	@vers=`cat $(VERSION)` ; \
	dvers=`head -1 debian/changelog |cut -f2 -d" "|tr -d '()'` ; \
	cd .. && \
	sha1sum *$$dvers*{rpm,deb} *$$vers*.tar.gz \
		|egrep -v "full|orig" |tac -> $(PROG)-$$vers.sha1
