Merge branch 'master' of ssh://git.sip-router.org/sip-router into carstenbock/db_cass...
[sip-router] / pkg / kamailio / deb / wheezy / rules
index c2f9625..759804f 100755 (executable)
 #!/usr/bin/make -f
 # Sample debian/rules that uses debhelper.
 # GNU copyright 1997 to 1999 by Joey Hess.
-#
-# $Id$
-#
-# History:
-# --------
-#  2009-07-08  updated for sip-router (andrei)
-#  2009-12-10  updated for kamailio 3.0 (daniel)
 
+DEBVERSION:=$(shell head -n 1 debian/changelog \
+                    | sed -e 's/^[^(]*(\([^)]*\)).*/\1/')
+UPVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/^Version: \(\([0-9]\+\):\)\?\(.*\)-.*/\3/p')
+
+FILENAME := kamailio_$(UPVERSION).orig.tar.gz
+URL := http://www.kamailio.org/pub/kamailio/$(UPVERSION)/src/kamailio-$(UPVERSION)_src.tar.gz
+
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-# This is the debhelper compatibility version to use.
-# export DH_COMPAT=4
-#  -- already set in compat
-export DEB_BUILD_OPTIONS:="$(DEB_BUILD_OPTIONS) debug"
+export JAVA_HOME=/usr/lib/jvm/java-gcj
+
+# choose freeradius
 
 # modules not in the "main" kamailio package
-EXCLUDED_MODULES= 
+EXCLUDED_MODULES=
 
 # extra modules to skip, because they are not compilable now
 # - regardless if they go to the main kamailio package or to some module package,
 # they will be excluded from compile and install of all
-EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy mi_xmlrpc purple
-#EXTRA_EXCLUDED_MODULES=
-
-# possible module directories that can appear in MODULES_SP
-# (only used for deducing a module name)
-MDIRS=modules
-
-# modules packaged in separate packages (complete with full modules_* path)
-# with the package name: kamailio-$(module_name)-module
-MODULES_SP=
+EXTRA_EXCLUDED_MODULES=bdb dbtext oracle pa iptrtpproxy purple mi_xmlrpc dnssec
 
 # module groups that are packaged in seperate packages
 # (with the name kamailio-$(group_name)-modules)
 # Note: the order is important (should be in dependency order, the one
 # on which other depend first)
 PACKAGE_GROUPS=mysql postgres berkeley unixodbc radius presence \
-                          ldap xml perl utils lua memcached tls \
-                          snmpstats carrierroute xmpp cpl redis python geoip \
-                          sqlite json mono ims outbound websocket cassandra
+                          ldap xml perl utils lua memcached \
+                          snmpstats carrierroute xmpp cpl redis python geoip\
+                          sqlite json mono ims sctp java \
+                          tls outbound websocket autheph cassandra
+
+# module groups to be packaged onto kamailio-extra-modules
+EXTRA_GROUPS=gzcompress uuid ev
 
 # name of libdir in the path for libraries (e.g., lib for 32b, lib64 for 64b)
-LIBDIR ?= lib
+LIBDIR ?= lib/$(DEB_HOST_MULTIARCH)
 
 # directories with possible duplicate libraries (that should be deleted
 # from current module* packages)
 DUP_LIBS_DIRS=$(CURDIR)/debian/kamailio/usr/$(LIBDIR)/kamailio \
                        $(CURDIR)/debian/kamailio-db-modules/usr/$(LIBDIR)/kamailio
 
-# modules names out of modules sp
-MODULES_SP_NAMES=$(filter-out $(MDIRS),$(subst /, ,$(MODULES_SP)))
-
 # "function" to get package short name out of a dir/module_name
 # it also transforms db_foo into foo
 mod_name=$(subst db_,,$(lastword $(subst /, ,$(1))))
 
 define PACKAGE_GRP_BUILD_template
        # package all the modules in PACKAGE_GROUPS in separate packages
-       $(foreach grp,$(PACKAGE_GROUPS),\
+       $(foreach grp,$(PACKAGE_GROUPS EXTRA_GROUPS),\
                $(MAKE) every-module group_include="k$(grp)"
        )
 endef
 
 
-define PACKAGE_MODULE_BUILD_template
-       # package all the modules MODULES_SP in separate packages
-       $(foreach mod,$(MODULES_SP),\
-               $(MAKE) modules modules="$(mod)"
-       )
-endef
-
-
 define PACKAGE_GRP_INSTALL_template
        $(foreach grp,$(PACKAGE_GROUPS),\
-               $(MAKE) install-modules-all group_include="k$(grp)" \
+               $(MAKE) install-modules-all LIBDIR=$(LIBDIR) group_include="k$(grp)" \
                basedir=$(CURDIR)/debian/kamailio-$(grp)-modules \
                cfg_prefix=$(CURDIR)/debian/kamailio-$(grp)-modules \
                doc-dir=share/doc/kamailio-$(grp)-modules
                # eliminate duplicate libs
                -for d in $(DUP_LIBS_DIRS); do \
                        test "$$d" != "$(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio" &&\
-                       for r in $$d/lib*; do \
-                               if [ "$$r" != "$$d/lib*" ]; then \
-                                       echo "removing $(grp) lib `basename $$r` present also in $$d";\
-                                       rm -f $(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
-                               fi \
+                       for r in `find $$d -name 'lib*'|xargs`; do \
+                               echo "removing $(grp) lib `basename $$r` present also in $$d";\
+                               rm -f $(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
                        done ; \
                done
+               find $(CURDIR)/debian/kamailio-$(grp)-modules -depth -empty -type d -exec rmdir {} \;
        )
 endef
 
-
-define PACKAGE_MODULE_INSTALL_template
-       $(foreach mod,$(MODULES_SP),
-               $(MAKE) install-modules-all modules="$(mod)" \
-                               modules_s="" modules_k="" \
-                               basedir=$(CURDIR)/debian/kamailio-$(call mod_name,$(mod))-module \
-                               doc-dir=share/doc/kamailio-$(call mod_name,$(mod))-module
-               # eliminate duplicate libs
-               -for d in $(DUP_LIBS_DIRS); do \
-                       test "$$d" != "$(CURDIR)/debian/kamailio-$(call mod_name,$(mod))-module/usr/$(LIBDIR)/kamailio" &&\
-                       for r in $$d/lib*; do \
-                               if [ "$$r" != "$$d/lib*" ]; then \
-                                       echo "removing $(call mod_name, $(mod)) lib `basename $$r` present also in $$d";\
-                                       rm -f $(CURDIR)/debian/kamailio-$(call mod_name,$(mod))-module/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
-                               fi \
-                       done ; \
-               done
+define PACKAGE_EXTRA_INSTALL_template
+       $(foreach grp,$(EXTRA_GROUPS),\
+               $(MAKE) install-modules-all LIBDIR=$(LIBDIR) group_include="k$(grp)" \
+               basedir=$(CURDIR)/debian/kamailio-extra-modules \
+               cfg_prefix=$(CURDIR)/debian/kamailio-extra-modules \
+               doc-dir=share/doc/kamailio-extra-modules
        )
+       # eliminate duplicate libs
+       -for d in $(DUP_LIBS_DIRS); do \
+               test "$$d" != "$(CURDIR)/debian/kamailio-extra-modules/usr/$(LIBDIR)/kamailio" &&\
+               for r in `find $$d -name 'lib*'|xargs`; do \
+                       echo "removing extra lib `basename $$r` present also in $$d";\
+                       rm -f $(CURDIR)/debian/kamailio-extra-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
+               done ; \
+       done
+       find $(CURDIR)/debian/kamailio-extra-modules -depth -empty -type d -exec rmdir {} \;
 endef
 
 ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
@@ -121,6 +106,11 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
        INSTALL_PROGRAM += -s
 endif
 
+# CFLAGS + CPPFLAGS -> CC_EXTRA_OPTS
+# LDFLAGS -> LD_EXTRA_OPTS
+CUSTOM_BUILDFLAGS:=$(shell dpkg-buildflags --export=configure| \
+sed -e 's/" CPPFLAGS="/ /' -e 's/CFLAGS/CC_EXTRA_OPTS/g' -e 's/LDFLAGS/LD_EXTRA_OPTS/g')
+
 configure: configure-stamp
 configure-stamp:
        dh_testdir
@@ -129,21 +119,21 @@ configure-stamp:
                        cfg_target=/etc/kamailio/ \
                        basedir=$(CURDIR)/debian/kamailio \
                        skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \
+                       $(CUSTOM_BUILDFLAGS) \
                        group_include="kstandard"
 
        touch configure-stamp
 
 
 build: build-stamp
-
-build-stamp: configure-stamp 
+build-arch: build-stamp
+build-indep: build-stamp
+build-stamp: configure-stamp
        dh_testdir
        # Add here commands to compile the package.
        $(MAKE) all
        # make groups
        $(call PACKAGE_GRP_BUILD_template)
-       # make single-module packages
-       $(call PACKAGE_MODULE_BUILD_template)
        touch build-stamp
 
 clean:
@@ -151,57 +141,49 @@ clean:
        dh_testroot
        rm -f build-stamp configure-stamp
        # Add here commands to clean up after the build process.
-       -$(MAKE) maintainer-clean
+       $(MAKE) maintainer-clean
        dh_clean
 
 install: build
        dh_testdir
        dh_testroot
-       dh_clean -k
+       dh_prep
        dh_installdirs
        # Add here commands to install the package into debian/kamailio
-       $(MAKE) install group_include="kstandard"
-       # fix etc/kamailio dir location -- not needed -- andrei
-       # mv -f $(CURDIR)/debian/kamailio/usr/etc $(CURDIR)/debian/kamailio
+       $(MAKE) install LIBDIR=$(LIBDIR) group_include="kstandard"
        # make group packages
        $(call PACKAGE_GRP_INSTALL_template)
-       # make single module packages
-       $(call PACKAGE_MODULE_INSTALL_template)
+       $(call PACKAGE_EXTRA_INSTALL_template)
+       mv $(CURDIR)/debian/kamailio-berkeley-modules/usr/sbin/kambdb_recover \
+               $(CURDIR)/debian/kamailio-berkeley-bin/usr/sbin/kambdb_recover
        # install /etc/default/kamailio file
        mkdir -p $(CURDIR)/debian/kamailio/etc/default
        cp -f debian/kamailio.default $(CURDIR)/debian/kamailio/etc/default/kamailio
-       #dh_movefiles
-
 
 
 # This single target is used to build all the packages, all at once, or
 # one at a time. So keep in mind: any options passed to commands here will
 # affect _all_ packages. Anything you want to only affect one package
 # should be put in another target, such as the install target.
-binary-common: 
+binary-common:
        dh_testdir
        dh_testroot
-       dh_installdebconf       
+       dh_installdebconf
        dh_installdocs
        dh_installexamples
        dh_installmenu
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-       dh_installinit  -- defaults 23
+       dh_installinit -pkamailio -- defaults 23
        dh_installcron
        dh_installman
        dh_installinfo
-#      dh_undocumented
-       dh_installchangelogs ChangeLog 
+       dh_lintian
+       dh_installchangelogs ChangeLog
        dh_link
        dh_strip --dbg-package=kamailio-dbg
-       dh_compress 
+       dh_compress
        dh_fixperms
        dh_makeshlibs
        dh_installdeb
-#      dh_perl
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
@@ -222,6 +204,16 @@ binary-arch: build install
 binary-%: build install
        $(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$*
 
+print-version:
+       @@echo "Debian version:          $(DEBVERSION)"
+       @@echo "Upstream version:        $(UPVERSION)"
+
+get-orig-source:
+       @@dh_testdir
+       @@[ -d ../tarballs/. ]||mkdir -p ../tarballs
+       @@echo Downloading $(FILENAME) from $(URL) ...
+       @@wget -nv -T10 -t3 -O ../tarballs/$(FILENAME) $(URL)
+
 binary: binary-indep binary-arch
 .PHONY: build clean binary-indep binary-arch binary install configure