mirror of
git://git.yoctoproject.org/meta-freescale.git
synced 2025-07-05 05:14:44 +02:00

The series [1] changed the way sources are fetched/unpacked and S needs to follow that. Additionally for git repos it moved away from having 'git/' as the checkout directory. This has been partly tested by building weston based image for imx6/imx6ull/imx7/imx8/imx8mm/imx8mp/imx95 based images. E.g. none of the recipes specific for qoriq is built time tested. As walnascar is no longer compatible with master/whinlatter drop it from LAYERSERIES_COMPAT. [1] https://lore.kernel.org/openembedded-core/20250616095000.2918921-1-alex.kanavin@gmail.com/ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
121 lines
4.6 KiB
PHP
121 lines
4.6 KiB
PHP
DESCRIPTION = "Data Plane Development Kit"
|
|
HOMEPAGE = "http://dpdk.org"
|
|
|
|
RDEPENDS:${PN} += "python3-core"
|
|
DEPENDS = "virtual/kernel openssl"
|
|
DEPENDS:append:x86-64 = " numactl"
|
|
do_configure[depends] += "virtual/kernel:do_shared_workdir"
|
|
|
|
inherit module
|
|
|
|
COMPATIBLE_HOST = '(aarch64|arm|i.86|x86_64).*-linux'
|
|
COMPATIBLE_HOST:libc-musl = 'null'
|
|
COMPATIBLE_HOST:armv4 = 'null'
|
|
COMPATIBLE_HOST:armv5 = 'null'
|
|
COMPATIBLE_HOST:armv6 = 'null'
|
|
|
|
COMPATIBLE_MACHINE = "(imx-nxp-bsp|qoriq)"
|
|
|
|
DPDK_RTE_TARGET:x86-64 = "x86_64-native-linuxapp-gcc"
|
|
DPDK_RTE_TARGET:x86 = "i686-native-linuxapp-gcc"
|
|
DPDK_RTE_TARGET:armv7a = "${ARCH}-armv7a-linuxapp-gcc"
|
|
DPDK_RTE_TARGET:armv7ve = "${ARCH}-armv7a-linuxapp-gcc"
|
|
DPDK_RTE_TARGET ?= "${ARCH}-dpaa-linuxapp-gcc"
|
|
|
|
export RTE_TARGET = "${DPDK_RTE_TARGET}"
|
|
export RTE_OUTPUT = "${S}/${RTE_TARGET}"
|
|
export MODULE_DIR = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net"
|
|
|
|
EXTRA_OEMAKE += 'ETHTOOL_LIB_PATH="${S}/examples/ethtool/lib/${RTE_TARGET}" RTE_SDK="${S}" \
|
|
OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \
|
|
RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" EXAMPLES_BUILD_DIR="${RTE_TARGET}" \
|
|
'
|
|
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
|
|
oe_runmake O=$RTE_TARGET T=$RTE_TARGET config
|
|
}
|
|
|
|
do_compile () {
|
|
unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
|
|
|
|
cd ${S}/${RTE_TARGET}
|
|
oe_runmake CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y \
|
|
CONFIG_RTE_LIBRTE_PMD_OPENSSL=y \
|
|
EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
|
|
EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
|
|
CROSS="${TARGET_PREFIX}" \
|
|
prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1
|
|
|
|
cd ${S}/examples/
|
|
for APP in l2fwd l3fwd cmdif l2fwd-qdma l2fwd-crypto ipsec-secgw vhost kni ip_fragmentation ip_reassembly; do
|
|
temp=`basename ${APP}`
|
|
if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then
|
|
oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
|
|
EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
|
|
CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}"
|
|
else
|
|
oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
|
|
EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
|
|
CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}/"
|
|
fi
|
|
done
|
|
|
|
}
|
|
|
|
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
|
|
install -d 0644 ${D}/${datadir}/dpdk/cmdif/include
|
|
install -d 0644 ${D}/${datadir}/dpdk/cmdif/lib
|
|
install -d 0644 ${D}/${datadir}/dpdk/examples
|
|
cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \
|
|
examples/cmdif/lib/shbp/fsl_shbp.h ${D}/${datadir}/dpdk/cmdif/include
|
|
cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/${datadir}/dpdk/cmdif/lib
|
|
install -d 0644 ${D}/${datadir}/dpdk/examples/ipsec_secgw
|
|
cp -r ${S}/examples/ipsec-secgw/*.cfg ${D}/${datadir}/dpdk/examples/ipsec_secgw
|
|
cp -rf ${S}/nxp/* ${D}/${datadir}/dpdk
|
|
cp -r ${S}/examples/cmdif/cmdif_demo/${DPDK_RTE_TARGET}/cmdif_demo ${D}/${datadir}/dpdk/examples
|
|
cp -r ${S}/examples/vhost/vhost-switch ${D}/${datadir}/dpdk/examples
|
|
for APP in l2fwd l3fwd l2fwd-qdma l2fwd-crypto ipsec-secgw kni ip_fragmentation ip_reassembly; do
|
|
cp -r ${S}/examples/${APP}/${APP} ${D}/${datadir}/dpdk/examples
|
|
done
|
|
}
|
|
|
|
PACKAGES += "${PN}-examples"
|
|
|
|
FILES:${PN}-dbg += " \
|
|
${datadir}/dpdk/.debug \
|
|
${datadir}/dpdk/examples/*/.debug \
|
|
"
|
|
FILES:${PN}-staticdev += "${datadir}/dpdk/cmdif/lib/*.a \
|
|
"
|
|
FILES:${PN}-dev += " \
|
|
${datadir}/dpdk/${RTE_TARGET}/.config \
|
|
${includedir} \
|
|
${includedir}/exec-env \
|
|
${datadir}/dpdk/buildtools/ \
|
|
${datadir}/dpdk/${RTE_TARGET}/include \
|
|
${datadir}/dpdk/${RTE_TARGET}/lib \
|
|
${datadir}/dpdk/mk \
|
|
"
|
|
|
|
FILES:${PN} += " ${datadir}/ \
|
|
${prefix}/sbin/ \
|
|
${prefix}/bin/ \
|
|
${libdir}/ \
|
|
"
|
|
FILES:${PN}-examples += " \
|
|
${datadir}/examples/* \
|
|
"
|
|
|
|
TOOLCHAIN = "gcc"
|
|
|