diff options
Diffstat (limited to 'recipes-extended/dpdk/dpdk.inc')
-rw-r--r-- | recipes-extended/dpdk/dpdk.inc | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc new file mode 100644 index 00000000..9004acc7 --- /dev/null +++ b/recipes-extended/dpdk/dpdk.inc | |||
@@ -0,0 +1,108 @@ | |||
1 | DESCRIPTION = "Data Plane Development Kit" | ||
2 | HOMEPAGE = "http://dpdk.org" | ||
3 | LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492" | ||
5 | |||
6 | SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \ | ||
7 | file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ | ||
8 | file://0001-add-Wno-cast-function-type.patch \ | ||
9 | file://0001-Add-RTE_KERNELDIR_OUT.patch \ | ||
10 | file://0004-update-WERROR_FLAGS.patch \ | ||
11 | " | ||
12 | SRCREV = "0123ced10233e7de8a72f743e2ae7e9791124f07" | ||
13 | |||
14 | RDEPENDS_${PN} += "python-subprocess" | ||
15 | DEPENDS = "virtual/kernel openssl" | ||
16 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
17 | |||
18 | inherit module | ||
19 | |||
20 | export RTE_TARGET = "${ARCH}-dpaa-linuxapp-gcc" | ||
21 | export RTE_OUTPUT = "${S}/${RTE_TARGET}" | ||
22 | export MODULE_DIR = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net" | ||
23 | |||
24 | S = "${WORKDIR}/git" | ||
25 | |||
26 | EXTRA_OEMAKE += 'ETHTOOL_LIB_PATH="${S}/examples/ethtool/lib/${RTE_TARGET}" RTE_SDK="${S}" \ | ||
27 | OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \ | ||
28 | RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" EXAMPLES_BUILD_DIR="${RTE_TARGET}" \ | ||
29 | ' | ||
30 | do_configure () { | ||
31 | ############################################################# | ||
32 | ### default value for prefix is "usr", unsetting it, so it | ||
33 | ### will not be concatenated in ${RTE_TARGET}/Makefile | ||
34 | ### which will cause compilation failure | ||
35 | ############################################################# | ||
36 | unset prefix | ||
37 | oe_runmake O=$RTE_TARGET T=$RTE_TARGET config | ||
38 | } | ||
39 | |||
40 | do_compile () { | ||
41 | unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS | ||
42 | |||
43 | cd ${S}/${RTE_TARGET} | ||
44 | oe_runmake CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y \ | ||
45 | CONFIG_RTE_LIBRTE_PMD_OPENSSL=y \ | ||
46 | EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ | ||
47 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ | ||
48 | CROSS="${TARGET_PREFIX}" \ | ||
49 | prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1 | ||
50 | |||
51 | cd ${S}/examples/ | ||
52 | for APP in l2fwd l3fwd cmdif l2fwd-qdma l2fwd-crypto ipsec-secgw vhost kni ip_fragmentation ip_reassembly; do | ||
53 | temp=`basename ${APP}` | ||
54 | if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then | ||
55 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
56 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ | ||
57 | CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}" | ||
58 | else | ||
59 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
60 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ | ||
61 | CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}/" | ||
62 | fi | ||
63 | done | ||
64 | |||
65 | } | ||
66 | |||
67 | do_install () { | ||
68 | oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} | ||
69 | oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} | ||
70 | oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} | ||
71 | |||
72 | # Install examples | ||
73 | install -d 0644 ${D}/${datadir}/dpdk/cmdif/include | ||
74 | install -d 0644 ${D}/${datadir}/dpdk/cmdif/lib | ||
75 | cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \ | ||
76 | examples/cmdif/lib/shbp/fsl_shbp.h ${D}/${datadir}/dpdk/cmdif/include | ||
77 | cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/${datadir}/dpdk/cmdif/lib | ||
78 | install -d 0644 ${D}/${datadir}/dpdk/examples/ipsec_secgw | ||
79 | cp -r ${S}/examples/ipsec-secgw/*.cfg ${D}/${datadir}/dpdk/examples/ipsec_secgw | ||
80 | cp -rf ${S}/nxp/* ${D}/${datadir}/dpdk | ||
81 | } | ||
82 | |||
83 | PACKAGES += "${PN}-examples" | ||
84 | |||
85 | FILES_${PN}-dbg += " \ | ||
86 | ${datadir}/dpdk/.debug \ | ||
87 | ${datadir}/dpdk/examples/*/.debug \ | ||
88 | " | ||
89 | FILES_${PN}-staticdev += "${datadir}/dpdk/cmdif/lib/*.a \ | ||
90 | " | ||
91 | FILES_${PN}-dev += " \ | ||
92 | ${datadir}/dpdk/${RTE_TARGET}/.config \ | ||
93 | ${includedir} \ | ||
94 | ${includedir}/exec-env \ | ||
95 | ${datadir}/dpdk/buildtools/ \ | ||
96 | ${datadir}/dpdk/${RTE_TARGET}/include \ | ||
97 | ${datadir}/dpdk/${RTE_TARGET}/lib \ | ||
98 | ${datadir}/dpdk/mk \ | ||
99 | " | ||
100 | |||
101 | FILES_${PN} += " ${datadir}/ \ | ||
102 | ${prefix}/sbin/ \ | ||
103 | ${prefix}/bin/ \ | ||
104 | ${libdir}/ \ | ||
105 | " | ||
106 | FILES_${PN}-examples += " \ | ||
107 | ${datadir}/examples/* \ | ||
108 | " | ||