#!/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/share/doc/$(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: *//')
DEB_DATE	:= $(shell dpkg-parsechangelog | sed -n 's/^Date: *//p')
# pretty-print the date; I wish this was dynamic like the top-level makefile but oh well
DATE_EN		:= $(shell LC_ALL=C     date --date="$(DEB_DATE)" '+%d %B, %Y')
DATE_FR		:= $(shell LC_ALL=fr_FR date --date="$(DEB_DATE)" '+%d %B %Y')
DATE_JA		:= $(shell LC_ALL=ja_JP date --date="$(DEB_DATE)" '+%x')

version.ent:	debian/changelog
	:> version.ent
	echo "<!entity version \"$(DEB_VERSION)\">" >> version.ent
	echo "<!entity date-en \"$(DATE_EN)\">"     >> version.ent
	echo "<!entity date-fr \"$(DATE_FR)\">"     >> version.ent
	echo "<!entity date-ja \"$(DATE_JA)\">"     >> version.ent

build:
	$(checkdir)
	$(MAKE)
	touch build

clean:
	$(checkdir)
	$(MAKE) clean
	rm -f build
	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) $(docbasedir)

	for dir in $(wildcard developers-reference*.html); do \
		$(make_directory) $(docdir)/$$dir ;\
		$(install_file) $$dir/*.html $(docdir)/$$dir/ ;\
	done
	$(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) ChangeLog $(docdir)/changelog
	$(install_file) debian/changelog $(docdir)/changelog.Debian
	$(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:
