diff options
Diffstat (limited to 'recipes-extended/dpdk')
-rw-r--r-- | recipes-extended/dpdk/dpdk.inc | 191 | ||||
-rw-r--r-- | recipes-extended/dpdk/dpdk_18.11.10.bb | 18 | ||||
-rw-r--r-- | recipes-extended/dpdk/dpdk_19.11.5.bb | 193 |
3 files changed, 189 insertions, 213 deletions
diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc index 64f8571..c38698d 100644 --- a/recipes-extended/dpdk/dpdk.inc +++ b/recipes-extended/dpdk/dpdk.inc | |||
@@ -1,193 +1,12 @@ | |||
1 | DESCRIPTION = "Intel(r) Data Plane Development Kit" | 1 | DESCRIPTION = "Intel(r) Data Plane Development Kit" |
2 | HOMEPAGE = "http://dpdk.org" | 2 | HOMEPAGE = "http://dpdk.org" |
3 | 3 | ||
4 | STABLE = "" | 4 | LICENSE = "BSD-3-Clause & LGPLv2.1 & GPLv2" |
5 | BRANCH = "main" | 5 | LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ |
6 | S = "${WORKDIR}/git" | 6 | file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \ |
7 | file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444" | ||
7 | 8 | ||
8 | SRC_URI = "git://dpdk.org/dpdk${STABLE};branch=${BRANCH} \ | 9 | SRC_URI = "git://dpdk.org/dpdk${STABLE};branch=${BRANCH} \ |
9 | file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ | 10 | " |
10 | file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \ | ||
11 | " | ||
12 | |||
13 | COMPATIBLE_MACHINE = "null" | ||
14 | COMPATIBLE_HOST_libc-musl_class-target = "null" | ||
15 | COMPATIBLE_HOST_linux-gnux32 = "null" | ||
16 | |||
17 | # dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat. | ||
18 | # fuse is in meta-filesystems and qat is not yet upstreamed. | ||
19 | # So adding mechanism to explicitly disable the use of fuse and qat. | ||
20 | # To enable, uncomment the below line or include in .bbappend. | ||
21 | # PACKAGECONFIG ?= " dpdk_qat vhost libvirt" | ||
22 | |||
23 | PACKAGECONFIG[dpdk_qat] = ",,virtual/qat" | ||
24 | PACKAGECONFIG[vhost] = ",,fuse" | ||
25 | PACKAGECONFIG[libvirt] = ",,libvirt" | ||
26 | PACKAGECONFIG[numa] = ",,numactl" | ||
27 | |||
28 | export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}" | ||
29 | export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}" | ||
30 | export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}" | ||
31 | export CONFIG_HAVE_NUMA = "${@bb.utils.contains('PACKAGECONFIG', 'numa', 'y', 'n', d)}" | ||
32 | |||
33 | # Don't use the default value of datadir and let the dpdk set it to a dpdk | ||
34 | # specific directory | ||
35 | datadir[unexport] = "1" | ||
36 | |||
37 | RDEPENDS_${PN} += "pciutils python3-core" | ||
38 | DEPENDS = "virtual/kernel" | ||
39 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
40 | |||
41 | inherit module | ||
42 | |||
43 | export MODULE_DIR="${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net" | ||
44 | export RTE_SDK = "${S}" | ||
45 | |||
46 | export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include" | ||
47 | export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib" | ||
48 | export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}" | ||
49 | export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}" | ||
50 | export INSTALL_PATH = "${prefix}/share/dpdk" | ||
51 | export RTE_OUTPUT = "${S}/${RTE_TARGET}" | ||
52 | export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" | ||
53 | export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}" | ||
54 | export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}" | ||
55 | export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac" | ||
56 | |||
57 | export EXAMPLES_BUILD_DIR = "${RTE_TARGET}" | ||
58 | export ARCHDIR = "generic" | ||
59 | |||
60 | DPDK_RTE_TARGET_x86-64 = "x86_64-native-linuxapp-gcc" | ||
61 | DPDK_RTE_TARGET_x86 = "i686-native-linuxapp-gcc" | ||
62 | DPDK_RTE_TARGET_aarch64 = "arm64-${DPDK_TARGET_MACH}-linuxapp-gcc" | ||
63 | export RTE_TARGET = "${DPDK_RTE_TARGET}" | ||
64 | |||
65 | # Workaround failure on gcc10 | ||
66 | TOOLCHAIN_OPTIONS += "-Wno-error=maybe-uninitialized" | ||
67 | |||
68 | CONFIG_NAME = "common_linux" | ||
69 | TEST_DIR = "test" | ||
70 | |||
71 | # The list of intel Comms platforms and their target machine | ||
72 | # process mapping. The supported target machine is listed under | ||
73 | # dpdk/mk/machine | ||
74 | def get_dpdk_target_mach(bb, d): | ||
75 | target_arch = d.getVar('DPDK_TARGET_MACHINE', True) | ||
76 | if target_arch: | ||
77 | return target_arch | ||
78 | return "default" | ||
79 | |||
80 | do_configure () { | ||
81 | ############################################################# | ||
82 | ### default value for prefix is "usr", unsetting it, so it | ||
83 | ### will not be concatenated in ${RTE_TARGET}/Makefile | ||
84 | ### which will cause compilation failure | ||
85 | ############################################################# | ||
86 | unset prefix | ||
87 | |||
88 | # Fix-up CONFIG_RTE_MACHINE based on target machine | ||
89 | sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_${RTE_TARGET} | ||
90 | |||
91 | # Fix-up vhost configs based on package config | ||
92 | sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
93 | sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
94 | sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
95 | sed -e "s#CONFIG_RTE_LIBRTE_VHOST_NUMA=.*#CONFIG_RTE_LIBRTE_VHOST_NUMA=${CONFIG_HAVE_NUMA}#" -i ${S}/config/${CONFIG_NAME} | ||
96 | sed -e "s#CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=.*#CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=${CONFIG_HAVE_NUMA}#" -i ${S}/config/${CONFIG_NAME} | ||
97 | |||
98 | # Fix-up CONFIG_RTE_LIBRTE_POWER based on package config for libvirt | ||
99 | sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/${CONFIG_NAME} | ||
100 | |||
101 | make O=$RTE_TARGET T=$RTE_TARGET config | ||
102 | } | ||
103 | |||
104 | do_compile () { | ||
105 | unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS | ||
106 | |||
107 | cd ${S}/${RTE_TARGET} | ||
108 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ | ||
109 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ | ||
110 | CROSS="${TARGET_PREFIX}" \ | ||
111 | prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1 | ||
112 | |||
113 | cd ${S}/examples/ | ||
114 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
115 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -O3 -I${STAGING_INCDIR}" \ | ||
116 | CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/" | ||
117 | |||
118 | cd ${S}/${TEST_DIR}/ | ||
119 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
120 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -O3 -I${STAGING_INCDIR}" \ | ||
121 | CROSS="${TARGET_PREFIX}" O="${S}/${TEST_DIR}/$@/" | ||
122 | } | ||
123 | |||
124 | do_install () { | ||
125 | oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} | ||
126 | oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} | ||
127 | oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} | ||
128 | |||
129 | # Install examples | ||
130 | for dirname in ${S}/examples/* | ||
131 | do | ||
132 | install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}` | ||
133 | |||
134 | for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"` | ||
135 | do | ||
136 | install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/ | ||
137 | done | ||
138 | done | ||
139 | |||
140 | # Install test | ||
141 | for dirname in ${S}/${TEST_DIR}/app/* | ||
142 | do | ||
143 | install -m 0755 -d ${D}/${INSTALL_PATH}/test | ||
144 | |||
145 | for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"` | ||
146 | do | ||
147 | install -m 755 ${appname} ${D}/${INSTALL_PATH}/test | ||
148 | done | ||
149 | done | ||
150 | |||
151 | cp -r ${S}/mk ${D}${INSTALL_PATH}/ | ||
152 | |||
153 | for ss in $(find ${D} -type f -name "*.py"); do | ||
154 | sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${ss} | ||
155 | done | ||
156 | } | ||
157 | |||
158 | PACKAGES += "${PN}-examples ${PN}-test" | ||
159 | |||
160 | FILES_${PN}-dbg += " \ | ||
161 | ${INSTALL_PATH}/.debug \ | ||
162 | ${INSTALL_PATH}/examples/*/.debug \ | ||
163 | " | ||
164 | |||
165 | FILES_${PN}-doc += "\ | ||
166 | ${INSTALL_PATH}/doc \ | ||
167 | " | ||
168 | |||
169 | FILES_${PN}-dev += " \ | ||
170 | ${INSTALL_PATH}/${RTE_TARGET}/.config \ | ||
171 | ${includedir} \ | ||
172 | ${includedir}/${ARCHDIR} \ | ||
173 | ${includedir}/exec-env \ | ||
174 | ${INSTALL_PATH}/buildtools/ \ | ||
175 | ${INSTALL_PATH}/${RTE_TARGET}/include \ | ||
176 | ${INSTALL_PATH}/${RTE_TARGET}/lib \ | ||
177 | ${INSTALL_PATH}/mk \ | ||
178 | " | ||
179 | |||
180 | FILES_${PN} += " ${INSTALL_PATH}/usertools/ \ | ||
181 | ${prefix}/sbin/ \ | ||
182 | ${prefix}/bin/ \ | ||
183 | ${libdir}/ \ | ||
184 | " | ||
185 | FILES_${PN}-examples += " \ | ||
186 | ${INSTALL_PATH}/examples/* \ | ||
187 | " | ||
188 | |||
189 | FILES_${PN}-test += " \ | ||
190 | ${INSTALL_PATH}/test \ | ||
191 | " | ||
192 | 11 | ||
193 | CVE_PRODUCT = "data_plane_development_kit" | 12 | CVE_PRODUCT = "data_plane_development_kit" |
diff --git a/recipes-extended/dpdk/dpdk_18.11.10.bb b/recipes-extended/dpdk/dpdk_18.11.10.bb deleted file mode 100644 index 708c59e..0000000 --- a/recipes-extended/dpdk/dpdk_18.11.10.bb +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | include dpdk.inc | ||
2 | |||
3 | CONFIG_NAME = "common_linuxapp" | ||
4 | TEST_DIR = "test" | ||
5 | |||
6 | STABLE = "-stable" | ||
7 | BRANCH = "18.11" | ||
8 | SRCREV = "6da233189fd222ea795fbf6e0f39eeade984203f" | ||
9 | |||
10 | LICENSE = "BSD-3-Clause & LGPLv2.1 & GPLv2" | ||
11 | LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
12 | file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \ | ||
13 | file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444" | ||
14 | |||
15 | do_install_append () { | ||
16 | # Remove the unneeded dir | ||
17 | rm -rf ${D}/${INSTALL_PATH}/${RTE_TARGET}/app | ||
18 | } | ||
diff --git a/recipes-extended/dpdk/dpdk_19.11.5.bb b/recipes-extended/dpdk/dpdk_19.11.5.bb index 60d5786..8410c8a 100644 --- a/recipes-extended/dpdk/dpdk_19.11.5.bb +++ b/recipes-extended/dpdk/dpdk_19.11.5.bb | |||
@@ -1,21 +1,196 @@ | |||
1 | include dpdk.inc | 1 | include dpdk.inc |
2 | 2 | ||
3 | CONFIG_NAME = "common_linux" | 3 | SRC_URI += " \ |
4 | TEST_DIR = "app/test" | 4 | file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \ |
5 | file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \ | ||
6 | file://0001-Starting-from-Linux-5.9-get_user_pages_remote-API-do.patch \ | ||
7 | file://usertools-devbind-fix-binding-for-built-in-kernel-dr.patch" | ||
8 | |||
5 | 9 | ||
6 | STABLE = "-stable" | 10 | STABLE = "-stable" |
7 | BRANCH = "19.11" | 11 | BRANCH = "19.11" |
8 | SRCREV = "1d28832feb881d4512993791d30d695cc9c7160b" | 12 | SRCREV = "1d28832feb881d4512993791d30d695cc9c7160b" |
13 | S = "${WORKDIR}/git" | ||
9 | 14 | ||
10 | LICENSE = "BSD-3-Clause & LGPLv2.1 & GPLv2" | 15 | COMPATIBLE_MACHINE = "null" |
11 | LIC_FILES_CHKSUM = "file://license/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | 16 | COMPATIBLE_HOST_libc-musl_class-target = "null" |
12 | file://license/lgpl-2.1.txt;md5=4b54a1fd55a448865a0b32d41598759d \ | 17 | COMPATIBLE_HOST_linux-gnux32 = "null" |
13 | file://license/bsd-3-clause.txt;md5=0f00d99239d922ffd13cabef83b33444" | ||
14 | 18 | ||
15 | SRC_URI += "file://0001-Starting-from-Linux-5.9-get_user_pages_remote-API-do.patch \ | 19 | # dpdk example apps dpdk_qat and vhost have dependancy on fuse and qat. |
16 | file://usertools-devbind-fix-binding-for-built-in-kernel-dr.patch" | 20 | # fuse is in meta-filesystems and qat is not yet upstreamed. |
21 | # So adding mechanism to explicitly disable the use of fuse and qat. | ||
22 | # To enable, uncomment the below line or include in .bbappend. | ||
23 | # PACKAGECONFIG ?= " dpdk_qat vhost libvirt" | ||
24 | |||
25 | PACKAGECONFIG[dpdk_qat] = ",,virtual/qat" | ||
26 | PACKAGECONFIG[vhost] = ",,fuse" | ||
27 | PACKAGECONFIG[libvirt] = ",,libvirt" | ||
28 | PACKAGECONFIG[numa] = ",,numactl" | ||
29 | |||
30 | export CONFIG_EXAMPLE_DPDK_QAT = "${@bb.utils.contains('PACKAGECONFIG', 'dpdk_qat', 'y', 'n', d)}" | ||
31 | export CONFIG_EXAMPLE_VM_POWER_MANAGER = "${@bb.utils.contains('PACKAGECONFIG', 'libvirt', 'y', 'n', d)}" | ||
32 | export CONFIG_VHOST_ENABLED = "${@bb.utils.contains('PACKAGECONFIG', 'vhost', 'y', 'n', d)}" | ||
33 | export CONFIG_HAVE_NUMA = "${@bb.utils.contains('PACKAGECONFIG', 'numa', 'y', 'n', d)}" | ||
34 | |||
35 | # Don't use the default value of datadir and let the dpdk set it to a dpdk | ||
36 | # specific directory | ||
37 | datadir[unexport] = "1" | ||
38 | |||
39 | RDEPENDS_${PN} += "pciutils python3-core" | ||
40 | DEPENDS = "virtual/kernel" | ||
41 | do_configure[depends] += "virtual/kernel:do_shared_workdir" | ||
42 | |||
43 | inherit module | ||
44 | |||
45 | export MODULE_DIR="${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net" | ||
46 | export RTE_SDK = "${S}" | ||
47 | |||
48 | export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include" | ||
49 | export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib" | ||
50 | export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}" | ||
51 | export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}" | ||
52 | export INSTALL_PATH = "${prefix}/share/dpdk" | ||
53 | export RTE_OUTPUT = "${S}/${RTE_TARGET}" | ||
54 | export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/" | ||
55 | export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}" | ||
56 | export DPDK_TARGET_MACH = "${@get_dpdk_target_mach(bb,d)}" | ||
57 | export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac" | ||
58 | |||
59 | export EXAMPLES_BUILD_DIR = "${RTE_TARGET}" | ||
60 | export ARCHDIR = "generic" | ||
61 | |||
62 | DPDK_RTE_TARGET_x86-64 = "x86_64-native-linuxapp-gcc" | ||
63 | DPDK_RTE_TARGET_x86 = "i686-native-linuxapp-gcc" | ||
64 | DPDK_RTE_TARGET_aarch64 = "arm64-${DPDK_TARGET_MACH}-linuxapp-gcc" | ||
65 | export RTE_TARGET = "${DPDK_RTE_TARGET}" | ||
66 | |||
67 | # Workaround failure on gcc10 | ||
68 | TOOLCHAIN_OPTIONS += "-Wno-error=maybe-uninitialized" | ||
69 | |||
70 | CONFIG_NAME = "common_linux" | ||
71 | TEST_DIR = "app/test" | ||
72 | |||
73 | # The list of intel Comms platforms and their target machine | ||
74 | # process mapping. The supported target machine is listed under | ||
75 | # dpdk/mk/machine | ||
76 | def get_dpdk_target_mach(bb, d): | ||
77 | target_arch = d.getVar('DPDK_TARGET_MACHINE', True) | ||
78 | if target_arch: | ||
79 | return target_arch | ||
80 | return "default" | ||
81 | |||
82 | do_configure () { | ||
83 | ############################################################# | ||
84 | ### default value for prefix is "usr", unsetting it, so it | ||
85 | ### will not be concatenated in ${RTE_TARGET}/Makefile | ||
86 | ### which will cause compilation failure | ||
87 | ############################################################# | ||
88 | unset prefix | ||
89 | |||
90 | # Fix-up CONFIG_RTE_MACHINE based on target machine | ||
91 | sed -e "s#CONFIG_RTE_MACHINE=\"native\"#CONFIG_RTE_MACHINE=\"${DPDK_TARGET_MACH}\"#" -i ${S}/config/defconfig_${RTE_TARGET} | ||
92 | |||
93 | # Fix-up vhost configs based on package config | ||
94 | sed -e "s#CONFIG_RTE_KNI_VHOST=n#CONFIG_RTE_KNI_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
95 | sed -e "s#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=n#CONFIG_RTE_KNI_VHOST_VNET_HDR_EN=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
96 | sed -e "s#CONFIG_RTE_LIBRTE_VHOST=n#CONFIG_RTE_LIBRTE_VHOST=${CONFIG_VHOST_ENABLED}#" -i ${S}/config/${CONFIG_NAME} | ||
97 | sed -e "s#CONFIG_RTE_LIBRTE_VHOST_NUMA=.*#CONFIG_RTE_LIBRTE_VHOST_NUMA=${CONFIG_HAVE_NUMA}#" -i ${S}/config/${CONFIG_NAME} | ||
98 | sed -e "s#CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=.*#CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=${CONFIG_HAVE_NUMA}#" -i ${S}/config/${CONFIG_NAME} | ||
99 | |||
100 | # Fix-up CONFIG_RTE_LIBRTE_POWER based on package config for libvirt | ||
101 | sed -e "s#CONFIG_RTE_LIBRTE_POWER=y#CONFIG_RTE_LIBRTE_POWER=${CONFIG_EXAMPLE_VM_POWER_MANAGER}#" -i ${S}/config/${CONFIG_NAME} | ||
102 | |||
103 | make O=$RTE_TARGET T=$RTE_TARGET config | ||
104 | } | ||
105 | |||
106 | do_compile () { | ||
107 | unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS | ||
108 | |||
109 | cd ${S}/${RTE_TARGET} | ||
110 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \ | ||
111 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \ | ||
112 | CROSS="${TARGET_PREFIX}" \ | ||
113 | prefix="" LDFLAGS="${TUNE_LDARGS}" WERROR_FLAGS="-w" V=1 | ||
114 | |||
115 | cd ${S}/examples/ | ||
116 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
117 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -O3 -I${STAGING_INCDIR}" \ | ||
118 | CROSS="${TARGET_PREFIX}" O="${S}/examples/$@/" | ||
119 | |||
120 | cd ${S}/${TEST_DIR}/ | ||
121 | oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \ | ||
122 | EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -O3 -I${STAGING_INCDIR}" \ | ||
123 | CROSS="${TARGET_PREFIX}" O="${S}/${TEST_DIR}/$@/" | ||
124 | } | ||
125 | |||
126 | do_install () { | ||
127 | oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D} | ||
128 | oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR} | ||
129 | oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D} | ||
130 | |||
131 | # Install examples | ||
132 | for dirname in ${S}/examples/* | ||
133 | do | ||
134 | install -m 0755 -d ${D}/${INSTALL_PATH}/examples/`basename ${dirname}` | ||
135 | |||
136 | for appname in `find ${dirname} -regex ".*${EXAMPLES_BUILD_DIR}\/app\/[-0-9a-zA-Z0-9/_]*$"` | ||
137 | do | ||
138 | install -m 755 ${appname} ${D}/${INSTALL_PATH}/examples/`basename ${dirname}`/ | ||
139 | done | ||
140 | done | ||
141 | |||
142 | # Install test | ||
143 | for dirname in ${S}/${TEST_DIR}/app/* | ||
144 | do | ||
145 | install -m 0755 -d ${D}/${INSTALL_PATH}/test | ||
146 | |||
147 | for appname in `find ${dirname} -regex ".*test\/app\/[-0-9a-zA-Z0-9/_]*$"` | ||
148 | do | ||
149 | install -m 755 ${appname} ${D}/${INSTALL_PATH}/test | ||
150 | done | ||
151 | done | ||
152 | |||
153 | cp -r ${S}/mk ${D}${INSTALL_PATH}/ | ||
154 | |||
155 | for ss in $(find ${D} -type f -name "*.py"); do | ||
156 | sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${ss} | ||
157 | done | ||
17 | 158 | ||
18 | do_install_append () { | ||
19 | # Remove the unneeded dir | 159 | # Remove the unneeded dir |
20 | rm -rf ${D}/${INSTALL_PATH}/${RTE_TARGET}/app | 160 | rm -rf ${D}/${INSTALL_PATH}/${RTE_TARGET}/app |
21 | } | 161 | } |
162 | |||
163 | PACKAGES += "${PN}-examples ${PN}-test" | ||
164 | |||
165 | FILES_${PN}-dbg += " \ | ||
166 | ${INSTALL_PATH}/.debug \ | ||
167 | ${INSTALL_PATH}/examples/*/.debug \ | ||
168 | " | ||
169 | |||
170 | FILES_${PN}-doc += "\ | ||
171 | ${INSTALL_PATH}/doc \ | ||
172 | " | ||
173 | |||
174 | FILES_${PN}-dev += " \ | ||
175 | ${INSTALL_PATH}/${RTE_TARGET}/.config \ | ||
176 | ${includedir} \ | ||
177 | ${includedir}/${ARCHDIR} \ | ||
178 | ${includedir}/exec-env \ | ||
179 | ${INSTALL_PATH}/buildtools/ \ | ||
180 | ${INSTALL_PATH}/${RTE_TARGET}/include \ | ||
181 | ${INSTALL_PATH}/${RTE_TARGET}/lib \ | ||
182 | ${INSTALL_PATH}/mk \ | ||
183 | " | ||
184 | |||
185 | FILES_${PN} += " ${INSTALL_PATH}/usertools/ \ | ||
186 | ${prefix}/sbin/ \ | ||
187 | ${prefix}/bin/ \ | ||
188 | ${libdir}/ \ | ||
189 | " | ||
190 | FILES_${PN}-examples += " \ | ||
191 | ${INSTALL_PATH}/examples/* \ | ||
192 | " | ||
193 | |||
194 | FILES_${PN}-test += " \ | ||
195 | ${INSTALL_PATH}/test \ | ||
196 | " | ||