X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fdebian%2Frules;h=431f8985a6c4c289a468dc2b65d0862513b0b307;hb=a2ae8dfea31fc1495e3a97b28f3ddca01f491bef;hp=9af35c279b1ea9d6efda48d0ae96cf56e334616d;hpb=60566a945e58f4f067479a796bad3b06965fc1e7;p=citadel.git diff --git a/citadel/debian/rules b/citadel/debian/rules index 9af35c279..431f8985a 100755 --- a/citadel/debian/rules +++ b/citadel/debian/rules @@ -1,150 +1,176 @@ #!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. -# -# Modified to make a template file for a multi-binary package with separated -# build-arch and build-indep targets by Bill Allombert 2001 # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This has to be exported to make some magic below work. -export DH_OPTIONS - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -export VERSION=`grep 'THIS IS' $(CURDIR)/ChangeLog |head -n 1 |sed "s;.* ;;"` -CFLAGS = -Wall -g +export DH_OPTIONS + +DEB_DESTDIR = $(CURDIR)/debian/tmp + +CFLAGS = -Wall -g -Werror=format-security -#ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -ggdb -#else -# CFLAGS += -O2 -#endif +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 -config.status: configure +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 \ - --host=$(DEB_HOST_GNU_TYPE) \ - --build=$(DEB_BUILD_GNU_TYPE) \ - --prefix=/usr/sbin \ - --with-sysconfdir=/etc/citadel \ - --with-spooldir=/var/spool/citadel \ - --with-datadir=/var/lib/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/ \ - --enable-autologin \ - --with-ical --with-db --with-ldap + --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 \ + --enable-debug $(EXTRA_ARGS) $(PROFILE_ARGS) $(THREAD_ARGS) + touch configure-stamp #Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: config.status +build-arch-stamp: configure-stamp - # Add here commands to compile the arch part of the package. - #$(MAKE) - touch build-arch-stamp + $(MAKE) + touch $@ build-indep: build-indep-stamp -build-indep-stamp: config.status +build-indep-stamp: configure-stamp - # Add here commands to compile the indep part of the package. - #$(MAKE) doc - touch build-indep-stamp + touch $@ clean: dh_testdir dh_testroot - rm -f build-arch-stamp build-indep-stamp #CONFIGURE-STAMP# - -$(MAKE) distclean -ifneq "$(wildcard /usr/share/misc/config.sub)" "" - cp -f /usr/share/misc/config.sub config.sub -endif -ifneq "$(wildcard /usr/share/misc/config.guess)" "" - cp -f /usr/share/misc/config.guess config.guess -endif + 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 - export root=$(CURDIR)/debian/tmp; $(MAKE) install-doc-new prefix=$(CURDIR)/debian/citadel-doc/ + $(MAKE) DESTDIR=$(DEB_DESTDIR) install-doc-new -install-arch: + dh_install -i --sourcedir=debian/tmp + +install-arch: build-arch dh_testdir dh_testroot dh_clean -k -s dh_installdirs -s - mkdir -p $(CURDIR)/debian/tmp/ - export root=$(CURDIR)/debian/tmp/;$(MAKE) install-exec-new install-data-new - - mkdir -p $(CURDIR)/debian/tmp/usr/lib/citadel-server - mv \ - $(CURDIR)/debian/tmp/usr/sbin/setup \ - $(CURDIR)/debian/tmp/usr/lib/citadel-server/ -# cd $(CURDIR)/debian/tmp/usr/share/doc/citadel-server/examples/help; md5sum * >../help.md5sums -# cd $(CURDIR)/debian/tmp/usr/share/doc/citadel-server/examples/messages; md5sum * >../messages.md5sums - cp \ - $(CURDIR)/debian/tmp/usr/sbin/citmail \ - $(CURDIR)/debian/tmp/usr/sbin/sendmail - dh_installexamples - dh_install -# Must not depend on anything. This is to be called by -# binary-arch/binary-indep -# in another 'make' thread. + + $(MAKE) install-locale DESTDIR=$(DEB_DESTDIR) + $(MAKE) DESTDIR=$(DEB_DESTDIR) install-exec-new install-data-new + + 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 + binary-common: dh_testdir dh_testroot - dh_installchangelogs ChangeLog + dh_installchangelogs dh_installdocs - dh_installexamples -# dh_installmenu dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo + dh_installinit --name=citadel dh_installman -#doesn't work like that. will be done by postinst. -# mkdir -p $(CURDIR)/debian/citadel-mta/usr/sbin -# dh_link --package=citadel-mta /usr/sbin/citmail /usr/sbin/sendmail - dh_strip + dh_strip --dbg-package=citadel-dbg + dh_link dh_compress dh_fixperms -# dh_perl -# dh_python dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb + # Build architecture independant packages using the common target. binary-indep: build-indep install-indep $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common # Build architecture dependant packages using the common target. binary-arch: build-arch install-arch - $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common binary: binary-arch binary-indep -.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch +.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure