chiark / gitweb /
radical aph'ification of rules
[developers-reference.git] / debian / rules
1 #!/usr/bin/make -f
2 # rules file for sgml-data
3 #
4 # I do not use debstd, debhelper, or any of that stuff.
5 # I believe in stripped down rules files; nothing that is not required
6 # I believe in readability through abstraction
7
8 package         := developers-reference
9
10 # directory abstraction
11 PREFIX          := debian/tmp
12 docdir          := $(PREFIX)/usr/doc/$(package)
13 libdir          := $(PREFIX)/usr/lib/$(package)
14 sharedir        := $(PREFIX)/usr/share/$(package)
15 menudir         := $(PREFIX)/usr/lib/menu
16 docbasedir      := $(PREFIX)/usr/share/doc-base
17
18 # tool abstraction
19 install_file    := install -o root -g root -m 644 -p
20 install_program := install -o root -g root -m 755 -p
21 make_directory  := install -d -o root -g root -m 755
22 compress        := gzip -9f
23
24 # version abstraction
25 DEB_VERSION     := $(shell LC_ALL=C dpkg-parsechangelog | grep ^Version: | sed 's/^Version: *//')
26 DATE            := $(shell date +"%Y-%m-%d")
27
28 .PHONY: version.ent
29 version.ent:
30         $(checkdir)
31         rm -f version.ent
32         echo "<!entity version \"$(DEB_VERSION)\">" >> version.ent
33         echo "<!entity date    \"$(DATE)\">"        >> version.ent
34
35 build:  version.ent
36         $(checkdir)
37         nsgmls -gues developers-reference.sgml  # check SGML syntax
38         debiandoc2html developers-reference.sgml
39         debiandoc2text developers-reference.sgml
40         touch build
41
42 clean:
43         $(checkdir)
44         rm -f build
45         rm -rf developers-reference.html
46         rm -f developers-reference.text*
47         rm -f developers-reference.lout* lout.li
48         rm -f version.ent
49         rm -f `find . -name "*~"`
50         rm -rf $(PREFIX)
51         rm -f debian/files* core debian/substvars
52
53 binary-indep:   checkroot build
54         $(checkdir)
55         rm -rf $(PREFIX)
56         $(make_directory) $(PREFIX)/DEBIAN
57         $(make_directory) $(docdir)
58         $(make_directory) $(libdir)
59         $(make_directory) $(sharedir)
60
61         $(install_file) developers-reference.html $(docdir)
62         $(install_file) developers-reference.text $(docdir)
63         $(install_file) developers-reference.sgml $(docdir)
64         $(install_file) debian/copyright $(docdir)
65         $(install_file) debian/changelog $(docdir)
66         $(install_file) debian/menu $(menudir)/$(package)
67         $(install_file) developers-reference.desc $(docbasedir)/$(package)
68
69         # make sure control files are good
70         sh -n debian/preinst
71         sh -n debian/postinst
72         sh -n debian/prerm
73         # install the control files
74         $(install_script) debian/control debian/postinst debian/prerm \
75                 $(PREFIX)/DEBIAN/
76
77         # compress docdir (policy)      
78         find $(docdir) -type f \( -size +4k -or -iname "change*" \) \
79             ! -name "*.html" ! -name "*.gif" \
80             ! -name "copyright" | xargs $(compress)
81
82         dpkg-gencontrol -isp
83         dpkg --build $(prefix) ..
84
85         # some extra-package files
86         debiandoc2ps -pletter -1 developers-reference.sgml
87         $(compress) ../developers-reference.ps
88         dpkg-distaddfile -fdebian/files developers-reference.ps.gz byhand -
89         GZIP=-9v tar czf ../developers-reference.html.tar.gz developers-reference.html
90         dpkg-distaddfile -fdebian/files developers-reference.html.tar.gz byhand -
91         $(install_file) developers-reference.text ..
92         $(compress) developers-reference.text
93         dpkg-distaddfile -fdebian/files developers-reference.text.gz byhand -
94
95 binary-arch:    checkroot build
96         $(checkdir)
97 # There are no architecture-dependent files to be uploaded
98 # generated by this package.  If there were any they would be
99 # made here.
100
101 define checkdir
102         test -f debian/rules
103 endef
104
105 # Below here is fairly generic really
106
107 binary:         binary-indep binary-arch
108
109 checkroot:
110         $(checkdir)
111         test root = "`whoami`"
112
113 .PHONY: binary binary-arch binary-indep clean checkroot