chiark / gitweb /
865fb6ef103f69d854430f09ecc3cdbb8fff64d3
[disorder] / debian / rules
1 #! /usr/bin/make -f
2 #
3 # Copyright (C) 2004-2008 Richard Kettlewell
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18 # USA
19 #
20
21 # Options to configure.  This can be overridden by the caller if necessary.
22 CONFIGURE=--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --mandir=/usr/share/man --with-browser=x-www-browser cgidir=/usr/lib/cgi-bin
23
24 # Set DEB_BUILD_OPTIONS=noopt to produce a non-optimized build.
25 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
26 CFLAGS=-O0 -g
27 else
28 CFLAGS=-O2 -g
29 endif
30 export CFLAGS
31
32 # Install commands.  You wouldn't normally override these.
33 INSTALL=install
34 INSTALL_DATA=$(INSTALL) -p -o root -g root -m 644
35 INSTALL_PROGRAM=$(INSTALL) -p -o root -g root -m 755
36 INSTALL_SCRIPT=$(INSTALL) -p -o root -g root -m 755
37 MKDIR=mkdir -p -m 755
38
39 # Set DEB_BUILD_OPTIONS=nostrip to install debuggable executables.
40 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
41 INSTALL_PROGRAM += -s
42 endif
43
44 export INSTALL_DATA
45 export INSTALL_SCRIPT
46 export INSTALL_PROGRAM
47
48 # We override sendmail to the value defined in policy, in case configure picks
49 # up some other sendmail.
50 SENDMAIL=/usr/sbin/sendmail
51
52 LIBTOOL=./libtool
53 FAKEROOT=fakeroot
54
55 # ./prepare is the script that generates configure etc.  It only needs to be
56 # run if building from a checkout rather than a tarball.
57 build:
58         @set -e;if test ! -f configure; then \
59           echo ./prepare;\
60           ./prepare;\
61         fi
62         @set -e;if test ! -f config.status; then \
63           echo ./configure ${CONFIGURE} ${CONFIGURE_EXTRA};\
64           ./configure ${CONFIGURE} ${CONFIGURE_EXTRA};\
65         else\
66           echo ./config.status;\
67           ./config.status;\
68         fi
69         $(MAKE) SENDMAIL=${SENDMAIL}
70
71 pkg-disorder: build
72         rm -rf debian/disorder
73         $(MKDIR) debian/disorder
74         $(MKDIR) debian/disorder/DEBIAN
75         $(MKDIR) debian/disorder/usr/share/doc/disorder
76         $(MKDIR) debian/disorder/etc/bash_completion.d
77         $(INSTALL_DATA) debian/copyright \
78                 debian/disorder/usr/share/doc/disorder/copyright
79         $(INSTALL_DATA) debian/changelog \
80                 debian/disorder/usr/share/doc/disorder/changelog.Debian
81         gzip -9 debian/disorder/usr/share/doc/disorder/changelog.Debian
82         @for f in preinst postinst prerm postrm conffiles templates config; do\
83           if test -e debian/$$f.disorder; then\
84             echo $(INSTALL_SCRIPT) debian/$$f.disorder debian/disorder/DEBIAN/$$f; \
85             $(INSTALL_SCRIPT) debian/$$f.disorder debian/disorder/DEBIAN/$$f; \
86           fi;\
87         done
88         $(MAKE) DESTDIR=`pwd`/debian/disorder installdirs install -C doc
89         $(MAKE) DESTDIR=`pwd`/debian/disorder installdirs install -C clients
90         $(MAKE) DESTDIR=`pwd`/debian/disorder installdirs install -C lib
91         $(INSTALL_DATA) scripts/completion.bash \
92                 debian/disorder/etc/bash_completion.d/disorder
93         rm -rf debian/disorder/usr/share/man/man8
94         rm -rf debian/disorder/usr/share/disorder/*.html
95         rm -rf debian/disorder/usr/share/disorder/*.tmpl
96         rmdir debian/disorder/usr/share/disorder
97         rm -f debian/disorder/usr/bin/disorder-playrtp
98         rm -f debian/disorder/usr/bin/disobedience
99         rm -f debian/disorder/usr/share/man/man1/disorder-playrtp.1
100         rm -f debian/disorder/usr/share/man/man1/disobedience.1
101         rm -f debian/disorder/usr/share/man/man5/disorder_templates.5
102         rm -f debian/disorder/usr/share/man/man5/disorder_actions.5
103         rm -f debian/disorder/usr/share/man/man5/disorder_options.5
104         $(MKDIR) debian/disorder/etc/disorder
105         dpkg-shlibdeps -Tdebian/substvars.disorder \
106                 debian/disorder/usr/bin/*
107         $(INSTALL_DATA) CHANGES.html README debian/README.Debian \
108                 BUGS README.* \
109                 debian/disorder/usr/share/doc/disorder/.
110         gzip -9f debian/disorder/usr/share/doc/disorder/README \
111                  debian/disorder/usr/share/doc/disorder/README.* \
112                  debian/disorder/usr/share/doc/disorder/BUGS \
113                  debian/disorder/usr/share/man/man*/*
114         dpkg-gencontrol -isp -pdisorder -Pdebian/disorder -Tdebian/substvars.disorder
115         chown -R root:root debian/disorder
116         chmod -R g-ws debian/disorder
117         dpkg --build debian/disorder ..
118
119 pkg-disorder-server: build
120         rm -rf debian/disorder-server
121         $(MKDIR) debian/disorder-server
122         $(MKDIR) debian/disorder-server/DEBIAN
123         $(MKDIR) debian/disorder-server/usr/share/doc/disorder-server
124         $(INSTALL_DATA) debian/copyright \
125                 debian/disorder-server/usr/share/doc/disorder-server/copyright
126         $(INSTALL_DATA) debian/changelog \
127                 debian/disorder-server/usr/share/doc/disorder-server/changelog.Debian
128         gzip -9 debian/disorder-server/usr/share/doc/disorder-server/changelog.Debian
129         @for f in preinst postinst prerm postrm conffiles templates config; do\
130           if test -e debian/$$f.disorder-server; then\
131             echo $(INSTALL_SCRIPT) debian/$$f.disorder-server debian/disorder-server/DEBIAN/$$f; \
132             $(INSTALL_SCRIPT) debian/$$f.disorder-server debian/disorder-server/DEBIAN/$$f; \
133           fi;\
134         done
135         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C images
136         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C server
137         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C templates
138         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C driver
139         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C plugins
140         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C sounds
141         $(MAKE) DESTDIR=`pwd`/debian/disorder-server staticdir=/var/www/disorder installdirs install -C doc
142         rm -rf debian/disorder-server/usr/share/man/man1
143         rm -rf debian/disorder-server/usr/share/man/man3
144         rm -f debian/disorder-server/usr/share/man/man5/disorder_config.5
145         rm -f debian/disorder-server/usr/share/man/man5/disorder_protocol.5
146         $(MKDIR) debian/disorder-server/etc/disorder
147         $(MKDIR) debian/disorder-server/etc/init.d
148         $(MKDIR) debian/disorder-server/usr/lib/cgi-bin
149         $(MKDIR) debian/disorder-server/var/lib/disorder
150         $(INSTALL_SCRIPT) examples/disorder.init \
151                 debian/disorder-server/etc/init.d/disorder
152         $(INSTALL_DATA) debian/etc.disorder.config \
153                 debian/disorder-server/etc/disorder/config
154         $(INSTALL_DATA) templates/options \
155                 debian/disorder-server/etc/disorder/options
156         $(INSTALL_DATA) debian/etc.disorder.options.user \
157                 debian/disorder-server/etc/disorder/options.user
158         $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) cgi/disorder \
159                 $(shell pwd)/debian/disorder-server/usr/lib/cgi-bin/disorder
160         dpkg-shlibdeps -Tdebian/substvars.disorder-server \
161                 debian/disorder-server/usr/lib/cgi-bin/disorder \
162                 debian/disorder-server/usr/sbin/* \
163                 debian/disorder-server/usr/lib/disorder/*.so*
164         rm -rf debian/disorder-server/usr/share/doc/disorder-server
165         ln -s disorder debian/disorder-server/usr/share/doc/disorder-server
166         dpkg-gencontrol -isp -pdisorder-server -Pdebian/disorder-server -Tdebian/substvars.disorder-server
167         chown -R root:root debian/disorder-server
168         chmod -R g-ws debian/disorder-server
169         dpkg --build debian/disorder-server ..
170
171 pkg-disorder-playrtp: build
172         rm -rf debian/disorder-playrtp
173         $(MKDIR) debian/disorder-playrtp
174         $(MKDIR) debian/disorder-playrtp/DEBIAN
175         $(MKDIR) debian/disorder-playrtp/usr/share/doc/disorder-playrtp
176         $(INSTALL_DATA) debian/copyright \
177                 debian/disorder-playrtp/usr/share/doc/disorder-playrtp/copyright
178         $(INSTALL_DATA) debian/changelog \
179                 debian/disorder-playrtp/usr/share/doc/disorder-playrtp/changelog.Debian
180         gzip -9 debian/disorder-playrtp/usr/share/doc/disorder-playrtp/changelog.Debian
181         @for f in preinst postinst prerm postrm conffiles templates config; do\
182           if test -e debian/$$f.disorder-playrtp; then\
183             echo $(INSTALL_SCRIPT) debian/$$f.disorder-playrtp debian/disorder-playrtp/DEBIAN/$$f; \
184             $(INSTALL_SCRIPT) debian/$$f.disorder-playrtp debian/disorder-playrtp/DEBIAN/$$f; \
185           fi;\
186         done
187         $(MKDIR) debian/disorder-playrtp/usr/bin
188         $(MKDIR) debian/disorder-playrtp/usr/share/man/man1
189         $(INSTALL_PROGRAM) clients/disorder-playrtp \
190                 debian/disorder-playrtp/usr/bin/disorder-playrtp
191         $(INSTALL_DATA) doc/disorder-playrtp.1 \
192                 debian/disorder-playrtp/usr/share/man/man1/disorder-playrtp.1
193         dpkg-shlibdeps -Tdebian/substvars.disorder-playrtp \
194                 debian/disorder-playrtp/usr/bin/*
195         $(INSTALL_DATA) debian/README.RTP \
196                 debian/disorder-playrtp/usr/share/doc/disorder-playrtp/README
197         $(INSTALL_DATA) CHANGES.html debian/disorder-playrtp/usr/share/doc/disorder-playrtp/CHANGES.html
198         gzip -9f debian/disorder-playrtp/usr/share/man/man*/*
199         dpkg-gencontrol -isp -pdisorder-playrtp -Pdebian/disorder-playrtp -Tdebian/substvars.disorder-playrtp
200         chown -R root:root debian/disorder-playrtp
201         chmod -R g-ws debian/disorder-playrtp
202         dpkg --build debian/disorder-playrtp ..
203
204 pkg-disobedience: build
205         rm -rf debian/disobedience
206         $(MKDIR) debian/disobedience
207         $(MKDIR) debian/disobedience/DEBIAN
208         $(MKDIR) debian/disobedience/usr/share/doc/disobedience
209         $(INSTALL_DATA) debian/copyright \
210                 debian/disobedience/usr/share/doc/disobedience/copyright
211         $(INSTALL_DATA) debian/changelog \
212                 debian/disobedience/usr/share/doc/disobedience/changelog.Debian
213         gzip -9 debian/disobedience/usr/share/doc/disobedience/changelog.Debian
214         @for f in preinst postinst prerm postrm conffiles templates config; do\
215           if test -e debian/$$f.disobedience; then\
216             echo $(INSTALL_SCRIPT) debian/$$f.disobedience debian/disobedience/DEBIAN/$$f; \
217             $(INSTALL_SCRIPT) debian/$$f.disobedience debian/disobedience/DEBIAN/$$f; \
218           fi;\
219         done
220         $(MKDIR) debian/disobedience/usr/bin
221         $(MKDIR) debian/disobedience/usr/share/man/man1
222         $(MKDIR) debian/disobedience/usr/share/pixmaps
223         $(MKDIR) debian/disobedience/usr/share/menu
224         $(MAKE) -C disobedience install DESTDIR=`pwd`/debian/disobedience
225         $(INSTALL_DATA) doc/disobedience.1 \
226                 debian/disobedience/usr/share/man/man1/disobedience.1
227         $(INSTALL_DATA) images/disobedience16x16.xpm \
228                         images/disobedience32x32.xpm \
229                         debian/disobedience/usr/share/pixmaps
230         $(INSTALL_DATA) debian/usr.share.menu.disobedience \
231                 debian/disobedience/usr/share/menu/disobedience
232         dpkg-shlibdeps -Tdebian/substvars.disobedience \
233                 debian/disobedience/usr/bin/*
234         rm -rf debian/disobedience/usr/share/doc/disobedience
235         ln -s disorder debian/disobedience/usr/share/doc/disobedience
236         dpkg-gencontrol -isp -pdisobedience -Pdebian/disobedience -Tdebian/substvars.disobedience
237         chown -R root:root debian/disobedience
238         chmod -R g-ws debian/disobedience
239         dpkg --build debian/disobedience ..
240
241 DEBVERSION:=$(shell dpkg-parsechangelog|awk '/Version:/ {print $$2}')
242 DSC=disorder_$(DEBVERSION).dsc
243 DEBSRC=disorder_$(DEBVERSION).tar.gz
244 VERSION=$(shell $(MAKE) echo-version)
245
246 source:
247         $(MAKE) dist
248         rm -rf disorder-$(VERSION)
249         tar xfz disorder-$(VERSION).tar.gz
250         dpkg-source -b disorder-$(VERSION)
251         rm -rf disorder-$(VERSION) disorder-$(VERSION).tar.gz
252
253 source-check: source
254         rm -rf disorder-$(DEBVERSION)
255         dpkg-source -x $(DSC)
256         cd disorder-$(DEBVERSION) && dpkg-buildpackage -r$(FAKEROOT)
257
258 binary: binary-arch binary-indep
259 binary-arch: pkg-disorder pkg-disorder-server pkg-disorder-playrtp \
260              pkg-disobedience
261 binary-indep: 
262
263 clean:
264         -$(MAKE) distclean
265         rm -f config.cache
266         rm -f debian/files
267         rm -f debian/substvars.*
268         rm -rf debian/disorder
269         rm -rf debian/disorder-server
270         rm -rf debian/disorder-playrtp
271         rm -rf debian/disobedience
272
273 .PHONY: clean build pkg-disorder pkg-disorder-server pkg-disorder-playrtp \
274         pkg-disobedience source source-check binary binary-arch binary-indep