summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2020-07-02 11:44:28 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-07-04 09:43:37 +0200
commit1c0292cf7ed346a03b094c7f3aa895abb84177e5 (patch)
tree415337a1e3ccdfa89851e5a5e652309e818e6a62
parent91187d21903659b388e79153e53d25dfdb7d947b (diff)
downloadptxdist-1c0292cf7ed346a03b094c7f3aa895abb84177e5.tar.gz
ptxdist-1c0292cf7ed346a03b094c7f3aa895abb84177e5.tar.xz
kernel: cleanup and refactor KERNEL_MAKE_OPT and KERNEL_CONF_OPT
This introduces KERNEL_MODULE_OPT as a explicit variable that should be used by kernel module packages. Hopefully, this will be the last time that kernel module packages need to be changes due to changes in the kernel rule. A new check ensures, that an error occurs when other packages use KERNEL_MAKE_OPT. cryptodev and the kernel module template now use KERNEL_MODULE_OPT. Remove KERNEL_MODULES_BUILD. Use ptx/ifdef instead. That's much simpler and avoids the extra kconfig option. KERNEL_MAKE_OPT can now contain all necessary options so world/compile can be used to build the kernel itself. The variables are structured in a way that makes it possible to add extra options to KERNEL_MAKE_OPT and KERNEL_CONF_OPT that are not used by the other. This will be used in later commits. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--platforms/kernel.in5
-rw-r--r--rules/cryptodev.make2
-rw-r--r--rules/kernel.make57
-rw-r--r--rules/templates/template-src-linux-driver-make2
4 files changed, 40 insertions, 26 deletions
diff --git a/platforms/kernel.in b/platforms/kernel.in
index a57bb4d96..51fea4e08 100644
--- a/platforms/kernel.in
+++ b/platforms/kernel.in
@@ -37,11 +37,6 @@ config KERNEL_MODULES_INSTALL
prompt "Install modules into /lib/modules"
depends on KERNEL_MODULES
-config KERNEL_MODULES_BUILD
- depends on KERNEL_MODULES
- string
- default "modules"
-
config KERNEL_VERSION
prompt "kernel version"
string
diff --git a/rules/cryptodev.make b/rules/cryptodev.make
index 06f5eedeb..3d82e95c5 100644
--- a/rules/cryptodev.make
+++ b/rules/cryptodev.make
@@ -41,7 +41,7 @@ CRYPTODEV_CONF_TOOL := NO
# ----------------------------------------------------------------------------
CRYPTODEV_MAKE_OPT = \
- $(KERNEL_MAKE_OPT) \
+ $(KERNEL_MODULE_OPT) \
KERNEL_DIR=$(KERNEL_DIR) \
DESTDIR=$(CRYPTODEV_PKGDIR) \
prefix=/usr \
diff --git a/rules/kernel.make b/rules/kernel.make
index 246bdf393..5b7dbc4c6 100644
--- a/rules/kernel.make
+++ b/rules/kernel.make
@@ -40,34 +40,49 @@ KERNEL_BUILD_OOT := KEEP
KERNEL_WRAPPER_BLACKLIST := \
$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
+define kernel/deprecated
+$(if $(strip \
+$(filter $(STATEDIR)/%, \
+$(filter-out $(STATEDIR)/kernel-header.%, \
+$(filter-out $(STATEDIR)/kernel.%,$@))) \
+),$(error $(notdir $@): \
+ use KERNEL_MODULE_OPT instead of $(1) for kernel module packages))
+endef
+
# check for old kernel modules rules
-KERNEL_MAKEVARS = -C KERNEL_MAKEVARS-was-renamed-to-KERNEL_MAKE_OPT
-$(STATEDIR)/kernel.% kernel_%config $(IMAGE_KERNEL_IMAGE) $(KERNEL_SOURCE): KERNEL_MAKEVARS=
-$(STATEDIR)/kernel-header.% $(STATEDIR)/host-kernel-header.%: KERNEL_MAKEVARS=
+KERNEL_MAKEVARS = $(call kernel/deprecated, KERNEL_MAKEVARS)
-KERNEL_MAKE_OPT := \
+# like kernel-opts but with different CROSS_COMPILE=
+KERNEL_BASE_OPT := \
V=$(PTXDIST_VERBOSE) \
- O=$(KERNEL_BUILD_DIR) \
+ HOSTCC=$(HOSTCC) \
ARCH=$(GENERIC_KERNEL_ARCH) \
CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) \
+ DEPMOD=$(PTXDIST_SYSROOT_HOST)/sbin/depmod \
+ \
INSTALL_MOD_PATH=$(KERNEL_PKGDIR) \
PTX_KERNEL_DIR=$(KERNEL_DIR) \
$(call remove_quotes,$(PTXCONF_KERNEL_EXTRA_MAKEVARS))
-ifdef PTXCONF_KERNEL_MODULES_INSTALL
-KERNEL_MAKE_OPT += \
- DEPMOD=$(PTXDIST_SYSROOT_HOST)/sbin/depmod
-endif
+# Intermediate option. This will be used by kernel module packages.
+KERNEL_MODULE_OPT := \
+ -C $(KERNEL_DIR) \
+ O=$(KERNEL_BUILD_DIR) \
+ $(KERNEL_BASE_OPT)
+
+KERNEL_SHARED_OPT := \
+ $(KERNEL_MODULE_OPT)
ifndef PTXCONF_KERNEL_GCC_PLUGINS
-KERNEL_MAKE_OPT += \
+# no gcc plugins; avoid config changes depending on the host compiler
+KERNEL_SHARED_OPT += \
HOSTCXX="$(HOSTXX) -DGENERATOR_FILE" \
HOSTCC="$(HOSTCC) -DGENERATOR_FILE"
endif
KERNEL_CONF_OPT := \
- -C $(KERNEL_DIR) \
- $(KERNEL_MAKE_OPT)
+ $(KERNEL_SHARED_OPT)
+
#
# support the different kernel image formats
#
@@ -144,14 +159,16 @@ $(STATEDIR)/kernel.tags:
# Compile
# ----------------------------------------------------------------------------
-KERNEL_OOT_OPT := \
- -C $(KERNEL_DIR) \
- $(KERNEL_MAKE_OPT)
+KERNEL_MAKE_OPT = \
+ $(call kernel/deprecated, KERNEL_MAKE_OPT) \
+ $(KERNEL_SHARED_OPT) \
+ $(KERNEL_IMAGE) \
+ $(call ptx/ifdef, PTXCONF_KERNEL_MODULES,modules)
KERNEL_TOOL_PERF_OPTS := \
-C $(KERNEL_DIR)/tools/perf \
- $(KERNEL_MAKE_OPT) \
O=$(KERNEL_BUILD_DIR)/tools/perf \
+ $(KERNEL_BASE_OPT) \
WERROR=0 \
NO_LIBPERL=1 \
NO_LIBPYTHON=1 \
@@ -184,8 +201,8 @@ KERNEL_TOOL_IIO_OPTS := \
PTXDIST_ICECC= \
CPPFLAGS="-D__EXPORTED_HEADERS__ -I$(KERNEL_DIR)/include/uapi -I$(KERNEL_DIR)/include" \
-C $(KERNEL_DIR)/tools/iio \
- $(KERNEL_MAKE_OPT) \
O=$(KERNEL_BUILD_DIR)/tools/iio \
+ $(KERNEL_BASE_OPT) \
$(PARALLELMFLAGS_BROKEN)
$(STATEDIR)/kernel.compile:
@@ -193,7 +210,7 @@ $(STATEDIR)/kernel.compile:
@rm -f \
$(KERNEL_BUILD_DIR)/usr/initramfs_data.cpio.* \
$(KERNEL_BUILD_DIR)/usr/.initramfs_data.cpio.*
- @$(call compile, KERNEL, $(KERNEL_OOT_OPT) $(KERNEL_IMAGE) $(PTXCONF_KERNEL_MODULES_BUILD))
+ @$(call world/compile, KERNEL)
ifdef PTXCONF_KERNEL_TOOL_PERF
@mkdir -p $(KERNEL_BUILD_DIR)/tools/perf
@$(call compile, KERNEL, $(KERNEL_TOOL_PERF_OPTS))
@@ -209,7 +226,9 @@ endif
# Install
# ----------------------------------------------------------------------------
-KERNEL_INSTALL_OPT := $(KERNEL_OOT_OPT) modules_install
+KERNEL_INSTALL_OPT := \
+ $(KERNEL_BASE_OPT) \
+ modules_install
$(STATEDIR)/kernel.install:
@$(call targetinfo)
diff --git a/rules/templates/template-src-linux-driver-make b/rules/templates/template-src-linux-driver-make
index 13715a926..61a82c283 100644
--- a/rules/templates/template-src-linux-driver-make
+++ b/rules/templates/template-src-linux-driver-make
@@ -37,7 +37,7 @@ endif
# ----------------------------------------------------------------------------
@PACKAGE@_MAKE_OPT = \
- $(KERNEL_MAKE_OPT) \
+ $(KERNEL_MODULE_OPT) \
-C $(KERNEL_DIR) \
M=$(@PACKAGE@_DIR) \
modules