core: introduce a generated kconfig snippet
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 17 Jul 2016 10:34:26 +0000 (12:34 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 27 Aug 2016 19:44:57 +0000 (21:44 +0200)
Add the infrastructure for adding generated kconfig snippet in the
menuconfig.

For now, the kconfig snippet is generated empty, the recipe for filling
it in will be introduced in sub-sequent patches.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Config.in
Makefile
docs/manual/manual.mk

index 741a7ce8ad25f2d1c9544992483f5cdeebacbeb7..5273cada7989085a73f10a8a33cf01a3b6932aea 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -18,6 +18,10 @@ config BR2_EXTERNAL
        string
        option env="BR2_EXTERNAL"
 
+config BR2_BUILD_DIR
+       string
+       option env="BUILD_DIR"
+
 # Hidden config symbols for packages to check system gcc version
 config BR2_HOST_GCC_VERSION
        string
@@ -763,3 +767,5 @@ menu "User-provided options"
 source "$BR2_EXTERNAL/Config.in"
 
 endmenu
+
+source "$BR2_BUILD_DIR/.br2-external.in"
index c9865a6402fa2e88e2186b440d71c7a77453f67c..c7ac59edf3d8f48249d7fd7a605ef0542aca631a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -761,7 +761,7 @@ HOSTCFLAGS = $(CFLAGS_FOR_BUILD)
 export HOSTCFLAGS
 
 .PHONY: prepare-kconfig
-prepare-kconfig: outputmakefile
+prepare-kconfig: outputmakefile $(BUILD_DIR)/.br2-external.in
 
 $(BUILD_DIR)/buildroot-config/%onf:
        mkdir -p $(@D)/lxdialog
@@ -780,6 +780,7 @@ COMMON_CONFIG_ENV = \
        BR2_CONFIG=$(BR2_CONFIG) \
        BR2_EXTERNAL=$(BR2_EXTERNAL) \
        HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
+       BUILD_DIR=$(BUILD_DIR) \
        SKIP_LEGACY=
 
 xconfig: $(BUILD_DIR)/buildroot-config/qconf prepare-kconfig
@@ -880,6 +881,13 @@ ifeq ($(NEED_WRAPPER),y)
        $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
 endif
 
+# Even though the target is a real file, we mark it as PHONY as we
+# want it to be re-generated each time make is invoked, in case the
+# value of BR2_EXTERNAL is changed.
+.PHONY: $(BUILD_DIR)/.br2-external.in
+$(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
+       @touch $@
+
 # printvars prints all the variables currently defined in our
 # Makefiles. Alternatively, if a non-empty VARS variable is passed,
 # only the variables matching the make pattern passed in VARS are
index caf080a84d9015df5e1324f843ec1576b4b891e1..b26f91234143f360bd13e0977b5be8d4def2ccc6 100644 (file)
@@ -7,6 +7,9 @@
 MANUAL_SOURCES = $(sort $(wildcard docs/manual/*.txt) $(wildcard docs/images/*))
 MANUAL_RESOURCES = $(TOPDIR)/docs/images
 
+# Ensure the kconfig snippet is generated (for MANUAL_GEN_LISTS, below):
+MANUAL_DEPENDENCIES += prepare-kconfig
+
 # Our manual needs to generate lists
 define MANUAL_GEN_LISTS
        $(Q)$(call MESSAGE,"Updating the manual lists...")