summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 3dc9a0527bdef0710ded4e914118d45bbd53735e (plain)
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
#!/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 -- -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

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
	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-any:
	dh_auto_install
	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
	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, but not with:
# - AVX extensions (without AVX2)
# - SSE4.2 extensions (without AVX2 and AVX)
override_dh_auto_test-arch:
	dh_auto_test
	#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