#!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- # Copyright 2013-2018 Jonas Smedegaard # Description: Main Debian packaging script for swish # # This program is free software; # you can redistribute it and/or modify it # under the terms of the GNU General Public License # as published by the Free Software Foundation; # either version 3, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; # without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU General Public License for more details. # # You should have received a copy # of the GNU General Public License along with this program. # If not, see . include /usr/share/cdbs/1/rules/debhelper.mk -include /usr/share/cdbs/1/class/hlibrary.mk # helper macros for GHC dependencies # example use: foo bar,dev,prof doc,>=,1.2,<<,1.3 baz expand-or-strip-ghc-dep = $(foreach expandsuffix,$1,\ $(comma) libghc-$3-$(expandsuffix) $(if $4,($4 $5))\ $(if $6,\ $(comma) libghc-$3-$(expandsuffix) ($6 $7)))\ $(foreach stripsuffix,$2,\ $(comma) libghc-$3-$(stripsuffix)) expand-ghc-deps = $(foreach dep,$(sort $3),$(call expand-or-strip-ghc-dep,\ $1,\ $2,$(strip \ $(word 1,$(subst $(comma),$(space),$(dep)))),$(strip \ $(word 2,$(subst $(comma),$(space),$(dep)))),$(strip \ $(word 3,$(subst $(comma),$(space),$(dep)))),$(strip \ $(word 4,$(subst $(comma),$(space),$(dep)))),$(strip \ $(word 5,$(subst $(comma),$(space),$(dep)))))) # Needed by upstream build ghc-deps += hashable,<<,1.3 ghc-deps += mtl,<<,3 ghc-deps += old-locale,<<,1.1 ghc-deps += network-uri,<<,2.7 ghc-deps += network,>=,2.6,<<,2.7 ghc-deps += polyparse,<<,1.13 ghc-deps += semigroups,<<,0.19 ghc-deps += text,<<,1.3 ghc-deps += intern,<<,1.0 bdeps = ghc, ghc-prof bdeps +=, $(call expand-ghc-deps,dev,prof,$(ghc-deps)) # Needed by upstream testsuite ghc-deps-test = hunit test-framework test-framework-hunit bdeps-test = $(call expand-ghc-deps,dev,$(ghc-deps-test)) # Needed by upstream documentation build bdeps-indep = ghc-doc # these are undeclared but warned about at build time # * nats avoided (see bug#809032) #ghc-deps-doc += nats ghc-deps-doc += unordered-containers bdeps-indep +=, $(call expand-ghc-deps,,doc,$(ghc-deps) $(ghc-deps-doc)) # Needed for our packaging bdeps +=, haskell-devscripts, help2man # TODO: actually use CDBS_BUILD_DEPENDS_INDEP, instead of hardcoding CDBS_BUILD_DEPENDS +=, $(bdeps), $(bdeps-test), $(bdeps-prof) CDBS_BUILD_DEPENDS_INDEP +=, $(bdeps-indep) DEB_ENABLE_TESTS = yes # generate manpage based on --help of script itself # (using wrappers to emulate --version and provide --description) post-build/swish:: swish := $(wildcard debian/tmp-inst-*/usr/bin/Swish) post-build/swish:: debian/Swish.1 debian/Swish.1: help2man \ --name="read, merge, write, compare and process RDF graphs" \ --help-option=-h --version-option=-v \ --no-info --output=$@ $(swish) clean:: rm -f debian/Swish.1 DEB_INSTALL_EXAMPLES_swish = scripts/* # Strip hardcoded rpath CDBS_BUILD_DEPENDS +=, chrpath binary-strip/swish:: find debian/$(cdbs_curpkg)/usr/bin -type f -execdir chrpath -d '{}' +