mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-05 00:07:48 -04:00
Extend the "depends on" syntax to support conditional dependencies using "depends on X if Y". While functionally equivalent to "depends on X || (Y == n)", "depends on X if Y" is much more readable and makes the kconfig language uniform in supporting the "if <expr>" suffix. This also improves readability for "optional" dependencies, which are the subset of conditional dependencies where X is Y. Previously such optional dependencies had to be expressed as the counterintuitive "depends on X || !X", now this can be represented as "depends on X if X". The change is implemented by converting the "X if Y" syntax into the "X || (Y == n)" syntax during "depends on" token processing. Signed-off-by: Nicolas Pitre <nico@fluxnic.net> [Graham Roff: Rewrote commit message, updated patch, added tests] Signed-off-by: Graham Roff <grahamr@qti.qualcomm.com> Acked-by: Randy Dunlap <rdunlap@infradead.org> Link: https://patch.msgid.link/20251215-kconfig_conditional_deps-v3-1-59519af0a5df@qti.qualcomm.com [nathan: Minor adjustments to spacing] Signed-off-by: Nathan Chancellor <nathan@kernel.org>
33 lines
614 B
Plaintext
33 lines
614 B
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
# Test Kconfig file for conditional dependencies.
|
|
|
|
# Enable module support for tristate testing
|
|
config MODULES
|
|
bool "Enable loadable module support"
|
|
modules
|
|
default y
|
|
|
|
config FOO
|
|
bool "FOO symbol"
|
|
|
|
config BAR
|
|
bool "BAR symbol"
|
|
|
|
config TEST_BASIC
|
|
bool "Test basic conditional dependency"
|
|
depends on FOO if BAR
|
|
default y
|
|
|
|
config TEST_COMPLEX
|
|
bool "Test complex conditional dependency"
|
|
depends on (FOO && BAR) if (FOO || BAR)
|
|
default y
|
|
|
|
config BAZ
|
|
tristate "BAZ symbol"
|
|
|
|
config TEST_OPTIONAL
|
|
tristate "Test simple optional dependency"
|
|
depends on BAZ if BAZ
|
|
default y
|