X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=debian%2Frules;h=f6e7ccd4b3cd8b98f0642a4e2abf48c2a1c21c59;hb=b121ff27dbb03c1da9afd078d0ab3818440519ca;hp=5d2f15908c83bd74eaa13893dba994da75c9b1c4;hpb=155e2da43497ec305ae7e716a0f34056ea708855;p=deb_dpdk.git diff --git a/debian/rules b/debian/rules index 5d2f1590..f6e7ccd4 100755 --- a/debian/rules +++ b/debian/rules @@ -71,16 +71,21 @@ 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))) -else - PAR := "1" + MAKEFLAGS += -j$(PAR) endif -ifneq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS))) +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 +BUILD_STATIC_LIB=y +endif + # kernel_modules can be passed via DEB_BUILD_OPTIONS to enable building the # optional binary kernel modules package. By default it will be built against # the current kernel, or ksrc can be passed with a path to the target kernel @@ -166,8 +171,7 @@ endif override_dh_auto_build-indep: ifeq (y,$(BUILD_DOCS)) - $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html \ - doc-guides-man + $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html endif override_dh_auto_install-indep: @@ -179,7 +183,9 @@ ifeq (y,$(BUILD_DOCS)) 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). @@ -192,13 +198,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 @@ -234,7 +246,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 @@ -259,6 +273,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; \