[meta-intel] [meta-dpdk][PATCH 2/2] dpdk: merge recipe and include

Awais Belal awais_belal at mentor.com
Wed Mar 28 00:27:48 PDT 2018


Since we only have a single version supported at the
moment, which is the latest and the greatest. It is
best that the include and base recipe files are merged
to allow better maintainability and readability.

Signed-off-by: Awais Belal <awais_belal at mentor.com>
---
 recipes-extended/dpdk/dpdk.inc      | 167 ----------------------------------
 recipes-extended/dpdk/dpdk_18.02.bb | 175 ++++++++++++++++++++++++++++++++++--
 2 files changed, 167 insertions(+), 175 deletions(-)
 delete mode 100644 recipes-extended/dpdk/dpdk.inc

diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
deleted file mode 100644
index ce4e8bc..0000000
--- a/recipes-extended/dpdk/dpdk.inc
+++ /dev/null
@@ -1,167 +0,0 @@
-DESCRIPTION = "Intel(r) Data Plane Development Kit"
-HOMEPAGE = "http://dpdk.org"
-LICENSE = "BSD & LGPLv2 & GPLv2"
-LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \
-                    file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444"
-
-SRC_URI = "http://fast.dpdk.org/rel/${BP}.tar.gz;name=dpdk \
-	   file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
-	   file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
-	   file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \
-	   file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \
-	   file://dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch \
-	  "
-
-# A machine needs to enable this using:
-# COMPATIBLE_MACHINE_pn-dpdk-dev-libibverbs = "<machine name>"
-
-COMPATIBLE_MACHINE = "null"
-COMPATIBLE_HOST_libc-musl_class-target = "null"
-
-
-# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat.
-# fuse is in meta-filesystems and qat is not yet upstreamed.
-# So adding mechanism to explicitly disable the use of fuse and qat.
-# To enable, uncomment the below line or include in .bbappend.
-# PACKAGECONFIG ?= " dpdk_qat vhost libvirt"
-
-PACKAGECONFIG[dpdk_qat] = ",,virtual/qat"
-PACKAGECONFIG[vhost] = ",,fuse"
-PACKAGECONFIG[libvirt] = ",,libvirt"
-
-export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}"
-export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}"
-export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}"
-
-RDEPENDS_${PN} += "python-subprocess virtual/libibverbs"
-DEPENDS = "virtual/kernel virtual/libibverbs"
-do_configure[depends] += "virtual/kernel:do_shared_workdir"
-
-inherit module
-
-export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
-export RTE_SDK = "${S}"
-export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "m64", "x86_64-native-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
-
-export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
-export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
-export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
-export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
-export INSTALL_PATH = "${prefix}/share"
-export RTE_OUTPUT = "${S}/${RTE_TARGET}"
-export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
-export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
-export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
-export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
-
-# The list of intel Comms platforms and their target machine
-# process mapping. The supported target machine is listed under
-# dpdk/mk/machine
-def get_dpdk_target_mach(bb, d):
-    target_arch = d.getVar('DPDK_TARGET_MACHINE', True)
-    if target_arch:
-            target_arch
-    return "default"
-
-do_configure () {
-	#############################################################
-	### default value for prefix is "usr", unsetting it, so it
-	### will not be concatenated in ${RTE_TARGET}/Makefile
-	### which will cause compilation failure
-	#############################################################
-	unset prefix
-
-	# Fix-up CONFIG_RTE_MACHINE based on target machine
-	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc
-	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc
-
-	# Fix-up vhost configs based on package config
-	sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
-	sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
-	sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
-
-	make O=$RTE_TARGET T=$RTE_TARGET config
-}
-
-do_compile () {
-	unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
-
-	cd ${S}/${RTE_TARGET}
-	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
-		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
-		   CROSS="${TARGET_PREFIX}" \
-		   prefix=""  LDFLAGS=""  WERROR_FLAGS="-w" V=1
-
-	cd ${S}/examples/
-	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
-		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
-		   CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
-
-	cd ${S}/test/
-	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
-		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
-		   CROSS="${TARGET_PREFIX}" O="${S}/test/$@/"
-}
-
-do_install () {
-	oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
-	oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
-	oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
-
-	# Install examples
-	for dirname in ${S}/examples/*
-	do
-		install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
-
-		for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
-		do
-			install -m 755 ${appname}	${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
-		done
-	done
-
-	# Install test
-	for dirname in ${S}/test/app/*
-	do
-		install -m 0755 -d ${D}/${INSTALL_PATH}/test
-
-		for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"`
-		do
-			install -m 755 ${appname} ${D}/${INSTALL_PATH}/test
-		done
-	done
-}
-
-PACKAGES += "${PN}-examples ${PN}-test"
-
-FILES_${PN}-dbg += " \
-	${INSTALL_PATH}/.debug \
-	${INSTALL_PATH}/examples/*/.debug \
-	"
-
-FILES_${PN}-doc += "\
-	${INSTALL_PATH}/doc \
-	"
-
-FILES_${PN}-dev += " \
-	${INSTALL_PATH}/${RTE_TARGET}/.config \
-	${includedir} \
-	${includedir}/${ARCHDIR} \
-	${includedir}/exec-env \
-	${INSTALL_PATH}/buildtools/ \
-	${INSTALL_PATH}/${RTE_TARGET}/include \
-	${INSTALL_PATH}/${RTE_TARGET}/lib \
-	"
-
-FILES_${PN} += " ${INSTALL_PATH}/usertools/ \
-		 ${prefix}/sbin/ \
-		 ${prefix}/bin/ \
-		 ${libdir}/ \
-		 "
-FILES_${PN}-examples += " \
-	${INSTALL_PATH}/examples/* \
-	"
-
-FILES_${PN}-test += " \
-	${INSTALL_PATH}/test \
-	"
diff --git a/recipes-extended/dpdk/dpdk_18.02.bb b/recipes-extended/dpdk/dpdk_18.02.bb
index 537d615..4cce416 100644
--- a/recipes-extended/dpdk/dpdk_18.02.bb
+++ b/recipes-extended/dpdk/dpdk_18.02.bb
@@ -1,19 +1,178 @@
-include dpdk.inc
+DESCRIPTION = "Intel(r) Data Plane Development Kit"
+HOMEPAGE = "http://dpdk.org"
+LICENSE = "BSD & LGPLv2 & GPLv2"
+LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \
+                    file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444"
 
-SRC_URI += "\
-            file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \
-            file://0001-examples-Fix-maybe-uninitialized-warning.patch \
-            "
+SRC_URI = "http://fast.dpdk.org/rel/${BP}.tar.gz;name=dpdk \
+	   file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
+	   file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
+	   file://dpdk-16.04-Fix-for-misleading-indentation-error.patch \
+	   file://dpdk-16.07-dpdk-fix-for-parellel-make-issue.patch \
+	   file://dpdk-17.02-dpdk-fix-installation-warning-and-issue.patch \
+	   file://dpdk-16.04-dpdk-enable-ip_fragmentation-in-common_base-config.patch \
+	   file://0001-examples-Fix-maybe-uninitialized-warning.patch \
+	  "
 
 SRC_URI[dpdk.md5sum] = "49d08ced0a978a71cc3942af5cf51b95"
 SRC_URI[dpdk.sha256sum] = "f1210310fd5f01a3babe3a09d9b3e5a9db791c2ec6ecfbf94ade9f893a0632b8"
 
+# A machine needs to enable this using:
+# COMPATIBLE_MACHINE_pn-dpdk-dev-libibverbs = "<machine name>"
+
+COMPATIBLE_MACHINE = "null"
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_linux-gnux32 = "null"
+
+# dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat.
+# fuse is in meta-filesystems and qat is not yet upstreamed.
+# So adding mechanism to explicitly disable the use of fuse and qat.
+# To enable, uncomment the below line or include in .bbappend.
+# PACKAGECONFIG ?= " dpdk_qat vhost libvirt"
+
+PACKAGECONFIG[dpdk_qat] = ",,virtual/qat"
+PACKAGECONFIG[vhost] = ",,fuse"
+PACKAGECONFIG[libvirt] = ",,libvirt"
+
+export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}"
+export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}"
+export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}"
+
+RDEPENDS_${PN} += "python-subprocess virtual/libibverbs"
+DEPENDS = "virtual/kernel virtual/libibverbs"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit module
+
+export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
+export RTE_SDK = "${S}"
+export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "m64", "x86_64-native-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
+
+export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
+export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
+export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
+export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
+export INSTALL_PATH = "${prefix}/share"
+export RTE_OUTPUT = "${S}/${RTE_TARGET}"
+export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
+export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
+export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
+export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
+
 export EXAMPLES_BUILD_DIR = "${RTE_TARGET}"
 export ARCHDIR = "generic"
 
-do_configure_prepend () {
+# The list of intel Comms platforms and their target machine
+# process mapping. The supported target machine is listed under
+# dpdk/mk/machine
+def get_dpdk_target_mach(bb, d):
+    target_arch = d.getVar('DPDK_TARGET_MACHINE', True)
+    if target_arch:
+            target_arch
+    return "default"
+
+do_configure () {
+	#############################################################
+	### default value for prefix is "usr", unsetting it, so it
+	### will not be concatenated in ${RTE_TARGET}/Makefile
+	### which will cause compilation failure
+	#############################################################
+	unset prefix
+
+	# Fix-up CONFIG_RTE_LIBRTE_POWER based on package config for libvirt
 	sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/common_linuxapp
+
+	# Fix-up CONFIG_RTE_MACHINE based on target machine
+	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_x86_64-native-linuxapp-gcc
+	sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_i686-native-linuxapp-gcc
+
+	# Fix-up vhost configs based on package config
+	sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
+	sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
+	sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/common_linuxapp
+
+	make O=$RTE_TARGET T=$RTE_TARGET config
 }
 
-COMPATIBLE_HOST_linux-gnux32 = "null"
-COMPATIBLE_HOST_libc-musl_class-target = "null"
+do_compile () {
+	unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
+
+	cd ${S}/${RTE_TARGET}
+	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
+		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
+		   CROSS="${TARGET_PREFIX}" \
+		   prefix=""  LDFLAGS=""  WERROR_FLAGS="-w" V=1
+
+	cd ${S}/examples/
+	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
+		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
+		   CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
+
+	cd ${S}/test/
+	oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
+		   EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
+		   CROSS="${TARGET_PREFIX}" O="${S}/test/$@/"
+}
+
+do_install () {
+	oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
+	oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
+	oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
+
+	# Install examples
+	for dirname in ${S}/examples/*
+	do
+		install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
+
+		for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
+		do
+			install -m 755 ${appname}	${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
+		done
+	done
+
+	# Install test
+	for dirname in ${S}/test/app/*
+	do
+		install -m 0755 -d ${D}/${INSTALL_PATH}/test
+
+		for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"`
+		do
+			install -m 755 ${appname} ${D}/${INSTALL_PATH}/test
+		done
+	done
+}
+
+PACKAGES += "${PN}-examples ${PN}-test"
+
+FILES_${PN}-dbg += " \
+	${INSTALL_PATH}/.debug \
+	${INSTALL_PATH}/examples/*/.debug \
+	"
+
+FILES_${PN}-doc += "\
+	${INSTALL_PATH}/doc \
+	"
+
+FILES_${PN}-dev += " \
+	${INSTALL_PATH}/${RTE_TARGET}/.config \
+	${includedir} \
+	${includedir}/${ARCHDIR} \
+	${includedir}/exec-env \
+	${INSTALL_PATH}/buildtools/ \
+	${INSTALL_PATH}/${RTE_TARGET}/include \
+	${INSTALL_PATH}/${RTE_TARGET}/lib \
+	"
+
+FILES_${PN} += " ${INSTALL_PATH}/usertools/ \
+		 ${prefix}/sbin/ \
+		 ${prefix}/bin/ \
+		 ${libdir}/ \
+		 "
+FILES_${PN}-examples += " \
+	${INSTALL_PATH}/examples/* \
+	"
+
+FILES_${PN}-test += " \
+	${INSTALL_PATH}/test \
+	"
-- 
2.11.1



More information about the meta-intel mailing list