diff -r db6a82f4b930 -r 5506fbbad59b kconfig/kconfig.mk --- a/kconfig/kconfig.mk Mon Sep 15 21:03:24 2008 +0000 +++ b/kconfig/kconfig.mk Tue Sep 16 17:39:40 2008 +0000 @@ -19,24 +19,31 @@ endif # Build a list of all config files -ARCHS = $(patsubst $(CT_LIB_DIR)/arch/%,%,$(wildcard $(CT_LIB_DIR)/arch/*)) -ARCH_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/arch/*/*.in) +ARCH_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/arch/*/config.in) +KERN_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/kernel/*.in) DEBUG_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/debug/*.in) TOOLS_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/tools/*.in) STATIC_CONFIG_FILES = $(shell find $(CT_LIB_DIR)/config -type f -name '*.in') GEN_CONFIG_FILES=$(CT_TOP_DIR)/config.gen/arch.in \ + $(CT_TOP_DIR)/config.gen/kernel.in \ $(CT_TOP_DIR)/config.gen/debug.in \ $(CT_TOP_DIR)/config.gen/tools.in CONFIG_FILES=$(STATIC_CONFIG_FILES) $(GEN_CONFIG_FILES) -$(GEN_CONFIG_FILES):: $(CT_TOP_DIR)/config.gen +# Build list of items +ARCHS = $(patsubst $(CT_LIB_DIR)/arch/%/config.in,%,$(ARCH_CONFIG_FILES)) +KERNELS = $(patsubst $(CT_LIB_DIR)/config/kernel/%.in,%,$(KERN_CONFIG_FILES)) + +$(GEN_CONFIG_FILES): $(CT_TOP_DIR)/config.gen \ + $(CT_LIB_DIR)/kconfig/kconfig.mk $(CT_TOP_DIR)/config.gen: @mkdir -p $(CT_TOP_DIR)/config.gen -$(CT_TOP_DIR)/config.gen/arch.in:: $(ARCH_CONFIG_FILES) +$(CT_TOP_DIR)/config.gen/arch.in: $(ARCH_CONFIG_FILES) + @echo ' IN config.gen/arch.in' @(echo "# Architectures menu"; \ echo "# Generated file, do not edit!!!"; \ echo ""; \ @@ -57,46 +64,77 @@ echo "endif"; \ echo ""; \ done; \ - ) >$@ + ) >$@ -$(CT_TOP_DIR)/config.gen/debug.in:: $(DEBUG_CONFIG_FILES) - @echo "# Debug facilities menu" >$@ - @echo "# Generated file, do not edit!!!" >>$@ - @echo "menu \"Debug facilities\"" >>$@ - @for f in $(patsubst $(CT_TOP_DIR)/%,%,$(wildcard $(CT_TOP_DIR)/config/debug/*.in)); do \ - echo "source $${f}"; \ - done >>$@ - @echo "endmenu" >>$@ +$(CT_TOP_DIR)/config.gen/kernel.in: $(KERN_CONFIG_FILES) + @echo ' IN config.gen/kernel.in' + @(echo "# Kernel menu"; \ + echo "# Generated file, do not edit!!!"; \ + echo ""; \ + for kern in $(KERNELS); do \ + _exp="$${kern/*./}"; \ + _kern1="$${kern/.experimental/}"; \ + _kern2=$$(echo "$${_kern1}" |sed -r -e 's/[ -\/]/_/g;'); \ + echo "config KERNEL_$${_kern2}"; \ + echo " bool"; \ + printf " prompt \"$${_kern1}"; \ + if [ "$${_exp}" != "$${kern}" ]; then \ + echo " (EXPERIMENTAL)\""; \ + echo " depends on EXPERIMENTAL"; \ + else \ + echo "\""; \ + fi; \ + echo "if KERNEL_$${_kern2}"; \ + echo "config KERNEL"; \ + echo " default \"$${_kern1}\" if KERNEL_$${_kern2}"; \ + echo "source config/kernel/$${kern}.in"; \ + echo "endif"; \ + echo ""; \ + done; \ + ) >$@ -$(CT_TOP_DIR)/config.gen/tools.in:: $(TOOLS_CONFIG_FILES) - @echo "# Tools facilities menu" >$@ - @echo "# Generated file, do not edit!!!" >>$@ - @echo "menu \"Tools facilities\"" >>$@ - @for f in $(patsubst $(CT_TOP_DIR)/%,%,$(wildcard $(CT_TOP_DIR)/config/tools/*.in)); do \ - echo "source $${f}"; \ - done >>$@ - @echo "endmenu" >>$@ +$(CT_TOP_DIR)/config.gen/debug.in: $(DEBUG_CONFIG_FILES) + @echo ' IN config.gen/debug.in' + @(echo "# Debug facilities menu"; \ + echo "# Generated file, do not edit!!!"; \ + echo "menu \"Debug facilities\""; \ + for f in $(patsubst $(CT_TOP_DIR)/%,%,$(DEBUG_CONFIG_FILES)); do \ + echo "source $${f}"; \ + done; \ + echo "endmenu"; \ + ) >$@ -config menuconfig oldconfig defoldconfig extractconfig:: $(KCONFIG_TOP) +$(CT_TOP_DIR)/config.gen/tools.in: $(TOOLS_CONFIG_FILES) + @echo ' IN config.gen/tools.in' + @(echo "# Tools facilities menu"; \ + echo "# Generated file, do not edit!!!"; \ + echo "menu \"Tools facilities\""; \ + for f in $(patsubst $(CT_TOP_DIR)/%,%,$(TOOLS_CONFIG_FILES)); do \ + echo "source $${f}"; \ + done; \ + echo "endmenu"; \ + ) >$@ + +config menuconfig oldconfig defoldconfig extractconfig: $(KCONFIG_TOP) $(KCONFIG_TOP): @ln -sf $(CT_LIB_DIR)/config config -menuconfig:: $(obj)/mconf $(CONFIG_FILES) - @$< $(KCONFIG_TOP) +menuconfig: $(CONFIG_FILES) $(obj)/mconf + @$(obj)/mconf $(KCONFIG_TOP) -config:: $(obj)/conf $(CONFIG_FILES) - @$< $(KCONFIG_TOP) +config: $(CONFIG_FILES) $(obj)/conf + @$(obj)/conf $(KCONFIG_TOP) -oldconfig:: $(obj)/conf $(CONFIG_FILES) - @$< -s $(KCONFIG_TOP) +oldconfig: $(CONFIG_FILES) $(obj)/conf + @$(obj)/conf -s $(KCONFIG_TOP) -defoldconfig:: $(obj)/conf $(CONFIG_FILES) - @yes "" |$< -s $(KCONFIG_TOP) >/dev/null +defoldconfig: $(CONFIG_FILES) $(obj)/conf + @yes "" |$(obj)/conf -s $(KCONFIG_TOP) -extractconfig:: $(obj)/conf $(CONFIG_FILES) +extractconfig: $(CONFIG_FILES) $(obj)/conf @$(CT_LIB_DIR)/tools/extract-config.sh >.config - @$< -s $(KCONFIG_TOP) + @$(obj)/conf -s $(KCONFIG_TOP) # Help text used by make help help-config:: @@ -111,9 +149,10 @@ SHIPPED := $(CT_LIB_DIR)/kconfig/zconf.tab.c $(CT_LIB_DIR)/kconfig/lex.zconf.c $(CT_LIB_DIR)/kconfig/zconf.hash.c %.c: %.c_shipped + @echo ' LN kconfig/$(notdir $@)' @ln -s $(notdir $<) $@ -$(obj)/conf $(obj)/mconf:: $(obj) +$(obj)/conf $(obj)/mconf: $(obj) $(obj): @mkdir -p $(obj) @@ -128,12 +167,18 @@ $(CT_LIB_DIR)/kconfig/symbol.c \ $(CT_LIB_DIR)/kconfig/util.c -$(obj)/mconf:: $(SHIPPED) $(CT_LIB_DIR)/kconfig/mconf.c $(HEADERS) $(FILES) +$(obj)/mconf: $(SHIPPED) $(CT_LIB_DIR)/kconfig/mconf.c \ + $(HEADERS) $(FILES) \ + $(CT_LIB_DIR)/kconfig/kconfig.mk + @echo ' LNK kconfig/mconf' @$(HOST_CC) $(CFLAGS) -o $@ $(CT_LIB_DIR)/kconfig/{mconf.c,zconf.tab.c,lxdialog/*.c} \ $(shell $(CT_LIB_DIR)/kconfig/lxdialog/check-lxdialog.sh -ccflags) \ $(shell $(CT_LIB_DIR)/kconfig/lxdialog/check-lxdialog.sh -ldflags $(HOST_CC)) -$(obj)/conf:: $(SHIPPED) $(CT_LIB_DIR)/kconfig/conf.c $(HEADERS) $(FILES) +$(obj)/conf: $(SHIPPED) $(CT_LIB_DIR)/kconfig/conf.c \ + $(HEADERS) $(FILES) \ + $(CT_LIB_DIR)/kconfig/kconfig.mk + @echo ' LNK kconfig/conf' @$(HOST_CC) $(CFLAGS) -o $@ $(CT_LIB_DIR)/kconfig/{conf.c,zconf.tab.c} clean::