1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#!/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
|