summaryrefslogtreecommitdiffstats
path: root/meta-isg/common/recipes-extended/dpdk/dpdk.inc
diff options
context:
space:
mode:
authorGeorge Nita <george.nita@enea.com>2015-07-11 05:11:54 +0200
committerGeorge Nita <george.nita@enea.com>2015-07-11 05:11:54 +0200
commit40d72715c2d1b9f4a356a59eac16dd07648a4fbb (patch)
treede46d61bcd6f7a566ac190d84f9333f845331bae /meta-isg/common/recipes-extended/dpdk/dpdk.inc
parent8292f22ea94554d4d8ffb58ca96d8c3c12543dd0 (diff)
parenteeb5db0dc19b0ebf9e9afa813c5cd79a6ffec01d (diff)
downloadmeta-intel-40d72715c2d1b9f4a356a59eac16dd07648a4fbb.tar.gz
Merge remote-tracking branch 'origin/master' into master-enea
Diffstat (limited to 'meta-isg/common/recipes-extended/dpdk/dpdk.inc')
-rw-r--r--meta-isg/common/recipes-extended/dpdk/dpdk.inc132
1 files changed, 132 insertions, 0 deletions
diff --git a/meta-isg/common/recipes-extended/dpdk/dpdk.inc b/meta-isg/common/recipes-extended/dpdk/dpdk.inc
new file mode 100644
index 00000000..85b88fa0
--- /dev/null
+++ b/meta-isg/common/recipes-extended/dpdk/dpdk.inc
@@ -0,0 +1,132 @@
1DESCRIPTION = "Intel(r) Data Plane Development Kit"
2HOMEPAGE = "http://dpdk.org"
3LICENSE = "BSD & LGPLv2 & GPLv2"
4LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe"
5
6RDEPENDS_${PN} += "python-subprocess"
7DEPENDS = "virtual/kernel"
8do_configure[depends] += "virtual/kernel:do_shared_workdir"
9
10inherit module
11
12export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
13export RTE_SDK = "${S}"
14export RTE_TARGET="${@bb.utils.contains("TUNE_FEATURES", "corei7", "x86_64-ivshmem-linuxapp-gcc", "i686-native-linuxapp-gcc", d)}"
15
16export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
17export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
18export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
19export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
20export INSTALL_PATH = "${prefix}/dpdk"
21export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
22export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}"
23
24# The list of intel Comms platforms and their target machine
25# process mapping. The supported target machine is listed under
26# dpdk/mk/machine
27def get_dpdk_target_mach(bb, d):
28 target_arch = d.getVar('MACHINE_ARCH', True)
29 multiarch_options = {
30 "mohonpeak64": "atm",
31 "mohonpeak32": "atm",
32 "crystalforest": "ivb",
33 "romley": "snd",
34 "romley-ivb": "ivb",
35 }
36
37 if target_arch in multiarch_options :
38 return multiarch_options[target_arch]
39 return ""
40
41do_configure () {
42 #############################################################
43 ### default value for prefix is "usr", unsetting it, so it
44 ### will not be concatenated in ${RTE_TARGET}/Makefile
45 ### which will cause compilation failure
46 #############################################################
47 unset prefix
48
49 make O=$RTE_TARGET T=$RTE_TARGET config
50}
51
52do_compile () {
53 unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
54
55 cd ${S}/${RTE_TARGET}
56 oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR}" \
57 EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
58 CROSS="${TARGET_PREFIX}" \
59 prefix="" LDFLAGS="" WERROR_FLAGS="-w" V=1
60
61 cd ${S}/examples/
62 oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR}" \
63 EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" \
64 CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/"
65}
66
67do_install () {
68
69 install -m 0755 -d ${D}/${INSTALL_PATH} \
70 ${D}/${INSTALL_PATH}/doc \
71 ${D}/${INSTALL_PATH}/tools \
72 ${D}/${INSTALL_PATH}/${RTE_TARGET} \
73 ${D}/${INSTALL_PATH}/${RTE_TARGET}/app \
74 ${D}${includedir} \
75 ${D}${includedir}/${ARCHDIR} \
76 ${D}${includedir}/exec-env \
77 ${D}${libdir} \
78 ${D}${MODULE_DIR}
79
80 install -m 0755 ${S}/${RTE_TARGET}/kmod/*.ko ${D}${MODULE_DIR}/
81
82 install -m 640 ${S}/${RTE_TARGET}/lib/*.a ${D}${libdir}
83
84 install -m 640 ${S}/${RTE_TARGET}/.config ${D}/${INSTALL_PATH}/${RTE_TARGET}/
85 install -m 640 ${S}/${RTE_TARGET}/include/*.h ${D}${includedir}/
86 install -m 640 ${S}/${RTE_TARGET}/include/${ARCHDIR}/*.h ${D}${includedir}/${ARCHDIR}/
87 install -m 640 ${S}/${RTE_TARGET}/include/exec-env/*.h ${D}${includedir}/exec-env/
88 install -m 0755 ${S}/tools/*.py ${D}/${INSTALL_PATH}/tools/
89
90 # Install applications
91 install -m 0755 ${S}/${RTE_TARGET}/app/* ${D}/${INSTALL_PATH}/${RTE_TARGET}/app/
92
93 # Install examples
94 for dirname in ${S}/examples/*
95 do
96 install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`
97
98 for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"`
99 do
100 install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/
101 done
102 done
103}
104
105PACKAGES += "${PN}-examples"
106
107FILES_${PN}-dbg += " \
108 ${INSTALL_PATH}/.debug \
109 ${INSTALL_PATH}/${RTE_TARGET}/app/.debug \
110 ${INSTALL_PATH}/${RTE_TARGET}/hostapp/.debug \
111 ${INSTALL_PATH}/${RTE_TARGET}/app/*.map \
112 ${INSTALL_PATH}/examples/*/.debug \
113 "
114
115FILES_${PN}-doc += "\
116 ${INSTALL_PATH}/doc \
117 "
118
119FILES_${PN}-dev += " \
120 ${INSTALL_PATH}/${RTE_TARGET}/.config \
121 ${includedir} \
122 ${includedir}/${ARCHDIR} \
123 ${includedir}/exec-env \
124 "
125
126FILES_${PN} += " ${INSTALL_PATH}/tools/ "
127
128FILES_${PN}-examples += " \
129 ${INSTALL_PATH}/${RTE_TARGET}/app/* \
130 ${INSTALL_PATH}/${RTE_TARGET}/hostapp/* \
131 ${INSTALL_PATH}/examples/* \
132 "