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 <willmcvicker@google.com>
Change-Id: I84790211b6c87b50bd20208d5b0f7bf228ce694b
This commit is contained in:
Will McVicker 2021-12-07 10:01:14 -08:00 committed by William McVicker
parent 3eba5ed860
commit 5edbbb399d
2 changed files with 6 additions and 0 deletions

View File

@ -30,3 +30,6 @@ source "lib/Kconfig"
source "lib/Kconfig.debug" source "lib/Kconfig.debug"
source "Documentation/Kconfig" source "Documentation/Kconfig"
# ANDROID: Set KCONFIG_EXT_PREFIX to decend into an external project.
source "$(KCONFIG_EXT_PREFIX)Kconfig.ext"

3
Kconfig.ext Normal file
View File

@ -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.