config: Add config support for multiple compilers

This change updates the config to support multiple compilers by moving
CC_.* to CC_GCC_.* to make room for other compilers.

We also update gen_in_frags.sh to check for a default cc.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Reviewed-by: Yann Diorcet <diorcetyann@gmail.com>
Reviewed-by: Bryan Hundven <bryanhundven@gmail.com>
This commit is contained in:
Ray Donnelly 2015-05-29 21:40:49 +01:00
parent 3049c4c1e2
commit 541199de3a
4 changed files with 65 additions and 60 deletions

View File

@ -4,6 +4,7 @@ menu "C compiler"
config CC
string
default "gcc"
config CC_VERSION
string
@ -134,6 +135,4 @@ config CC_LANG_OTHERS
Eg. gcc-4.1+ has a toy programming language, treelang. As it is not useful
in real life, it is not available in the selection above.
source "config.gen/cc.in.2"
endmenu

View File

@ -1,5 +1,6 @@
# Compiler options
#
## default y
## select CC_SUPPORT_CXX
## select CC_SUPPORT_FORTRAN
## select CC_SUPPORT_JAVA
@ -36,256 +37,256 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config CC_V_5_1
config CC_GCC_V_5_1
bool
prompt "5.1.0"
select CC_GCC_5_1
config CC_V_linaro_4_9
config CC_GCC_V_linaro_4_9
bool
prompt "linaro-4.9-2015.03"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_9
config CC_V_4_9_2
config CC_GCC_V_4_9_2
bool
prompt "4.9.2"
select CC_GCC_4_9
config CC_V_4_9_1
config CC_GCC_V_4_9_1
bool
prompt "4.9.1"
select CC_GCC_4_9
config CC_V_4_9_0
config CC_GCC_V_4_9_0
bool
prompt "4.9.0"
select CC_GCC_4_9
config CC_V_linaro_4_8
config CC_GCC_V_linaro_4_8
bool
prompt "linaro-4.8-2015.02"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_8
config CC_V_4_8_4
config CC_GCC_V_4_8_4
bool
prompt "4.8.4"
select CC_GCC_4_8
config CC_V_4_8_3
config CC_GCC_V_4_8_3
bool
prompt "4.8.3"
select CC_GCC_4_8
config CC_V_4_8_2
config CC_GCC_V_4_8_2
bool
prompt "4.8.2"
select CC_GCC_4_8
config CC_V_4_8_1
config CC_GCC_V_4_8_1
bool
prompt "4.8.1"
select CC_GCC_4_8
config CC_V_4_8_0
config CC_GCC_V_4_8_0
bool
prompt "4.8.0"
select CC_GCC_4_8
config CC_V_linaro_4_7
config CC_GCC_V_linaro_4_7
bool
prompt "linaro-4.7-2014.06"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_7
config CC_V_4_7_4
config CC_GCC_V_4_7_4
bool
prompt "4.7.4"
select CC_GCC_4_7
config CC_V_4_7_3
config CC_GCC_V_4_7_3
bool
prompt "4.7.3"
select CC_GCC_4_7
config CC_V_4_7_2
config CC_GCC_V_4_7_2
bool
prompt "4.7.2"
select CC_GCC_4_7
config CC_V_4_7_1
config CC_GCC_V_4_7_1
bool
prompt "4.7.1"
select CC_GCC_4_7
config CC_V_4_7_0
config CC_GCC_V_4_7_0
bool
prompt "4.7.0"
select CC_GCC_4_7
config CC_V_linaro_4_6
config CC_GCC_V_linaro_4_6
bool
prompt "linaro-4.6-2013.05"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_6
config CC_V_4_6_4
config CC_GCC_V_4_6_4
bool
prompt "4.6.4"
select CC_GCC_4_6
config CC_V_4_6_3
config CC_GCC_V_4_6_3
bool
prompt "4.6.3"
select CC_GCC_4_6
config CC_V_4_6_2
config CC_GCC_V_4_6_2
bool
prompt "4.6.2"
select CC_GCC_4_6
config CC_V_4_6_1
config CC_GCC_V_4_6_1
bool
prompt "4.6.1"
select CC_GCC_4_6
config CC_V_4_6_0
config CC_GCC_V_4_6_0
bool
prompt "4.6.0"
select CC_GCC_4_6
config CC_V_linaro_4_5
config CC_GCC_V_linaro_4_5
bool
prompt "linaro-4.5-2012.03"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_5
config CC_V_4_5_3
config CC_GCC_V_4_5_3
bool
prompt "4.5.3"
select CC_GCC_4_5
config CC_V_4_5_2
config CC_GCC_V_4_5_2
bool
prompt "4.5.2"
select CC_GCC_4_5
config CC_V_4_5_1
config CC_GCC_V_4_5_1
bool
prompt "4.5.1"
select CC_GCC_4_5
config CC_V_4_5_0
config CC_GCC_V_4_5_0
bool
prompt "4.5.0"
select CC_GCC_4_5
config CC_V_linaro_4_4
config CC_GCC_V_linaro_4_4
bool
prompt "linaro-4.4-2011.02-0"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_4
config CC_V_4_4_7
config CC_GCC_V_4_4_7
bool
prompt "4.4.7"
select CC_GCC_4_4
config CC_V_4_4_6
config CC_GCC_V_4_4_6
bool
prompt "4.4.6"
select CC_GCC_4_4
config CC_V_4_4_5
config CC_GCC_V_4_4_5
bool
prompt "4.4.5"
select CC_GCC_4_4
config CC_V_4_4_4
config CC_GCC_V_4_4_4
bool
prompt "4.4.4"
select CC_GCC_4_4
config CC_V_4_4_3
config CC_GCC_V_4_4_3
bool
prompt "4.4.3"
select CC_GCC_4_4
config CC_V_4_4_2
config CC_GCC_V_4_4_2
bool
prompt "4.4.2"
select CC_GCC_4_4
config CC_V_4_4_1
config CC_GCC_V_4_4_1
bool
prompt "4.4.1"
select CC_GCC_4_4
config CC_V_4_4_0
config CC_GCC_V_4_4_0
bool
prompt "4.4.0"
select CC_GCC_4_4
config CC_V_4_3_6
config CC_GCC_V_4_3_6
bool
prompt "4.3.6"
select CC_GCC_4_3
config CC_V_4_3_5
config CC_GCC_V_4_3_5
bool
prompt "4.3.5"
select CC_GCC_4_3
config CC_V_4_3_4
config CC_GCC_V_4_3_4
bool
prompt "4.3.4"
select CC_GCC_4_3
config CC_V_4_3_3
config CC_GCC_V_4_3_3
bool
prompt "4.3.3"
select CC_GCC_4_3
config CC_V_4_3_2
config CC_GCC_V_4_3_2
bool
prompt "4.3.2"
select CC_GCC_4_3
config CC_V_4_3_1
config CC_GCC_V_4_3_1
bool
prompt "4.3.1"
select CC_GCC_4_3
config CC_V_4_2_4
config CC_GCC_V_4_2_4
bool
prompt "4.2.4"
select CC_GCC_4_2
# We need that one, it's the only version with avr32 support
# because we have a patch for it
config CC_V_4_2_2
config CC_GCC_V_4_2_2
bool
prompt "4.2.2"
select CC_GCC_4_2
config CC_V_4_1_2
config CC_GCC_V_4_1_2
bool
prompt "4.1.2 (OBSOLETE)"
depends on OBSOLETE
config CC_V_4_0_4
config CC_GCC_V_4_0_4
bool
prompt "4.0.4 (OBSOLETE)"
depends on OBSOLETE
config CC_V_3_4_6
config CC_GCC_V_3_4_6
bool
prompt "3.4.6 (OBSOLETE)"
depends on OBSOLETE
config CC_CUSTOM
config CC_GCC_CUSTOM
bool
prompt "Custom gcc"
depends on EXPERIMENTAL
@ -293,9 +294,9 @@ config CC_CUSTOM
endchoice
if CC_CUSTOM
if CC_GCC_CUSTOM
config CC_CUSTOM_LOCATION
config CC_GCC_CUSTOM_LOCATION
string
prompt "Full path to custom gcc source"
default ""
@ -303,7 +304,7 @@ config CC_CUSTOM_LOCATION
Enter the path to the directory (or tarball) of your source for gcc,
or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/gcc
endif #CC_CUSTOM
endif #CC_GCC_CUSTOM
config CC_GCC_4_2
bool
@ -527,7 +528,7 @@ config CC_GCC_HAS_LIBQUADMATH
config CC_GCC_HAS_LIBSANITIZER
bool
config CC_VERSION
config CC_GCC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
@ -591,3 +592,5 @@ config CC_LANG_JAVA_USE_ECJ
# Fortran always requires GMP+MPFR, whatever the gcc version
config CC_LANG_FORTRAN
select CC_GCC_USE_GMP_MPFR
source "config/cc/gcc.in.2"

View File

@ -1,6 +1,6 @@
# gcc configuration options
config CC_ENABLE_CXX_FLAGS
config CC_GCC_ENABLE_CXX_FLAGS
string
prompt "Flags to pass to --enable-cxx-flags"
default ""
@ -11,7 +11,7 @@ config CC_ENABLE_CXX_FLAGS
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.
config CC_CORE_EXTRA_CONFIG_ARRAY
config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
string
prompt "Core gcc extra config"
default ""
@ -26,7 +26,7 @@ config CC_CORE_EXTRA_CONFIG_ARRAY
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config CC_EXTRA_CONFIG_ARRAY
config CC_GCC_EXTRA_CONFIG_ARRAY
string
prompt "gcc extra config"
default ""
@ -38,9 +38,9 @@ config CC_EXTRA_CONFIG_ARRAY
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config STATIC_TOOLCHAIN
select CC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later
config CC_STATIC_LIBSTDCXX
config CC_GCC_STATIC_LIBSTDCXX
bool
prompt "Link libstdc++ statically into the gcc binary"
default y

View File

@ -138,6 +138,9 @@ gen_menu() {
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
printf ' bool\n'
if "${grep}" -E '^## default' ${file} >/dev/null 2>&1; then
"${sed}" -r -e '/^## default ?/!d; s/^## default ?/ default /;' ${file} 2>/dev/null
fi
printf ' prompt "%s"\n' "${entry}"
"${sed}" -r -e '/^## depends on /!d; s/^## / /;' ${file} 2>/dev/null
"${sed}" -r -e '/^## select /!d; s/^## / /;' ${file} 2>/dev/null