File: rules

package info (click to toggle)
lapack 3.12.1-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 78,912 kB
  • sloc: fortran: 622,840; ansic: 217,704; f90: 6,041; makefile: 5,100; sh: 326; python: 270; xml: 182
file content (382 lines) | stat: -rwxr-xr-x 17,014 bytes parent folder | download
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# xerblas_ and LAPACK_xerblas must be overrideable by applications
# --dynamic-list does not work with gold, so drop the flag completely
export DEB_LDFLAGS_MAINT_STRIP = "-Wl,-Bsymbolic-functions"

include /usr/share/dpkg/default.mk

SO:=3

# if FC isn't explicitly set (default or undefined), set it to the compiler for
# our host architecture. This may be a cross compiler
ifneq ($(filter default undefined,$(origin FC)),)
FC := $(DEB_HOST_GNU_TYPE)-gfortran
endif

FFLAGS_NOOPT:=$(shell DEB_BUILD_OPTIONS=noopt dpkg-buildflags --get FFLAGS)

# if CC isn't explicitly set (default or undefined), set it to the compiler for
# our host architecture. This may be a cross compiler
ifneq ($(filter default undefined,$(origin CC)),)
CC := $(DEB_HOST_GNU_TYPE)-gcc
endif

ifeq ($(DEB_HOST_ARCH),alpha)
  FFLAGS += -mieee
  FFLAGS_NOOPT += -mieee
endif

# Using the -frecursive flag is the solution recommended by upstream for #693269
# However, we don't want to use -frecursive for the LAPACK testsuite, it leads to
#  segfaults on mips{,el} (xeigtstz allocates too much space on the stack)
FFLAGS_LAPACK_TESTSUITE := $(FFLAGS)
FFLAGS += -frecursive
FFLAGS_NOOPT += -frecursive

# On arches with extended precision, this flag is used
# for BLAS when compiling i{c,z}amax.f and the BLAS testsuite,
# in order to avoid test failures.
# See also debian/patches/icamax-izamax-extended-precision.patch
ifneq (,$(filter $(DEB_HOST_ARCH_CPU),i386 m68k))
  FFLAGS_FLOAT_STORE := -ffloat-store
  export FFLAGS_FLOAT_STORE
endif

FFLAGS_BLAS_TESTSUITE := $(FFLAGS) $(FFLAGS_FLOAT_STORE)

# Support parallel build
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(NUMJOBS)
endif

ifneq (64,$(DEB_HOST_ARCH_BITS))
export DH_OPTIONS = \
	-Nlibblas64-3 -Nlibblas64-dev \
	-Nliblapack64-3 -Nliblapack64-dev \
	-Nliblapacke64 -Nliblapacke64-dev \
	-Nlibtmglib64-3 -Nlibtmglib64-dev \
	-Nlibblas64-test -Nliblapack64-test
endif

%:
	dh $@

make.inc-32: INSTALL/make.inc.gfortran
	sed -e "s%\(^CC  *=\).*%\1 $(CC)%1" \
	    -e "s%\(^FC  *=\).*%\1 $(FC)%1" \
	    -e "s%\(^FFLAGS_NOOPT  *=\).*%\1 \$$(PICOPTS) $(FFLAGS_NOOPT)%1" \
	    -e "s%\(^FFLAGS  *=\).*%\1 \$$(PICOPTS) $(FFLAGS)%1" \
	    -e "s%\(^LDFLAGS  *=\).*%\1 $(LDFLAGS)%1" \
	    -e "s%\(^AR  *=\).*%\1 $(DEB_HOST_GNU_TYPE)-ar%1" \
	    -e "s%\(^RANLIB  *=\).*%\1 $(DEB_HOST_GNU_TYPE)-ranlib%1" \
	    -e "s%\(^CFLAGS  *=\).*%\1 $(CPPFLAGS) \$$(PICOPTS) $(CFLAGS)%1" \
	    -e "s%^#\(LAPACKE_WITH_TMG  *=\)%\1%1" \
	    < $< > $@
	# Build deprecated routines (see #810143)
	echo "BUILD_DEPRECATED=1" >> $@
	ln -sf make.inc-32 make.inc # make default

make.inc-64: INSTALL/make.inc.gfortran
	sed -e "s%\(^CC  *=\).*%\1 $(CC)%1" \
	    -e "s%\(^FC  *=\).*%\1 $(FC)%1" \
	    -e "s%\(^FFLAGS_NOOPT  *=\).*%\1 \$$(PICOPTS) -fdefault-integer-8 $(FFLAGS_NOOPT)%1" \
	    -e "s%\(^FFLAGS  *=\).*%\1 \$$(PICOPTS) -fdefault-integer-8 $(FFLAGS)%1" \
	    -e "s%\(^LDFLAGS  *=\).*%\1 $(LDFLAGS)%1" \
	    -e "s%\(^AR  *=\).*%\1 $(DEB_HOST_GNU_TYPE)-ar%1" \
	    -e "s%\(^RANLIB  *=\).*%\1 $(DEB_HOST_GNU_TYPE)-ranlib%1" \
	    -e "s%\(^CFLAGS  *=\).*%\1 $(CPPFLAGS) \$$(PICOPTS) -DHAVE_LAPACK_CONFIG_H -DWeirdNEC -DLAPACK_ILP64 $(CFLAGS)%1" \
	    -e "s%^#\(LAPACKE_WITH_TMG  *=\)%\1%1" \
	    < $< > $@
	# Build deprecated routines as well
	echo "BUILD_DEPRECATED=1" >> $@

override_dh_auto_clean: make.inc-32 make.inc-64
	$(MAKE) clean
	rm -rf debian/*_stamp debian/*_results lib*.so*
	rm -rf pic32/ pic64/ static-32/ static-64/
	rm -rf debian/test/ debian/time/
	rm -f TESTING/tmp TESTING/testing_results.txt
	rm -f CBLAS/include/cblas_mangling.h
	rm -rf DOCS/explore-html/ DOCS/man/
	rm -f output_err
	rm -f lapack-netlib.pc LAPACKE/lapacke.pc BLAS/blas-netlib.pc
	rm -f lapack64-netlib.pc LAPACKE/lapacke64.pc BLAS/blas64-netlib.pc
	rm -rf INSTALL64/ BLAS64/ CBLAS64/ SRC64/ LAPACKE64/ TESTING64/
	-$(RM) -f make.inc*

override_dh_auto_configure: make.inc-32 make.inc-64
	# Create lapack-netlib.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%" < lapack.pc.in > lapack-netlib.pc

	# Create lapack64-netlib.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%"	\
	    -e "s/Name: LAPACK$$/Name: LAPACK64/" \
	    -e "s/-llapack/-llapack64/" \
	    -e "s/Requires.private: blas$$/Requires.private: blas64/" < lapack.pc.in > lapack64-netlib.pc

	# Create lapacke.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@LAPACKLIB@%lapack%" \
	    -e "s%@LAPACKELIB@%lapacke%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%" < LAPACKE/lapacke.pc.in > LAPACKE/lapacke.pc

	# Create lapacke64.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@LAPACKLIB@%lapack64%" \
	    -e "s%@LAPACKELIB@%lapacke64%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%"	\
	    -e "s/Name: LAPACKE$$/Name: LAPACKE64/" < LAPACKE/lapacke.pc.in > LAPACKE/lapacke64.pc

	# Create blas-netlib.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@BLASLIB@%blas%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%" < BLAS/blas.pc.in > BLAS/blas-netlib.pc

	# Create blas64-netlib.pc
	sed -e "s%@LAPACK_VERSION@%$(DEB_VERSION_UPSTREAM)%" \
	    -e "s%@BLASLIB@%blas64%" \
	    -e "s%@CMAKE_INSTALL_FULL_INCLUDEDIR@%/usr/include/$(DEB_HOST_MULTIARCH)%"  \
	    -e "s%@CMAKE_INSTALL_FULL_LIBDIR@%/usr/lib/$(DEB_HOST_MULTIARCH)%"	\
	    -e "s/Name: BLAS$$/Name: BLAS64/" < BLAS/blas.pc.in > BLAS/blas64-netlib.pc

	# Create source directories for 64-bit indexing variant
	for I in INSTALL BLAS CBLAS SRC LAPACKE TESTING; do cp -r $$I $${I}64; done
	sed -i "s%../INSTALL/%../INSTALL64/%g" SRC64/Makefile

override_dh_auto_build-arch:
	###########################################################################
	## 32-BIT INDEXING -- SHARED (PIC)
	ln -sf make.inc-32 make.inc
	###########################################################################
	# Build pic libraries
	$(MAKE) clean
	$(MAKE) blaslib cblaslib lapacklib tmglib lapackelib PICOPTS=-fPIC
	mkdir -p pic32
	for I in refblas cblas lapack tmglib lapacke; do cp lib$${I}.a pic32/lib$${I}_pic.a; done

	# Build libblas.so.*
	ar d pic32/librefblas_pic.a xerbla.o # We want to use the xerbla.o from libcblas_pic.a
	mkdir -p tmp
	cd tmp && ar x ../pic32/librefblas_pic.a && ar x ../pic32/libcblas_pic.a
	$(FC) -shared -Wl,-soname=libblas.so.$(SO) -o libblas.so.$(DEB_VERSION_UPSTREAM) tmp/*.o $(LDFLAGS)
	rm -rf tmp
	ln -s libblas.so.$(DEB_VERSION_UPSTREAM) libblas.so.$(SO)
	ln -s libblas.so.$(DEB_VERSION_UPSTREAM) libblas.so

	# Build liblapack.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic32/liblapack_pic.a
	$(FC) -shared -Wl,-soname=liblapack.so.$(SO) -o liblapack.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas $(LDFLAGS)
	rm -rf tmp
	ln -s liblapack.so.$(DEB_VERSION_UPSTREAM) liblapack.so.$(SO)
	ln -s liblapack.so.$(DEB_VERSION_UPSTREAM) liblapack.so

	# Build libtmglib.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic32/libtmglib_pic.a
	$(FC) -shared -Wl,-soname=libtmglib.so.$(SO) -o libtmglib.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas -llapack $(LDFLAGS)
	rm -rf tmp
	ln -s libtmglib.so.$(DEB_VERSION_UPSTREAM) libtmglib.so.$(SO)
	ln -s libtmglib.so.$(DEB_VERSION_UPSTREAM) libtmglib.so

	# Build liblapacke.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic32/liblapacke_pic.a
	$(CC) -shared -Wl,-soname=liblapacke.so.$(SO) -o liblapacke.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas -llapack -ltmglib $(LDFLAGS)
	rm -rf tmp
	ln -s liblapacke.so.$(DEB_VERSION_UPSTREAM) liblapacke.so.$(SO)
	ln -s liblapacke.so.$(DEB_VERSION_UPSTREAM) liblapacke.so

	###########################################################################
	## 32-BIT INDEXING -- STATIC
	ln -sf make.inc-32 make.inc
	###########################################################################
	# Build static versions
	$(MAKE) clean
	$(MAKE) blaslib cblaslib lapacklib tmglib lapackelib

	# Build libblas.a
	ar d librefblas.a xerbla.o # We want to use the xerbla.o from libcblas.a
	mkdir -p tmp
	cd tmp && ar x ../librefblas.a && ar x ../libcblas.a
	ar r libblas.a $$(env LC_ALL=C ls tmp/*.o)
	rm -rf tmp

	mkdir -p static-32
	mv -v *.a static-32/

	# Build the test programs, in order to avoid FTBFS if DEB_BUILD_OPTIONS contains nocheck
	$(MAKE) FFLAGS="$(FFLAGS_BLAS_TESTSUITE)" BLASLIB="../../libblas.so" -C BLAS/TESTING
	$(MAKE) FFLAGS="$(FFLAGS_BLAS_TESTSUITE)" BLASLIB="../../libblas.so" CBLASLIB="" -C CBLAS/testing
	$(MAKE) FFLAGS="$(FFLAGS_LAPACK_TESTSUITE)" BLASLIB="../../libblas.so" LAPACKLIB="../../liblapack.so" TMGLIB="../../libtmglib.so" -C TESTING EIG/xeigtstc EIG/xeigtstd EIG/xeigtsts EIG/xeigtstz LIN/xlintstc LIN/xlintstd LIN/xlintsts LIN/xlintstz LIN/xlintstds LIN/xlintstrfc LIN/xlintstrfd LIN/xlintstrfs LIN/xlintstrfz LIN/xlintstzc

ifeq (64,$(DEB_HOST_ARCH_BITS))
	###########################################################################
	## 64-BIT INDEXING -- SHARED (PIC)
	ln -sf make.inc-64 make.inc
	###########################################################################
	for I in INSTALL64 BLAS64 CBLAS64 SRC64 LAPACKE64 TESTING64/MATGEN; do $(MAKE) -C $$I clean; done
	$(MAKE) -C BLAS64 PICOPTS=-fPIC
	$(MAKE) -C CBLAS64 PICOPTS=-fPIC
	$(MAKE) -C SRC64 PICOPTS=-fPIC
	$(MAKE) -C LAPACKE64 PICOPTS=-fPIC
	$(MAKE) -C TESTING64/MATGEN PICOPTS=-fPIC

	mkdir -p pic64
	for I in refblas cblas lapack tmglib lapacke; do cp lib$${I}.a pic64/lib$${I}_pic.a; done

	# Build libblas64.so.*
	ar d pic64/librefblas_pic.a xerbla.o # We want to use the xerbla.o from libcblas_pic.a
	mkdir -p tmp
	cd tmp && ar x ../pic64/librefblas_pic.a && ar x ../pic64/libcblas_pic.a
	$(FC) -shared -Wl,-soname=libblas64.so.$(SO) -o libblas64.so.$(DEB_VERSION_UPSTREAM) tmp/*.o $(LDFLAGS)
	rm -rf tmp
	ln -s libblas64.so.$(DEB_VERSION_UPSTREAM) libblas64.so.$(SO)
	ln -s libblas64.so.$(DEB_VERSION_UPSTREAM) libblas64.so

	# Build liblapack64.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic64/liblapack_pic.a
	$(FC) -shared -Wl,-soname=liblapack64.so.$(SO) -o liblapack64.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas64 $(LDFLAGS)
	rm -rf tmp
	ln -s liblapack64.so.$(DEB_VERSION_UPSTREAM) liblapack64.so.$(SO)
	ln -s liblapack64.so.$(DEB_VERSION_UPSTREAM) liblapack64.so

	# Build libtmglib64.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic64/libtmglib_pic.a
	$(FC) -shared -Wl,-soname=libtmglib64.so.$(SO) -o libtmglib64.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas64 -llapack64 $(LDFLAGS)
	rm -rf tmp
	ln -s libtmglib64.so.$(DEB_VERSION_UPSTREAM) libtmglib64.so.$(SO)
	ln -s libtmglib64.so.$(DEB_VERSION_UPSTREAM) libtmglib64.so

	# Build liblapacke.so.*
	mkdir -p tmp
	cd tmp && ar x ../pic64/liblapacke_pic.a
	$(CC) -shared -Wl,-soname=liblapacke64.so.$(SO) -o liblapacke64.so.$(DEB_VERSION_UPSTREAM) tmp/*.o  -L. -lblas64 -llapack64 -ltmglib64 $(LDFLAGS)
	rm -rf tmp
	ln -s liblapacke64.so.$(DEB_VERSION_UPSTREAM) liblapacke64.so.$(SO)
	ln -s liblapacke64.so.$(DEB_VERSION_UPSTREAM) liblapacke64.so

	###########################################################################
	## 64-BIT INDEXING -- STATIC
	ln -sf make.inc-64 make.inc
	###########################################################################
	for I in INSTALL64 BLAS64 CBLAS64 SRC64 LAPACKE64 TESTING64/MATGEN; do $(MAKE) -C $$I clean; done
	$(MAKE) -C BLAS64
	$(MAKE) -C CBLAS64
	$(MAKE) -C SRC64
	$(MAKE) -C LAPACKE64
	$(MAKE) -C TESTING64/MATGEN

	# Build libblas.a (64)
	ar d librefblas.a xerbla.o # We want to use the xerbla.o from libcblas.a
	mkdir -p tmp
	cd tmp && ar x ../librefblas.a && ar x ../libcblas.a
	ar r libblas.a $$(env LC_ALL=C ls tmp/*.o)
	rm -rf tmp

	mkdir -p static-64
	mv -v *.a static-64/

	# Build the test programs, in order to avoid FTBFS if DEB_BUILD_OPTIONS contains nocheck
	$(MAKE) FFLAGS="$(FFLAGS_BLAS_TESTSUITE) -fdefault-integer-8" BLASLIB="../../libblas64.so" -C BLAS64/TESTING
	$(MAKE) FFLAGS="$(FFLAGS_BLAS_TESTSUITE) -fdefault-integer-8" BLASLIB="../../libblas64.so" CBLASLIB="" -C CBLAS64/testing
	$(MAKE) FFLAGS="$(FFLAGS_LAPACK_TESTSUITE) -fdefault-integer-8" BLASLIB="../../libblas64.so" LAPACKLIB="../../liblapack64.so" TMGLIB="../../libtmglib64.so" -C TESTING64 EIG/xeigtstc EIG/xeigtstd EIG/xeigtsts EIG/xeigtstz LIN/xlintstc LIN/xlintstd LIN/xlintsts LIN/xlintstz LIN/xlintstds LIN/xlintstrfc LIN/xlintstrfd LIN/xlintstrfs LIN/xlintstrfz LIN/xlintstzc
endif #(64,$(DEB_HOST_ARCH_BITS))

override_dh_auto_build-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	for I in INSTALL64 BLAS64 CBLAS64 SRC64 TESTING64 LAPACKE64; do \
		find $$I -type f -name '*.f' -exec rename 's/\.f/.fbak/' '{}' + ; \
		find $$I -type f -name '*.c' -exec rename 's/\.c/.cbak/' '{}' + ; \
		done

	$(MAKE) html
	# Remove useless doxygen-generated files
	find DOCS/explore-html/ \( -name '*.map' -or -name '*.md5' \) -delete

	$(MAKE) man
	# Remove directory reference files, because they include local build pathnames
	# (but don't delete some __*__.3 files)
	-rm DOCS/man/man3/_[a-zA-Z]*
	# Remove manpages with too generic name (and no content) (see #1011422)
	-rm DOCS/man/man3/real.3 DOCS/man/man3/imag.3
	# Remove manpage that conflicts with manpages-dev (see #1058459)
	-rm DOCS/man/man3/isnan.3

	for I in INSTALL64 BLAS64 CBLAS64 SRC64 TESTING64 LAPACKE64; do \
		find $$I -type f -name '*.fbak' -exec rename 's/\.fbak/.f/' '{}' + ; \
		find $$I -type f -name '*.cbak' -exec rename 's/\.cbak/.c/' '{}' + ; \
		done
endif

override_dh_auto_test-arch:
	###########################################################################
	## 32-BIT INDEXING -- TEST
	###########################################################################
	# Run BLAS tests, output the result, and stop if one test fails
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C BLAS/TESTING run BLASLIB="../../libblas.so"
	cat BLAS/TESTING/*.out
	! grep -q -i fail BLAS/TESTING/*.out

	# Run CBLAS tests, output the result, and stop if one test fails
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C CBLAS/testing run BLASLIB="../../libblas.so" CBLASLIB=""
	cat CBLAS/testing/*.out
	! grep -q -i fail CBLAS/testing/*.out

	# Run LAPACK tests, but don't stop if one test fails
	# Only a summary is displayed; full test results in TESTING/testing_results.txt
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C TESTING FFLAGS="$(FFLAGS_LAPACK_TESTSUITE)" BLASLIB="../../libblas.so" LAPACKLIB="../../liblapack.so" TMGLIB="../../libtmglib.so"
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH ./lapack_testing.py -d TESTING

ifeq (64,$(DEB_HOST_ARCH_BITS))
	###########################################################################
	## 64-BIT INDEXING -- TEST
	###########################################################################
	# Run BLAS tests, output the result, and stop if one test fails
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C BLAS64/TESTING run BLASLIB="../../libblas64.so"
	cat BLAS64/TESTING/*.out
	! grep -q -i fail BLAS64/TESTING/*.out

	# Run CBLAS tests, output the result, and stop if one test fails
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C CBLAS64/testing run BLASLIB="../../libblas64.so" CBLASLIB=""
	cat CBLAS64/testing/*.out
	! grep -q -i fail CBLAS64/testing/*.out

	# Run LAPACK tests, but don't stop if one test fails
	# Only a summary is displayed; full test results in TESTING64/testing_results.txt
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH $(MAKE) -C TESTING64 FFLAGS="$(FFLAGS_LAPACK_TESTSUITE) -fdefault-integer-8" BLASLIB="../../libblas64.so" LAPACKLIB="../../liblapack64.so" TMGLIB="../../libtmglib64.so"
	LD_LIBRARY_PATH=$$(pwd):$$LD_LIBRARY_PATH ./lapack_testing.py -d TESTING64
endif

override_dh_makeshlibs-arch:
	dh_makeshlibs -pliblapack3 -V "liblapack3 | liblapack.so.3"
	dh_makeshlibs -plibblas3 -V "libblas3 | libblas.so.3"
	dh_makeshlibs -pliblapack64-3 -V "liblapack64-3 | liblapack64.so.3"
	dh_makeshlibs -plibblas64-3 -V "libblas64-3 | libblas64.so.3"
	dh_makeshlibs -a -Nliblapack3 -Nlibblas3 -Nliblapack64-3 -Nlibblas64-3

override_dh_shlibdeps-arch:
	dh_shlibdeps -a -l $$(pwd)

GENERATED_MAINTAINER_SCRIPTS := $(patsubst %.in,%,$(wildcard debian/*.postinst.in debian/*.prerm.in))

$(GENERATED_MAINTAINER_SCRIPTS): %: %.in
	sed "s%@DEB_HOST_MULTIARCH@%$(DEB_HOST_MULTIARCH)%g" < $< > $@

execute_before_dh_install: $(GENERATED_MAINTAINER_SCRIPTS)
	true # An empty rule would confuse dh

execute_after_dh_clean:
	rm -f $(GENERATED_MAINTAINER_SCRIPTS)