freeswitch/debian/rules
Travis Cross d88bae1a62 Support optional debian parallel builds
With this commit we allow getting `make -jN` behavior by setting
`parallel=N` in `DEB_BUILD_OPTIONS`.  Setting `parallel=` will result
in `make -j` being run (i.e. no limit on the number of jobs).  The
default is to run one job at a time; this is still the safest bet when
building all modules.

Thanks to Peter Wu for suggesting a different way to do this.

ref: https://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options
2014-12-25 07:13:17 +00:00

147 lines
3.6 KiB
Makefile
Executable File

#!/usr/bin/make -f
# -*- mode:makefile -*-
##### Author: Travis Cross <tc@traviscross.com>
export DH_VERBOSE=1
export VERBOSE=1
export V=1
FS_CC?=gcc
FS_CXX?=g++
FS_CPPFLAGS?=-D_FORTIFY_SOURCE=2
FS_CFLAGS?=-g3 -O2 -fPIC -fstack-protector --param=ssp-buffer-size=4
FS_CXXFLAGS?=$(FS_CFLAGS)
FS_LDFLAGS?=-Wl,-z,relro
export PATH?=/usr/lib/ccache:/usr/sbin:/usr/bin:/sbin:/bin
export CC:=$(FS_CC)
export CXX:=$(FS_CXX)
export CPPFLAGS:=$(FS_CPPFLAGS)
export CFLAGS:=$(FS_CFLAGS)
export CXXFLAGS:=$(FS_CXXFLAGS)
export LDFLAGS:=$(FS_LDFLAGS)
NJOBS=1
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
show_vars= \
echo; \
echo "Making target $@"; \
echo "PATH='$(PATH)'"; \
echo "CC='$(CC)'"; \
echo "CXX='$(CXX)'"; \
echo "CPPFLAGS='$(CPPFLAGS)'"; \
echo "CFLAGS='$(CFLAGS)'"; \
echo "CXXFLAGS='$(CXXFLAGS)'"; \
echo "LDFLAGS='$(LDFLAGS)'"; \
echo "CCACHE_DIR='$(CCACHE_DIR)'"; \
echo;
binary:
@$(call show_vars)
dh $@
binary-arch:
@$(call show_vars)
dh $@
binary-indep:
@$(call show_vars)
dh $@
build-arch:
@$(call show_vars)
dh $@
build-indep:
@$(call show_vars)
dh $@
build: debian/.stamp-bootstrap
@$(call show_vars)
dh $@
clean:
dh $@
override_dh_auto_clean:
.stamp-bootstrap:
@$(call show_vars)
./bootstrap.sh -j
touch $@
.stamp-configure: .stamp-bootstrap
@$(call show_vars)
touch noreg
cp debian/modules_.conf modules.conf
./configure -C --enable-portable-binary --disable-dependency-tracking \
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
--with-gnu-ld --with-python --with-erlang --with-openssl \
--enable-core-odbc-support --enable-zrtp \
--enable-core-pgsql-support \
--prefix=/usr --localstatedir=/var \
--sysconfdir=/etc/freeswitch \
--with-modinstdir=/usr/lib/freeswitch/mod \
--with-rundir=/var/run/freeswitch \
--with-logfiledir=/var/log/freeswitch \
--with-dbdir=/var/lib/freeswitch/db \
--with-htdocsdir=/usr/share/freeswitch/htdocs \
--with-soundsdir=/usr/share/freeswitch/sounds \
--with-storagedir=/var/lib/freeswitch/storage \
--with-cachedir=/var/cache/freeswitch \
--with-grammardir=/usr/share/freeswitch/grammar \
--with-certsdir=/etc/freeswitch/tls \
--with-scriptdir=/usr/share/freeswitch/scripts \
--with-recordingsdir=/var/lib/freeswitch/recordings \
--enable-static-v8 --disable-parallel-build-v8
touch $@
override_dh_auto_configure: .stamp-configure
.stamp-build: .stamp-configure
@$(call show_vars)
make -j$(NJOBS)
touch $@
override_dh_auto_build: .stamp-build
override_dh_auto_test:
override_dh_strip:
dh_strip -a -k
./debian/util.sh create-dbg-pkgs
override_dh_auto_install:
dh_auto_install
mkdir -p debian/tmp/lib/systemd/system
install -m0644 debian/freeswitch-systemd.freeswitch.service debian/tmp/lib/systemd/system/freeswitch.service
rm -f debian/tmp/usr/share/freeswitch/grammar/model/communicator/COPYING
override_dh_installinit:
dh_installinit -pfreeswitch-sysvinit --name=freeswitch
dh_installinit -pfreeswitch-all --name=freeswitch
override_dh_makeshlibs:
dh_makeshlibs
sed \
-e '/^libfreeswitch 1/{s/freeswitch-all/libfreeswitch1/g}' \
-i debian/freeswitch-all/DEBIAN/shlibs
debian-bootstrap: debian/.stamp-bootstrap
debian/.stamp-bootstrap:
(cd debian && ./bootstrap.sh)
touch $@
build-depends: debian/.stamp-build-depends
debian/.stamp-build-depends:
./debian/util.sh install-build-depends
touch $@
binary-basetest:
@$(call show_vars)
echo "applications/mod_commands" > debian/modules.conf
(cd debian && ./bootstrap.sh)
dh binary
binary-quicktest:
@$(call show_vars)
echo "applications/mod_commands" > debian/modules.conf
(cd debian && ./bootstrap.sh)
dh binary