#!/usr/bin/make -f #export DH_VERBOSE=1 include /usr/share/dpkg/pkg-info.mk export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed export DEB_BUILD_MAINT_OPTIONS = hardening=+all # To get cmake to pick up hardening flags when invoked directly: CFLAGS+=$(CPPFLAGS) CXXFLAGS+=$(CPPFLAGS) # CHANGELOG_DATE ?= $(shell LC_ALL=C date -u -d @$(SOURCE_DATE_EPOCH) +"%d %B %Y") multiarch = $(shell dpkg-architecture -qDEB_BUILD_MULTIARCH) arch = $(shell dpkg-architecture -qDEB_BUILD_ARCH) %: dh $@ override_dh_auto_configure-indep: override_dh_auto_configure-arch: dh_auto_configure -a -- -DRPATH=1 -DCUSTOM_RPATH=/usr/lib/srslte -DENABLE_SSE=0 -DENABLE_AVX=0 -DENABLE_AVX2=0 -DENABLE_FMA=0 -DENABLE_AVX512=0 -DENABLE_NEON=0 -DDISABLE_SIMD=1 if [ "${arch}" = "amd64" ] || \ [ "${arch}" = "i386" ] ; then \ mkdir -p obj_avx && cd obj_avx && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/$(multiarch) -DRPATH=1 -DCUSTOM_RPATH=/usr/lib/srslte/avx -DENABLE_AVX512=0 -DENABLE_FMA=0 -DENABLE_AVX2=0 -DDISABLE_SIMD=1 .. ; cd .. ; \ mkdir -p obj_avx2 && cd obj_avx2 && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/$(multiarch) -DRPATH=1 -DCUSTOM_RPATH=/usr/lib/srslte/avx2 -DENABLE_AVX512=0 -DDISABLE_SIMD=1 .. ; cd .. ; \ mkdir -p obj_sse4 && cd obj_sse4 && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/$(multiarch) -DRPATH=1 -DCUSTOM_RPATH=/usr/lib/srslte/sse4 -DENABLE_AVX512=0 -DENABLE_FMA=0 -DENABLE_AVX2=0 -DENABLE_AVX=0 -DDISABLE_SIMD=1 .. ; cd .. ; \ fi # Build of NEON for ARM has been disabled since it FTBFS with the current version: #if [ "${arch}" = "armel" ] || \ # [ "${arch}" = "armhf" ] ; then \ # mkdir -p obj_neon && cd obj_neon && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/$(multiarch) -DRPATH=1 -DCUSTOM_RPATH=/usr/lib/srslte/neon -DENABLE_AVX512=0 -DENABLE_FMA=0 -DENABLE_AVX2=0 -DDISABLE_SIMD=1 .. ; \ #fi override_dh_installman-indep: override_dh_installman-arch: cd debian/man ; CHANGELOG_DATE="$(CHANGELOG_DATE)" ./genmanpages.sh dh_installman -a override_dh_auto_clean: dh_auto_clean $(RM) debian/man/*.1 $(RM) -r obj_avx $(RM) -r obj_avx2 $(RM) -r obj_sse4 $(RM) -r obj_neon $(RM) -r debian/tmp_avx $(RM) -r debian/tmp_avx2 $(RM) -r debian/tmp_sse4 $(RM) -r debian/tmp_neon override_dh_auto_build-indep: override_dh_auto_build-arch: dh_auto_build -a if [ "${arch}" = "amd64" ] || \ [ "${arch}" = "i386" ] ; then \ cd obj_avx && make ; cd .. ; \ cd obj_avx2 && make ; cd .. ; \ cd obj_sse4 && make ; cd .. ; \ fi #if [ "${arch}" = "armel" ] || \ # [ "${arch}" = "armhf" ] ; then \ # cd obj_neon && make ; \ #fi override_dh_auto_install-indep: override_dh_auto_install-arch: dh_auto_install -a if [ "${arch}" = "amd64" ] || \ [ "${arch}" = "i386" ] ; then \ cd obj_avx && mkdir -p ../debian/tmp_avx && make DESTDIR=../debian/tmp_avx install ; cd .. ; \ cd obj_avx2 && mkdir -p ../debian/tmp_avx2 && make DESTDIR=../debian/tmp_avx2 install ; cd .. ; \ cd obj_sse4 && mkdir -p ../debian/tmp_sse4 && make DESTDIR=../debian/tmp_sse4 install ; cd .. ; \ fi #if [ "${arch}" = "armel" ] || \ # [ "${arch}" = "armhf" ] ; then \ # cd obj_neon && mkdir -p ../debian/tmp_neon && make DESTDIR=../debian/tmp_neon install ; \ #fi override_dh_install-arch: dh_install -a if [ "${arch}" = "amd64" ] || \ [ "${arch}" = "i386" ] ; then \ mkdir -p debian/srslte-core/usr/lib/srslte/avx ; \ mkdir -p debian/srslte-core/usr/lib/srslte/avx2 ; \ mkdir -p debian/srslte-core/usr/lib/srslte/sse4 ; \ mkdir -p debian/srsenb/usr/lib/srslte/bin ; \ mkdir -p debian/srsue/usr/lib/srslte/bin ; \ cp debian/tmp_avx/usr/lib/srslte/libsrslte_rf.so debian/srslte-core/usr/lib/srslte/avx/ ; \ cp debian/tmp_avx/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-avx ; \ cp debian/tmp_avx/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-avx ; \ cp debian/tmp_avx2/usr/lib/srslte/libsrslte_rf.so debian/srslte-core/usr/lib/srslte/avx2/ ; \ cp debian/tmp_avx2/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-avx2 ; \ cp debian/tmp_avx2/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-avx2 ; \ cp debian/tmp_sse4/usr/lib/srslte/libsrslte_rf.so debian/srslte-core/usr/lib/srslte/sse4/ ; \ cp debian/tmp_sse4/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-sse4 ; \ cp debian/tmp_sse4/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-sse4 ; \ mv debian/srsue/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-generic ; \ mv debian/srsenb/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-generic ; \ cp debian/script/srsenb debian/srsenb/usr/bin/srsenb ; \ cp debian/script/srsue debian/srsue/usr/bin/srsue ; \ fi #if [ "${arch}" = "armel" ] || \ # [ "${arch}" = "armhf" ] ; then \ # mkdir -p debian/srslte-core/usr/lib/srslte/neon ; \ # mkdir -p debian/srslte-core/usr/lib/srslte/bin ; \ # cp debian/tmp_avx/usr/lib/srslte/libsrslte_rf.so debian/srslte-core/usr/lib/srslte/neon/ ; \ # cp debian/tmp_avx/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-neon ; \ # cp debian/tmp_avx/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-neon ; \ # mv debian/srslte/usr/bin/srsue debian/srsue/usr/lib/srslte/bin/srsue-generic ; \ # mv debian/srslte/usr/bin/srsenb debian/srsenb/usr/lib/srslte/bin/srsenb-generic ; \ # cp debian/script/srsenb debian/srsenb/usr/bin/srsenb ; \ # cp debian/script/srsue debian/srsue/usr/bin/srsue ; \ #fi override_dh_auto_test-indep: # Tests pass when building without SIMD extensions on a few architectures, but not with: # - AVX extensions (without AVX2) # - SSE4.2 extensions (without AVX2 and AVX) override_dh_auto_test-arch: if [ "${arch}" = "amd64" ] || \ [ "${arch}" = "arm64" ] || \ [ "${arch}" = "alpha" ] || \ [ "${arch}" = "ppc64el" ] ; then \ dh_auto_test -a ; \ else \ echo "Skipping tests on this architecture" ; \ fi #if [ "${arch}" = "amd64" ] || \ # [ "${arch}" = "i386" ] ; then \ # cd obj_avx && make test ; cd .. ; \ # cd obj_avx2 && make test ; cd .. ; \ # cd obj_sse4 && make test ; cd .. ; \ #fi override_dh_installsystemd: dh_installsystemd --no-enable --no-start