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

Kevin Hao kexin.hao at windriver.com
Wed Mar 28 00:46:55 PDT 2018


On Wed, Mar 28, 2018 at 12:27:48PM +0500, Awais Belal wrote:
> 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.

Please don't do this because I plan to add the 17.11 (LTS) version to the Yocto.

Thanks,
Kevin

> 
> 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
> 
> -- 
> _______________________________________________
> meta-intel mailing list
> meta-intel at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-intel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/meta-intel/attachments/20180328/6e2a5ced/attachment.pgp>


More information about the meta-intel mailing list