Pass Debian multiarch libdir during install 58/5758/1
authorJan Blunck <jblunck@brocade.com>
Tue, 14 Mar 2017 19:45:35 +0000 (20:45 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Wed, 15 Mar 2017 15:53:28 +0000 (15:53 +0000)
Lets pass the multiarch libdir at install time so that the links embedded
in the dpdk-dev package (build environment) are correct.

Change-Id: I4f907ad88721f2155a300dc6ad6724a686b7b194
Signed-off-by: Jan Blunck <jblunck@infradead.org>
Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
debian/rules

index 321f368..1fc7bbd 100755 (executable)
@@ -184,12 +184,12 @@ override_dh_auto_build-arch:
                $(DPDK_SHARED_DIR)/.config
        $(MAKE) -j $(PAR) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) RTE_KERNELDIR=$(KSRC) build
 
-override_dh_auto_install-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+override_dh_auto_install-arch: LIBDIR=/usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 override_dh_auto_install-arch:
        # Package: dpdk (runtime)
-       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr libdir=$(LIBDIR) \
                DESTDIR=debian/dpdk install-runtime
-       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr libdir=$(LIBDIR) \
                DESTDIR=debian/dpdk install-runtime
        mkdir -p debian/dpdk/etc/dpdk
        cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces
@@ -198,8 +198,12 @@ override_dh_auto_install-arch:
        ln -s /usr/share/dpdk/tools/dpdk-devbind.py \
                debian/dpdk/sbin/dpdk-devbind
        # Package: dpdk-dev (build environment)
-       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \
+       # workaround to fix symbolic link creation
+       mkdir -p debian/dpdk-dev/$(LIBDIR)
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr libdir=$(LIBDIR) \
                DESTDIR=debian/dpdk-dev install-sdk
+       # remove workaround
+       rm -fr debian/dpdk-dev/usr/lib
        cp $(DPDK_SHARED_DIR)/.config debian/dpdk-dev/usr/share/dpdk/config
        sed -e 's/SDK_TARGET/$(RTE_TARGET)/' debian/dpdk-sdk-env.sh.in > \
                debian/dpdk-dev/usr/share/dpdk/dpdk-sdk-env.sh
@@ -215,18 +219,18 @@ override_dh_auto_install-arch:
        # script)
        mkdir -p debian/libdpdk-dev/$(LIBDIR)
        # linker script
-       mv debian/dpdk/usr/lib/libdpdk.so debian/libdpdk-dev/$(LIBDIR)/
+       mv debian/dpdk/$(LIBDIR)/libdpdk.so debian/libdpdk-dev/$(LIBDIR)/
        # includes
        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
-       mv debian/dpdk/usr/lib/lib*.a debian/libdpdk-dev/$(LIBDIR)/
+       mv debian/dpdk/$(LIBDIR)/lib*.a debian/libdpdk-dev/$(LIBDIR)/
        # symlinks to last .so's are in the non versioned libdpdk-dev as well
        # this allows multiple libdpdk-<NAME><VER> at different VER concurrently
        # libdpdk-dev depends on all sublibs so symlinks are never broken
-       mv debian/dpdk/usr/lib/*.so debian/libdpdk-dev/$(LIBDIR)/
+       mv debian/dpdk/$(LIBDIR)/*.so debian/libdpdk-dev/$(LIBDIR)/
        # Package(s): libdpdk-<NAME><VER> (bare runtime libs)
-       for lib in $$(ls -1 debian/dpdk/usr/lib/*.so.*); do \
+       for lib in $$(ls -1 debian/dpdk/$(LIBDIR)/*.so.*); do \
          BN=$$(basename $${lib}); \
          VER=$$(echo $${BN} | sed -e 's/^.*\.so\.//'); \
          LN=$$(echo $${BN} | sed -e 's/\.so\.[0-9]*$$//' | tr '_' '-'); \