X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=debian%2Frules;h=59569b9cbd02f4491144ec1bc0f874024730cbf6;hb=6d0f627c533ccaeac81f11b8ea5639fd873caf61;hp=f6e7ccd4b3cd8b98f0642a4e2abf48c2a1c21c59;hpb=b121ff27dbb03c1da9afd078d0ab3818440519ca;p=deb_dpdk.git diff --git a/debian/rules b/debian/rules index f6e7ccd4..59569b9c 100755 --- a/debian/rules +++ b/debian/rules @@ -5,6 +5,7 @@ export DH_VERBOSE=1 export DH_OPTIONS=-v VERSION := $(shell dpkg-parsechangelog | sed -nr '/^Version:/s/Version: (.*:)?(.*)-(.*)/\2/p') +DPDK_ABI := $(shell echo $(VERSION) | cut -d '.' -f1-2) # see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* include /usr/share/dpkg/default.mk @@ -112,12 +113,6 @@ DPDK_CONFIG_BUILD_KMOD=y # dpkg-genchanges, and also would require a lot of overrides for debhelpers. get_built_using ?= $(filter-out (=),$(shell dpkg-query -f='$${source:Package} (=$${source:Version})' -W $1)) -override_dh_gencontrol: - dh_gencontrol - dh_gencontrol -p dpdk-modules-$(KVERS) -- \ - -v`cat debian/VERSION` \ - -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' - build: @if [ x"$(KVERS)" = x ] ; then \ echo 'No version in $(KSRC)/include/linux/version.h' >&2; \ @@ -131,18 +126,42 @@ endif %: dh $@ --with python2,dkms +override_dh_gencontrol: + dh_gencontrol + # debian/files will not exist until dh_gencontrol has ran at least once, + # so we need to run gencontrol for libdpdk-dev and libdpdk-dbgsym after. + # The list of libraries and PMDs is everchanging, so generate the dependency + # list for libdpdk-dev to avoid having to maintain it manually. + # Same for the recommends list for dpdk, were we want the PMDs and the mempools. + dh_gencontrol -p libdpdk-dev -- -V"librte:Depends=`grep -E 'librte-*' ./debian/files | grep -v dbgsym | tr '_' ' ' | awk '{ print $$1,"(=",$$2 ")" }' | paste -sd ',' - | sed -e 's/,/, /g'`" + dh_gencontrol -p dpdk -- -V"librte:Recommends=`grep -E 'librte-(pmd|mempool).*' ./debian/files | grep -v dbgsym | tr '_' ' ' | awk '{ print $$1,"(=",$$2 ")" }' | paste -sd ',' - | sed -e 's/,/, /g'`" +ifneq (,$(findstring kernel_modules,$(DEB_BUILD_OPTIONS))) + dh_gencontrol -p dpdk-modules-$(KVERS) -- \ + -v`cat debian/VERSION` \ + -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' +endif +ifneq (,$(findstring dbgsym_meta,$(DEB_BUILD_OPTIONS))) + ./debian/dh-dbgsym-metapkg libdpdk$(DPDK_ABI)-dbgsym +endif + +# dbgsym_meta can be passed via DEB_BUILD_OPTIONS to enable building the +# optional dbgsym meta package libdpdk-dbgsym. +# This is not built by default as it would go in main but depend on +# packages in the debian-debug archive. +# Debian Developers and FTP masters strongly discourage this. +# We provide this optional flag as a convenience for rebuilders. +ifneq (,$(findstring dbgsym_meta,$(DEB_BUILD_OPTIONS))) +override_dh_builddeb: + dh_builddeb + dh_builddeb -plibdpdk$(DPDK_ABI)-dbgsym +endif + override_dh_auto_clean: rm -rf debian/build debian/tmp debian/dpdk-modules-* \ debian/control.modules debian/VERSION sed -i '/Package: dpdk-modules-/,/`tail -n1 debian/control.modules.in`/d' debian/control test -L config/defconfig_$(DPDK_CONFIG) && rm -f config/defconfig_$(DPDK_CONFIG) || true -override_dh_clean: - dh_clean - rm -f debian/libethdev4.links - rm -f debian/librte-cryptodev1.links - rm -f debian/librte-eal2.links - override_dh_auto_configure: # Add support for a custom defconfig file in the debian directory. ifneq (,$(filter dpdk_config=%,$(DEB_BUILD_OPTIONS))) @@ -304,15 +323,6 @@ ifneq (,$(KVERS)) DESTDIR=debian/dpdk-modules-$(KVERS) install-kmod endif -debian/libethdev4.links: debian/libethdev4.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -debian/librte-cryptodev1.links: debian/librte-cryptodev1.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -debian/librte-eal2.links: debian/librte-eal2.links.in - sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' < $< > $@ -override_dh_link: debian/libethdev4.links debian/librte-cryptodev1.links debian/librte-eal2.links - dh_link - override_dh_dkms: dh_dkms -V $(VERSION)