'Network User' is now 'Normal User'
[citadel.git] / citadel / debian / rules
index ccb834f7791fc61bc8c9b694338159274d55daee..431f8985a6c4c289a468dc2b65d0862513b0b307 100755 (executable)
 #!/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)
 
-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
+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/ \
+               --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-libical \
-               --with-libsieve \
                --with-db \
-               --with-ldap
+               --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
-       $(MAKE) -C . install DESTDIR="$(CURDIR)/debian/tmp" 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/
-       $(MAKE) -C . install DESTDIR="$(CURDIR)/debian/tmp/" 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  --name=citadel
-#      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