#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 include /usr/share/dpkg/pkg-info.mk export DEB_VERSION_UPSTREAM DEB_REQUESTED_PACKAGES := $(shell dh_listpackages) when-in-build-profile = $(patsubst 0,$(3),$(patsubst 1,$(2),$(patsubst 01,1,0$(patsubst $(1),1,$(filter $(1),$(DEB_BUILD_PROFILES)))))) when-not-in-build-profile = $(patsubst 0,$(3),$(patsubst 1,$(2),$(patsubst 11,0,1$(patsubst $(1),1,$(filter $(1),$(DEB_BUILD_PROFILES)))))) when-building-package = $(patsubst 0,$(3),$(patsubst 1,$(2),$(patsubst 01,1,0$(patsubst $(1),1,$(filter $(1),$(DEB_REQUESTED_PACKAGES)))))) when-not-building-package = $(patsubst 0,$(3),$(patsubst 1,$(2),$(patsubst 11,0,1$(patsubst $(1),1,$(filter $(1),$(DEB_REQUESTED_PACKAGES)))))) export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed # Obtain the list of non-builtin targets once the Makefile has been # generated. If anyone knows of a better way, tell me! ifneq (,$(wildcard obj-$(DEB_HOST_MULTIARCH)/Makefile)) cmaketargets := $(shell find obj-$(DEB_HOST_MULTIARCH) -type d -name '*.dir' -printf ' %f\n'|sed 's@.dir$$@@'|sort -u) indeptargets := $(filter ms2-html-doc,$(cmaketargets)) archtargets := $(filter-out ms2-html-doc,$(cmaketargets)) endif features += -DENABLE_TOOLS=$(call when-building-package,libmediastreamer-tools,YES,NO) features += -DENABLE_UNIT_TESTS=no features += -DENABLE_STATIC=NO features += -DENABLE_SHARED=$(call when-building-package,libmediastreamer12,YES,NO) features += -DENABLE_G729=$(call when-building-package,libmediastreamer12,YES,NO) # libbcg729-dev features += -DENABLE_G729B_CNG=$(call when-building-package,libmediastreamer12,YES,NO) # libbcg729-dev features += -DENABLE_JPEG=$(call when-building-package,libmediastreamer12,YES,NO) # libturbojpeg0-dev features += -DENABLE_QRCODE=$(call when-building-package,libmediastreamer12,YES,NO) # libzxingcore-dev features += -DENABLE_PCAP=$(call when-building-package,libmediastreamer12,YES,NO) # libpcap-dev features += -DENABLE_G726=$(call when-building-package,libmediastreamer12,YES,NO) # libspandsp-dev features += -DENABLE_GSM=$(call when-building-package,libmediastreamer12,YES,NO) # libgsm1-dev features += -DENABLE_ZRTP=$(call when-building-package,libmediastreamer12,YES,NO) # libbzrtp-dev features += -DENABLE_MKV=$(call when-building-package,libmediastreamer12,YES,NO) # libbcmatroska2-dev features += -DENABLE_BV16=NO # $(call when-building-package,libmediastreamer12,YES,NO) # libbv16-dev features += -DENABLE_FFMPEG=$(call when-building-package,libmediastreamer12,YES,NO) # libavcodec-dev libavutil-dev features += -DENABLE_SOUND=$(call when-building-package,libmediastreamer12,YES,NO) features += -DENABLE_ALSA=$(call when-building-package,libmediastreamer12,YES,NO) # libasound2-dev features += -DENABLE_SPEEX_CODEC=$(call when-building-package,libmediastreamer12,YES,NO) # libspeex-dev features += -DENABLE_SPEEX_DSP=$(call when-building-package,libmediastreamer12,YES,NO) # libspeexdsp-dev features += -DENABLE_OPUS=$(call when-building-package,libmediastreamer12,YES,NO) # libopus-dev features += -DENABLE_PULSEAUDIO=$(call when-building-package,libmediastreamer12,YES,NO) # libpulse-dev features += -DENABLE_VIDEO=$(call when-building-package,libmediastreamer12,YES,NO) features += -DENABLE_THEORA=$(call when-building-package,libmediastreamer12,YES,NO) # libtheora-dev features += -DENABLE_QT_GL=$(call when-building-package,libmediastreamer12,YES,NO) # qtdeclarative5-dev qtbase5-dev # Under http://linphone.org/technical-corner/mediastreamer2?qt-technical_corner=3#qt-technical_corner # it reads now (2021): "Please refer to public header files for # Mediastreamer2 documentation." I guess that means the docs are not # considered worth maintaining anymore, but for now we still ship them. features += -DENABLE_DOC=$(call when-building-package,libmediastreamer-doc,YES,NO) # doxygen # Upstream unconditionally sets CMAKE_INSTALL_RPATH. Make it ineffective by # setting CMAKE_SKIP_RPATH options += -DCMAKE_SKIP_RPATH=ON options += -DGIT_EXECUTABLE=/usr/share/bctoolbox/upstream-version-from-changelog options += -DDEB_VERSION_UPSTREAM=$(DEB_VERSION_UPSTREAM:%+dfsg=%) options += -DDISABLE_BC_PACKAGE_SEARCH=$(call when-building-package,libmediastreamer12,NO,YES) options += -DDISABLE_SRTP_SEARCH=$(call when-building-package,libmediastreamer12,NO,YES) options += -DDISABLE_OPERATE_ON_SOURCE_CODE=$(call when-building-package,libmediastreamer12,NO,YES) # note that CMAKE_INSTALL_DATADIR must be an /absolute/ path here # whereas in e.g. liblinphone it must be a path relative to /usr options += -DCMAKE_INSTALL_DATADIR="/usr/share/mediastreamer2" # nowebcamCIF.jpg must go into images/ here %: dh $@ --buildsystem=cmake --without autoreconf override_dh_auto_configure: dh_auto_configure -O--buildsystem=cmake -- \ ${features} \ ${options} execute_before_dh_auto_install-indep: ifeq (x,$(call when-not-building-package,libmediastreamer-dev,x)) cp obj-$(DEB_HOST_MULTIARCH)/include/cmake_install.cmake \ obj-$(DEB_HOST_MULTIARCH)/include/cmake_install.cmake.orig truncate -s 0 obj-$(DEB_HOST_MULTIARCH)/include/cmake_install.cmake endif execute_after_dh_auto_install-indep: ifeq (x,$(call when-not-building-package,libmediastreamer-dev,x)) mv obj-$(DEB_HOST_MULTIARCH)/include/cmake_install.cmake.orig \ obj-$(DEB_HOST_MULTIARCH)/include/cmake_install.cmake endif execute_before_dh_install-indep: mkdir -p debian/tmp/usr/share/mediastreamer2/images && \ cp -afv src/voip/nowebcamCIF.jpg debian/tmp/usr/share/mediastreamer2/images/nowebcamCIF.jpg override_dh_auto_build-arch: dh_auto_build -O--buildsystem=cmake -- $(archtargets) execute_after_dh_auto_build-arch: # false override_dh_auto_build-indep: # this tests for the -doc package only since the -data package needs # nothing built ifeq (x,$(call when-building-package,libmediastreamer-doc,x)) sed -i 's@^HAVE_DOT.*NO$$@HAVE_DOT = YES@' obj-$(DEB_HOST_MULTIARCH)/help/Doxyfile sed -i 's@^RECURSIVE .*NO$$@RECURSIVE = YES@' obj-$(DEB_HOST_MULTIARCH)/help/Doxyfile sed -i 's@^PREDEFINED .*= DOXYGEN \\$$@PREDEFINED = DOXYGEN MS2_DEPRECATED= \\@#Doxygen cannot parse __attribute__() expressions' obj-$(DEB_HOST_MULTIARCH)/help/Doxyfile dh_auto_build -O--buildsystem=cmake -- $(call when-building-package,libmediastreamer-doc,ms2-html-doc) endif override_dh_auto_clean: dh_auto_clean -O--buildsystem=cmake