mirror of https://github.com/sipwise/kamailio.git
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.
197 lines
6.3 KiB
197 lines
6.3 KiB
#!/usr/bin/make -f
|
|
# Sample debian/rules that uses debhelper.
|
|
# GNU copyright 1997 to 1999 by Joey Hess.
|
|
|
|
DEBVERSION:=$(shell head -n 1 debian/changelog \
|
|
| sed -e 's/^[^(]*(\([^)]*\)).*/\1/')
|
|
UPVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/^Version: \(\([0-9]\+\):\)\?\(.*\)-.*/\3/p')
|
|
|
|
PKG_NAME:=$(shell dpkg-parsechangelog | sed -ne 's/^Source: \(.*\)/\1/p')
|
|
|
|
FILENAME := $(PKG_NAME)_$(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
|
|
|
|
# modules not in the "main" kamailio package
|
|
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 purple mi_xmlrpc
|
|
|
|
# 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 \
|
|
snmpstats carrierroute xmpp cpl redis python geoip\
|
|
sqlite json mono ims outbound websocket tls lcrrate
|
|
|
|
# name of libdir in the path for libraries (e.g., lib for 32b, lib64 for 64b)
|
|
LIBDIR ?= lib/$(DEB_HOST_MULTIARCH)
|
|
|
|
# directories with possible duplicate libraries (that should be deleted
|
|
# from current module* packages)
|
|
DUP_LIBS_DIRS=$(CURDIR)/debian/$(PKG_NAME)/usr/$(LIBDIR)/kamailio \
|
|
$(CURDIR)/debian/$(PKG_NAME)-db-modules/usr/$(LIBDIR)/kamailio
|
|
|
|
# "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) every-module group_include="k$(grp)"
|
|
)
|
|
endef
|
|
|
|
|
|
define PACKAGE_GRP_INSTALL_template
|
|
$(foreach grp,$(PACKAGE_GROUPS),\
|
|
$(MAKE) install-modules-all LIBDIR=$(LIBDIR) group_include="k$(grp)" \
|
|
basedir=$(CURDIR)/debian/$(PKG_NAME)-$(grp)-modules \
|
|
cfg_prefix=$(CURDIR)/debian/$(PKG_NAME)-$(grp)-modules \
|
|
doc-dir=share/doc/$(PKG_NAME)-$(grp)-modules
|
|
# eliminate duplicate libs
|
|
-for d in $(DUP_LIBS_DIRS); do \
|
|
test "$$d" != "$(CURDIR)/debian/$(PKG_NAME)-$(grp)-modules/usr/$(LIBDIR)/kamailio" &&\
|
|
for r in `find $$d -name 'lib*'|xargs`; do \
|
|
echo "removing $(grp) lib `basename $$r` present also in $$d";\
|
|
rm -f $(CURDIR)/debian/$(PKG_NAME)-$(grp)-modules/usr/$(LIBDIR)/kamailio/`basename "$$r"` ; \
|
|
done ; \
|
|
done
|
|
find $(CURDIR)/debian/$(PKG_NAME)-$(grp)-modules -depth -empty -type d -exec rmdir {} \;
|
|
)
|
|
endef
|
|
|
|
|
|
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
|
CFLAGS += -g
|
|
endif
|
|
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
|
|
# Add here commands to configure the package.
|
|
$(MAKE) FLAVOUR=kamailio cfg prefix=/usr cfg_prefix=$(CURDIR)/debian/$(PKG_NAME) \
|
|
cfg_target=/etc/kamailio/ \
|
|
basedir=$(CURDIR)/debian/$(PKG_NAME) \
|
|
skip_modules="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \
|
|
$(CUSTOM_BUILDFLAGS) \
|
|
group_include="kstandard"
|
|
|
|
touch configure-stamp
|
|
|
|
|
|
build: build-stamp
|
|
build-arch: build-stamp
|
|
build-indep: 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_prep
|
|
dh_installdirs
|
|
# Add here commands to install the package into debian/$(PKG_NAME)
|
|
$(MAKE) install LIBDIR=$(LIBDIR) group_include="kstandard"
|
|
# make group packages
|
|
$(call PACKAGE_GRP_INSTALL_template)
|
|
mv $(CURDIR)/debian/$(PKG_NAME)-berkeley-modules/usr/sbin/kambdb_recover \
|
|
$(CURDIR)/debian/$(PKG_NAME)-berkeley-bin/usr/sbin/kambdb_recover
|
|
|
|
|
|
# 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_installinit --name=kamailio-lb -- defaults 23
|
|
dh_installinit --name=kamailio-proxy -- defaults 23
|
|
dh_installcron
|
|
dh_installman
|
|
dh_installinfo
|
|
dh_installchangelogs ChangeLog
|
|
dh_lintian
|
|
dh_link
|
|
dh_strip --dbg-package=$(PKG_NAME)-dbg
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_makeshlibs
|
|
dh_installdeb
|
|
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
|
|
|
|
# Any other binary targets build just one binary package at a time.
|
|
binary-%: build install
|
|
$(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$*
|
|
|
|
print-version:
|
|
@@echo "Package name: $(PKG_NAME)"
|
|
@@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
|
|
|