kbuild: Show marked Kconfig fragments in "help"
Subsystems (10)
PATCH v3 1/1 kbuild: Show marked Kconfig fragments in "help"
Currently the Kconfig fragments in kernel/configs and arch/*/configs that aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.
Add logic to the Makefile to search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.
---
v3:
- Use Makefile logic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]
--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++- arch/riscv/configs/32-bit.config | 1 + arch/riscv/configs/64-bit.config | 1 + arch/s390/configs/btf.config | 1 + arch/s390/configs/kasan.config | 1 + arch/x86/Makefile | 4 ---- kernel/configs/debug.config | 2 ++ kernel/configs/kvm_guest.config | 1 + kernel/configs/nopm.config | 2 ++ kernel/configs/rust.config | 1 + kernel/configs/tiny.config | 2 ++ kernel/configs/x86_debug.config | 1 + kernel/configs/xen.config | 2 ++ scripts/kconfig/Makefile | 15 ++++++++++++--- 21 files changed, 36 insertions(+), 9 deletions(-)
Makefile +0 -1
@@ -1674,7 +1674,6 @@ help: @echo ' mrproper - Remove all generated files + config + various backup files' @echo ' distclean - mrproper + remove editor backup and patch files' @echo '' - @echo 'Configuration targets:' @$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help @echo '' @echo 'Other generic targets:'
arch/arm/configs/dram_0x00000000.config +1 -0
@@ -1 +1,2 @@ +# Help: DRAM base at 0x00000000 CONFIG_DRAM_BASE=0x00000000
arch/arm/configs/dram_0xc0000000.config +1 -0
@@ -1 +1,2 @@ +# Help: DRAM base at 0xc0000000 CONFIG_DRAM_BASE=0xc0000000
arch/arm/configs/dram_0xd0000000.config +1 -0
@@ -1 +1,2 @@ +# Help: DRAM base at 0xd0000000 CONFIG_DRAM_BASE=0xd0000000
arch/arm/configs/lpae.config +1 -0
@@ -1,2 +1,3 @@ +# Help: Enable Large Physical Address Extension mode CONFIG_ARM_LPAE=y CONFIG_VMSPLIT_2G=y
arch/arm64/configs/virt.config +1 -0
@@ -1,3 +1,4 @@ +# Help: Virtualization guest # # Base options for platforms #
arch/powerpc/configs/disable-werror.config +1 -0
@@ -1 +1,2 @@ +# Help: Disable -Werror CONFIG_PPC_DISABLE_WERROR=y
arch/powerpc/configs/security.config +3 -1
@@ -1,3 +1,5 @@ +# Help: Common security options for PowerPC builds + # This is the equivalent of booting with lockdown=integrity CONFIG_SECURITY=y CONFIG_SECURITYFS=y
@@ -12,4 +14,4 @@ CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # UBSAN bounds checking is very cheap and good for hardening CONFIG_UBSAN=y -# CONFIG_UBSAN_MISC is not set +# CONFIG_UBSAN_MISC is not set
arch/riscv/configs/32-bit.config +1 -0
@@ -1,3 +1,4 @@ +# Help: Build a 32-bit image CONFIG_ARCH_RV32I=y CONFIG_32BIT=y # CONFIG_PORTABLE is not set
arch/riscv/configs/64-bit.config +1 -0
@@ -1,2 +1,3 @@ +# Help: Build a 64-bit image CONFIG_ARCH_RV64I=y CONFIG_64BIT=y
arch/s390/configs/btf.config +1 -0
@@ -1 +1,2 @@ +# Help: Enable BTF debug info CONFIG_DEBUG_INFO_BTF=y
arch/s390/configs/kasan.config +1 -0
@@ -1,3 +1,4 @@ +# Help: Enable KASan for debugging CONFIG_KASAN=y CONFIG_KASAN_INLINE=y CONFIG_KASAN_VMALLOC=y
arch/x86/Makefile +0 -4
@@ -335,9 +335,5 @@ define archhelp echo ' bzdisk/fdimage*/hdimage/isoimage also accept:' echo ' FDARGS="..." arguments for the booted kernel' echo ' FDINITRD=file initrd for the booted kernel' - echo '' - echo ' kvm_guest.config - Enable Kconfig items for running this kernel as a KVM guest' - echo ' xen.config - Enable Kconfig items for running this kernel as a Xen guest' - echo ' x86_debug.config - Enable tip tree debugging options for testing' endef
kernel/configs/debug.config +2 -0
@@ -1,3 +1,5 @@ +# Help: Debugging for CI systems and finding regressions +# # The config is based on running daily CI for enterprise Linux distros to # seek regressions on linux-next builds on different bare-metal and virtual # platforms. It can be used for example,
kernel/configs/kvm_guest.config +1 -0
@@ -1,3 +1,4 @@ +# Help: Bootable as a KVM guest CONFIG_NET=y CONFIG_NET_CORE=y CONFIG_NETDEVICES=y
kernel/configs/nopm.config +2 -0
@@ -1,3 +1,5 @@ +# Help: Disable Power Management + CONFIG_PM=n CONFIG_SUSPEND=n CONFIG_HIBERNATION=n
kernel/configs/rust.config +1 -0
@@ -1 +1,2 @@ +# Help: Enable Rust CONFIG_RUST=y
kernel/configs/tiny.config +2 -0
@@ -1,3 +1,5 @@ +# Help: Size-optimized kernel image +# # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_KERNEL_GZIP is not set
kernel/configs/x86_debug.config +1 -0
@@ -1,3 +1,4 @@ +# Help: Debugging options for tip tree testing CONFIG_X86_DEBUG_FPU=y CONFIG_LOCK_STAT=y CONFIG_DEBUG_VM=y
kernel/configs/xen.config +2 -0
@@ -1,3 +1,5 @@ +# Help: Bootable as a Xen guest +# # global stuff - these enable us to allow some # of the not so generic stuff below for xen CONFIG_PARAVIRT=y
scripts/kconfig/Makefile +12 -3
@@ -93,11 +93,13 @@ endif %_defconfig: $(obj)/conf $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig) -configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@) +configfiles = $(wildcard $(srctree)/kernel/configs/$(1) $(srctree)/arch/$(SRCARCH)/configs/$(1)) +all-config-fragments = $(call configfiles,*.config) +config-fragments = $(call configfiles,$@) %.config: $(obj)/conf - $(if $(call configfiles),, $(error No configuration exists for this target on this architecture)) - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles) + $(if $(config-fragments),, $(error $@ fragment does not exists on this architecture)) + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(config-fragments) $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig PHONY += tinyconfig
@@ -115,6 +117,7 @@ clean-files += tests/.cache # Help text used by make help help: + @echo 'Configuration targets:' @echo ' config - Update current config utilising a line-oriented program' @echo ' nconfig - Update current config utilising a ncurses menu based program' @echo ' menuconfig - Update current config utilising a menu based program'
@@ -141,6 +144,12 @@ help: @echo ' default value without prompting' @echo ' tinyconfig - Configure the tiniest possible kernel' @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)' + @echo '' + @echo 'Configuration topic targets:' + @$(foreach f, $(all-config-fragments), \ + if help=$$(grep -m1 '^# Help: ' $(f)); then \ + printf ' %-25s - %s\n' '$(notdir $(f))' "$${help#*: }"; \ + fi;) # =========================================================================== # object files used by all kconfig flavours
Signature · 1 line
2.34.1
Quoted 45 lines · Kees Cook
Currently the
Kconfigfragments in kernel/configs andarch/*/configsthat aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.Add logic to the
Makefileto search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.Cc Nicolas Schier <[email protected]>Cc Michael Ellerman <[email protected]>Cc Christophe Leroy <[email protected]>Cc Randy Dunlap <[email protected]>Signed-off-by Kees Cook <[email protected]>Co-developed-by Masahiro Yamada <[email protected]>---
v3:
- UseMakefilelogic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++- arch/riscv/configs/32-bit.config | 1 + arch/riscv/configs/64-bit.config | 1 + arch/s390/configs/btf.config | 1 + arch/s390/configs/kasan.config | 1 + arch/x86/Makefile | 4 ---- kernel/configs/debug.config | 2 ++
Quoted 9 lines
kernel/configs/kvm_guest.config | 1 + kernel/configs/nopm.config | 2 ++ kernel/configs/rust.config | 1 + kernel/configs/tiny.config | 2 ++ kernel/configs/x86_debug.config | 1 + kernel/configs/xen.config | 2 ++ scripts/kconfig/Makefile | 15 ++++++++++++--- 21 files changed, 36 insertions(+), 9 deletions(-)
Just one thing.
kernel/configs/tiny.config line 1
Quoted 6 lines
kernel/configs/tiny.config +1
-0@@ -1,3 +1,5 @@ +# Help: Size-optimized kernel image
I will drop this.
We already have a hard-coded help message.
tinyconfig - Configure the tiniest possible kernel
Then, some lines below, again.
tiny.config - Size-optimized kernel image
tiny.config is for internal use for tinyconfig.
Signature · 2 lines
Best Regards Masahiro Yamada
Quoted 81 lines · Masahiro Yamada
Quoted 45 lines · Kees Cook
Currently the
Kconfigfragments in kernel/configs andarch/*/configsthat aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.Add logic to the
Makefileto search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.Cc Nicolas Schier <[email protected]>Cc Michael Ellerman <[email protected]>Cc Christophe Leroy <[email protected]>Cc Randy Dunlap <[email protected]>Signed-off-by Kees Cook <[email protected]>Co-developed-by Masahiro Yamada <[email protected]>---
v3:
- UseMakefilelogic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++- arch/riscv/configs/32-bit.config | 1 + arch/riscv/configs/64-bit.config | 1 + arch/s390/configs/btf.config | 1 + arch/s390/configs/kasan.config | 1 + arch/x86/Makefile | 4 ---- kernel/configs/debug.config | 2 ++Quoted 9 lines
kernel/configs/kvm_guest.config | 1 + kernel/configs/nopm.config | 2 ++ kernel/configs/rust.config | 1 + kernel/configs/tiny.config | 2 ++ kernel/configs/x86_debug.config | 1 + kernel/configs/xen.config | 2 ++ scripts/kconfig/Makefile | 15 ++++++++++++--- 21 files changed, 36 insertions(+), 9 deletions(-)Just one thing.
kernel/configs/tiny.config line 1
Quoted 6 lines
kernel/configs/tiny.config +1
-0@@ -1,3 +1,5 @@ +# Help: Size-optimized kernel imageI will drop this.
We already have a hard-coded help message.
tinyconfig - Configure the tiniest possible kernel
Quoted 7 lines
Then, some lines below, again.
tiny.config - Size-optimized kernel image
tiny.config is for internal use for tinyconfig.
Shall I send a v4, or did you fix this up already?
Signature · 1 line
Kees Cook
Quoted 85 lines · Kees Cook
Quoted 83 lines · Masahiro Yamada
Quoted 45 lines · Kees Cook
Currently the
Kconfigfragments in kernel/configs andarch/*/configsthat aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.Add logic to the
Makefileto search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.Cc Nicolas Schier <[email protected]>Cc Michael Ellerman <[email protected]>Cc Christophe Leroy <[email protected]>Cc Randy Dunlap <[email protected]>Signed-off-by Kees Cook <[email protected]>Co-developed-by Masahiro Yamada <[email protected]>---
v3:
- UseMakefilelogic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++- arch/riscv/configs/32-bit.config | 1 + arch/riscv/configs/64-bit.config | 1 + arch/s390/configs/btf.config | 1 + arch/s390/configs/kasan.config | 1 + arch/x86/Makefile | 4 ---- kernel/configs/debug.config | 2 ++Quoted 9 lines
kernel/configs/kvm_guest.config | 1 + kernel/configs/nopm.config | 2 ++ kernel/configs/rust.config | 1 + kernel/configs/tiny.config | 2 ++ kernel/configs/x86_debug.config | 1 + kernel/configs/xen.config | 2 ++ scripts/kconfig/Makefile | 15 ++++++++++++--- 21 files changed, 36 insertions(+), 9 deletions(-)Just one thing.
kernel/configs/tiny.config line 1
Quoted 6 lines
kernel/configs/tiny.config +1
-0@@ -1,3 +1,5 @@ +# Help: Size-optimized kernel imageI will drop this.
We already have a hard-coded help message.
tinyconfig - Configure the tiniest possible kernel
Then, some lines below, again.
Quoted 7 lines
Quoted 5 lines
tiny.config - Size-optimized kernel image
tiny.config is for internal use for tinyconfig.
Shall I send a v4, or did you fix this up already?
Locally fixed-up.
If nobody points out anything else,
you do not need to send v4.
Signature · 2 lines
Best Regards Masahiro Yamada
Quoted 29 lines · Kees Cook
Currently the
Kconfigfragments in kernel/configs andarch/*/configsthat aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.Add logic to the
Makefileto search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.Cc Nicolas Schier <[email protected]>Cc Michael Ellerman <[email protected]>Cc Christophe Leroy <[email protected]>Cc Randy Dunlap <[email protected]>Signed-off-by Kees Cook <[email protected]>Co-developed-by Masahiro Yamada <[email protected]>---
v3:
- UseMakefilelogic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]
Quoted 9 lines
--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++-
cheers
Quoted 23 lines · On Thu, Aug 31, 2023 at 12:13:39PM -0700 Kees Cook wrote:
Currently the
Kconfigfragments in kernel/configs andarch/*/configsthat aren't used internally aren't discoverable through "make help", which consists of hard-coded lists of config fragments. Instead, list all the fragment targets that have a "# Help: " comment prefix so the targets can be generated dynamically.Add logic to the
Makefileto search for and display the fragment and comment. Add comments to fragments that are intended to be direct targets.Cc Nicolas Schier <[email protected]>Cc Michael Ellerman <[email protected]>Cc Christophe Leroy <[email protected]>Cc Randy Dunlap <[email protected]>Signed-off-by Kees Cook <[email protected]>Co-developed-by Masahiro Yamada <[email protected]>
Quoted 1 line
---
Quoted 259 lines
v3:
- UseMakefilelogic from Masahiro Yamada
- Use "# Help: " prefix, but only on desired fragment targets
v2: https://lore.kernel.org/all/[email protected]
v1: https://lore.kernel.org/all/[email protected]--- Makefile | 1 - arch/arm/configs/dram_0x00000000.config | 1 + arch/arm/configs/dram_0xc0000000.config | 1 + arch/arm/configs/dram_0xd0000000.config | 1 + arch/arm/configs/lpae.config | 1 + arch/arm64/configs/virt.config | 1 + arch/powerpc/configs/disable-werror.config | 1 + arch/powerpc/configs/security.config | 4 +++- arch/riscv/configs/32-bit.config | 1 + arch/riscv/configs/64-bit.config | 1 + arch/s390/configs/btf.config | 1 + arch/s390/configs/kasan.config | 1 + arch/x86/Makefile | 4 ---- kernel/configs/debug.config | 2 ++ kernel/configs/kvm_guest.config | 1 + kernel/configs/nopm.config | 2 ++ kernel/configs/rust.config | 1 + kernel/configs/tiny.config | 2 ++ kernel/configs/x86_debug.config | 1 + kernel/configs/xen.config | 2 ++ scripts/kconfig/Makefile | 15 ++++++++++++--- 21 files changed, 36 insertions(+), 9 deletions(-)Makefile +0
-1@@ -1674,7 +1674,6 @@ help: @echo ' mrproper - Remove all generated files + config + various backup files' @echo ' distclean - mrproper + remove editor backup and patch files' @echo '' - @echo 'Configuration targets:' @$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help @echo '' @echo 'Other generic targets:'arch/arm/configs/dram_0x00000000.config +1
-0@@ -1 +1,2 @@ +# Help: DRAM base at 0x00000000 CONFIG_DRAM_BASE=0x00000000arch/arm/configs/dram_0xc0000000.config +1
-0@@ -1 +1,2 @@ +# Help: DRAM base at 0xc0000000 CONFIG_DRAM_BASE=0xc0000000arch/arm/configs/dram_0xd0000000.config +1
-0@@ -1 +1,2 @@ +# Help: DRAM base at 0xd0000000 CONFIG_DRAM_BASE=0xd0000000arch/arm/configs/lpae.config +1
-0@@ -1,2 +1,3 @@ +# Help: Enable Large Physical Address Extension mode CONFIG_ARM_LPAE=y CONFIG_VMSPLIT_2G=yarch/arm64/configs/virt.config +1
-0@@ -1,3 +1,4 @@ +# Help: Virtualization guest # # Base options for platforms #arch/powerpc/configs/disable-werror.config +1
-0@@ -1 +1,2 @@ +# Help: Disable -Werror CONFIG_PPC_DISABLE_WERROR=yarch/powerpc/configs/security.config +3
-1@@ -1,3 +1,5 @@ +# Help: Common security options for PowerPC builds + # This is the equivalent of booting with lockdown=integrity CONFIG_SECURITY=y CONFIG_SECURITYFS=y@@ -12,4 +14,4 @@ CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # UBSAN bounds checking is very cheap and good for hardening CONFIG_UBSAN=y -# CONFIG_UBSAN_MISC is not set +# CONFIG_UBSAN_MISC is not setarch/riscv/configs/32-bit.config +1
-0@@ -1,3 +1,4 @@ +# Help: Build a 32-bit image CONFIG_ARCH_RV32I=y CONFIG_32BIT=y # CONFIG_PORTABLE is not setarch/riscv/configs/64-bit.config +1
-0@@ -1,2 +1,3 @@ +# Help: Build a 64-bit image CONFIG_ARCH_RV64I=y CONFIG_64BIT=yarch/s390/configs/btf.config +1
-0@@ -1 +1,2 @@ +# Help: Enable BTF debug info CONFIG_DEBUG_INFO_BTF=yarch/s390/configs/kasan.config +1
-0@@ -1,3 +1,4 @@ +# Help: Enable KASan for debugging CONFIG_KASAN=y CONFIG_KASAN_INLINE=y CONFIG_KASAN_VMALLOC=yarch/x86/Makefile +0
-4@@ -335,9 +335,5 @@ define archhelp echo ' bzdisk/fdimage*/hdimage/isoimage also accept:' echo ' FDARGS="..." arguments for the booted kernel' echo ' FDINITRD=file initrd for the booted kernel' - echo '' - echo ' kvm_guest.config - Enable Kconfig items for running this kernel as a KVM guest' - echo ' xen.config - Enable Kconfig items for running this kernel as a Xen guest' - echo ' x86_debug.config - Enable tip tree debugging options for testing' endefkernel/configs/debug.config +2
-0@@ -1,3 +1,5 @@ +# Help: Debugging for CI systems and finding regressions +# # The config is based on running daily CI for enterprise Linux distros to # seek regressions on linux-next builds on different bare-metal and virtual # platforms. It can be used for example,kernel/configs/kvm_guest.config +1
-0@@ -1,3 +1,4 @@ +# Help: Bootable as a KVM guest CONFIG_NET=y CONFIG_NET_CORE=y CONFIG_NETDEVICES=ykernel/configs/nopm.config +2
-0@@ -1,3 +1,5 @@ +# Help: Disable Power Management + CONFIG_PM=n CONFIG_SUSPEND=n CONFIG_HIBERNATION=nkernel/configs/rust.config +1
-0@@ -1 +1,2 @@ +# Help: Enable Rust CONFIG_RUST=ykernel/configs/tiny.config +2
-0@@ -1,3 +1,5 @@ +# Help: Size-optimized kernel image +# # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_KERNEL_GZIP is not setkernel/configs/x86_debug.config +1
-0@@ -1,3 +1,4 @@ +# Help: Debugging options for tip tree testing CONFIG_X86_DEBUG_FPU=y CONFIG_LOCK_STAT=y CONFIG_DEBUG_VM=ykernel/configs/xen.config +2
-0@@ -1,3 +1,5 @@ +# Help: Bootable as a Xen guest +# # global stuff - these enable us to allow some # of the not so generic stuff below for xen CONFIG_PARAVIRT=yscripts/kconfig/Makefile +12
-3@@ -93,11 +93,13 @@ endif %_defconfig: $(obj)/conf $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig) -configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@) +configfiles = $(wildcard $(srctree)/kernel/configs/$(1) $(srctree)/arch/$(SRCARCH)/configs/$(1)) +all-config-fragments = $(call configfiles,*.config) +config-fragments = $(call configfiles,$@) %.config: $(obj)/conf - $(if $(call configfiles),, $(error No configuration exists for this target on this architecture)) - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(configfiles) + $(if $(config-fragments),, $(error $@ fragment does not exists on this architecture)) + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m .config $(config-fragments) $(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig PHONY += tinyconfig@@ -115,6 +117,7 @@ clean-files += tests/.cache # Help text used by make help help: + @echo 'Configuration targets:' @echo ' config - Update current config utilising a line-oriented program' @echo ' nconfig - Update current config utilising a ncurses menu based program' @echo ' menuconfig - Update current config utilising a menu based program'@@ -141,6 +144,12 @@ help: @echo ' default value without prompting' @echo ' tinyconfig - Configure the tiniest possible kernel' @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)' + @echo '' + @echo 'Configuration topic targets:' + @$(foreach f, $(all-config-fragments), \ + if help=$$(grep -m1 '^# Help: ' $(f)); then \ + printf ' %-25s - %s\n' '$(notdir $(f))' "$${help#*: }"; \ + fi;) # =========================================================================== # object files used by all kconfig flavoursSignature · 1 line
2.34.1
Signature · 3 lines
epost|xmpp: [email protected] irc://oftc.net/nsc ↳ gpg: 18ed 52db e34f 860e e9fb c82b 7d97 0932 55a0 ce7f -- frykten for herren er opphav til kunnskap --