chiark / gitweb /
build and clean stuff with the top-level makefile, not debian/rules;
[developers-reference.git] / debian / rules
1 #!/usr/bin/make -f
2 # rules file for developers-reference
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/share/doc/$(package)
13 sharedir        := $(prefix)/usr/share/$(package)
14 docbasedir      := $(prefix)/usr/share/doc-base
15
16 # tool abstraction
17 install_file    := install -o root -g root -m 644 -p
18 install_script  := install -o root -g root -m 755 -p
19 make_directory  := install -d -o root -g root -m 755
20 compress        := gzip -9f
21
22 # version abstraction
23 DEB_VERSION     := $(shell LC_ALL=C dpkg-parsechangelog | grep '^Version: ' | sed 's/^Version: *//')
24 # pretty-print the date
25 DATE            := $(shell LC_ALL=C date --date="`dpkg-parsechangelog | grep '^Date: ' | sed 's/^Date: *//'`" '+%d %B, %Y')
26
27 version.ent:
28         :> version.ent
29         echo "<!entity version \"$(DEB_VERSION)\">" >> version.ent
30         echo "<!entity date    \"$(DATE)\">"        >> version.ent
31
32 build:
33         $(checkdir)
34         $(MAKE)
35         touch build
36
37 clean:
38         $(checkdir)
39         $(MAKE) clean
40         rm -f build
41         rm -rf $(prefix)
42         rm -f debian/files* core debian/substvars
43
44 binary-indep:   build
45         $(checkdir)
46         $(checkroot)
47         rm -rf $(prefix)
48         $(make_directory) $(prefix)/DEBIAN
49         $(make_directory) $(docdir) $(sharedir) $(docbasedir)
50
51         $(make_directory) $(docdir)/developers-reference.html
52         $(install_file) developers-reference.html/*                     \
53                 $(docdir)/developers-reference.html/
54         $(install_file) developers-reference.txt $(docdir)/
55         $(install_file) developers-reference.pdf $(docdir)/
56         $(install_file) developers-reference.sgml version.ent common.ent $(docdir)/
57         $(install_file) debian/copyright $(docdir)/
58         $(install_file) debian/changelog $(docdir)/
59         $(install_file) developers-reference.desc $(docbasedir)/$(package)
60
61 #        make sure control files are good
62         sh -n debian/postinst
63         sh -n debian/prerm
64         $(install_script) debian/postinst debian/prerm $(prefix)/DEBIAN/
65
66 #        compress docdir (policy)       
67         find $(docdir) -type f \( -size +4k -or -iname "change*" \)     \
68                 ! -name "*.html" ! -name "*.gif" ! -name "*.pdf"        \
69                 ! -name "copyright" | xargs $(compress)
70
71         dpkg-gencontrol -isp
72 #        be tricky about putting the TOC sections into the description of the package
73         perl -ne '/^\d+\.\s/ && print "    $$_";' < developers-reference.txt \
74                 >> $(prefix)/DEBIAN/control
75
76         dpkg --build $(prefix) ..
77
78 #        some extra-package files
79         $(install_file) developers-reference.pdf                        \
80           ../developers-reference.pdf.$(DEB_VERSION)
81         dpkg-distaddfile -fdebian/files developers-reference.pdf.$(DEB_VERSION) byhand -
82         GZIP=-9 tar czf ../developers-reference.html.tar.gz.$(DEB_VERSION)\
83           developers-reference.html
84         dpkg-distaddfile -fdebian/files developers-reference.html.tar.gz.$(DEB_VERSION)\
85           byhand -
86         $(install_file) developers-reference.txt                        \
87           ../developers-reference.txt
88         $(compress) ../developers-reference.txt
89         mv ../developers-reference.txt.gz                               \
90           ../developers-reference.txt.gz.$(DEB_VERSION)
91         dpkg-distaddfile -fdebian/files                                 \
92           developers-reference.txt.gz.$(DEB_VERSION) byhand -
93
94 binary-arch:    build
95 # There are no architecture-dependent files to be uploaded
96 # generated by this package.  If there were any they would be
97 # made here.
98
99 define checkdir
100         test -f debian/rules
101         test -f developers-reference.sgml
102 endef
103
104 # Below here is fairly generic really
105
106 define checkroot
107         test `id -u` = 0
108 endef
109
110 binary:         binary-indep binary-arch
111
112 .PHONY: binary binary-arch binary-indep clean
113
114 #Local variables:
115 #mode: makefile
116 #End: