diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2020-07-02 11:44:28 +0200 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2020-07-04 09:43:37 +0200 |
commit | 1c0292cf7ed346a03b094c7f3aa895abb84177e5 (patch) | |
tree | 415337a1e3ccdfa89851e5a5e652309e818e6a62 | |
parent | 91187d21903659b388e79153e53d25dfdb7d947b (diff) | |
download | ptxdist-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.in | 5 | ||||
-rw-r--r-- | rules/cryptodev.make | 2 | ||||
-rw-r--r-- | rules/kernel.make | 57 | ||||
-rw-r--r-- | rules/templates/template-src-linux-driver-make | 2 |
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 |