SHELL = /bin/sh
package = display-dhammapada
Package = $(package)
VERSION = 0.15

#ARCHITECTURE = i386
ARCHITECTURE=$(shell arch="`if test -x /usr/bin/dpkg; \
	then dpkg --print-architecture; else uname -m; fi`" \
	&& if [ "$${arch%%i?86}"y = y ]; then arch=i386; fi \
	&& echo "$$arch")

# flags for your C compiler:
OPT = -O2
WARN = -ansi -Wall -Wno-unused
CFLAGS  = $(OPT) $(WARN) $(DEFS)

# install files with this ownership:
owner=root
group=staff

install_own = -o $(owner) -g $(group)
BIN      = display-dhammapada
BINshort = dp
CC      = cc
DP       = dhammapada-english-transl.txt
DEBDIST	= ../$(package)_$(VERSION)_$(ARCHITECTURE).changes \
	../$(package)_$(VERSION)_$(ARCHITECTURE).deb \
	../$(package)_$(VERSION).dsc \
	../$(package)_$(VERSION).tar.gz
DEBIAN	= debian/changelog debian/control debian/copyright debian/rules 
DOCS     = $(DP) $(Package)-$(VERSION).lsm changelog COPYING copyright
EXAMPLES = examples/profile
#GZIPDOCS = yes
SRCS    = $(BIN).c $(Package).spec.in Makefile INSTALL
prefix  = /usr/local
exec_prefix = $(prefix)
bindir  = $(exec_prefix)/bin
docsdir  = $(prefix)/doc/$(Package)
examplesdir = $(docsdir)/examples
datadir  = $(prefix)/share/$(Package)
# relative symlink from docsdir to datadir:
relDATADIR = ../../share/$(Package)
DEFS    = '-DDPPATHNAME="$(docsdir)/$(DP)"' \
	'-DDPPATHNAME2="$(datadir)/$(DP)"' '-DVERSION="$(VERSION)"'

all:	$(BIN)

$(BIN):

clean:
	-rm  -R -f *.o *~ *.bak 1 2 t tmp \#*\# errors* core* \
		a.out typescript debian/tmp debian/files* debian/substvars* \
		./stdin ./stdout $(BIN) $(BINshort) $(Package)-*.spec

debdist $(DEBDIST):	$(DEBIAN) $(DOCS) $(EXAMPLES) $(MAN1) $(SRCS)
	test -r $$HOME/.pgp/secring.pgp
	dpkg-buildpackage

dist tar:	clean all $(Package)-$(VERSION).spec
	-rm -f *.o
	cd .. && tar -cvzf $(Package)-$(VERSION).tar.gz $(Package)-$(VERSION)/
	

distclean: clean
	-rm ../$(package)_$(VERSION)_$(ARCHITECTURE).deb

disttest:	$(DEBDIST)
	cp $(addprefix ../$(package)_$(VERSION).,dsc tar.gz) /tmp/
	cd /tmp && tar -xvzf $(package)_$(VERSION).tar.gz
	cd /tmp/$(package)-$(VERSION) && \
			make install test uninstall
	make rpm
	rpm --install --force --nodeps /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-0.$(ARCHITECTURE).rpm
	rpm -qisv display-dhammapada
	rm -R -f /tmp/$(package)-$(VERSION)
	cd /tmp && dpkg-source -x $(package)_$(VERSION).dsc
	cd /tmp/$(package)-$(VERSION) && \
		dpkg-buildpackage -B
	dpkg --contents /tmp/$(package)_$(VERSION)_$(ARCHITECTURE).deb
	-rpm --erase $(Package)
	dpkg --install  /tmp/$(package)_$(VERSION)_$(ARCHITECTURE).deb
	cd /tmp/$(package)-$(VERSION) && rm $(DEBDIST)
	rm -R -f /tmp/$(package)-$(VERSION)

install:	all $(DOCS) $(MAN1)
	install -d $(install_own) -m 2775	$(bindir)
	install -s $(install_own) -m 775	$(BIN)		$(bindir)
	if [ $(BINshort)_ != _ ]; \
	then \
		ln -f -s	$(BIN)		$(bindir)/$(BINshort) \
		|| ln -f	$(BIN)		$(bindir)/$(BINshort); \
	fi
	install -d $(install_own) -m 2775	$(datadir)
	install    $(install_own) -m 664	$(DP)		$(datadir)
	install -d $(install_own) -m 2775	$(docsdir)
	cp -p -f -d				$(DOCS)		$(docsdir)
	cd $(docsdir) && chown $(owner).$(group) $(DOCS) && chmod 664 $(DOCS)
	install -d $(install_own) -m 2775	$(examplesdir)
	install    $(install_own) -m 664	$(EXAMPLES)	$(examplesdir)
	[ _$(GZIPDOCS) != _yes ] || gzip --best --force --verbose $(docsdir)/changelog
	if [ $(datadir) != $(docsdir) ]; \
	then \
		ln -f -s $(relDATADIR)/$(DP) $(docsdir) \
		|| ln -f $(relDATADIR)/$(DP) $(docsdir); \
	fi

realclean: clean
	-rm $(DEBDIST)

$(Package)-$(VERSION).spec:	$(Package).spec.in
	-rm -f $(Package)*.spec
	[ $(VERSION)x != x ]
	Summary="`sed -n -e 's/^Description:[[:space:]]*//p' \
						$(Package)-$(VERSION).lsm`" \
	&& Copying="`sed -n -e 's/^Copying-policy:[[:space:]]*//p' \
						$(Package)-$(VERSION).lsm`" \
	&& sed -e 's/$${version}/$(VERSION)/g; s/$${summary}/'"$${Summary}"'/g; \
		 s/$${copying}/'"$${Copying}"/g \
		 $< >tmp
	sed -n -e '1,/^%description/p' tmp >$@
	sed -n -e '/^Description:/,/^[^[:space:]]/!d; /^[[:space:]]/p' \
		$(Package)-$(VERSION).lsm >>$@
	sed -n -e '1,/^%description/!p' tmp >>$@
	rm -f tmp

rpm:		tar $(Package)-$(VERSION).spec
		cp ../$(Package)-$(VERSION).tar.gz /usr/src/redhat/SOURCES
		rpm --clean -v -ba $(Package)-$(VERSION).spec

rpmi:
		rpm -vv -bi --short-circuit $(Package)-$(VERSION).spec

rpmsign:
	test -r $$HOME/.pgp/secring.pgp
	rpm -vv --resign \
		/usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \
		/usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.$(ARCHITECTURE).rpm

rpmdist:	rpm rpmsign

test check:
	@echo Testing installation...
	$(bindir)/$(BIN)
	-$(bindir)/$(BINshort)
	. $(examplesdir)/profile
	@echo -n "Press <enter> ... "
	@read a

uninstall:
	rm -f $(bindir)/$(BIN) $(bindir)/$(BINshort) \
				$(datadir)/$(DP)
	cd $(docsdir) \
		&& for f in $(DOCS); do rm -f $$f $$f.gz; done
	cd $(examplesdir) \
		&& for f in $(EXAMPLES); \
			do rm -f $${f##*/} $${f##*/}.gz; done
	-rmdir $(examplesdir) 
	-rmdir $(datadir) $(docsdir)

UPHOST=sunsite.unc.edu
upload: #dist debdist ../$(Package)-$(VERSION).tar.gz $(Package)-$(VERSION).lsm
	[ $(VERSION)x != x ]
	[ "`rpm --checksig \
		/usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \
		/usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.$(ARCHITECTURE).rpm \
	| grep -c 'pgp md5 OK$$'`" = 2 ]
	set -x; xPWD=`pwd` && echo -e \
	   open -r -d 10 ftp.redhat.com\\n \
	   cd /pub/Incoming\\n \
	   mput /usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \
	    /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.rpm\\n \
	   dir $(Package)-$(VERSION)-0.src.rpm $(Package)-$(VERSION)-0.i386.rpm\\n \
	   redir \>$$xPWD/../$(Package)-$(VERSION).ftp.redhat.com\\n \
	| ncftp
	set -x; xPWD=`pwd` && echo -e open -r -d 10 $(UPHOST)\\n \
	   cd /incoming/Linux\\n \
	   lcd $$xPWD\\n \
	   mput ../$(Package)-$(VERSION).tar.gz $(Package)-$(VERSION).lsm\\n \
	   dir $(Package)*\\n \
	   redir $(Package)* \>../$(Package)-$(VERSION).$(UPHOST)\\n \
	| ncftp
	dupload --to erlangen ../$(package)_$(VERSION)_$(ARCHITECTURE).changes

# vi: set noexpandtab:


