#!/usr/bin/make -f # Uncomment this to turn on verbose mode. export DH_VERBOSE=1 export DH_BUILD_MAINT_OPTIONS = hardening=+all include /usr/share/dpkg/pkg-info.mk export HOME=$(CURDIR)/fakehome # Droping -fstack-protector flag helps **drastically** reducing memory consumption when building the package!!!! # export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS | sed 's/-fstack-protector *//') ## don't do this, it simply triggers #759978 # export DEB_BUILD_MAINT_OPTIONS = hardening=-stackprotector # alternatively: export DEB_CXXFLAGS_STRIP='-fstack-protector' DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) ifneq (,$(filter mips mipsel mips64el,$(DEB_BUILD_ARCH))) DEB_CXXFLAGS_MAINT_APPEND+=-mxgot endif ifneq (,$(filter mips mipsel,$(DEB_BUILD_ARCH))) DEB_CXXFLAGS_MAINT_APPEND+=-g1 DEB_CFLAGS_MAINT_APPEND+=-g1 endif # As per upstream's instructions export DEB_CFLAGS_MAINT_APPEND+=-O3 export DEB_CXXFLAGS_MAINT_APPEND+=-DNDEBUG -O3 MAX_PARALLEL="" # Disable or limit parallel building on some build archs to save memory ifneq (,$(filter armel armhf mips mipsel sh4 kfreebsd% powerpcspe,$(DEB_BUILD_ARCH))) MAX_PARALLEL=--max-parallel=1 else ifneq (,$(filter amd64,$(DEB_BUILD_ARCH))) MAX_PARALLEL=--max-parallel=2 endif pkgapps=seqan-apps pkgdev=libseqan2-dev %: dh $@ override_dh_auto_configure-arch: ifeq ($(DEB_HOST_ARCH),armhf) # The following tests FAILED: # 46 - test_test_index_crosscompare_dna (Bus error) # 52 - test_test_index_fm_rank_dictionary (Bus error) sed -i \ -e '/ test_test_index_crosscompare_dna /d' \ -e '/ test_test_index_fm_rank_dictionary /d' \ tests/index/CMakeLists.txt endif ifeq ($(DEB_HOST_ARCH),mips) # The following tests FAILED: # 7 - test_align_parallel_data_structures (Child aborted) sed -i \ -e '/ test_align_parallel_data_structures /d' \ tests/index/CMakeLists.txt endif export DEB_BUILD_ARCH=${DEB_BUILD_ARCH} ; \ dh_auto_configure --arch -- \ -DSEQAN_STATIC_APPS=False -DSEQAN_NO_DOX=1 \ -DSEQAN_DISABLE_VERSION_CHECK=YES override_dh_auto_configure-indep: dh_auto_configure --indep -B build -- \ -DSEQAN_BUILD_SYSTEM=SEQAN_RELEASE_LIBRARY -DSEQAN_NO_DOX=1 override_dh_auto_build-arch: dh_auto_build --arch ${MAX_PARALLEL} #cd obj-$(DEB_BUILD_GNU_TYPE); make dox # This does nothing and no *.html files will be created at all # This ends up in: # Could not import extension sphinxcontrib.bibtex (exception: No module named sphinxcontrib.bibtex) # Seems there is no sphinx module bibtex - thus deactivating creation of html manual # cd manual && make html override_dh_auto_install-indep: dh_auto_install --indep -B build --destdir=$(CURDIR)/debian/$(pkgdev)/ rm -Rf $(CURDIR)/debian/$(pkgdev)/usr/share/doc/seqan override_dh_install-indep: dh_install --indep # Delete additional LICENSE and compiled Python files if [ -d $(CURDIR)/debian/$(pkgdev) ] ; then \ find $(CURDIR)/debian/$(pkgdev) -type f -name LICENSE -delete ; \ find $(CURDIR)/debian/$(pkgdev) -type f -name "*.pyc" -delete ; \ fi override_dh_install-arch: dh_install --arch # Delete additional LICENSE files find $(CURDIR)/debian/$(pkgapps) -type f -name LICENSE -delete || /bin/true find $(CURDIR)/debian/$(pkgapps)/usr/lib/seqan/bin -type f \ -name "*.sh" | xargs chmod a+x # for app in $$(ls $(CURDIR)/debian/$(pkgapps)/usr/lib/seqan/bin); \ # do $(CURDIR)/debian/$(pkgapps)/usr/lib/seqan/bin/$${app} \ # --write-ctd $${app}.ctd && CTDConverter cwl -i $${app}.ctd \ # -o $(CURDIR)/debian/$(pkgapps)/usr/share/commonwl/${app}.cwl; \ # done; # rm *.ctd # find $(CURDIR)/debian/$(pkgapps)/usr/share/commonwl -type f \ # -name "*.cwl" | xargs chmod a+x override_dh_auto_clean: dh_auto_clean find . -type f -name "*.pyc" -delete if [ -d orig ] ; then \ for header in `find orig -name "*generated_forwards.h"` ; do \ mv $${header} `echo $$header | sed 's?orig/??'` ; \ done ; \ fi rm -rf orig override_dh_installman-arch: dh_link --arch if [ -d $(CURDIR)/debian/$(pkgapps)/usr/bin ] ; then \ find $(CURDIR)/debian/$(pkgapps)/usr/bin -type l -xtype l -delete ; \ fi $(CURDIR)/debian/generate_manpages dh_installman --arch override_dh_link-arch: dh_link --arch # Some binaries (eg. splazer) are not built in 32-bit architectures so # remove their (broken) symlinks. if [ -d $(CURDIR)/debian/$(pkgapps)/usr/bin ] ; then \ find $(CURDIR)/debian/$(pkgapps)/usr/bin -type l -xtype l -delete ; \ fi override_dh_fixperms-arch: dh_fixperms --arch for bin in `ls $(CURDIR)/debian/$(pkgapps)/usr/lib/seqan/bin/*.sh` ; do \ chmod +x $(CURDIR)/debian/$(pkgapps)/usr/lib/seqan/bin/`basename $${bin}` ; \ done