Convert debian/rules to new style DH targets
[deb_dpdk.git] / debian / rules
index 43b3045..77f90d8 100755 (executable)
@@ -39,18 +39,18 @@ endif
 DPDK_STATIC_DIR = "debian/build/static-root"
 DPDK_SHARED_DIR = "debian/build/shared-root"
 
-clean:
-       dh_testdir
+%:
+       dh $@ --with python2,dkms
+
+override_dh_auto_clean:
        rm -rf debian/build debian/tmp
-       dh_clean
 
-build-config:
-       dh_testdir
+override_dh_auto_configure:
        # report dpkg-buildflags status to build log
        dpkg-buildflags --status
        echo EXTRA_CFLAGS $$EXTRA_CFLAGS
        echo EXTRA_LDFLAGS: $$EXTRA_LDFLAGS
-       $(MAKE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
        sed -ri -e 's,(RTE_MACHINE=).*,\1$(RTE_MACHINE),' \
                -e 's,(RTE_NEXT_ABI=).*,\1n,' \
                -e 's,(CONFIG_RTE_EAL_IGB_UIO=).*,\1n,' \
@@ -58,13 +58,18 @@ build-config:
                -e 's,(LIBRTE_PMD_PCAP=).*,\1y,' \
                -e 's,(LIBRTE_PMD_XENVIRT=).*,\1y,' \
                $(DPDK_STATIC_DIR)/.config
+       dh_auto_configure
+
+override_dh_auto_build-indep:
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html
 
-build-indep: build-config
-       dh_testdir
-       $(MAKE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html
+override_dh_auto_install-indep:
+       # Package: dpdk-doc
+       # All files based on the install-doc rule (includes examples)
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \
+               DESTDIR=debian/dpdk-doc install-doc
 
-build-arch: build-config
-       dh_testdir
+override_dh_auto_build-arch:
        $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) build
        # Unfortunately the decision about having static or shared libraries is
        # made for the whole build, which then produces only .a or .so files
@@ -80,58 +85,21 @@ build-arch: build-config
                $(DPDK_SHARED_DIR)/.config
        $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) build
 
-build: build-arch build-indep
-
-binary-indep: PACKAGE_NAME=dpdk-doc
-binary-indep: DOCDIR=usr/share/doc/dpdk
-binary-indep: export DH_OPTIONS=--indep
-binary-indep:
-       dh_testroot
-       dh_prep
-       dh_testdir
-       dh_installdirs
-       dh_install
-       dh_installdocs
-       dh_installchangelogs
-       dh_lintian
-       # Package: dpdk-doc
-       # All files based on the install-doc rule (includes examples)
-       $(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
-               DESTDIR=debian/dpdk-doc install-doc
-       dh_link
-       dh_compress
-       dh_fixperms
-       dh_installdeb
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-binary-arch: export DH_OPTIONS=--arch
-binary-arch:
-       dh_testroot
-       dh_prep
-       dh_testdir
-       dh_installdirs
-       dh_install
-       dh_installdocs
-       dh_installchangelogs
-       dh_lintian
-       dh_systemd_enable
-       dh_installinit --no-start --no-restart-on-upgrade
-       dh_systemd_start --no-start --no-restart-on-upgrade
+override_dh_auto_install-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+override_dh_auto_install-arch:
        # Package: dpdk (runtime)
-       $(MAKE) O=$(DPDK_STATIC_DIR) prefix=/usr \
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_STATIC_DIR) prefix=/usr \
                DESTDIR=debian/dpdk install-runtime
-       $(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \
                DESTDIR=debian/dpdk install-runtime
+       mkdir -p debian/dpdk/etc/dpdk
        cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces
-       rm debian/dpdk/usr/sbin/dpdk_nic_bind
+       rm debian/dpdk/usr/sbin/dpdk-devbind
        mkdir -p debian/dpdk/sbin
-       ln -s /usr/share/dpdk/tools/dpdk_nic_bind.py \
-               debian/dpdk/sbin/dpdk_nic_bind
+       ln -s /usr/share/dpdk/tools/dpdk-devbind.py \
+               debian/dpdk/sbin/dpdk-devbind
        # Package: dpdk-dev (build environment)
-       $(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
+       $(MAKE) V=$(DH_VERBOSE) O=$(DPDK_SHARED_DIR) prefix=/usr \
                DESTDIR=debian/dpdk-dev install-sdk
        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 > \
@@ -142,6 +110,7 @@ binary-arch:
        # linker script
        mv debian/dpdk/usr/lib/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)/
@@ -154,10 +123,21 @@ binary-arch:
          BN=$$(basename $${lib}); \
          VER=$$(echo $${BN} | sed -e 's/^.*\.so\.//'); \
          LN=$$(echo $${BN} | sed -e 's/\.so\.[0-9]*$$//' | tr '_' '-'); \
-         echo "moving $${lib} for library $${LN}$${VER}"; \
-         mkdir -p debian/$${LN}$${VER}/$(LIBDIR); \
-         mv $${lib} debian/$${LN}$${VER}/$(LIBDIR); \
+         if echo $${LN} | grep -q ".*[0-9]$$"; then \
+           PKG=$${LN}-$${VER}; \
+         else \
+           PKG=$${LN}$${VER}; \
+         fi; \
+         echo "moving $${lib} for library $${PKG}"; \
+         mkdir -p debian/$${PKG}/$(LIBDIR); \
+         mv $${lib} debian/$${PKG}/$(LIBDIR); \
        done
+       # pkg-config
+       mkdir -p debian/libdpdk-dev/$(LIBDIR)/pkgconfig
+       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)/" \
+               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)
        cp lib/librte_eal/linuxapp/igb_uio/* \
@@ -166,18 +146,15 @@ binary-arch:
        mkdir -p debian/dpdk-rte-kni-dkms/usr/src/dpdk-rte-kni-$(VERSION)
        cp -a lib/librte_eal/linuxapp/kni/* \
                debian/dpdk-rte-kni-dkms/usr/src/dpdk-rte-kni-$(VERSION)
+
+override_dh_dkms:
        dh_dkms -V $(VERSION)
-       dh_python2
-       dh_perl
-       dh_link
-       dh_compress
-       dh_fixperms
-       dh_strip
-       dh_makeshlibs
-       dh_shlibdeps
-       dh_installdeb
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-arch binary-indep
+
+override_dh_installinit:
+       dh_installinit --no-start --no-restart-on-upgrade
+
+override_dh_systemd_start:
+       dh_systemd_start --no-start --no-restart-on-upgrade
+
+override_dh_auto_test:
+