272 lines
8.9 KiB
Makefile
Executable File
272 lines
8.9 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# Uncomment this to turn on verbose mode.
|
|
#export DH_VERBOSE=1
|
|
|
|
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
|
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
|
|
|
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
|
|
confflags += --build $(DEB_HOST_GNU_TYPE)
|
|
else
|
|
confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
|
|
endif
|
|
|
|
# We copy around a number of things in case we're linux:
|
|
BUILD_OS=$(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
|
|
|
|
export PROC := $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU)
|
|
|
|
CFLAGS = `dpkg-buildflags --get CFLAGS`
|
|
LDFLAGS = `dpkg-buildflags --get LDFLAGS`
|
|
CFLAGS += `dpkg-buildflags --get CPPFLAGS`
|
|
|
|
# Necessary to pass hardening flags to menuselect.
|
|
export CFLAGS LDFLAGS
|
|
|
|
|
|
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
|
|
BUILDFLAGS += OPTIMIZE=-O0
|
|
else
|
|
BUILDFLAGS += OPTIMIZE=-O2
|
|
endif
|
|
BUILDFLAGS += MAKECMDGOALS=dont-optimize
|
|
|
|
# show full gcc arguments instead of [CC] and [LD]
|
|
BUILDFLAGS += NOISY_BUILD=yes
|
|
|
|
BUILDFLAGS += ASTDATADIR=/usr/share/asterisk ASTVARRUNDIR=/var/run/asterisk
|
|
|
|
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
|
ENABLE_DEBUG += --enable-dev-mode
|
|
endif
|
|
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
|
INSTALL_PROGRAM += -s
|
|
endif
|
|
|
|
DEBVERSION:=$(shell dpkg-parsechangelog | sed -n -e 's/Version: //p')
|
|
DEB_NOEPOCH_VERSION:=$(shell echo $(DEBVERSION) | cut -d':' -f 2)
|
|
DEB_SRC_VERSION:=$(shell echo $(DEB_NOEPOCH_VERSION) | sed -e 's/-[^-]\+$$//')
|
|
UPVERSION:=$(shell echo $(DEB_SRC_VERSION) | sed -e 's/[.~]dfsg//' -e 's/~\(\(rc\|beta\)[0-9]\)/-\1/')
|
|
|
|
FILENAME := asterisk_$(DEB_SRC_VERSION).orig.tar.gz
|
|
UPFILENAME := asterisk_$(UPVERSION).orig.tar.gz
|
|
URL := http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-$(UPVERSION).tar.gz
|
|
|
|
# make sure we have 'fetch' . We need to have either wget or fetch
|
|
# on the system. However it is generally not a good idea to actually
|
|
# get remote tarballs at build time. So if neither wget nor fetch
|
|
# happen to be installed, the configure script will find a dummy
|
|
# fetch script that always returns an error.
|
|
FETCH_ENV = PATH=$$PATH:$(CURDIR)/debian/dummyprogs
|
|
|
|
configure: configure.ac
|
|
if [ ! -f configure_deborig ]; then mv configure configure_deborig; fi
|
|
./bootstrap.sh
|
|
|
|
config.status: configure
|
|
dh_testdir
|
|
|
|
[ -f .version.debian_sav ] || cp -a .version .version.debian_sav
|
|
echo $(DEB_NOEPOCH_VERSION) > .version
|
|
|
|
if [ ! -r configure.debian_sav ]; then cp -a configure configure.debian_sav; fi
|
|
|
|
chmod 755 $(CURDIR)/debian/dummyprogs/fetch
|
|
|
|
$(FETCH_ENV) ./configure \
|
|
CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
|
|
--host=$(DEB_HOST_GNU_TYPE) \
|
|
--build=$(DEB_BUILD_GNU_TYPE) \
|
|
--prefix=/usr \
|
|
--mandir=\$${prefix}/share/man \
|
|
--infodir=\$${prefix}/share/info \
|
|
--with-gsm \
|
|
--without-imap \
|
|
--without-pwlib \
|
|
--disable-xmldoc \
|
|
${ENABLE_DEBUG}
|
|
|
|
# --with-cap \
|
|
|
|
build: build-arch build-indep
|
|
|
|
build-arch: build-arch-stamp
|
|
build-arch-stamp: config.status
|
|
dh_testdir
|
|
cp debian/menuselect.makeopts .
|
|
$(MAKE) menuselect.makeopts
|
|
@if [ "x${ENABLE_DEBUG}" != "x" ] ; then \
|
|
menuselect/menuselect --enable DONT_OPTIMIZE menuselect.makeopts ; \
|
|
menuselect/menuselect --enable DEBUG_THREADS menuselect.makeopts ; \
|
|
fi
|
|
$(FETCH_ENV) $(MAKE) $(BUILDFLAGS)
|
|
touch $@
|
|
|
|
build-indep: build-indep-stamp
|
|
build-indep-stamp: config.status
|
|
dh_testdir
|
|
touch $@
|
|
|
|
SND_FILE=asterisk-core-sounds-en-gsm-1.4.20.tar.gz
|
|
clean:
|
|
dh_testdir
|
|
dh_testroot
|
|
|
|
# The clean target seems to be run before patches are applied.
|
|
# A brute-force fix to keep the tarball from getting deleted:
|
|
# (if it has not been stripped from upstream tarball)
|
|
if [ -r sounds/$(SND_FILE) ]; then mv sounds/$($SND_FILE) debian/; fi
|
|
GREP=grep AWK=awk $(MAKE) distclean
|
|
if [ -r debian/$(SND_FILE) ]; then mv debian/$(SND_FILE) sounds/; fi
|
|
-$(RM) -rf debian/build
|
|
|
|
if [ -r configure.debian_sav ]; then mv configure.debian_sav configure; fi
|
|
-test -d configs && chmod -x configs/*.sample
|
|
-$(RM) -f build-arch-stamp build-indep-stamp install-arch install-indep
|
|
-$(RM) -f config.status menuselect.makeopts
|
|
|
|
[ ! -f .version.debian_sav ] || mv .version.debian_sav .version
|
|
if [ -f configure_deborig ]; then mv configure_deborig configure; fi
|
|
|
|
# these were generated while building
|
|
-$(RM) -f doc/core-en_US.xml utils/poll.c
|
|
|
|
dh_clean
|
|
|
|
SUBPACKS_EXTRA = \
|
|
voicemail voicemail-odbcstorage voicemail-imapstorage \
|
|
ooh323 mysql mp3
|
|
ifeq (linux,$(BUILD_OS))
|
|
SUBPACKS_EXTRA += dahdi mobile
|
|
endif
|
|
SUBPACKS_EXTRA_DIRS = $(SUBPACKS_EXTRA:%=$(CURDIR)/debian/asterisk-%)
|
|
SUBPACKS_EXTRA_DIRS_MOD = $(SUBPACKS_EXTRA_DIRS:%=%/usr/lib/asterisk/modules)
|
|
|
|
install: install-arch install-indep
|
|
install-arch: build-arch
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep -s
|
|
dh_installdirs -s
|
|
|
|
$(FETCH_ENV) $(MAKE) $(BUILDFLAGS) DESTDIR=$(CURDIR)/debian/tmp install
|
|
cp -a configs $(CURDIR)/debian/tmp/usr/share/asterisk/conf
|
|
|
|
mkdir -p $(CURDIR)/debian/range-asterisk/etc/init
|
|
cp $(CURDIR)/debian/asterisk.conf $(CURDIR)/debian/range-asterisk/etc/init/
|
|
|
|
dh_install -s --sourcedir=debian/tmp
|
|
dh_lintian -s
|
|
|
|
cp $(CURDIR)/debian/tmp/usr/lib/libasteriskssl* $(CURDIR)/debian/range-asterisk/usr/lib/
|
|
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/aelparse
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/conf2ael
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/muted
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/streamplayer
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/stereorize
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/hashtest*
|
|
$(RM) -f $(CURDIR)/debian/range-asterisk/usr/sbin/refcounter
|
|
|
|
# extra_packs=`find $(SUBPACKS_EXTRA_DIRS_MOD) -name '*.so' -printf '%f\n'`\
|
|
# ; cd $(CURDIR)/debian/asterisk-modules/usr/lib/asterisk/modules \
|
|
# && rm -f $$extra_packs
|
|
|
|
# Rename dh_install file for -imapstorage and -odbcstorage.
|
|
# mv $(CURDIR)/debian/asterisk-voicemail-imapstorage/usr/lib/asterisk/modules/app_voicemail_imapstorage.so \
|
|
# $(CURDIR)/debian/asterisk-voicemail-imapstorage/usr/lib/asterisk/modules/app_voicemail.so
|
|
# mv $(CURDIR)/debian/asterisk-voicemail-odbcstorage/usr/lib/asterisk/modules/app_voicemail_odbcstorage.so \
|
|
# $(CURDIR)/debian/asterisk-voicemail-odbcstorage/usr/lib/asterisk/modules/app_voicemail.so
|
|
|
|
touch $@
|
|
|
|
install-indep: build-indep
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep -i
|
|
dh_installdirs -i
|
|
|
|
$(FETCH_ENV) $(MAKE) $(BUILDFLAGS) DESTDIR=$(CURDIR)/debian/tmp install samples
|
|
dh_install -i --sourcedir=debian/tmp
|
|
dh_lintian -i
|
|
|
|
# create a simple config
|
|
#echo "; please read the documentation regarding the Manager Interface (asterisk-doc package)" > \
|
|
# $(CURDIR)/debian/asterisk-config/etc/asterisk/manager.d/README.conf
|
|
touch $@
|
|
|
|
binary: binary-indep binary-arch
|
|
binary-indep: install-indep
|
|
dh_testdir -i
|
|
dh_testroot -i
|
|
dh_installlogrotate -i
|
|
dh_installdocs -i -XREADME.cygwin
|
|
# dh_installexamples -i
|
|
dh_installcron -i
|
|
dh_installchangelogs ChangeLog -i
|
|
dh_link -i
|
|
dh_compress -i
|
|
dh_fixperms -i
|
|
# should follow dh_fixperms; asterisk configurations may contain
|
|
# sensitive information, such as passwords
|
|
# chmod o-rwx $(CURDIR)/debian/asterisk-config/etc/asterisk/*
|
|
# chmod o+rx $(CURDIR)/debian/asterisk-config/etc/asterisk/manager.d
|
|
dh_installdeb -i
|
|
dh_gencontrol -i
|
|
dh_md5sums -i
|
|
dh_builddeb -i
|
|
|
|
binary-arch: install-arch
|
|
dh_testdir -a
|
|
dh_testroot -a
|
|
dh_installlogrotate -a
|
|
dh_installdocs -a
|
|
dh_installman utils/*.1 doc/*.8 contrib/scripts/*.8
|
|
# dh_installexamples -a
|
|
dh_installchangelogs ChangeLog -a
|
|
# dh_installinit -a -- defaults 21
|
|
# dh_strip -a --dbg-package=asterisk-dbg
|
|
dh_link -a
|
|
dh_compress -a
|
|
dh_fixperms -a
|
|
dh_installdeb -a
|
|
# dh_shlibdeps -a
|
|
dh_gencontrol -a
|
|
dh_md5sums -a
|
|
dh_builddeb -a
|
|
|
|
print-version:
|
|
@@echo "Debian version: $(DEBVERSION)"
|
|
@@echo "Upstream version: $(UPVERSION)"
|
|
|
|
TMP_TARBALL_TOP=../tarballs/asterisk-$(UPVERSION).tmp/asterisk-$(UPVERSION)
|
|
get-orig-source:
|
|
@@dh_testdir
|
|
#@@[ -d ../tarballs/. ]||mkdir -p ../tarballs
|
|
#@@echo Downloading $(FILENAME) from $(URL) ...
|
|
#@@wget -nv -T10 -t3 -O ../tarballs/$(FILENAME) $(URL)
|
|
@echo Downloading $(UPFILENAME) from $(URL) ...
|
|
@wget -nv -T10 -t3 -O ../tarballs/$(UPFILENAME) $(URL)
|
|
@echo Repacking as DFSG-free...
|
|
@mkdir -p ../tarballs/asterisk-$(UPVERSION).tmp/
|
|
@cd ../tarballs/asterisk-$(UPVERSION).tmp ; \
|
|
tar xfz ../$(UPFILENAME)
|
|
# in case the tarball is not clean:
|
|
@rm -rf $(TMP_TARBALL_TOP)/AST.txt
|
|
@rm -rf $(TMP_TARBALL_TOP)/AST.pdf
|
|
@rm -f $(TMP_TARBALL_TOP)/codecs/ilbc/rfc3951.txt
|
|
# While we're at it: remove some generated files that will become
|
|
# invalid:
|
|
@rm -rf $(TMP_TARBALL_TOP)/*/.makeopts
|
|
@rm -rf $(TMP_TARBALL_TOP)/*/.*.makeopts
|
|
@rm -rf $(TMP_TARBALL_TOP)/*/.moduleinfo
|
|
@rm -rf $(TMP_TARBALL_TOP)/*/.*.moduleinfo
|
|
# And some large sound files we already ship in a different package:
|
|
@rm -rf $(TMP_TARBALL_TOP)/sounds/*.tar.gz
|
|
@cd ../tarballs/asterisk-$(UPVERSION).tmp ; \
|
|
tar cf - * | gzip -9 >../$(FILENAME)
|
|
@echo Cleaning up...
|
|
@$(RM) -rf ../tarballs/asterisk-$(UPVERSION).tmp/
|
|
|
|
.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install clean
|