dpdk-module: add recipe

This recipe builds rte_kni.ko module

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Naveen Saini 2021-04-15 18:51:35 +08:00 committed by Anuj Mittal
parent d4ddaf2e54
commit 7ec861d3c9
2 changed files with 119 additions and 0 deletions

View File

@ -0,0 +1,45 @@
include dpdk.inc
FILESEXTRAPATHS_prepend := "${THISDIR}/dpdk:"
SRC_URI += " \
file://0001-Makefile-add-makefile.patch \
"
STABLE = "-stable"
BRANCH = "20.11"
SRCREV = "b1e71cf43153cca07db6cbb69fdca030ccf52234"
S = "${WORKDIR}/git"
inherit module
#kernel module needs 'rte_build_config.h', which is generated at buid time
DEPENDS += "dpdk"
export S
export STAGING_KERNEL_DIR
export STAGING_INCDIR
export INSTALL_MOD_DIR="dpdk"
do_configure[noexec] = "1"
do_compile() {
cd ${S}/kernel/linux/kni
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
KERNEL_VERSION=${KERNEL_VERSION} \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
AR="${KERNEL_AR}" \
O=${STAGING_KERNEL_BUILDDIR} \
KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
${MAKE_TARGETS}
}
do_install() {
cd ${S}/kernel/linux/kni
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \
INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
O=${STAGING_KERNEL_BUILDDIR} \
${MODULES_INSTALL_TARGET}
}

View File

@ -0,0 +1,74 @@
From 768cef60957d5e840071d1d6514d4add3f3c2904 Mon Sep 17 00:00:00 2001
From: Naveen Saini <naveen.kumar.saini@intel.com>
Date: Wed, 14 Apr 2021 17:25:53 +0800
Subject: [PATCH] Makefile: add makefile
Current meson build for kernel module build does not fit in Yocto.
So added Makefile to build rte_kni.ko
Upstream-Status: Inappropriate
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
---
kernel/linux/kni/Kbuild | 6 ------
kernel/linux/kni/Makefile | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 6 deletions(-)
delete mode 100644 kernel/linux/kni/Kbuild
create mode 100644 kernel/linux/kni/Makefile
diff --git a/kernel/linux/kni/Kbuild b/kernel/linux/kni/Kbuild
deleted file mode 100644
index e5452d6c00..0000000000
--- a/kernel/linux/kni/Kbuild
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
-
-ccflags-y := $(MODULE_CFLAGS)
-obj-m := rte_kni.o
-rte_kni-y := $(patsubst $(src)/%.c,%.o,$(wildcard $(src)/*.c))
diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile
new file mode 100644
index 0000000000..19897ee06e
--- /dev/null
+++ b/kernel/linux/kni/Makefile
@@ -0,0 +1,35 @@
+#
+# Makefile for building rte_kni.ko
+#
+MODULE_CFLAGS += -include $(S)/config/rte_config.h
+MODULE_CFLAGS += -I$(S)/lib/librte_eal/include
+MODULE_CFLAGS += -I$(S)/lib/librte_kni
+MODULE_CFLAGS += -I$(S)/kernel/linux/kni
+MODULE_CFLAGS += -I$(S)
+MODULE_CFLAGS += -I$(STAGING_INCDIR)
+
+rte_kni-objs = kni_misc.o kni_net.o
+
+ccflags-y := $(MODULE_CFLAGS)
+cflags-y := $(MODULE_CFLAGS)
+obj-m := rte_kni.o
+
+
+KERNEL_MAKE_OPTS := -C $(STAGING_KERNEL_DIR) M=$(CURDIR)
+ifneq ($(ARCH),)
+KERNEL_MAKE_OPTS += ARCH=$(ARCH)
+endif
+ifneq ($(CROSS_COMPILE),)
+KERNEL_MAKE_OPTS += CROSS_COMPILE=$(CROSS_COMPILE)
+endif
+
+build:
+ $(MAKE) $(KERNEL_MAKE_OPTS) modules
+
+install: modules_install
+
+modules_install:
+ $(MAKE) $(KERNEL_MAKE_OPTS) modules_install
+
+clean:
+ $(MAKE) $(KERNEL_MAKE_OPTS) clean
--
2.17.1