#!/usr/bin/make -f # Avoid custom build rule silencing export V=1 # Include /usr/share/dpkg/pkg-info.mk to get DEB_{SOURCE,VERSION} include /usr/share/dpkg/pkg-info.mk # Include /usr/share/dpkg/architecture.mk to get DEB_HOST_{MULTI,}ARCH include /usr/share/dpkg/architecture.mk # bindnow breaks wrappers used in with libdvdread export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-bindnow DATE_COMPONENT = libdate-tz-embedded DATE_URL = tools/depends/target/date/libdate-tz-$$(grep VERSION tools/depends/target/date/DATE-VERSION | sed 's/^[^=]*=//').tar.xz DVDNAV_COMPONENT = libdvdnav-embedded DVDNAV_URL = tools/depends/target/libdvdnav/libdvdnav-$$(grep VERSION tools/depends/target/libdvdnav/DVDNAV-VERSION | sed 's/^[^=]*=//').tar.xz DVDREAD_COMPONENT = libdvdread-embedded DVDREAD_URL = tools/depends/target/libdvdread/libdvdread-$$(grep VERSION tools/depends/target/libdvdread/DVDREAD-VERSION | sed 's/^[^=]*=//').tar.xz export DEB_CFLAGS_MAINT_STRIP = -O2 export DEB_CFLAGS_MAINT_APPEND = -O3 export DEB_CXXFLAGS_MAINT_STRIP = -O2 export DEB_CXXFLAGS_MAINT_APPEND = -O3 BUILD_WAYLAND := yes BUILD_GBM := yes NUMCPU = # Support parallel= in DEB_BUILD_OPTIONS (see #209008) ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) NUMCPU := $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) endif # Various environment variables to set export DEB_LDFLAGS_MAINT_APPEND = -latomic -lpthread # for embedded libdvd*: export DEB_CPPFLAGS_MAINT_APPEND = -D_XBMC KODI_PLATFORMS := x11 ifeq ($(BUILD_WAYLAND),yes) KODI_PLATFORMS := $(KODI_PLATFORMS) wayland endif ifeq ($(BUILD_GBM),yes) KODI_PLATFORMS := $(KODI_PLATFORMS) gbm endif ifneq (,$(filter armel armhf,$(DEB_HOST_ARCH))) EXTRA_FLAGS := $(EXTRA_FLAGS) -DWITH_ARCH=arm else ifneq (,$(filter ppc64el,$(DEB_HOST_ARCH))) EXTRA_FLAGS := $(EXTRA_FLAGS) -DWITH_ARCH=ppc64 else ifneq (,$(filter s390x,$(DEB_HOST_ARCH))) EXTRA_FLAGS := $(EXTRA_FLAGS) -DWITH_ARCH=s390x else ifneq (,$(filter mipsel,$(DEB_HOST_ARCH))) EXTRA_FLAGS := $(EXTRA_FLAGS) -DWITH_ARCH=mips else ifneq (,$(filter mips64el,$(DEB_HOST_ARCH))) EXTRA_FLAGS := $(EXTRA_FLAGS) -DWITH_ARCH=mips64 endif KODI_OPTS=\ -DVERBOSE=1 \ -DUSE_LTO=$(NUMCPU) \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_AIRTUNES=ON \ -DENABLE_ALSA=ON \ -DENABLE_AVAHI=ON \ -DENABLE_BLURAY=ON \ -DENABLE_CEC=ON \ -DENABLE_DBUS=ON \ -DENABLE_DVDCSS=OFF \ -DENABLE_EVENTCLIENTS=ON \ -DENABLE_INTERNAL_CROSSGUID=OFF \ -DENABLE_INTERNAL_FFMPEG=OFF \ -DENABLE_MICROHTTPD=ON \ -DENABLE_MYSQLCLIENT=ON \ -DENABLE_NFS=ON \ -DENABLE_OPTICAL=ON \ -DENABLE_PULSEAUDIO=ON \ -DENABLE_SMBCLIENT=ON \ -DENABLE_UDEV=ON \ -DENABLE_UPNP=ON \ -DENABLE_VAAPI=ON \ -DENABLE_VDPAU=ON \ -DENABLE_XSLT=ON \ -DDATE_URL=${DATE_URL} \ -DLIBDVDREAD_URL=$(DVDREAD_URL) \ -DLIBDVDNAV_URL=$(DVDNAV_URL) \ -DENABLE_LIRCCLIENT=ON \ -DNEON=False \ -DCORE_PLATFORM_NAME="$(KODI_PLATFORMS)" \ -DAPP_RENDER_SYSTEM=gl \ $(EXTRA_FLAGS) %: dh $@ --buildsystem cmake --with python3 override_dh_clean: dh_clean \ addons/skin.estuary/media/from-debian-logo.png \ addons/webinterface.default/ \ debian/dh-addon/*.1 \ kodi_build_*/ \ lib/gtest/ \ media/Fonts/arial.ttf # fall back to old location of DejaVuSans.ttf if needed ifneq ("$(wildcard /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf)","") DEJAVUSANS=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf else DEJAVUSANS=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf endif media/Fonts/arial.ttf: debian/mergefonts.ff # work around #948876 until fontforge is fixed by using cached result fontforge -script $< \ /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf \ $(DEJAVUSANS) \ $@ || cp debian/extra/arial.ttf $@ lib/gtest/lib/.libs/libgtest.a: cp -r /usr/src/gtest/ $(CURDIR)/lib/ && mkdir -p $(CURDIR)/lib/gtest/lib/.libs addons/skin.estuary/media/from-debian-logo.png: debian/from-debian-logo.svg rsvg-convert -w 250 -h 82 -o $@ $< override_dh_auto_configure: addons/skin.estuary/media/from-debian-logo.png lib/gtest/lib/.libs/libgtest.a media/Fonts/arial.ttf cp -r $(CURDIR)/debian/webinterface-default $(CURDIR)/addons/webinterface.default sed -i 's/DEB_VERSION/"'$(DEB_VERSION)'"/' xbmc/Application.cpp xbmc/utils/SystemInfo.cpp tar -cf $(DATE_URL) $(DATE_COMPONENT) tar -cf $(DVDNAV_URL) $(DVDNAV_COMPONENT) tar -cf $(DVDREAD_URL) $(DVDREAD_COMPONENT) dh_auto_configure -- $(KODI_OPTS) override_dh_auto_build: dh_auto_build for file in $$(ls debian/dh-addon/dh_*); do \ pod2man --section=1 --utf8 $$file $$file.1; \ done override_dh_auto_test-arch: dh_auto_build -- kodi-test dh_auto_test -a # No tests for indep build. override_dh_auto_test-indep: override_dh_install-indep: dh_install -i -XLICENCE -XLICENSE \ -XLicence.txt -XLicense.txt -XLICENSE.txt \ -XNOTICE.txt \ -Xjquery-1.8.2.min.js -Xiscroll-min.js # Remove kodi-repository-kodi part from kodi-data rm -rf debian/kodi-data/usr/share/kodi/addons/repository.xbmc.org # Remove documentation-outside-usr-share-doc but not from addons rm -f debian/kodi-data/usr/share/kodi/privacy-policy.txt # Drop executable flag from all Python scripts except: # ps3_remote.py # zeroconf.py # sixpair.py # sixwatch.py find debian/kodi-eventclients-*/ \ ! \( -name "ps3_remote.py" -o -name "zeroconf.py" -o -name "sixpair.py" -o -name "sixwatch.py" \) \ -name "*.py" -exec chmod 0644 '{}' \; # Remove ps3 and zeroconf from kodi-eventclients-common rm -rf debian/kodi-eventclients-common/usr/lib/python*/*/kodi/ps3 rm -f debian/kodi-eventclients-common/usr/lib/python*/*/kodi/ps3_remote.py rm -f debian/kodi-eventclients-common/usr/lib/python*/*/kodi/zeroconf.py # Install kodi-repository-kodi dh_install -pkodi-repository-kodi \ addons/repository.xbmc.org/* usr/share/kodi/addons/repository.xbmc.org # ship xbmcclient.h only in kodi-eventclients-dev rm -f debian/kodi-addons-dev-common/usr/include/kodi/xbmcclient.h # check if all needed headers are included $(CXX) -E -c debian/headers-check.c -DBUILD_KODI_ADDON \ $(shell dpkg-buildflags --get CPPFLAGS) \ $(shell dpkg-buildflags --get CXXFLAGS) \ -Idebian/kodi-addons-dev-common/usr/include \ -o /dev/null override_dh_install-arch: # Prepare arch-checker dummy file # see debian/control for explanation of package purpose touch debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/kodi/arch-checker # Perform arch-specific install dh_install -a -XLICENCE -XLICENSE -XLicence.txt -XLicense.txt -XLICENSE.txt -XNOTICE.txt # dwz fails to create multifile dwarfs with '-gstrip-dwarf' override_dh_dwz: override_dh_shlibdeps: dh_shlibdeps -a \ -l$(CURDIR)/debian/kodi-bin/usr/lib/*/kodi/system/players/dvdplayer override_dh_gencontrol: debian/dh-addon/dh_kodiaddon_depends dh_gencontrol