From 5edbbb399d066288accf1588999ad7e5edd89364 Mon Sep 17 00:00:00 2001 From: Will McVicker Date: Tue, 7 Dec 2021 10:01:14 -0800 Subject: [PATCH] ANDROID: kbuild: add Kconfig support for external modules Kbuild has supported external modules for quite some time now, but unfortunately it doesn't support Kconfig for external modules. This significantly restricts the flexibility of using external modules. For example, we can't define Kconfig dependencies to conditionally include external modules based on a given SoC or Architecture. To support Kconfig for external modules, we can hook in an external Kconfig into the base Kconfig so that the external Kconfig gets looped into kbuild. This patch defines the new build variable KCONFIG_EXT_PREFIX which can be used to point kbuild to the directory that includes a file named Kconfig.ext. Just like all Kconfigs, the path needs to be relative to KERNEL_SRC. That applies to all Kconfigs that Kconfig.ext sources. Additionally, since the kconfig parser doesn't support conditional statements, we need to add a Kconfig.ext placeholder for when KCONFIG_EXT_PREFIX isn't defined. Bug: 210148006 Signed-off-by: Will McVicker Change-Id: I84790211b6c87b50bd20208d5b0f7bf228ce694b --- Kconfig | 3 +++ Kconfig.ext | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 Kconfig.ext diff --git a/Kconfig b/Kconfig index 745bc773f567..57a142d8d8b4 100644 --- a/Kconfig +++ b/Kconfig @@ -30,3 +30,6 @@ source "lib/Kconfig" source "lib/Kconfig.debug" source "Documentation/Kconfig" + +# ANDROID: Set KCONFIG_EXT_PREFIX to decend into an external project. +source "$(KCONFIG_EXT_PREFIX)Kconfig.ext" diff --git a/Kconfig.ext b/Kconfig.ext new file mode 100644 index 000000000000..48d805f0bfc0 --- /dev/null +++ b/Kconfig.ext @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +# This file is intentionally empty. It's used as a placeholder for when +# KCONFIG_EXT_PREFIX isn't defined.