#!/usr/bin/make -f # Uncomment this to turn on verbose mode. # export DH_VERBOSE=1 # DEB_LDFLAGS_MAINT_PREPEND:= -Wl,-z,defs -Wl,--as-needed DEB_BUILD_MAINT_OPTIONS:= hardening=+all,-format DEB_CFLAGS_MAINT_APPEND:= -Wall -pedantic -fPIC export DEB_BUILD_MAINT_OPTIONS DEB_CFLAGS_MAINT_APPEND DEB_LDFLAGS_MAINT_PREPEND export QT_SELECT=5 CXXFLAGS:= $(shell dpkg-buildflags --get CXXFLAGS) -std=c++11 UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -ne 's/^Version: \(.*\)-.*/\1/p' | sed -e 's/\+.*//; s/^[0-9]://') # Needed for sbuild. metview creates temp directories during build export HOME:=/tmp export METVIEW_LOCALHOST:=127.0.0.1 export METVIEW_DEBUG:=1 export FC:=gfortran DESTDIR:=$(CURDIR)/debian/tmp/ DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) TARGET_ARCH ?= $(shell dpkg-architecture -qDEB_TARGET_ARCH_CPU) LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH) PATH:=$(PATH):$(CURDIR)/scripts AUTOGENERATED:= libmetview-dev.install metview.install libmetview0d.install libmetview0d.links MV_DIR:=/usr/lib/$(DEB_HOST_MULTIARCH)/metview export METVIEW_DIR_DEV:=$(CURDIR)/debian/build export METVIEW_BIN:=$(METVIEW_DIR_DEV)/bin # Hack until complter uses this directory FMODDIR:=$(LIBDIR)/fortran/gfortran-mod-15 FCFLAGS:=$(shell dpkg-buildflags --get FCFLAGS) -I $(FMODDIR) LC_ALL=C TZ=UTC+0 export LC_ALL TZ FPIC:= '' ifeq ($(TARGET_ARCH), i386) FPIC:= -fPIC endif # magic debhelper rule %: dh $@ --buildsystem=cmake --builddirectory=$(METVIEW_DIR_DEV) override_dh_auto_clean: dh_clean rm -rf $(METVIEW_DIR_DEV) src/images/metview.png rm -f $(patsubst %, debian/%, ${AUTOGENERATED}) [ ! -f scripts/metview_base.in.bak ] || \ ( mv scripts/metview_base.in.bak scripts/metview_base.in ) # magics++ upstream ships with a copy of terralib, which is not used in Debian. # Instead we use # a shared terralib library, and so need to include terralib. # Also -fPIC, for some reason. override_dh_auto_configure: chmod +x ./scripts/*.mv # Hack. how to do this via ecbuild? cp scripts/metview_base.in scripts/metview_base.in.bak sed -e 's%@DEB_HOST_MULTIARCH@%${DEB_HOST_MULTIARCH}%g' < scripts/metview_base.in \ > scripts/tmpx && mv scripts/tmpx scripts/metview_base.in dh_auto_configure -- \ -DMETVIEW_SITE=debian \ -DCMAKE_BUILD_TYPE=Release \ -DMETVIEW_EXTRA_LIBRARIES='terralib -lemosR64 -leckit' \ -DMETVIEW_EXTRA_INCLUDES='/usr/include/terralib/kernel' \ -DMAGICS_HAVE_METVIEW=True \ -DMAGICS_HAVE_NETCDF=True \ -DMAGICS_PATH=/usr \ -DBUILD_SHARED_LIBS=On \ -DSKIP_INSTALL_RPATHS=On \ -DENABLE_RPATHS=Off \ -DENABLE_RELATIVE_RPATHS=Off \ -DENABLE_ODB=On \ -DODB_PATH=/usr \ -Dodb_api_DIR=${LIBDIR}/cmake/odb_api \ -DFLEXTRA_PATH=/usr/bin/flextra \ -DDISABLE_OS_CHECK=On \ -DCMAKE_Fortran_FLAGS=$(FCFLAGS) \ -DFPIC=${FPIC} \ -DCMAKE_Fortran_FLAGS='$(FCFLAGS)' for f in ${AUTOGENERATED} ; do \ sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in > debian/$$f ; \ done sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%g' < debian/CONFIG.site.in | \ sed -e 's%@UPSTREAM_VERSION@%${UPSTREAM_VERSION}%g' | \ > $(METVIEW_DIR_DEV)/scripts/CONFIG.site # These get generated ok on a machine with network connection, but fail on sbuilds, etc. # so copy pre-generated versions stored in etc mkdir -p debian/build/share/metview/etc/ cp debian/etc/* debian/build/share/metview/etc/ cd debian/build/share/metview/etc && $(MAKE) ObjectListAllTarget cp src/images/metview_logo.png src/images/metview.png override_dh_auto_test: @echo "Checks disabled for the moment due to syntax errors in tests" override_dh_fixperms-arch: dh_fixperms rm -f debian/metview/usr/lib/*/metvidew/metview_post_install_tests.sh chmod 755 debian/metview/$(MV_DIR)/mv_compress chmod 644 debian/metview/$(MV_DIR)/metview_*.common chmod 644 debian/metview/$(MV_DIR)/metview_stat chmod 644 debian/metview/$(MV_DIR)/metview_patches chmod 644 debian/metview/usr/share/images/metview/* file debian/metview/$(MV_DIR)/* | grep ELF | cut -f1 -d: | xargs chrpath -d chrpath -d debian/libmetview0d/usr/lib/*/lib*so.0.0.0 override_dh_fixperms-indep: dh_fixperms rm -rf debian/metview-data/usr/share/applications find debian/metview-data/usr/share/metview -type f -exec chmod 644 {} \; find debian/metview-data/usr/share/metview -type d -exec chmod 755 {} \; # Hack. Why weren't these already compressed -n ? gunzip debian/metview-data/usr/share/metview/app-defaults/Sample_Drawers.tar.gz gunzip debian/metview-data/usr/share/metview/app-defaults/User_Dir_Frame.tar.gz gzip -n debian/metview-data/usr/share/metview/app-defaults/Sample_Drawers.tar gzip -n debian/metview-data/usr/share/metview/app-defaults/User_Dir_Frame.tar