You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/debian/rules

235 lines
7.2 KiB

#!/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)
# 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
# force no striping (always include debug symbols for now)
export DEB_BUILD_OPTIONS:="$(DEB_BUILD_OPTIONS) debug"
# modules not in the "main" kamailio package
EXCLUDED_MODULES= purple
# 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
#EXTRA_EXCLUDED_MODULES=
# possible module directories that can appear in MODULES_SP
# (only used for deducing a module name)
MDIRS=modules modules_s modules_k
# modules packaged in separate packages (complete with full modules_* path)
# with the package name: kamailio-$(module_name)-module
MODULES_SP=
# 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 geoip memcached tls \
snmpstats carrierroute xmpp cpl lua python \
sqlite json
# name of libdir in the path for libraries (e.g., lib for 32b, lib64 for 64b)
export LIBDIR=lib64
# 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),\
$(MAKE) -j`nproc` 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) -j`nproc` modules modules="$(mod)"
)
endef
define PACKAGE_GRP_INSTALL_template
$(foreach grp,$(PACKAGE_GROUPS),\
$(MAKE) install-modules-all 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 \
echo "removing $(grp) lib `basename $$r` present also in $$d";\
rm -f $(CURDIR)/debian/kamailio-$(grp)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
done ; \
done
)
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 \
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"` ; \
done ; \
done
)
endef
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -g
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
CFLAGS+=$(shell dpkg-buildflags --get CFLAGS)
LDFLAGS+=$(shell dpkg-buildflags --get LDFLAGS)
configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.
$(MAKE) FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$(CURDIR)/debian/kamailio \
cfg_target=/etc/kamailio/ \
basedir=$(CURDIR)/debian/kamailio \
skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \
group_include="kstandard"
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# Add here commands to compile the package.
$(MAKE) -j`nproc` all
# make groups
$(call PACKAGE_GRP_BUILD_template)
# make single-module packages
$(call PACKAGE_MODULE_BUILD_template)
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
-$(MAKE) maintainer-clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
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 group packages
$(call PACKAGE_GRP_INSTALL_template)
# make single module packages
$(call PACKAGE_MODULE_INSTALL_template)
# install /etc/default/kamailio file -- not needed in ngcp
#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:
dh_testdir
dh_testroot
# dh_installdebconf
dh_installdocs
dh_installexamples
dh_installmenu
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
dh_installinit --name=kamailio-lb
dh_installinit --name=kamailio-proxy
dh_installcron
dh_installman
dh_installinfo
# dh_undocumented
dh_installchangelogs ChangeLog
dh_link
dh_strip --dbg-package=kamailio-dbg
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
# dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture-independent packages using the common target
binary-indep: build install
# (Uncomment this next line if you have such packages.)
# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# We have nothing to do by default.
# Build architecture-dependent packages using the common target
binary-arch: build install
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
mkdir -p $(CURDIR)/debian/kamailio/usr/share/lintian/overrides/
cp -v debian/overrides $(CURDIR)/debian/kamailio/usr/share/lintian/overrides/kamailio
find $(CURDIR)/debian
# Any other binary targets build just one binary package at a time.
binary-%: build install
$(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$*
mkdir -p $(CURDIR)/debian/kamailio/usr/share/lintian/overrides/
cp -v debian/overrides $(CURDIR)/debian/kamailio/usr/share/lintian/overrides/kamailio
find $(CURDIR)/debian
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure