kconfig/kconfig.mk
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 13 10:32:38 2008 +0000 (2008-07-13)
changeset 645 8e58024f8e37
parent 628 87802cb25a0f
child 816 0a0a4779f35e
permissions -rw-r--r--
Ioannis E. VENETIS <venetis@mail.capsl.udel.edu> pointed out that GMP and MPFR were not used by gcc.
Turned out that none could use GMP and MPFR as the config option changed its name, but the change was not propagated to all users.

/trunk/scripts/build/binutils.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 2 1 1 0 +-
/trunk/scripts/build/cc_gcc.sh | 6 3 3 0 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
yann@1
     1
# ===========================================================================
yann@197
     2
# crosstool-NG configuration targets
yann@1
     3
# These targets are used from top-level makefile
yann@1
     4
yann@148
     5
# Derive the project version from, well, the project version:
yann@148
     6
export PROJECTVERSION=$(CT_VERSION)
yann@148
     7
yann@1
     8
KCONFIG_TOP = config/config.in
yann@182
     9
obj = $(CT_TOP_DIR)/kconfig
yann@276
    10
PHONY += clean help oldconfig menuconfig config defoldconfig extractconfig
yann@1
    11
yann@19
    12
# Darwin (MacOS-X) does not have proper libintl support
yann@19
    13
ifeq ($(shell uname -s),Darwin)
yann@19
    14
KBUILD_NO_NLS:=1
yann@19
    15
endif
yann@19
    16
yann@18
    17
ifneq ($(KBUILD_NO_NLS),)
yann@18
    18
CFLAGS += -DKBUILD_NO_NLS
yann@18
    19
endif
yann@18
    20
yann@97
    21
# Build a list of all config files
yann@628
    22
ARCHS              = $(patsubst $(CT_LIB_DIR)/arch/%,%,$(wildcard $(CT_LIB_DIR)/arch/*))
yann@628
    23
ARCH_CONFIG_FILE   = $(wildcard $(CT_LIB_DIR)/arch/*/*.in)
yann@628
    24
DEBUG_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/debug/*.in)
yann@628
    25
TOOLS_CONFIG_FILES = $(wildcard $(CT_LIB_DIR)/config/tools/*.in)
yann@97
    26
yann@182
    27
STATIC_CONFIG_FILES = $(shell find $(CT_LIB_DIR)/config -type f -name '*.in')
yann@628
    28
GEN_CONFIG_FILES=$(CT_TOP_DIR)/config.gen/arch.in	\
yann@628
    29
				 $(CT_TOP_DIR)/config.gen/debug.in	\
yann@182
    30
				 $(CT_TOP_DIR)/config.gen/tools.in
yann@88
    31
yann@182
    32
CONFIG_FILES=$(STATIC_CONFIG_FILES) $(GEN_CONFIG_FILES)
yann@182
    33
yann@182
    34
$(GEN_CONFIG_FILES):: $(CT_TOP_DIR)/config.gen
yann@182
    35
yann@182
    36
$(CT_TOP_DIR)/config.gen:
yann@182
    37
	@mkdir -p $(CT_TOP_DIR)/config.gen
yann@182
    38
yann@628
    39
$(CT_TOP_DIR)/config.gen/arch.in:: $(ARCH_CONFIG_FILES)
yann@628
    40
	@(echo "# Architectures menu";                                              \
yann@628
    41
	  echo "# Generated file, do not edit!!!";                                  \
yann@628
    42
	  echo "";                                                                  \
yann@628
    43
	  for arch in $(ARCHS); do                                                  \
yann@628
    44
	    echo "config ARCH_$${arch}";                                            \
yann@628
    45
	    echo "    bool";                                                        \
yann@642
    46
	    printf "    prompt \"$${arch}";                                         \
yann@628
    47
	    if [ -f $(CT_LIB_DIR)/arch/$${arch}/experimental ]; then                \
yann@628
    48
	      echo " (EXPERIMENTAL)\"";                                             \
yann@628
    49
	      echo "    depends on EXPERIMENTAL";                                   \
yann@628
    50
	    else                                                                    \
yann@628
    51
	      echo "\"";                                                            \
yann@628
    52
	    fi;                                                                     \
yann@628
    53
	    echo "if ARCH_$${arch}";                                                \
yann@628
    54
	    echo "config ARCH";                                                     \
yann@628
    55
	    echo "    default \"$${arch}\" if ARCH_$${arch}";                       \
yann@628
    56
	    echo "source config/arch/$${arch}/config.in";                           \
yann@628
    57
	    echo "endif";                                                           \
yann@628
    58
	    echo "";                                                                \
yann@628
    59
	  done;                                                                     \
yann@628
    60
	) >$@
yann@628
    61
yann@182
    62
$(CT_TOP_DIR)/config.gen/debug.in:: $(DEBUG_CONFIG_FILES)
yann@97
    63
	@echo "# Debug facilities menu" >$@
yann@97
    64
	@echo "# Generated file, do not edit!!!" >>$@
yann@97
    65
	@echo "menu \"Debug facilities\"" >>$@
yann@97
    66
	@for f in $(patsubst $(CT_TOP_DIR)/%,%,$(wildcard $(CT_TOP_DIR)/config/debug/*.in)); do \
yann@97
    67
	     echo "source $${f}";                                                               \
yann@97
    68
	 done >>$@
yann@97
    69
	@echo "endmenu" >>$@
yann@97
    70
yann@182
    71
$(CT_TOP_DIR)/config.gen/tools.in:: $(TOOLS_CONFIG_FILES)
yann@148
    72
	@echo "# Tools facilities menu" >$@
yann@148
    73
	@echo "# Generated file, do not edit!!!" >>$@
yann@148
    74
	@echo "menu \"Tools facilities\"" >>$@
yann@148
    75
	@for f in $(patsubst $(CT_TOP_DIR)/%,%,$(wildcard $(CT_TOP_DIR)/config/tools/*.in)); do \
yann@148
    76
	     echo "source $${f}";                                                               \
yann@148
    77
	 done >>$@
yann@148
    78
	@echo "endmenu" >>$@
yann@148
    79
yann@276
    80
config menuconfig oldconfig defoldconfig extractconfig:: $(KCONFIG_TOP)
yann@182
    81
yann@182
    82
$(KCONFIG_TOP):
yann@370
    83
	@ln -sf $(CT_LIB_DIR)/config config
yann@182
    84
yann@182
    85
menuconfig:: $(obj)/mconf $(CONFIG_FILES)
yann@1
    86
	@$< $(KCONFIG_TOP)
yann@1
    87
yann@182
    88
config:: $(obj)/conf $(CONFIG_FILES)
yann@1
    89
	@$< $(KCONFIG_TOP)
yann@1
    90
yann@182
    91
oldconfig:: $(obj)/conf $(CONFIG_FILES)
yann@1
    92
	@$< -s $(KCONFIG_TOP)
yann@1
    93
yann@182
    94
defoldconfig:: $(obj)/conf $(CONFIG_FILES)
yann@163
    95
	@yes "" |$< -s $(KCONFIG_TOP) >/dev/null
yann@159
    96
yann@276
    97
extractconfig:: $(obj)/conf $(CONFIG_FILES)
yann@276
    98
	@$(CT_LIB_DIR)/tools/extract-config.sh >.config
yann@276
    99
	@$< -s $(KCONFIG_TOP)
yann@276
   100
yann@1
   101
# Help text used by make help
yann@176
   102
help-config::
yann@333
   103
	@echo  '  config             - Update current config using a line-oriented program'
yann@333
   104
	@echo  '  menuconfig         - Update current config using a menu based program'
yann@333
   105
	@echo  '  oldconfig          - Update current config using a provided .config as base'
yann@333
   106
	@echo  '  extractconfig      - Create a new config using options extracted from a'
yann@333
   107
	@echo  '                       build log piped into stdin'
yann@1
   108
yann@1
   109
# Cheesy build
yann@1
   110
yann@285
   111
SHIPPED := $(CT_LIB_DIR)/kconfig/zconf.tab.c $(CT_LIB_DIR)/kconfig/lex.zconf.c $(CT_LIB_DIR)/kconfig/zconf.hash.c
yann@1
   112
yann@1
   113
%.c: %.c_shipped
yann@1
   114
	@ln -s $(notdir $<) $@
yann@1
   115
yann@182
   116
$(obj)/conf $(obj)/mconf:: $(obj)
yann@182
   117
yann@182
   118
$(obj):
yann@182
   119
	@mkdir -p $(obj)
yann@182
   120
yann@182
   121
$(obj)/mconf:: $(SHIPPED) $(CT_LIB_DIR)/kconfig/mconf.c
yann@182
   122
	@$(HOST_CC) $(CFLAGS) -o $@ $(CT_LIB_DIR)/kconfig/{mconf.c,zconf.tab.c,lxdialog/*.c} \
yann@375
   123
	     $(shell $(CT_LIB_DIR)/kconfig/lxdialog/check-lxdialog.sh -ccflags)              \
yann@375
   124
	     $(shell $(CT_LIB_DIR)/kconfig/lxdialog/check-lxdialog.sh -ldflags $(HOST_CC))
yann@1
   125
yann@182
   126
$(obj)/conf:: $(SHIPPED) $(CT_LIB_DIR)/kconfig/conf.c
yann@182
   127
	@$(HOST_CC) $(CFLAGS) -o $@ $(CT_LIB_DIR)/kconfig/{conf.c,zconf.tab.c}
yann@1
   128
yann@1
   129
clean::
yann@182
   130
	@rm -f $(CT_TOP_DIR)/kconfig/{,m}conf
yann@285
   131
	@rm -f $(SHIPPED)
yann@260
   132
	@rmdir --ignore-fail-on-non-empty $(CT_TOP_DIR)/kconfig 2>/dev/null || true
yann@285
   133
	@rm -f $(CT_TOP_DIR)/config 2>/dev/null || true
yann@182
   134
	@rm -rf $(CT_TOP_DIR)/config.gen