* add thread debugging to thread disabling for client flags
[citadel.git] / citadel / debian / rules
1 #!/usr/bin/make -f
2
3 # Uncomment this to turn on verbose mode.
4 #export DH_VERBOSE=1
5
6 # This has to be exported to make some magic below work.
7 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
8 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
9
10 export DH_OPTIONS
11
12 DEB_DESTDIR = $(CURDIR)/debian/tmp
13
14 CFLAGS = -Wall -g
15
16
17 EXTRA_ARGS=
18 PROFILE_ARGS=
19 #to enable debugging: export DEB_BUILD_OPTIONS="debug profiling threadoff rss"
20 ifneq (,$(findstring profiling,$(DEB_BUILD_OPTIONS)))
21         PROFILE_ARGS= --with-gprof
22 endif
23 ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
24         CFLAGS += -O0 -ggdb -rdynamic -D_GNU_SOURCE -MD -MP -D TECH_PREVIEW
25         LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed
26         EXTRA_ARGS = --with-backtrace
27 else
28         LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed
29         CFLAGS += -O2
30 endif
31
32 ifneq (,$(findstring threadoff,$(DEB_BUILD_OPTIONS)))
33         THREAD_ARGS=--without-threaded-client
34         CFLAGS += -D WITH_THREADLOG
35 else
36         THREAD_ARGS=
37 endif
38
39
40 ifneq (,$(findstring rss,$(DEB_BUILD_OPTIONS)))
41         CFLAGS += -D DEBUG_RSS
42 endif
43
44 ifneq (,$(findstring iodbg,$(DEB_BUILD_OPTIONS)))
45         CFLAGS += -D BIGBAD_IODBG
46 endif
47
48 configure: configure-stamp
49 configure-stamp:
50         dh_testdir
51
52         LDFLAGS="$(LDFLAGS)"; CFLAGS="$(CFLAGS)" ./configure \
53                 --prefix=/var/lib/citadel/ \
54                 --with-datadir=/var/lib/citadel/ \
55                 --with-helpdir=/usr/share/citadel-server/ \
56                 --with-staticdatadir=/etc/citadel/ \
57                 --with-spooldir=/var/spool/citadel/ \
58                 --with-sysconfdir=/etc/citadel/ \
59                 --with-rundir=/var/run/citadel/ \
60                 --with-docdir=/usr/share/doc/citadel-doc/ \
61                 --with-ssldir=/etc/ssl/citadel/ \
62                 --with-utility-bindir=/usr/lib/citadel-server/ \
63                 --with-autosysconfdir=/var/lib/citadel/data/ \
64                 --with-localedir=/usr/share/ \
65                 --with-pam \
66                 --with-db \
67                 --enable-debug $(EXTRA_ARGS) $(PROFILE_ARGS) $(THREAD_ARGS)
68
69         touch configure-stamp
70
71 #Architecture 
72 build: build-arch build-indep
73
74 build-arch: build-arch-stamp
75 build-arch-stamp: configure-stamp
76
77         $(MAKE)
78         touch $@
79
80 build-indep: build-indep-stamp
81 build-indep-stamp: configure-stamp
82
83         touch $@
84
85 clean:
86         dh_testdir
87         dh_testroot
88         rm -f build-arch-stamp build-indep-stamp configure-stamp
89
90
91         dh_clean 
92         rm -f config.status config.log
93 #[ ! -f Makefile ] || $(MAKE) distclean
94
95 install: install-indep install-arch
96 install-indep: build-indep
97         dh_testdir
98         dh_testroot
99         dh_clean -k -i 
100         dh_installdirs -i
101
102         $(MAKE) DESTDIR=$(DEB_DESTDIR) install-doc-new
103
104         dh_install -i --sourcedir=debian/tmp
105
106 install-arch: build-arch
107         dh_testdir
108         dh_testroot
109         dh_clean -k -s 
110         dh_installdirs -s
111
112         $(MAKE) install-locale DESTDIR=$(DEB_DESTDIR)
113         $(MAKE) DESTDIR=$(DEB_DESTDIR) install-exec-new install-data-new
114
115         install -D -p -m0755 database_cleanup.sh \
116                 $(DEB_DESTDIR)/usr/share/doc/citadel-server/examples/database_cleanup.sh
117
118         install -D -p -m0644 docs/welcomemail.html \
119                 $(DEB_DESTDIR)/usr/share/doc/citadel-server/welcomemail.html
120
121         install -D -p -m0644 docs/welcomemail.txt \
122                 $(DEB_DESTDIR)/usr/share/doc/citadel-server/welcomemail.txt
123
124         dh_install -s --sourcedir=debian/tmp
125
126 binary-common:
127         dh_testdir
128         dh_testroot
129         dh_installchangelogs
130         dh_installdocs
131         dh_installdebconf       
132         dh_installinit --name=citadel
133         dh_installman
134         dh_strip --dbg-package=citadel-dbg
135         dh_link
136         dh_compress 
137         dh_fixperms
138         dh_makeshlibs
139         dh_installdeb
140         dh_shlibdeps
141         dh_gencontrol
142         dh_md5sums
143         dh_builddeb
144
145 # Build architecture independant packages using the common target.
146 binary-indep: build-indep install-indep
147         $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
148
149 # Build architecture dependant packages using the common target.
150 binary-arch: build-arch install-arch
151         $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
152
153 binary: binary-arch binary-indep
154 .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure