summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules75
1 files changed, 40 insertions, 35 deletions
diff --git a/debian/rules b/debian/rules
index 043b897..48c4f4c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -2,46 +2,51 @@
SONAME=liblbfgsb.so.0
-# Enable hardening, but remove pie flag since we're building a shared
-# object. See also
-# https://lists.debian.org/debian-devel/2013/01/msg00225.html.
-MAINTOPTS = hardening=+all,-pie
-FCFLAGS:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS) dpkg-buildflags --get FCFLAGS)
-LDFLAGS:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS) dpkg-buildflags --get LDFLAGS)
-
-MAINTOPTS_EX = hardening=+all
-FCFLAGS_EX:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS_EX) dpkg-buildflags --get FCFLAGS)
-LDFLAGS_EX:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS_EX) dpkg-buildflags --get LDFLAGS)
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+include /usr/share/dpkg/buildflags.mk
%:
dh $@
-override_dh_auto_build:
- mkdir -p build
- gfortran $(FCFLAGS) -fPIC -o build/lbfgsb.o -c lbfgsb.f
- gfortran $(FCFLAGS) -fPIC -o build/timer.o -c timer.f
+build/%.o: %.f
+ gfortran $(FCFLAGS) -fPIC -o $@ -c $<
+
+build/liblbfgsb.so: build/lbfgsb.o build/timer.o
gfortran $(FCFLAGS) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) \
- -o build/$(SONAME) build/lbfgsb.o build/timer.o \
- -lblas -llapack
- ar cr build/liblbfgsb.a build/lbfgsb.o build/timer.o
- ln -s $(SONAME) build/liblbfgsb.so
-
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver1_77 driver1.f -llbfgsb -Lbuild
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver1_90 driver1.f90 -llbfgsb -Lbuild
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver2_77 driver2.f -llbfgsb -Lbuild
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver2_90 driver2.f90 -llbfgsb -Lbuild
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver3_77 driver3.f -llbfgsb -Lbuild
- gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) \
- -o build/lbfgsb-examples_driver3_90 driver3.f90 -llbfgsb -Lbuild
-
-override_dh_auto_clean:
+ -o build/$(SONAME) $^ -lblas -llapack
+ ln -s $(SONAME) $@
+
+build/liblbfgsb.a: build/lbfgsb.o build/timer.o
+ ar cr $@ $^
+
+build/lbfgsb-examples_driver1_77: driver1.f build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+build/lbfgsb-examples_driver1_90: driver1.f90 build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+build/lbfgsb-examples_driver2_77: driver2.f build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+build/lbfgsb-examples_driver2_90: driver2.f90 build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+build/lbfgsb-examples_driver3_77: driver3.f build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+build/lbfgsb-examples_driver3_90: driver3.f90 build/liblbfgsb.so
+ gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild
+
+execute_before_dh_auto_build:
+ mkdir -p build
+
+override_dh_auto_build: build/liblbfgsb.so build/liblbfgsb.a \
+ build/lbfgsb-examples_driver1_77 build/lbfgsb-examples_driver1_90 \
+ build/lbfgsb-examples_driver2_77 build/lbfgsb-examples_driver2_90 \
+ build/lbfgsb-examples_driver3_77 build/lbfgsb-examples_driver3_90
+
+execute_before_dh_auto_clean:
rm -rf build
- dh_auto_clean
override_dh_compress:
- dh_compress -X.pdf -X.f -X.f90 -Xoutput_
+ dh_compress -X.f -X.f90 -Xoutput_