#!/usr/bin/make -f
# PDL debian build rules
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.
package=pdl
ddir=$$(pwd)/debian/tmp
arch = $(shell dpkg --print-architecture)
INSTALL=/usr/bin/install
build:
$(checkdir)
HOME=$$(pwd)/debian perl Makefile.PL INSTALLDIRS=vendor PREFIX=$(ddir)/usr
$(MAKE) OPTIMIZE="-O2 -g -Wall"
#make test ## disabled until doesn't require X
# make doctest dont make the docs do it in postinst
touch build
clean:
$(checkdir)
touch deleteme
(find . -type f | sed 's}^\./}}' | egrep -v ^debian; cat MANIFEST MANIFEST) | sort | uniq -u | xargs rm
-rm -rf blib
-rm -f $$(find . -name "*~")
-rm -rf $(ddir) debian/files* core debian/substvars
binary-indep: checkroot build
$(checkdir)
perl -MConfig -le 'print "perl:Depends=perlapi-$Config{version}"' >>debian/substvers
binary-arch: checkroot build
$(checkdir)
-rm -rf $(ddir)
$(INSTALL) -d $(ddir)/DEBIAN
$(INSTALL) -d $(ddir)/usr/share/doc/$(package)
export BUILDROOTPREFIX=${ddir}; make pure_install
# these scripts are not part of the distribution, but we need them for
# postinst [use sort -u to give me an error if this is ever ambiguous]
set -vx; d=$$(find $(ddir)/usr -type d -name PDL | sed 's}/auto/}/}' | sort -u)/Doc && mkdir -p $$d; cp Doc/scantree.pl Doc/mkhtmldoc.pl $$d/.
set -vx; (d=/$$(cd $(ddir); find usr -type d -name PDL | sed 's}/auto/}/}' | sort -u)/Doc; cat debian/postinst.base; q='>/dev/null 2>&1'; echo perl $$d/scantree.pl $$q; echo perl $$d/mkhtmldoc.pl $$q) > debian/postinst
rm -f $$(find $(ddir)/usr/lib/perl5 -name perllocal.pod)
find $(ddir)/usr/share/man -type f | xargs gzip -9
# remove packlist files
find $(ddir) -type f -name .packlist | xargs -r rm -f
# find $(ddir) -type d -empty | xargs -r rmdir -p --no-fail-on-non-empty
$(INSTALL) -m 644 README $(ddir)/usr/share/doc/$(package)
$(INSTALL) -m 644 TODO $(ddir)/usr/share/doc/$(package)
$(INSTALL) -m 644 debian/README.debian $(ddir)/usr/share/doc/$(package)
$(INSTALL) -m 644 debian/changelog $(ddir)/usr/share/doc/$(package)/changelog.Debian
$(INSTALL) -m 644 Changes $(ddir)/usr/share/doc/$(package)/changelog
-cd $(ddir)/usr/share/doc/$(package); gzip -9v README TODO README.debian changelog changelog.Debian
cp debian/copyright $(ddir)/usr/share/doc/$(package)/copyright
chmod 755 $(ddir)/usr/bin/*
# Install menu entry
$(INSTALL) -d $(ddir)/usr/lib/menu
cp debian/$(package)-menu $(ddir)/usr/lib/menu/$(package)
# copy dpkg scripts
for f in postinst postrm preinst prerm; do \
cp debian/$$f $(ddir)/DEBIAN; \
chmod +x $(ddir)/DEBIAN/$$f; \
done
# debstd Changes README TODO
dpkg-shlibdeps $$(find blib -name '*.so')
dpkg-gencontrol
chown -R root.root $(ddir)
chmod -R go=rX $(ddir)
# fix up some rather odd permissions issues
find $(ddir)/usr/lib $(ddir)/usr/share/man -type f | xargs chmod 644
# clean up any extra symbols
find $(ddir)/usr/lib -name '*.so' | xargs strip --strip-unneeded -R .comment -R .note
dpkg --build $(ddir) ..
define checkdir
test -f debian/rules
endef
binary: binary-indep binary-arch
checkroot:
$(checkdir)
test root = "$$(whoami)"
.PHONY: binary binary-arch binary-indep clean checkroot