aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-extended/dpdk/dpdk_20.11.bb
blob: 2d27adc540b6efdc6894b8a23ac8360f2e4a2f1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
include dpdk-20.11.inc

SRC_URI += " \
            file://0001-meson.build-march-and-mcpu-already-passed-by-Yocto.patch \
            file://0001-ifpga-meson-Fix-finding-librt-using-find_library.patch \
            file://0001-drivers-net-enetfec-enet_uio.c-fix-multiple-definiti.patch \
"

MESON_BUILDTYPE = "release"

# kernel module is provide by dpdk-module recipe, so disable here
EXTRA_OEMESON = " -Denable_kmods=false \
                -Dexamples=all \
		-Doptimization=3 \
"

PACKAGECONFIG ??= "openssl"
PACKAGECONFIG[afxdp] = ",,libbpf"
PACKAGECONFIG[libvirt] = ",,libvirt"
PACKAGECONFIG[openssl] = ",,openssl"

RDEPENDS:${PN} += "bash pciutils python3-core"
RDEPENDS:${PN}-examples += "bash"
DEPENDS = "numactl"

inherit meson

INSTALL_PATH = "${prefix}/share/dpdk"

do_configure:prepend() {
    sed -i "/implementor_/d" ${WORKDIR}/meson.cross
    sed -i "/\[properties]/aimplementor_id = 'dpaa'" ${WORKDIR}/meson.cross
    sed -i "/\[properties]/aimplementor_pn = 'default'" ${WORKDIR}/meson.cross
    sed -i "s/cpu =.*/cpu = 'armv8-a'/" ${WORKDIR}/meson.cross
}

do_install:append(){
    # remove source files
    rm -rf ${D}/${INSTALL_PATH}/examples/*

    # Install examples
    install -m 0755 -d ${D}/${INSTALL_PATH}/examples/
    for dirname in ${B}/examples/dpdk-*
    do
        if [ ! -d ${dirname} ] && [ -x ${dirname} ]; then
            install -m 0755 ${dirname} ${D}/${INSTALL_PATH}/examples/
        fi
    done
    cp -rf ${S}/nxp/* ${D}/${INSTALL_PATH}/
}

PACKAGES =+ "${PN}-tools ${PN}-examples ${PN}-misc"

FILES:${PN}-tools = " \
    ${bindir}/dpdk-testpmd \
    ${INSTALL_PATH}/examples/dpdk-l2fwd \
    ${INSTALL_PATH}/examples/dpdk-l2fwd-crypto \
    ${INSTALL_PATH}/examples/dpdk-l3fwd \
    ${INSTALL_PATH}/examples/dpdk-ipsec-secgw \
"

FILES:${PN}-examples = " \
    ${bindir}/dpdk-proc-info \
    ${bindir}/dpdk-test \
    ${bindir}/dpdk-test-crypto-perf \
    ${bindir}/dpdk-*.py \
    ${INSTALL_PATH}/examples/dpdk-cmdif \
    ${INSTALL_PATH}/examples/dpdk-cmdline \
    ${INSTALL_PATH}/examples/dpdk-ethtool \
    ${INSTALL_PATH}/examples/dpdk-ip_fragmentation \
    ${INSTALL_PATH}/examples/dpdk-ip_reassembly \
    ${INSTALL_PATH}/examples/dpdk-kni \
    ${INSTALL_PATH}/examples/dpdk-l2fwd-keepalive \
    ${INSTALL_PATH}/examples/dpdk-l2fwd-qdma \
    ${INSTALL_PATH}/examples/dpdk-l3fwd-acl \
    ${INSTALL_PATH}/examples/dpdk-link_status_interrupt \
    ${INSTALL_PATH}/examples/dpdk-mp_client \
    ${INSTALL_PATH}/examples/dpdk-mp_server \
    ${INSTALL_PATH}/examples/dpdk-qdma_demo \
    ${INSTALL_PATH}/examples/dpdk-simple_mp \
    ${INSTALL_PATH}/examples/dpdk-symmetric_mp \
    ${INSTALL_PATH}/examples/dpdk-symmetric_mp_qdma \
    ${INSTALL_PATH}/examples/dpdk-timer \
"

FILES:${PN}-misc = " \
    ${bindir}/dpdk-pdump \
    ${bindir}/dpdk-test-* \
    ${bindir}/dpdk-*.py \
    ${INSTALL_PATH}/examples/* \
"

INSANE_SKIP:${PN} = "dev-so"