1.1 --- a/config/config.mk Thu Apr 01 19:52:54 2010 +0200
1.2 +++ b/config/config.mk Wed Nov 24 21:01:46 2010 +0100
1.3 @@ -9,16 +9,20 @@
1.4 KCONFIG_TOP = config/config.in
1.5
1.6 # Build the list of all source config files
1.7 -STATIC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(shell find $(CT_LIB_DIR)/config -type f -name '*.in' 2>/dev/null))
1.8 +STATIC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(shell find $(CT_LIB_DIR)/config -type f \( -name '*.in' -o -name '*.in.2' \) 2>/dev/null))
1.9 # ... and how to access them:
1.10 $(STATIC_CONFIG_FILES): config
1.11
1.12 # Build a list of per-component-type source config files
1.13 -ARCH_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/arch/*.in))
1.14 -KERNEL_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/kernel/*.in))
1.15 -CC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/cc/*.in))
1.16 -LIBC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/libc/*.in))
1.17 -DEBUG_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/debug/*.in))
1.18 +ARCH_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/arch/*.in))
1.19 +ARCH_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/arch/*.in.2))
1.20 +KERNEL_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/kernel/*.in))
1.21 +KERNEL_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/kernel/*.in.2))
1.22 +CC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/cc/*.in))
1.23 +CC_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/cc/*.in.2))
1.24 +LIBC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/libc/*.in))
1.25 +LIBC_CONFIG_FILES_2 = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/libc/*.in.2))
1.26 +DEBUG_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/debug/*.in))
1.27
1.28 # Build the list of generated config files
1.29 GEN_CONFIG_FILES = config.gen/arch.in \
1.30 @@ -117,6 +121,20 @@
1.31 echo "source \"$${file}\""; \
1.32 done; \
1.33 ) >$(1)
1.34 + $(SILENT)(echo "# $(2) second part options"; \
1.35 + echo "# Generated file, do not edit!!!"; \
1.36 + for entry in $(6); do \
1.37 + file="$(4)/$${entry}.in"; \
1.38 + _entry=$$(echo "$${entry}" |$(sed) -r -s -e 's/[-.+]/_/g;'); \
1.39 + if [ -f "$${file}.2" ]; then \
1.40 + echo ""; \
1.41 + echo "if $(3)_$${_entry}"; \
1.42 + echo "comment \"$${entry} other options\""; \
1.43 + echo "source \"$${file}.2\""; \
1.44 + echo "endif"; \
1.45 + fi; \
1.46 + done; \
1.47 + ) >$(1).2
1.48 endef
1.49
1.50 # The function 'build_gen_menu_in' builds a menuconfig for each component in
1.51 @@ -154,16 +172,18 @@
1.52 #-----------------------------------------------------------
1.53 # The rules for the generated config files
1.54
1.55 -config.gen/arch.in: $(ARCH_CONFIG_FILES)
1.56 +# WARNING! If a .in file disapears between two runs, that will NOT be detected!
1.57 +
1.58 +config.gen/arch.in: $(ARCH_CONFIG_FILES) $(ARCH_CONFIG_FILES_2)
1.59 $(call build_gen_choice_in,$@,Target Architecture,ARCH,config/arch,Y,$(ARCHS))
1.60
1.61 -config.gen/kernel.in: $(KERNEL_CONFIG_FILES)
1.62 +config.gen/kernel.in: $(KERNEL_CONFIG_FILES) $(KERNEL_CONFIG_FILES_2)
1.63 $(call build_gen_choice_in,$@,Target OS,KERNEL,config/kernel,Y,$(KERNELS))
1.64
1.65 -config.gen/cc.in: $(CC_CONFIG_FILES)
1.66 +config.gen/cc.in: $(CC_CONFIG_FILES) $(CC_CONFIG_FILES_2)
1.67 $(call build_gen_choice_in,$@,C compiler,CC,config/cc,,$(CCS))
1.68
1.69 -config.gen/libc.in: $(LIBC_CONFIG_FILES)
1.70 +config.gen/libc.in: $(LIBC_CONFIG_FILES) $(LIBC_CONFIG_FILES_2)
1.71 $(call build_gen_choice_in,$@,C library,LIBC,config/libc,Y,$(LIBCS))
1.72
1.73 config.gen/debug.in: $(DEBUG_CONFIG_FILES)