X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fdebian%2Frules;h=431f8985a6c4c289a468dc2b65d0862513b0b307;hb=a2ae8dfea31fc1495e3a97b28f3ddca01f491bef;hp=fef1a8bf64bad9fa1b826c56e1602220305e944a;hpb=a2a06e5d6767d0e45eeccf4032153764e8a5520f;p=citadel.git diff --git a/citadel/debian/rules b/citadel/debian/rules index fef1a8bf6..431f8985a 100755 --- a/citadel/debian/rules +++ b/citadel/debian/rules @@ -4,38 +4,89 @@ #export DH_VERBOSE=1 # This has to be exported to make some magic below work. +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + export DH_OPTIONS DEB_DESTDIR = $(CURDIR)/debian/tmp -CFLAGS = -Wall -g - -#ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -ggdb -pg -#else -# CFLAGS += -O2 -#endif +CFLAGS = -Wall -g -Werror=format-security + +COMPILER= +EXTRA_ARGS= +PROFILE_ARGS= +#to enable debugging: export DEB_BUILD_OPTIONS="debug profiling threadoff rss gcov clang cares" +ifneq (,$(findstring clang,$(DEB_BUILD_OPTIONS))) + COMPILER="clang" +endif +ifneq (,$(findstring profiling,$(DEB_BUILD_OPTIONS))) + PROFILE_ARGS= --with-gprof +endif + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 -ggdb -rdynamic -D_GNU_SOURCE -MD -MP -D TECH_PREVIEW -Wcast-align + LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed + EXTRA_ARGS = --with-backtrace + ifneq (,$(findstring event,$(DEB_BUILD_OPTIONS))) + EXTRA_ARGS = --with-backtrace --with-experimental_eventsmtp + endif +else + LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed + CFLAGS += -O2 +endif + +ifneq (,$(findstring backtrace,$(DEB_BUILD_OPTIONS))) + CFLAGS+= -rdynamic -D_GNU_SOURCE -MD -MP + LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed + EXTRA_ARGS += --with-backtrace +endif + +ifneq (,$(findstring threadoff,$(DEB_BUILD_OPTIONS))) + THREAD_ARGS=--without-threaded-client + CFLAGS += -D WITH_THREADLOG +else + THREAD_ARGS= +endif + + +ifneq (,$(findstring rss,$(DEB_BUILD_OPTIONS))) + CFLAGS += -D DEBUG_RSS +endif + +ifneq (,$(findstring cares,$(DEB_BUILD_OPTIONS))) + CFLAGS += -D DEBUG_CARES +endif + +ifneq (,$(findstring iodbg,$(DEB_BUILD_OPTIONS))) + CFLAGS += -D BIGBAD_IODBG -D LDAP_INITIALIZE +endif + +ifneq (,$(findstring gcov,$(DEB_BUILD_OPTIONS))) + CFLAGS += -fprofile-arcs -ftest-coverage + LDFLAGS += -fprofile-arcs -ftest-coverage +endif configure: configure-stamp configure-stamp: dh_testdir - CFLAGS="$(CFLAGS)" ./configure \ - --with-prefix=/var/lib/citadel \ - --with-datadir=/var/lib/citadel \ - --with-staticdatadir=/usr/share/citadel-server \ - --with-spooldir=/var/spool/citadel \ - --with-sysconfdir=/etc/citadel \ - --with-rundir=/var/run/citadel \ + export CC=$(COMPILER); export LDFLAGS="$(LDFLAGS)"; export CFLAGS="$(CFLAGS)"; ./configure \ + --prefix=/var/lib/citadel/ \ + --with-datadir=/var/lib/citadel/ \ + --with-helpdir=/usr/share/citadel-server/ \ + --with-staticdatadir=/etc/citadel/ \ + --with-spooldir=/var/spool/citadel/ \ + --with-sysconfdir=/etc/citadel/ \ + --with-rundir=/var/run/citadel/ \ --with-docdir=/usr/share/doc/citadel-doc/ \ --with-ssldir=/etc/ssl/citadel/ \ --with-utility-bindir=/usr/lib/citadel-server/ \ + --with-autosysconfdir=/var/lib/citadel/data/ \ + --with-localedir=/usr/share/ \ --with-pam \ --with-db \ - --with-zlib \ - --with-ldap \ - --with-libical \ - --with-libsieve + --enable-debug $(EXTRA_ARGS) $(PROFILE_ARGS) $(THREAD_ARGS) touch configure-stamp @@ -58,13 +109,13 @@ clean: dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp - -$(MAKE) distclean dh_clean rm -f config.status config.log +#[ ! -f Makefile ] || $(MAKE) distclean install: install-indep install-arch -install-indep: +install-indep: build-indep dh_testdir dh_testroot dh_clean -k -i @@ -74,12 +125,13 @@ install-indep: dh_install -i --sourcedir=debian/tmp -install-arch: +install-arch: build-arch dh_testdir dh_testroot dh_clean -k -s dh_installdirs -s + $(MAKE) install-locale DESTDIR=$(DEB_DESTDIR) $(MAKE) DESTDIR=$(DEB_DESTDIR) install-exec-new install-data-new install -D -p -m0755 database_cleanup.sh \ @@ -101,7 +153,8 @@ binary-common: dh_installdebconf dh_installinit --name=citadel dh_installman - dh_strip + dh_strip --dbg-package=citadel-dbg + dh_link dh_compress dh_fixperms dh_makeshlibs