X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=debian%2Frules;h=bd5ec0b59df124446e4d3c808c1c5ab240580216;hb=84fc024c38dc0277dd25776fdc99670ef00b39cb;hp=1fc7bbdb942af786d3274dab21e343a5b15550c7;hpb=f526ca8bf77507daef96061932352e35ab607758;p=deb_dpdk.git diff --git a/debian/rules b/debian/rules index 1fc7bbdb..bd5ec0b5 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 @@ -71,8 +72,19 @@ DPDK_SHARED_DIR = "debian/build/shared-root" # now stable with parallel comilation, so support -j ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) PAR := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(PAR) +endif + +ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS))) +BUILD_DOCS=n +else +BUILD_DOCS=y +endif + +ifneq (,$(findstring nostatic,$(DEB_BUILD_OPTIONS))) +BUILD_STATIC_LIB=n else - PAR := "1" +BUILD_STATIC_LIB=y endif # kernel_modules can be passed via DEB_BUILD_OPTIONS to enable building the @@ -106,6 +118,11 @@ override_dh_gencontrol: dh_gencontrol -p dpdk-modules-$(KVERS) -- \ -v`cat debian/VERSION` \ -V'built:using:kernel=$(call get_built_using,linux-headers-$(KVERS))' + ./debian/dh-dbgsym-metapkg libdpdk$(DPDK_ABI)-dbgsym + +override_dh_builddeb: + dh_builddeb + dh_builddeb -plibdpdk$(DPDK_ABI)-dbgsym build: @if [ x"$(KVERS)" = x ] ; then \ @@ -159,17 +176,22 @@ endif dh_auto_configure override_dh_auto_build-indep: - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html \ - doc-guides-man +ifeq (y,$(BUILD_DOCS)) + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html +endif override_dh_auto_install-indep: # Package: dpdk-doc # All files based on the install-doc rule (includes examples) +ifeq (y,$(BUILD_DOCS)) $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \ DESTDIR=debian/dpdk-doc install-doc +endif override_dh_auto_build-arch: - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build +ifeq (y,$(BUILD_STATIC_LIB)) + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) RTE_KERNELDIR=$(KSRC) build +endif # Unfortunately the decision about having static or shared libraries is # made for the whole build, which then produces only .a or .so files # (but not both). @@ -182,13 +204,19 @@ override_dh_auto_build-arch: cp -a $(DPDK_STATIC_DIR) $(DPDK_SHARED_DIR) sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \ $(DPDK_SHARED_DIR)/.config - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build +ifeq (y,$(BUILD_DOCS)) + # need to be around for dh_installman to be picked up + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) doc-guides-man +endif override_dh_auto_install-arch: LIBDIR=/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH) override_dh_auto_install-arch: # Package: dpdk (runtime) +ifeq (y,$(BUILD_STATIC_LIB)) $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr libdir=$(LIBDIR) \ DESTDIR=debian/dpdk install-runtime +endif $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr libdir=$(LIBDIR) \ DESTDIR=debian/dpdk install-runtime mkdir -p debian/dpdk/etc/dpdk @@ -224,7 +252,9 @@ override_dh_auto_install-arch: mkdir -p debian/libdpdk-dev/usr/include mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/ # all static libs are in the dev package +ifeq (y,$(BUILD_STATIC_LIB)) mv debian/dpdk/$(LIBDIR)/lib*.a debian/libdpdk-dev/$(LIBDIR)/ +endif # symlinks to last .so's are in the non versioned libdpdk-dev as well # this allows multiple libdpdk- at different VER concurrently # libdpdk-dev depends on all sublibs so symlinks are never broken @@ -249,6 +279,11 @@ override_dh_auto_install-arch: echo "PMD: linking $${LIBF} into RTE_EAL_PMD_PATH at $${LIBD}/dpdk-pmds/"; \ ln -s --relative --target-directory=$${LIBD}/dpdk-pmds/ $${LIBD}/$${LIBF}; \ fi; \ + if [ "$${LIBF#librte_mempool_}x" != "$${LIBF}x" ]; then \ + mkdir -p $${LIBD}/dpdk-pmds; \ + echo "MEMPOOL: linking $${LIBF} into RTE_EAL_PMD_PATH at $${LIBD}/dpdk-pmds/"; \ + ln -s --relative --target-directory=$${LIBD}/dpdk-pmds/ $${LIBD}/$${LIBF}; \ + fi; \ if [ "$${LIBF#librte_eal}x" != "$${LIBF}x" ]; then \ mkdir -p $${LIBD}/dpdk-pmds; \ fi; \ @@ -258,6 +293,7 @@ override_dh_auto_install-arch: LIBS=$$(sed -e 's/GROUP ( \(.*\) )/\1/' -e 's/lib/-l/g' -e 's/\.so//g' \ $(CURDIR)/debian/libdpdk-dev/$(LIBDIR)/libdpdk.so); \ sed -e "s/@DPDK_LIBS@/$${LIBS}/" -e "s/@VERSION@/$(VERSION)/" \ + -e "s|@LIBDIR@|$(LIBDIR)|" \ debian/libdpdk.pc.in > debian/libdpdk-dev/$(LIBDIR)/pkgconfig/libdpdk.pc # Package: dpdk-igb-uio-dkms mkdir -p debian/dpdk-igb-uio-dkms/usr/src/dpdk-igb-uio-$(VERSION) @@ -269,9 +305,9 @@ override_dh_auto_install-arch: debian/dpdk-rte-kni-dkms/usr/src/dpdk-rte-kni-$(VERSION) ifneq (,$(KVERS)) # Package: dpdk-modules- - mkdir -p debian/dpdk-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net - cp -a debian/build/shared-root/kmod/* \ - debian/dpdk-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) \ + kerneldir=/lib/modules/$(KVERS)/extra/dpdk \ + DESTDIR=debian/dpdk-modules-$(KVERS) install-kmod endif debian/libethdev4.links: debian/libethdev4.links.in