#!/usr/bin/make -f
# rules file for developers-reference
#
# I do not use debstd, debhelper, or any of that stuff.
# I believe in stripped down rules files; nothing that is not required
# I believe in readability through abstraction

package		:= developers-reference

# directory abstraction
prefix		:= debian/tmp
docdir		:= $(prefix)/usr/doc/$(package)
sharedir	:= $(prefix)/usr/share/$(package)
docbasedir	:= $(prefix)/usr/share/doc-base

# tool abstraction
install_file	:= install -o root -g root -m 644 -p
install_script	:= install -o root -g root -m 755 -p
make_directory	:= install -d -o root -g root -m 755
compress	:= gzip -9f

# version abstraction
DEB_VERSION	:= $(shell LC_ALL=C dpkg-parsechangelog | grep '^Version: ' | sed 's/^Version: *//')
# pretty-print the date
DATE		:= $(shell LC_ALL=C date --date="`dpkg-parsechangelog | grep '^Date: ' | sed 's/^Date: *//'`" '+%d %B, %Y')

# source depends -- check if these packages are installed
SRC_DEPENDS	:= debiandoc-sgml lout psutils

.PHONY: source-depends
source-depends:
	@set -e								;\
	for dep in $(SRC_DEPENDS); do					\
	    echo "checking if package \`$$dep' is installed..."		;\
	    dpkg --get-selections | grep "$$dep\W\+install" ||	\
		exit 1							;\
	done
	@echo "all source-depends seem to be installed, good"

build:	developers-reference.sgml
	$(checkdir)
#	./debian/rules source-depends
	rm -f version.ent
	echo "<!entity version \"$(DEB_VERSION)\">" >> version.ent
	echo "<!entity date    \"$(DATE)\">"        >> version.ent
	nsgmls -wall -s -E20 $^		# check SGML syntax
	debiandoc2html $^
	debiandoc2text $^
	debiandoc2latexpdf -p letter $^
	touch build

clean:
	$(checkdir)
	rm -f build
	rm -rf developers-reference.html
	rm -f developers-reference.txt* developers-reference.ps	\
	  developers-reference.pdf developers-reference.lout* lout.li	\
	  developers-reference.sasp* developers-reference.tex		\
	  developers-reference.aux developers-reference.toc 		\
	  developers-reference.idx version.ent
	rm -f `find . -name "*~"`
	rm -rf $(prefix)
	rm -f debian/files* core debian/substvars

binary-indep:	build
	$(checkdir)
	$(checkroot)
	rm -rf $(prefix)
	$(make_directory) $(prefix)/DEBIAN
	$(make_directory) $(docdir) $(sharedir) $(docbasedir)

	$(make_directory) $(docdir)/developers-reference.html
	$(install_file) developers-reference.html/*			\
		$(docdir)/developers-reference.html/
	$(install_file) developers-reference.txt $(docdir)/
	$(install_file) developers-reference.pdf $(docdir)/
	$(install_file) developers-reference.sgml version.ent common.ent $(docdir)/
	$(install_file) debian/copyright $(docdir)/
	$(install_file) debian/changelog $(docdir)/
	$(install_file) developers-reference.desc $(docbasedir)/$(package)

#	 make sure control files are good
	sh -n debian/postinst
	sh -n debian/prerm
	$(install_script) debian/postinst debian/prerm $(prefix)/DEBIAN/

#	 compress docdir (policy)	
	find $(docdir) -type f \( -size +4k -or -iname "change*" \)	\
		! -name "*.html" ! -name "*.gif" ! -name "*.pdf"	\
		! -name "copyright" | xargs $(compress)

	dpkg-gencontrol -isp
#	 be tricky about putting the TOC sections into the description of the package
	perl -ne '/^\d+\.\s/ && print "    $$_";' < developers-reference.txt \
		>> $(prefix)/DEBIAN/control

	dpkg --build $(prefix) ..

#	 some extra-package files
	$(install_file) developers-reference.pdf			\
	  ../developers-reference.pdf.$(DEB_VERSION)
	dpkg-distaddfile -fdebian/files developers-reference.pdf.$(DEB_VERSION) byhand -
	GZIP=-9 tar czf ../developers-reference.html.tar.gz.$(DEB_VERSION)\
	  developers-reference.html
	dpkg-distaddfile -fdebian/files developers-reference.html.tar.gz.$(DEB_VERSION)\
	  byhand -
	$(install_file) developers-reference.txt			\
	  ../developers-reference.txt
	$(compress) ../developers-reference.txt
	mv ../developers-reference.txt.gz				\
	  ../developers-reference.txt.gz.$(DEB_VERSION)
	dpkg-distaddfile -fdebian/files					\
	  developers-reference.txt.gz.$(DEB_VERSION) byhand -

binary-arch:	build
# There are no architecture-dependent files to be uploaded
# generated by this package.  If there were any they would be
# made here.

define checkdir
	test -f debian/rules
	test -f developers-reference.sgml
endef

# Below here is fairly generic really

define checkroot
	test `id -u` = 0
endef

binary:		binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean

#Local variables:
#mode: makefile
#End:
