chiark / gitweb /
e030330374881f0661329656fa0caf30c2293087
[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
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.cgi \
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 debian/disorder-playrtp/usr/share/doc/disorder-playrtp/CHANGES
198         gzip -9f debian/disorder-playrtp/usr/share/doc/disorder-playrtp/CHANGES \
199                  debian/disorder-playrtp/usr/share/man/man*/*
200         dpkg-gencontrol -isp -pdisorder-playrtp -Pdebian/disorder-playrtp -Tdebian/substvars.disorder-playrtp
201         chown -R root:root debian/disorder-playrtp
202         chmod -R g-ws debian/disorder-playrtp
203         dpkg --build debian/disorder-playrtp ..
204
205 pkg-disobedience: build
206         rm -rf debian/disobedience
207         $(MKDIR) debian/disobedience
208         $(MKDIR) debian/disobedience/DEBIAN
209         $(MKDIR) debian/disobedience/usr/share/doc/disobedience
210         $(INSTALL_DATA) debian/copyright \
211                 debian/disobedience/usr/share/doc/disobedience/copyright
212         $(INSTALL_DATA) debian/changelog \
213                 debian/disobedience/usr/share/doc/disobedience/changelog.Debian
214         gzip -9 debian/disobedience/usr/share/doc/disobedience/changelog.Debian
215         @for f in preinst postinst prerm postrm conffiles templates config; do\
216           if test -e debian/$$f.disobedience; then\
217             echo $(INSTALL_SCRIPT) debian/$$f.disobedience debian/disobedience/DEBIAN/$$f; \
218             $(INSTALL_SCRIPT) debian/$$f.disobedience debian/disobedience/DEBIAN/$$f; \
219           fi;\
220         done
221         $(MKDIR) debian/disobedience/usr/bin
222         $(MKDIR) debian/disobedience/usr/share/man/man1
223         $(MKDIR) debian/disobedience/usr/share/pixmaps
224         $(MKDIR) debian/disobedience/usr/share/menu
225         $(MAKE) -C disobedience install DESTDIR=`pwd`/debian/disobedience
226         $(INSTALL_DATA) doc/disobedience.1 \
227                 debian/disobedience/usr/share/man/man1/disobedience.1
228         $(INSTALL_DATA) images/disobedience16x16.xpm \
229                         images/disobedience32x32.xpm \
230                         debian/disobedience/usr/share/pixmaps
231         $(INSTALL_DATA) debian/usr.share.menu.disobedience \
232                 debian/disobedience/usr/share/menu/disobedience
233         dpkg-shlibdeps -Tdebian/substvars.disobedience \
234                 debian/disobedience/usr/bin/*
235         rm -rf debian/disobedience/usr/share/doc/disobedience
236         ln -s disorder debian/disobedience/usr/share/doc/disobedience
237         dpkg-gencontrol -isp -pdisobedience -Pdebian/disobedience -Tdebian/substvars.disobedience
238         chown -R root:root debian/disobedience
239         chmod -R g-ws debian/disobedience
240         dpkg --build debian/disobedience ..
241
242 DEBVERSION:=$(shell dpkg-parsechangelog|awk '/Version:/ {print $$2}')
243 DSC=disorder_$(DEBVERSION).dsc
244 DEBSRC=disorder_$(DEBVERSION).tar.gz
245 VERSION=$(shell $(MAKE) echo-version)
246
247 source:
248         $(MAKE) dist
249         rm -rf disorder-$(VERSION)
250         tar xfz disorder-$(VERSION).tar.gz
251         dpkg-source -b disorder-$(VERSION)
252         rm -rf disorder-$(VERSION) disorder-$(VERSION).tar.gz
253
254 source-check: source
255         rm -rf disorder-$(DEBVERSION)
256         dpkg-source -x $(DSC)
257         cd disorder-$(DEBVERSION) && dpkg-buildpackage -r$(FAKEROOT)
258
259 binary: binary-arch binary-indep
260 binary-arch: pkg-disorder pkg-disorder-server pkg-disorder-playrtp \
261              pkg-disobedience
262 binary-indep: 
263
264 clean:
265         -$(MAKE) distclean
266         rm -f config.cache
267         rm -f debian/files
268         rm -f debian/substvars.*
269         rm -rf debian/disorder
270         rm -rf debian/disorder-server
271         rm -rf debian/disorder-playrtp
272         rm -rf debian/disobedience
273
274 .PHONY: clean build pkg-disorder pkg-disorder-server pkg-disorder-playrtp \
275         pkg-disobedience source source-check binary binary-arch binary-indep