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
|
#!/usr/bin/make -f
# -*- gmake -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# Paths for Octave
OCTDIR = $(shell octave-config --print LOCALAPIOCTFILEDIR)
# This is a workaround for Bug#1055750 and Bug#1055228
ifeq ($(DEB_TARGET_ARCH),armhf)
export DEB_BUILD_MAINT_OPTIONS := hardening=+all,-stackclash
else
export DEB_BUILD_MAINT_OPTIONS := hardening=+all
endif
DPKG_EXPORT_BUILDFLAGS := 1
DEB_CFLAGS_MAINT_APPEND := -fvisibility=hidden
ifeq ($(DEB_HOST_ARCH), ppc64el)
DEB_CFLAGS_MAINT_APPEND += -O2
endif
DEB_FFLAGS_MAINT_APPEND := -fvisibility=hidden
# Don't add -fvisibility=hidden to CXXFLAGS for now as this breaks the
# octave bindings.
DEB_CPPFLAGS_MAINT_APPEND := $(shell mkoctfile -p INCFLAGS)
DEB_LDFLAGS_MAINT_APPEND := -Wl,--no-allow-shlib-undefined \
-Wl,--no-copy-dt-needed-entries \
-Wl,--no-undefined
include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk
include /usr/share/ada/packaging.mk
include /usr/share/dpkg/pkg-info.mk
# Note cmake ignores CPPFLAGS so add them to CFLAGS and CXXFLAGS as a
# work around, see #653916.
CFLAGS += $(CPPFLAGS)
CXXFLAGS += $(CPPFLAGS)
export verbose_test = on
export QT_SELECT=5
CONFIGURE_OPTIONS = \
-DCMAKE_RULE_MESSAGES=OFF \
-DUSE_RPATH=OFF \
-DPLD_psttf=OFF \
-DNON_TRANSITIVE=ON \
-DCMAKE_INSTALL_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
-DENABLE_ada=ON \
-Dplplotada_SOVERSION=$(plplotada_SO_VERSION) \
-DGNAT_PROJECT_DIR=/$(DEB_GNAT_PROJECT_DIR) \
-DENABLE_octave=ON \
-DOCTAVE_OCT_DIR=$(OCTDIR) \
-DENABLE_python=ON \
-DENABLE_tk=ON \
-DENABLE_d=OFF \
$(if $(findstring nodoc,$(DEB_BUILD_OPTIONS)),,-DBUILD_DOC=ON) \
$(if $(findstring nocheck,$(DEB_BUILD_OPTIONS)),,-DBUILD_TEST=ON)
usrdir = debian/tmp/usr
shrdir = $(usrdir)/share
libdir = $(usrdir)/lib
%:
dh $@ -Scmake
override_dh_auto_configure:
ADA=gcc-14 xvfb-run -a dh_auto_configure -- $(CONFIGURE_OPTIONS)
override_dh_auto_test:
ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
QT_QPA_PLATFORM=offscreen xvfb-run -a $(MAKE) -C obj-* VERBOSE=1 test_noninteractive
endif
execute_after_dh_auto_install:
# Remove multiarch path and -fPIC in pkgconfig files.
sed -i -e 's,-L"/usr/lib/$(DEB_HOST_MULTIARCH)",,g;s, *, ,g' \
-e 's,-fPIC,,g' $(libdir)/$(DEB_HOST_MULTIARCH)/pkgconfig/*.pc
# Add -fPIC compiler flag for building the C++ examples
sed -i -E -e 's/^(CXX = .*)/\1 -fPIC/' \
$(shrdir)/plplot*/examples/c++/Makefile
# Remove tests for shared libs on Python and ADA from export_plplot:
# These libs were renamed during build for multiarch
sed '/\/_Pltk_init.so/d;/\/_plplotc.so/d;/\/plplot_pyqt5_/d;/\/libplplotada.so/d' \
-i $(libdir)/*/cmake/plplot/export_plplot-none.cmake
# Remove the unnecessary *.in files in the examples directories
rm -f $(shrdir)/plplot*/examples/*/*.in
# Fix path in shebang line of Tk example scripts
sed -i -e 's:^#!/usr/share/plplot[0-9.]\+/:#!/usr/share/doc/plplot-doc/:' \
$(shrdir)/plplot*/examples/tk/tk*
# Remove RUNPATH from OCaml binding library
chrpath --delete $(libdir)/ocaml/stublibs/dllplplot_stubs.so
# Change name of static plplotada library
mv $(libdir)/$(DEB_HOST_MULTIARCH)/libplplotada_static.a \
$(libdir)/$(DEB_HOST_MULTIARCH)/libplplotada.a
execute_after_dh_install:
dh_numpy3
override_dh_installchangelogs:
dh_installchangelogs ChangeLog.release
override_dh_missing:
dh_missing -Xusr/share/java/plplot.jar --fail-missing
override_dh_dwz:
dh_dwz --exclude=libplplotada
override_dh_shlibdeps:
dh_shlibdeps -a -l$(shell octave-config -p OCTLIBDIR)
dh_octave_substvar
# The following rules circumvent a problem in dh-fortran (see Bug#1125262)
override_dh_fortran_lib:
dh_fortran_lib
override_dh_fortran_pkgconf:
dh_fortran_pkgconf
override_dh_fortran_cmake:
dh_fortran_cmake
override_dh_fortran_mod:
dh_fortran_mod
|