X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fdebian%2Frules;h=431f8985a6c4c289a468dc2b65d0862513b0b307;hb=a2ae8dfea31fc1495e3a97b28f3ddca01f491bef;hp=9e31aa107590211a9d99d529dadedc1953efd5a6;hpb=b7f0cf89d557c6c59b3363377bafc4ae93f58cb4;p=citadel.git diff --git a/citadel/debian/rules b/citadel/debian/rules index 9e31aa107..431f8985a 100755 --- a/citadel/debian/rules +++ b/citadel/debian/rules @@ -1,35 +1,92 @@ #!/usr/bin/make -f -# -*- makefile -*- + # Uncomment this to turn on verbose mode. #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 +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 \ - --prefix=/usr/sbin \ - --with-datadir=/var/lib/citadel \ - --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 @@ -44,37 +101,47 @@ build-arch-stamp: configure-stamp build-indep: build-indep-stamp build-indep-stamp: configure-stamp + touch $@ clean: dh_testdir dh_testroot - rm -f build-arch-stamp build-indep-stamp #CONFIGURE-STAMP# - -$(MAKE) distclean + rm -f build-arch-stamp build-indep-stamp configure-stamp + 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 dh_installdirs -i + $(MAKE) DESTDIR=$(DEB_DESTDIR) install-doc-new + 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 - mkdir -p $(DEB_DESTDIR)/usr/lib/citadel-server - mv $(DEB_DESTDIR)/usr/sbin/setup \ - $(DEB_DESTDIR)/usr/lib/citadel-server/ - mkdir -p $(DEB_DESTDIR)/usr/share/doc/citadel-server/ - mv $(DEB_DESTDIR)/usr/share/doc/citadel-doc/database_cleanup.sh \ - $(DEB_DESTDIR)/usr/share/doc/citadel-server/ + + install -D -p -m0755 database_cleanup.sh \ + $(DEB_DESTDIR)/usr/share/doc/citadel-server/examples/database_cleanup.sh + + install -D -p -m0644 docs/welcomemail.html \ + $(DEB_DESTDIR)/usr/share/doc/citadel-server/welcomemail.html + + install -D -p -m0644 docs/welcomemail.txt \ + $(DEB_DESTDIR)/usr/share/doc/citadel-server/welcomemail.txt dh_install -s --sourcedir=debian/tmp @@ -86,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