mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-21 09:21:52 +00:00
Merge pull request #869 from stilor/show-samples
Support custom packages in show-config
This commit is contained in:
commit
e832b9b220
@ -162,8 +162,7 @@ uninstall: real-uninstall
|
||||
build-bin: $(PROG_NAME) \
|
||||
scripts/scripts.mk \
|
||||
scripts/crosstool-NG.sh \
|
||||
scripts/saveSample.sh \
|
||||
scripts/showConfig.sh
|
||||
scripts/saveSample.sh
|
||||
|
||||
build-lib: paths.mk \
|
||||
paths.sh
|
||||
@ -228,7 +227,6 @@ clean-bin:
|
||||
$(call __silent_rm,scripts/scripts.mk)
|
||||
$(call __silent_rm,scripts/crosstool-NG.sh)
|
||||
$(call __silent_rm,scripts/saveSample.sh)
|
||||
$(call __silent_rm,scripts/showConfig.sh)
|
||||
|
||||
clean-lib:
|
||||
$(call __silent_rm,paths.mk paths.sh)
|
||||
|
42
bootstrap
42
bootstrap
@ -71,7 +71,7 @@ find_end()
|
||||
fi
|
||||
endline=$[endline + 1]
|
||||
done
|
||||
error "line ${l}: '${token}' token is unpaired"
|
||||
error "${template}:${l}: '${token}' token is unpaired"
|
||||
}
|
||||
|
||||
set_iter()
|
||||
@ -142,7 +142,7 @@ run_foreach()
|
||||
shift
|
||||
|
||||
if [ "${info[iter_${var}]+set}" != "set" ]; then
|
||||
error "line ${l}: iterator over '${var}' is not defined"
|
||||
error "${template}:${l}: iterator over '${var}' is not defined"
|
||||
fi
|
||||
find_end "foreach"
|
||||
debug "Loop over '${var}', lines ${l}..${endline}"
|
||||
@ -168,7 +168,7 @@ run_lines_if()
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
error "line ${l}: unknown condition '${prev}' for loop"
|
||||
error "${template}:${l}: unknown condition '${prev}' for loop"
|
||||
;;
|
||||
esac
|
||||
prev=
|
||||
@ -204,7 +204,7 @@ run_lines()
|
||||
pp="${v#${vp}}"
|
||||
# $vp is name of the variable proper, $pp is any postprocessing
|
||||
if [ "${info[${vp}]+set}" != "set" ]; then
|
||||
error "line ${l}: reference to undefined variable '${vp}'"
|
||||
error "${template}:${l}: reference to undefined variable '${vp}'"
|
||||
fi
|
||||
if [ "${info[${v}]+set}" != "set" ]; then
|
||||
# We know the base variable, need to cache postprocessed value
|
||||
@ -232,7 +232,7 @@ run_lines()
|
||||
s="${s#*@@*@@}"
|
||||
;;
|
||||
*@@*)
|
||||
error "line ${l}: non-paired @@ markers"
|
||||
error "${template}:${l}: non-paired @@ markers"
|
||||
;;
|
||||
*)
|
||||
s1="${s1}${s}"
|
||||
@ -254,7 +254,7 @@ run_lines()
|
||||
# Comment, do nothing
|
||||
;;
|
||||
"#!"*)
|
||||
error "line ${l}: unrecognized command"
|
||||
error "${template}:${l}: unrecognized command"
|
||||
;;
|
||||
*)
|
||||
# Not a special command
|
||||
@ -273,6 +273,7 @@ run_template()
|
||||
if [ ! -r "${src}" ]; then
|
||||
error "Template '${src}' not found"
|
||||
fi
|
||||
template="${src}"
|
||||
debug "Running template ${src}"
|
||||
mapfile -O 1 -t tlines < "${src}"
|
||||
run_lines 1 ${#tlines[@]}
|
||||
@ -660,23 +661,39 @@ get_components()
|
||||
enter_choice()
|
||||
{
|
||||
local choice="${1}"
|
||||
local l
|
||||
local input="config/${info[dir]}/${choice}.in"
|
||||
local l ln
|
||||
|
||||
info[choice]="${choice}"
|
||||
info[pkg]="${choice}"
|
||||
|
||||
# Not local, we need these arrays be set in enter_dependency/enter_help
|
||||
deplines=( )
|
||||
helplines=( )
|
||||
ln=0
|
||||
while read l; do
|
||||
ln=$[ln+1]
|
||||
case "${l}" in
|
||||
"## help "*)
|
||||
helplines+=( "${l#* help }" )
|
||||
helplines+=( "${l#\#\# help }" )
|
||||
;;
|
||||
"## depends "*|"## select "*)
|
||||
deplines+=( "${l#* }" )
|
||||
"## depends "*|"## select "*|"## default "*)
|
||||
deplines+=( "${l#\#\# }" )
|
||||
;;
|
||||
"## no-package")
|
||||
info[pkg]=
|
||||
;;
|
||||
"## package "*)
|
||||
info[pkg]=${l#\#\# package }
|
||||
;;
|
||||
"##"|"## help")
|
||||
# accept empty, for formatting
|
||||
;;
|
||||
"##"*)
|
||||
error "${input}:${ln}: unrecognized command"
|
||||
;;
|
||||
esac
|
||||
done < "config/${info[dir]}/${choice}.in"
|
||||
done < "${input}"
|
||||
set_iter dependency "${!deplines[@]}"
|
||||
set_iter help "${!helplines[@]}"
|
||||
}
|
||||
@ -697,7 +714,7 @@ gen_selection()
|
||||
local dir="${2}"
|
||||
local label="${3}"
|
||||
|
||||
msg "Generating ${dir}.in"
|
||||
msg "Generating ${dir}.in (${type})"
|
||||
exec >"${config_gen_dir}/${dir}.in"
|
||||
info=( \
|
||||
[dir]=${dir} \
|
||||
@ -719,6 +736,7 @@ gen_selection choice binutils "Binutils"
|
||||
gen_selection choice libc "C library"
|
||||
gen_selection menu debug "Debug facilities"
|
||||
gen_selection menu comp_tools "Companion tools"
|
||||
gen_selection menu comp_libs "Companion libraries"
|
||||
|
||||
msg "*** Running autoconf"
|
||||
autoconf -Wall --force
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Alpha specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_USE_MMU
|
||||
|
@ -1,5 +1,6 @@
|
||||
# ARM specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# AVR specific config options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_8
|
||||
## select ARCH_DEFAULT_8
|
||||
## select ARCH_REQUIRES_MULTILIB
|
||||
|
@ -1,5 +1,6 @@
|
||||
# m68k specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_DEFAULT_BE
|
||||
|
@ -1,5 +1,6 @@
|
||||
# MicroBlaze specific config options
|
||||
|
||||
## no-package
|
||||
## depends on EXPERIMENTAL
|
||||
##
|
||||
## select ARCH_SUPPORTS_WITH_CPU
|
||||
@ -11,12 +12,12 @@
|
||||
##
|
||||
## help The MicroBlaze architecture, as defined by:
|
||||
## help http://www.xilinx.com/
|
||||
## help
|
||||
## help
|
||||
## help Upstream projects do not currently provide
|
||||
## help full support for the microblaze architecture
|
||||
## help and as such, this is marked as EXPERIMENTAL
|
||||
## help for CT-NG.
|
||||
## help
|
||||
## help
|
||||
## help Support is being added for a modern gcc,
|
||||
## help binutils and gdb along with nptl threading
|
||||
## help in glibc for microblaze.
|
||||
|
@ -1,5 +1,6 @@
|
||||
# MIPS specific config options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# MSP430 specific config options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_16
|
||||
## select ARCH_DEFAULT_16
|
||||
## select ARCH_REQUIRES_MULTILIB
|
||||
|
@ -1,5 +1,6 @@
|
||||
# NIOS232 specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_SUPPORTS_BOTH_MMU
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Powerpc specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# RISC-V specific config options
|
||||
|
||||
## no-package
|
||||
## depends on EXPERIMENTAL
|
||||
##
|
||||
## select ARCH_SUPPORTS_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# s390 specific config options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Super-H specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_USE_MMU
|
||||
|
@ -1,5 +1,6 @@
|
||||
# SPARC specific config options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# x86 specific options
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
|
@ -1,5 +1,6 @@
|
||||
# xtensa specific configuration file
|
||||
|
||||
## no-package
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_LE
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
comment "GNU binutils"
|
||||
|
||||
source "config/versions/binutils.in"
|
||||
|
||||
config BINUTILS_HAS_HASH_STYLE
|
||||
default y if BINUTILS_2_23_or_later
|
||||
bool
|
||||
@ -187,7 +185,7 @@ comment "elf2flt"
|
||||
|
||||
config ELF2FLT_REQUIRES
|
||||
def_bool y
|
||||
select ZLIB
|
||||
select ZLIB_NEEDED
|
||||
select BINUTILS_FORCE_LD_BFD_ONLY
|
||||
|
||||
source "config/versions/elf2flt.in"
|
||||
|
@ -1,6 +1,5 @@
|
||||
# GCC options
|
||||
|
||||
## default y
|
||||
## select CC_SUPPORT_CXX if !LIBC_NONE
|
||||
## select CC_SUPPORT_FORTRAN
|
||||
## select CC_SUPPORT_JAVA if !GCC_7_or_later
|
||||
@ -25,8 +24,6 @@
|
||||
## help gcc supports many languages, a powerful code parser, optimised binary
|
||||
## help output, and lots of other features.
|
||||
|
||||
source "config/versions/gcc.in"
|
||||
|
||||
# Only enable gcc's support for plugins if binutils has it as well
|
||||
# They are useful only when doing LTO, but it does no harm enabling
|
||||
# them even without LTO.
|
||||
|
@ -4,185 +4,6 @@
|
||||
|
||||
menu "Companion libraries"
|
||||
|
||||
config COMPLIBS_NEEDED
|
||||
bool
|
||||
|
||||
config LIBICONV_NEEDED
|
||||
bool
|
||||
select LIBICONV
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config GETTEXT_NEEDED
|
||||
bool
|
||||
select GETTEXT
|
||||
select LIBICONV_NEEDED
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config GMP_NEEDED
|
||||
def_bool y
|
||||
select GMP
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config MPFR_NEEDED
|
||||
def_bool y
|
||||
select MPFR
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config ISL_NEEDED
|
||||
bool
|
||||
select ISL
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config CLOOG_NEEDED
|
||||
bool
|
||||
select CLOOG
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config MPC_NEEDED
|
||||
def_bool y
|
||||
select MPC
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config LIBELF_NEEDED
|
||||
bool
|
||||
select LIBELF
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config EXPAT_NEEDED
|
||||
bool
|
||||
select EXPAT
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config NCURSES_NEEDED
|
||||
bool
|
||||
select NCURSES
|
||||
select COMPLIBS_NEEDED
|
||||
|
||||
config COMPLIBS
|
||||
bool
|
||||
|
||||
config LIBICONV
|
||||
bool "Build local libiconv"
|
||||
default y if CANADIAN || CROSS_NATIVE
|
||||
select COMPLIBS
|
||||
|
||||
config GETTEXT
|
||||
bool "Build local gettext"
|
||||
default y if CANADIAN || CROSS_NATIVE
|
||||
select LIBICONV_NEEDED
|
||||
select NCURSES_NEEDED
|
||||
select COMPLIBS
|
||||
|
||||
config GMP
|
||||
bool
|
||||
select COMPLIBS
|
||||
|
||||
config MPFR
|
||||
bool
|
||||
select GMP
|
||||
select COMPLIBS
|
||||
|
||||
config ISL
|
||||
bool
|
||||
select GMP
|
||||
select COMPLIBS
|
||||
|
||||
config CLOOG
|
||||
bool
|
||||
select GMP
|
||||
select COMPLIBS
|
||||
|
||||
config MPC
|
||||
bool
|
||||
select GMP
|
||||
select MPFR
|
||||
select COMPLIBS
|
||||
|
||||
config LIBELF
|
||||
bool
|
||||
select COMPLIBS
|
||||
|
||||
config LIBELF_TARGET
|
||||
bool
|
||||
|
||||
config EXPAT
|
||||
bool
|
||||
select COMPLIBS
|
||||
|
||||
config EXPAT_TARGET
|
||||
bool
|
||||
|
||||
config NCURSES
|
||||
bool
|
||||
select COMPLIBS
|
||||
|
||||
config NCURSES_TARGET
|
||||
bool
|
||||
|
||||
config ZLIB
|
||||
bool "Build local zlib"
|
||||
|
||||
# FIXME this needs to have a list of options
|
||||
# [ ] libfoo for build
|
||||
# [ ] libfoo for host (if canadian)
|
||||
# [ ] libfoo for target
|
||||
# libfoo options -->
|
||||
#
|
||||
# Then have other packages *set default* for build/host
|
||||
# (but not select, so that user can utilize build's or host's system library)
|
||||
# and *select* the target (so that we build it if we must, and let user optionally
|
||||
# build it if he wants). Upon any of these options LIBFOO_{BUILD,HOST,TARGET}
|
||||
# being set, set LIBFOO_ENABLED and use that as a qualifier for submenu.
|
||||
# For now, just have comments delineating the libs.
|
||||
if ZLIB
|
||||
comment "zlib options"
|
||||
source "config/comp_libs/zlib.in"
|
||||
endif
|
||||
if LIBICONV
|
||||
comment "libiconv options"
|
||||
source "config/comp_libs/libiconv.in"
|
||||
endif
|
||||
if GETTEXT
|
||||
comment "gettext options"
|
||||
source "config/comp_libs/gettext.in"
|
||||
endif
|
||||
if GMP
|
||||
comment "GMP options"
|
||||
source "config/comp_libs/gmp.in"
|
||||
endif
|
||||
if MPFR
|
||||
comment "MPFR options"
|
||||
source "config/comp_libs/mpfr.in"
|
||||
endif
|
||||
if ISL
|
||||
comment "ISL options"
|
||||
source "config/comp_libs/isl.in"
|
||||
endif
|
||||
if CLOOG
|
||||
comment "CLooG options"
|
||||
source "config/comp_libs/cloog.in"
|
||||
endif
|
||||
if MPC
|
||||
comment "MPC options"
|
||||
source "config/comp_libs/mpc.in"
|
||||
endif
|
||||
if LIBELF || LIBELF_TARGET
|
||||
comment "libelf options"
|
||||
source "config/comp_libs/libelf.in"
|
||||
endif
|
||||
if EXPAT || EXPAT_TARGET
|
||||
comment "expat options"
|
||||
source "config/comp_libs/expat.in"
|
||||
endif
|
||||
if NCURSES || NCURSES_TARGET
|
||||
comment "ncurses options"
|
||||
source "config/comp_libs/ncurses.in"
|
||||
endif
|
||||
|
||||
if COMPLIBS
|
||||
|
||||
comment "Companion libraries common options"
|
||||
|
||||
config COMPLIBS_CHECK
|
||||
bool
|
||||
prompt "Check the companion libraries builds (!!! READ HELP!!!)"
|
||||
@ -198,6 +19,131 @@ config COMPLIBS_CHECK
|
||||
cause for incorrectly generated code, you should answer 'Y' here.
|
||||
Note however that this will take a really long time.
|
||||
|
||||
endif # COMPLIBS
|
||||
source "config/gen/comp_libs.in"
|
||||
|
||||
# FIXME this needs to have a list of options
|
||||
# [ ] libfoo for build
|
||||
# [ ] libfoo for host (if canadian)
|
||||
# [ ] libfoo for target
|
||||
# libfoo options -->
|
||||
#
|
||||
# Then have other packages *set default* for build/host
|
||||
# (but not select, so that user can utilize build's or host's system library)
|
||||
# and *select* the target (so that we build it if we must, and let user optionally
|
||||
# build it if he wants). Upon any of these options LIBFOO_{BUILD,HOST,TARGET}
|
||||
# being set, set LIBFOO_ENABLED and use that as a qualifier for submenu.
|
||||
# For now, LIBFOO_NEEDED symbol may or may not user-selectable, and COMP_LIBS_LIBFOO
|
||||
# determines whether it is actually built. LIBFOO_NEEDED is currently for build/host
|
||||
# and LIBFOO_TARGET (if exists) is for target.
|
||||
|
||||
config LIBICONV_NEEDED
|
||||
bool "Build local libiconv"
|
||||
default y if CANADIAN || CROSS_NATIVE
|
||||
select COMP_LIBS_LIBICONV
|
||||
|
||||
config GETTEXT_NEEDED
|
||||
bool "Build local gettext"
|
||||
default y if CANADIAN || CROSS_NATIVE
|
||||
select LIBICONV_NEEDED
|
||||
select NCURSES_NEEDED
|
||||
select COMP_LIBS_GETTEXT
|
||||
|
||||
config GMP_NEEDED
|
||||
def_bool y
|
||||
select COMP_LIBS_GMP
|
||||
|
||||
config MPFR_NEEDED
|
||||
def_bool y
|
||||
select GMP_NEEDED
|
||||
select COMP_LIBS_MPFR
|
||||
|
||||
config ISL_NEEDED
|
||||
bool
|
||||
select GMP_NEEDED
|
||||
select COMP_LIBS_ISL
|
||||
|
||||
config CLOOG_NEEDED
|
||||
bool
|
||||
select GMP_NEEDED
|
||||
select COMP_LIBS_CLOOG
|
||||
|
||||
config MPC_NEEDED
|
||||
def_bool y
|
||||
select GMP_NEEDED
|
||||
select MPFR_NEEDED
|
||||
select COMP_LIBS_MPC
|
||||
|
||||
config LIBELF_NEEDED
|
||||
bool
|
||||
select COMP_LIBS_LIBELF
|
||||
|
||||
config LIBELF_TARGET
|
||||
bool
|
||||
select COMP_LIBS_LIBELF
|
||||
|
||||
config EXPAT_NEEDED
|
||||
bool
|
||||
select COMP_LIBS_EXPAT
|
||||
|
||||
config EXPAT_TARGET
|
||||
bool
|
||||
select COMP_LIBS_EXPAT
|
||||
|
||||
config NCURSES_NEEDED
|
||||
bool
|
||||
select COMP_LIBS_NCURSES
|
||||
|
||||
config NCURSES_TARGET
|
||||
bool
|
||||
select COMP_LIBS_NCURSES
|
||||
|
||||
config ZLIB_NEEDED
|
||||
bool "Build local zlib"
|
||||
select COMP_LIBS_ZLIB
|
||||
|
||||
# FIXME remove these legacy knobs
|
||||
config LIBICONV
|
||||
def_bool y
|
||||
depends on LIBICONV_NEEDED
|
||||
|
||||
config GETTEXT
|
||||
def_bool y
|
||||
depends on GETTEXT_NEEDED
|
||||
|
||||
config GMP
|
||||
def_bool y
|
||||
depends on GMP_NEEDED
|
||||
|
||||
config MPFR
|
||||
def_bool y
|
||||
depends on MPFR_NEEDED
|
||||
|
||||
config ISL
|
||||
def_bool y
|
||||
depends on ISL_NEEDED
|
||||
|
||||
config CLOOG
|
||||
def_bool y
|
||||
depends on CLOOG_NEEDED
|
||||
|
||||
config MPC
|
||||
def_bool y
|
||||
depends on MPC_NEEDED
|
||||
|
||||
config LIBELF
|
||||
def_bool y
|
||||
depends on LIBELF_NEEDED
|
||||
|
||||
config EXPAT
|
||||
def_bool y
|
||||
depends on EXPAT_NEEDED
|
||||
|
||||
config NCURSES
|
||||
def_bool y
|
||||
depends on NCURSES_NEEDED
|
||||
|
||||
config ZLIB
|
||||
def_bool y
|
||||
depends on ZLIB_NEEDED
|
||||
|
||||
endmenu
|
||||
|
@ -1,11 +1,8 @@
|
||||
# CLooG options
|
||||
## depends on OBSOLETE
|
||||
|
||||
# CLooG 0.18.4 requires ISL 0.12 or newer
|
||||
# CLooG 0.18.1/0.18.0 requires ISL 0.12 or older
|
||||
|
||||
source "config/versions/cloog.in"
|
||||
|
||||
config CLOOG_HAS_WITH_GMP_ISL_OSL
|
||||
bool
|
||||
default y if CLOOG_0_18_or_later
|
||||
|
@ -1,3 +1 @@
|
||||
# expat config file
|
||||
|
||||
source "config/versions/expat.in"
|
||||
|
@ -1,3 +1 @@
|
||||
# gettext options
|
||||
|
||||
source "config/versions/gettext.in"
|
||||
|
@ -1,7 +1,5 @@
|
||||
# GMP options
|
||||
|
||||
source "config/versions/gmp.in"
|
||||
|
||||
config GMP_HAS_MPBSD
|
||||
bool
|
||||
default y if !GMP_5_1_or_later
|
||||
|
@ -1,21 +1,6 @@
|
||||
# ISL options
|
||||
# FIXME these currently have no effect
|
||||
## select CLOOG_REQUIRE_0_18_1_or_older if !ISL_0_12_or_later
|
||||
## select CLOOG_REQUIRE_0_18_4_or_later if !ISL_0_14_or_older
|
||||
|
||||
source "config/versions/isl.in"
|
||||
|
||||
# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
|
||||
config ISL_CLOOG_auto_select_1
|
||||
def_bool y
|
||||
depends on CLOOG_NEEDED && !ISL_0_12_or_later
|
||||
select CLOOG_REQUIRE_0_18_1_or_older
|
||||
|
||||
# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
|
||||
config ISL_CLOOG_auto_select_2
|
||||
def_bool y
|
||||
depends on CLOOG_NEEDED && !ISL_0_13_or_older
|
||||
select CLOOG_REQUIRE_0_18_4_or_later
|
||||
## select CLOOG_REQUIRE_0_18_1_or_older if CLOOG_NEEDED && !ISL_0_12_or_later
|
||||
## select CLOOG_REQUIRE_0_18_4_or_later if CLOOG_NEEDED && !ISL_0_14_or_older
|
||||
|
||||
config ISL_NEEDS_WITH_GMP
|
||||
bool
|
||||
|
@ -1,3 +1 @@
|
||||
# libelf config file
|
||||
|
||||
source "config/versions/libelf.in"
|
||||
|
@ -1,3 +1 @@
|
||||
# libiconv options
|
||||
|
||||
source "config/versions/libiconv.in"
|
||||
|
@ -1,3 +1 @@
|
||||
# MPC options
|
||||
|
||||
source "config/versions/mpc.in"
|
||||
|
@ -1,3 +1 @@
|
||||
# GMP options
|
||||
|
||||
source "config/versions/mpfr.in"
|
||||
|
@ -1,6 +1,4 @@
|
||||
# expat config file
|
||||
|
||||
source "config/versions/ncurses.in"
|
||||
# ncurses config file
|
||||
|
||||
config NCURSES_NEW_ABI
|
||||
bool "ncurses 6.0 ABI support"
|
||||
|
@ -1,3 +1 @@
|
||||
# Zlib options
|
||||
|
||||
source "config/versions/zlib.in"
|
||||
|
@ -3,5 +3,3 @@
|
||||
## default y if !CONFIGURE_has_autoconf_2_63_or_newer
|
||||
## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
|
||||
## help Autoconf
|
||||
|
||||
source "config/versions/autoconf.in"
|
||||
|
@ -2,5 +2,3 @@
|
||||
|
||||
## default y if !CONFIGURE_has_automake_1_15_or_newer
|
||||
## help Automake
|
||||
|
||||
source "config/versions/automake.in"
|
||||
|
@ -2,5 +2,3 @@
|
||||
|
||||
## default y if !CONFIGURE_has_libtool_2_4_or_newer
|
||||
## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
|
||||
|
||||
source "config/versions/libtool.in"
|
||||
|
@ -1,5 +1,3 @@
|
||||
# GNU m4
|
||||
|
||||
## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
|
||||
|
||||
source "config/versions/m4.in"
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
## default y if !CONFIGURE_has_make_3_81_or_newer
|
||||
|
||||
source "config/versions/make.in"
|
||||
|
||||
config MAKE_GMAKE_SYMLINK
|
||||
bool
|
||||
prompt "Add gmake symlink to companion gnu/make"
|
||||
|
@ -7,8 +7,6 @@
|
||||
## help A memory bound checker, with additional features.
|
||||
## help Formerly known as Electric Fence.
|
||||
|
||||
source "config/versions/duma.in"
|
||||
|
||||
config DUMA_SO
|
||||
bool
|
||||
prompt "Build a shared library"
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
## help gdb is the GNU debugger
|
||||
|
||||
source "config/versions/gdb.in"
|
||||
|
||||
source "config/debug/gdb.in.cross"
|
||||
source "config/debug/gdb.in.native"
|
||||
source "config/debug/gdb.in.gdbserver"
|
||||
|
@ -8,8 +8,6 @@
|
||||
## help the executed process and the signals which are received by that process.
|
||||
## help It can also intercept and print the system calls executed by the program.
|
||||
|
||||
source "config/versions/ltrace.in"
|
||||
|
||||
# Ltrace 0.5.3 had a unique hand-crafted configure script that has to be
|
||||
# run differently from any preceding or following releases. This serves
|
||||
# as a reminder to remove that code once 0.5.3 support is dropped.
|
||||
|
@ -1,5 +1,3 @@
|
||||
# strace
|
||||
|
||||
## depends on ! LIBC_BIONIC
|
||||
|
||||
source "config/versions/strace.in"
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Bare metal config options
|
||||
|
||||
## no-package
|
||||
## select BARE_METAL
|
||||
##
|
||||
## help 'Bare metal' refers to those programs that run without any kernel.
|
||||
|
@ -12,8 +12,6 @@
|
||||
# (including versions in between) until the EOL dates indicated below.
|
||||
# Such pinned versions are indicated in version.desc files with a comment.
|
||||
|
||||
source "config/versions/linux.in"
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "Kernel verbosity:"
|
||||
|
@ -1,5 +1,6 @@
|
||||
# windows config options
|
||||
|
||||
## no-package
|
||||
## depends on ARCH_X86
|
||||
## depends on EXPERIMENTAL
|
||||
##
|
||||
|
@ -9,8 +9,6 @@
|
||||
## help Atmel AVR 8-bit RISC microcontrollers. In addition, the library
|
||||
## help provides the basic startup code needed by most applications.
|
||||
|
||||
source "config/versions/avr-libc.in"
|
||||
|
||||
config LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY
|
||||
string
|
||||
prompt "Extra config for avr-libc"
|
||||
|
@ -1,5 +1,6 @@
|
||||
# bionic options
|
||||
|
||||
## package android-ndk
|
||||
## depends on ! WINDOWS && ! BARE_METAL
|
||||
## depends on ARCH_ARM || ARCH_MIPS || ARCH_X86
|
||||
## depends on EXPERIMENTAL
|
||||
@ -11,8 +12,6 @@
|
||||
## help This platform has no TLS (Thread Local Storage) support so that option must be
|
||||
## help disabled in the Compiler options.
|
||||
|
||||
source "config/versions/android-ndk.in"
|
||||
|
||||
config THREADS
|
||||
default "posix"
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
# the kernel/libc versions of a particular target system, and LTS releases
|
||||
# are still using quite ancient versions. Please do not retire versions
|
||||
# (including versions in between) until the EOL dates indicated in version.desc.
|
||||
source "config/versions/glibc.in"
|
||||
|
||||
if GLIBC_USE_PORTS_EXTERNAL
|
||||
source "config/versions/glibc-ports.in"
|
||||
endif
|
||||
|
@ -8,8 +8,6 @@
|
||||
##
|
||||
## help The de-facto standard for Mingw distributions.
|
||||
|
||||
source "config/versions/mingw-w64.in"
|
||||
|
||||
config MINGW_W64_REQUIRES_W64_VENDOR
|
||||
bool
|
||||
default y if MINGW_W64_V4_or_later
|
||||
|
@ -9,8 +9,6 @@
|
||||
## help devices. musl is lightweight, fast, simple, free, and strives to be
|
||||
## help correct in the sense of standards-conformance and safety.
|
||||
|
||||
source "config/versions/musl.in"
|
||||
|
||||
# TBD why? it claims "native", why report "musl"?
|
||||
config THREADS
|
||||
default "musl"
|
||||
|
@ -12,8 +12,6 @@
|
||||
## help array of processors, and will usually work on any architecture with
|
||||
## help the addition of a few low-level routines.
|
||||
|
||||
source "config/versions/newlib.in"
|
||||
|
||||
# maybe older versions of newlib will support it too, but this
|
||||
# needs to be checked
|
||||
config NEWLIB_CXA_ATEXIT
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Dummy config file to not use a C library *at all*
|
||||
|
||||
## no-package
|
||||
## depends on BARE_METAL
|
||||
##
|
||||
## help Do not use a C library.
|
||||
|
@ -12,8 +12,6 @@
|
||||
## help Highly configurable, thus as feature-rich as you
|
||||
## help need, without compromising for size.
|
||||
|
||||
source "config/versions/uClibc.in"
|
||||
|
||||
config THREADS
|
||||
default "nptl" if THREADS_NATIVE
|
||||
default "linuxthreads" if THREADS_LT
|
||||
|
2
ct-ng.in
2
ct-ng.in
@ -132,7 +132,7 @@ help-env::
|
||||
@false
|
||||
|
||||
show-tuple: .config
|
||||
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showConfig.sh '$${CT_TARGET}'
|
||||
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/show-tuple.sh '$${CT_TARGET}'
|
||||
|
||||
# Actual build
|
||||
source: .config
|
||||
|
@ -25,8 +25,22 @@ config @@dir|@@
|
||||
default "@@choice@@" if @@dir|@@_@@choice|@@
|
||||
#!end-foreach
|
||||
|
||||
config @@dir|@@_CHOICE_KSYM
|
||||
string
|
||||
#!foreach choice
|
||||
default "@@choice|@@" if @@dir|@@_@@choice|@@
|
||||
#!end-foreach
|
||||
|
||||
#!foreach choice
|
||||
if @@dir|@@_@@choice|@@
|
||||
config @@dir|@@_@@choice|@@_PKG_KSYM
|
||||
string
|
||||
default "@@pkg|@@"
|
||||
|
||||
#!if [ -n "@@pkg@@" ]
|
||||
source "config/versions/@@pkg@@.in"
|
||||
#!end-if
|
||||
source "config/@@dir@@/@@choice@@.in"
|
||||
endif
|
||||
|
||||
#!end-foreach
|
||||
|
@ -14,6 +14,13 @@ menuconfig @@dir|@@_@@choice|@@
|
||||
#!end-foreach
|
||||
|
||||
if @@dir|@@_@@choice|@@
|
||||
config @@dir|@@_@@choice|@@_PKG_KSYM
|
||||
string
|
||||
default "@@pkg|@@"
|
||||
|
||||
#!if [ -n "@@pkg@@" ]
|
||||
source "config/versions/@@pkg@@.in"
|
||||
#!end-if
|
||||
source "config/@@dir@@/@@choice@@.in"
|
||||
endif
|
||||
|
||||
|
@ -243,6 +243,8 @@ config @@fork|@@_VERSION
|
||||
#!foreach version
|
||||
default "@@ver@@" if @@fork|@@_V_@@ver_sel|@@
|
||||
#!end-foreach
|
||||
default "new" if @@fork|@@_VERY_NEW
|
||||
default "old" if @@fork|@@_VERY_OLD
|
||||
default "unknown"
|
||||
|
||||
#!if [ "@@#version@@" -gt 0 ]
|
||||
|
@ -31,7 +31,6 @@ help-samples::
|
||||
help-distrib::
|
||||
@echo ' check-samples - Verify if samples need updates due to Kconfig changes'
|
||||
@echo ' update-samples - Regenerate sample configurations using the current Kconfig'
|
||||
@echo ' wiki-samples - Print a DokuWiki table of samples'
|
||||
|
||||
help-env::
|
||||
@echo ' CT_PREFIX=dir - install samples in dir (see action "build-all", above).'
|
||||
@ -43,7 +42,7 @@ help-env::
|
||||
PHONY += show-config
|
||||
show-config: .config
|
||||
@cp .config .config.sample
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh -v current
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh -v current
|
||||
@rm -f .config.sample
|
||||
|
||||
# Prints the details of a sample
|
||||
@ -52,7 +51,7 @@ $(patsubst %,show-%,$(CT_SAMPLES)): show-%:
|
||||
@KCONFIG_CONFIG=$$(pwd)/.config.sample \
|
||||
$(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \
|
||||
$(KCONFIG_TOP) >/dev/null
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh -v $*
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh -v $*
|
||||
@rm -f .config.sample
|
||||
|
||||
# Prints the details of all samples
|
||||
@ -76,7 +75,7 @@ $(patsubst %,list-%,$(CT_SAMPLES)): list-%:
|
||||
@KCONFIG_CONFIG=$$(pwd)/.config.sample \
|
||||
$(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \
|
||||
$(KCONFIG_TOP) >/dev/null
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh $*
|
||||
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh $*
|
||||
@rm -f .config.sample
|
||||
|
||||
PHONY += list-samples-short
|
||||
@ -110,22 +109,6 @@ check-samples: $(patsubst %,check-%,$(CT_SAMPLES))
|
||||
update-samples:
|
||||
$(SILENT)$(MAKE) -rf $(CT_NG) check-samples CT_UPDATE_SAMPLES=yes
|
||||
|
||||
PHONY += wiki-samples
|
||||
wiki-samples: wiki-samples-pre $(patsubst %,wiki-%,$(CT_SAMPLES)) wiki-samples-post
|
||||
|
||||
wiki-samples-pre: FORCE
|
||||
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh -w
|
||||
|
||||
wiki-samples-post: FORCE
|
||||
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh -W $(CT_SAMPLES)
|
||||
|
||||
$(patsubst %,wiki-%,$(CT_SAMPLES)): wiki-%:
|
||||
$(SILENT)KCONFIG_CONFIG=$$(pwd)/.config.sample \
|
||||
$(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \
|
||||
$(KCONFIG_TOP) >/dev/null
|
||||
$(SILENT)$(bash) $(CT_LIB_DIR)/scripts/showSamples.sh -w $*
|
||||
$(SILENT)rm -f .config.sample
|
||||
|
||||
# ----------------------------------------------------------
|
||||
# This part deals with saving/restoring samples
|
||||
|
||||
@ -207,9 +190,9 @@ define build_sample
|
||||
mkdir -p .build-all/$$status/$(1); \
|
||||
bzip2 < build.log > .build-all/$$status/$(1)/build.log.bz2; \
|
||||
if [ "$$status" = PASS ]; then \
|
||||
blddir=`$(bash) $(CT_LIB_DIR)/scripts/showConfig.sh '$${CT_BUILD_TOP_DIR}'`; \
|
||||
blddir=`$(bash) $(CT_LIB_DIR)/scripts/show-tuple.sh '$${CT_BUILD_TOP_DIR}'`; \
|
||||
[ -z "$(CT_PRESERVE_PASSED_BUILDS)" ] && rm -rf $${blddir}; \
|
||||
$(bash) $(CT_LIB_DIR)/scripts/showConfig.sh '$${CT_PREFIX_DIR}' > .build-all/PASS/$(1)/prefix; \
|
||||
$(bash) $(CT_LIB_DIR)/scripts/show-tuple.sh '$${CT_PREFIX_DIR}' > .build-all/PASS/$(1)/prefix; \
|
||||
fi; \
|
||||
:
|
||||
endef
|
||||
|
1
scripts/.gitignore
vendored
1
scripts/.gitignore
vendored
@ -1,4 +1,3 @@
|
||||
crosstool-NG.sh
|
||||
saveSample.sh
|
||||
showConfig.sh
|
||||
scripts.mk
|
||||
|
@ -1,5 +1,6 @@
|
||||
# -*- mode: sh; tab-width: 4 -*-
|
||||
# vi: ts=4:sw=4:sts=4:et
|
||||
# vim: filetype=sh :
|
||||
# This file contains some useful common functions
|
||||
# Copyright 2007 Yann E. MORIN
|
||||
# Licensed under the GPL v2. See COPYING in the root of this package
|
||||
@ -1891,6 +1892,10 @@ CT_PackageRun()
|
||||
eval "local ${v}=\${CT_${use}_${v^^}}"
|
||||
done
|
||||
|
||||
if [ -z "${pkg_name}" ]; then
|
||||
CT_Abort "Internal ct-ng error: '${sym}' not defined, please report a bug"
|
||||
fi
|
||||
|
||||
for v in archive_filename archive_dirname; do
|
||||
# kconfig and shell have different quoting rules, so it seems impossible to make
|
||||
# kconfig quote '$' properly for eval (i.e. not have it expanded when loading the
|
||||
@ -2213,3 +2218,59 @@ CT_GetPkgVersion()
|
||||
CT_PackageRun "${1}" __do_GetPkgVersion
|
||||
eval "${2}=\"${rv}\""
|
||||
}
|
||||
|
||||
# Get a package version selected to build. May return an empty string.
|
||||
# Usage: CT_GetPkgBuildVersion PKG VAR
|
||||
# where PKG may refer to a specific package (e.g. GCC) or package choice
|
||||
# (e.g. LIBC).
|
||||
CT_GetPkgBuildVersion()
|
||||
{
|
||||
local category="${1}"
|
||||
local component="${2}"
|
||||
local var="${3}"
|
||||
local choicename tmp pkg build_version
|
||||
|
||||
# If it is for a choice, not a menu, get the choice name
|
||||
eval "choicename=\${CT_${category}}"
|
||||
|
||||
# Find the associated package
|
||||
eval "pkg=\${CT_${category}_${component}_PKG_KSYM}"
|
||||
if [ -z "${pkg}" ]; then
|
||||
# This component does not have an associated package,
|
||||
# return the component name.
|
||||
if [ -n "${choicename}" ]; then
|
||||
eval "${var}=\"${choicename}\""
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
__do_GetPkgBuildVersion() {
|
||||
tmp="${pkg_name}-${version}"
|
||||
if [ "${src_devel}" = "y" ]; then
|
||||
tmp+="-${devel_vcs}"
|
||||
if [ -n "${devel_revision}" ]; then
|
||||
tmp+="-${devel_revision}"
|
||||
fi
|
||||
elif [ "${src_custom}" = "y" ]; then
|
||||
tmp+="-custom"
|
||||
fi
|
||||
if [ -n "${choicename}" -a "${pkg}" != "${component}" ]; then
|
||||
tmp+=" (${choicename})"
|
||||
fi
|
||||
}
|
||||
|
||||
CT_PackageRun "${pkg}" __do_GetPkgBuildVersion
|
||||
eval "${var}=\"${tmp}\""
|
||||
}
|
||||
|
||||
# Get a package version as selected by a generated choice in kconfig.
|
||||
CT_GetChoicePkgBuildVersion()
|
||||
{
|
||||
local choice="${1}"
|
||||
local var="${2}"
|
||||
local component
|
||||
|
||||
# Find the selected component
|
||||
eval "component=\${CT_${choice}_CHOICE_KSYM}"
|
||||
CT_GetPkgBuildVersion "${choice}" "${component}" "${var}"
|
||||
}
|
||||
|
118
scripts/show-config.sh
Normal file
118
scripts/show-config.sh
Normal file
@ -0,0 +1,118 @@
|
||||
# Parses all samples on the command line, and for each of them, prints
|
||||
# the versions of the main tools
|
||||
|
||||
# Use tools discovered by ./configure
|
||||
. "${CT_LIB_DIR}/paths.sh"
|
||||
. "${CT_LIB_DIR}/scripts/functions"
|
||||
|
||||
[ "$1" = "-v" ] && opt="$1" && shift
|
||||
|
||||
# GREP_OPTIONS screws things up.
|
||||
export GREP_OPTIONS=
|
||||
|
||||
fieldwidth=15
|
||||
|
||||
# Dummy version which is invoked from .config
|
||||
CT_Mirrors() { :; }
|
||||
|
||||
# Dump a short package description with a name and version in a format
|
||||
# " <name>[-<version>]"
|
||||
dump_pkgs_desc()
|
||||
{
|
||||
local category="${1}"
|
||||
local field="${2}"
|
||||
shift 2
|
||||
local show_version
|
||||
local tmp
|
||||
|
||||
printf " %-*s :" ${fieldwidth} "${field}"
|
||||
while [ -n "${1}" ]; do
|
||||
eval "tmp=\"\${CT_${category}_${1}}\""
|
||||
if [ -n "${tmp}" ]; then
|
||||
CT_GetPkgBuildVersion "${category}" "${1}" show_version
|
||||
printf " %s" "${show_version}"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
# Dump a short package description with a name and version in a format
|
||||
# " <name>[-<version>]"
|
||||
dump_choice_desc()
|
||||
{
|
||||
local category="${1}"
|
||||
local field="${2}"
|
||||
local show_version
|
||||
|
||||
CT_GetChoicePkgBuildVersion "${category}" show_version
|
||||
printf " %-*s : %s\n" ${fieldwidth} "${field}" "${show_version}"
|
||||
}
|
||||
|
||||
# Dump a single sample
|
||||
# Note: we use the specific .config.sample config file
|
||||
dump_single_sample()
|
||||
{
|
||||
local verbose=0
|
||||
local complibs
|
||||
[ "$1" = "-v" ] && verbose=1 && shift
|
||||
local sample="$1"
|
||||
. $(pwd)/.config.sample
|
||||
|
||||
case "${sample}" in
|
||||
current)
|
||||
sample_type="l"
|
||||
sample="$( ${CT_NG} show-tuple )"
|
||||
case "${CT_TOOLCHAIN_TYPE}" in
|
||||
canadian)
|
||||
sample="${CT_HOST},${sample}"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
|
||||
sample_top="${CT_TOP_DIR}"
|
||||
sample_type="L"
|
||||
else
|
||||
sample_top="${CT_LIB_DIR}"
|
||||
sample_type="G"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
printf "[%s" "${sample_type}"
|
||||
[ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "."
|
||||
[ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "."
|
||||
printf "] %s\n" "${sample}"
|
||||
if [ ${verbose} -ne 0 ]; then
|
||||
case "${CT_TOOLCHAIN_TYPE}" in
|
||||
cross) ;;
|
||||
canadian)
|
||||
printf " %-*s : %s\n" ${fieldwidth} "Host" "${CT_HOST}"
|
||||
;;
|
||||
esac
|
||||
# FIXME get choice/menu names from generated kconfig files as well
|
||||
# FIXME get the list of menu components from generated kconfig files
|
||||
dump_choice_desc KERNEL "OS"
|
||||
dump_pkgs_desc COMP_LIBS "Companion libs" GMP MPFR MPC ISL CLOOG LIBELF EXPAT NCURSES \
|
||||
LIBICONV GETTEXT
|
||||
dump_choice_desc BINUTILS "Binutils"
|
||||
dump_choice_desc CC "Compiler"
|
||||
printf " %-*s : %s" ${fieldwidth} "Languages" "C"
|
||||
[ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
|
||||
[ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
|
||||
[ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
|
||||
[ "${CT_CC_LANG_ADA}" = "y" ] && printf ",ADA"
|
||||
[ "${CT_CC_LANG_OBJC}" = "y" ] && printf ",Objective-C"
|
||||
[ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ",Objective-C++"
|
||||
[ "${CT_CC_LANG_GOLANG}" = "y" ] && printf ",Go"
|
||||
[ -n "${CT_CC_LANG_OTHERS}" ] && printf ",${CT_CC_LANG_OTHERS}"
|
||||
printf "\n"
|
||||
|
||||
dump_choice_desc LIBC "C library"
|
||||
dump_pkgs_desc DEBUG "Debug tools" DUMA GDB LTRACE STRACE
|
||||
dump_pkgs_desc COMP_TOOLS "Companion tools" AUTOCONF AUTOMAKE LIBTOOL M4 MAKE
|
||||
fi
|
||||
}
|
||||
|
||||
for sample in "${@}"; do
|
||||
dump_single_sample ${opt} "${sample}"
|
||||
done
|
@ -1,225 +0,0 @@
|
||||
# Parses all samples on the command line, and for each of them, prints
|
||||
# the versions of the main tools
|
||||
|
||||
# Use tools discovered by ./configure
|
||||
. "${CT_LIB_DIR}/paths.sh"
|
||||
|
||||
[ "$1" = "-v" ] && opt="$1" && shift
|
||||
[ "$1" = "-w" ] && opt="$1" && shift
|
||||
[ "$1" = "-W" ] && opt="$1" && shift
|
||||
|
||||
# GREP_OPTIONS screws things up.
|
||||
export GREP_OPTIONS=
|
||||
|
||||
# Dummy version which is invoked from .config
|
||||
CT_Mirrors() { :; }
|
||||
|
||||
# Dump a single sample
|
||||
# Note: we use the specific .config.sample config file
|
||||
dump_single_sample() {
|
||||
local verbose=0
|
||||
local wiki=0
|
||||
local complibs
|
||||
[ "$1" = "-v" ] && verbose=1 && shift
|
||||
[ "$1" = "-w" ] && wiki=1 && shift
|
||||
local sample="$1"
|
||||
. $(pwd)/.config.sample
|
||||
|
||||
# libc needs some love
|
||||
# TBD after conversion of gen-kconfig to template, use CT_LIBC_USE as a selector for other variables
|
||||
# (i.e. whether to use CT_GLIBC_VERSION or CT_MUSL_VERSION)
|
||||
local libc_name="${CT_LIBC}"
|
||||
local libc_ver ksym
|
||||
|
||||
ksym=${libc_name//[^0-9A-Za-z_]/_}
|
||||
ksym=${ksym^^}
|
||||
case ${ksym} in
|
||||
GLIBC|NEWLIB)
|
||||
if eval "[ \"\${CT_${ksym}_USE_LINARO}\" = y ]"; then
|
||||
ksym="${ksym}_LINARO"
|
||||
fi
|
||||
;;
|
||||
UCLIBC)
|
||||
if [ "${CT_UCLIBC_USE_UCLIBC_NG_ORG}" = y ]; then
|
||||
ksym="${ksym}_NG"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
eval "libc_ver=\"\${CT_${ksym}_VERSION}\""
|
||||
|
||||
case "${sample}" in
|
||||
current)
|
||||
sample_type="l"
|
||||
sample="$( ${CT_NG} show-tuple )"
|
||||
case "${CT_TOOLCHAIN_TYPE}" in
|
||||
canadian)
|
||||
sample="${CT_HOST},$sample"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
|
||||
sample_top="${CT_TOP_DIR}"
|
||||
sample_type="L"
|
||||
else
|
||||
sample_top="${CT_LIB_DIR}"
|
||||
sample_type="G"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ ${wiki} -eq 0 ]; then
|
||||
width=14
|
||||
printf "[%s" "${sample_type}"
|
||||
[ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "."
|
||||
[ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "."
|
||||
printf "] %s\n" "${sample}"
|
||||
if [ ${verbose} -ne 0 ]; then
|
||||
case "${CT_TOOLCHAIN_TYPE}" in
|
||||
cross) ;;
|
||||
canadian)
|
||||
printf " %-*s : %s\n" ${width} "Host" "${CT_HOST}"
|
||||
;;
|
||||
esac
|
||||
# TBD currently only Linux is used. General handling for single-select (compiler/binutils/libc/os) and multi-select (debug/companions) components?
|
||||
printf " %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_LINUX_VERSION:+-}${CT_LINUX_VERSION}"
|
||||
if [ -n "${CT_GMP}" \
|
||||
-o -n "${CT_MPFR}" \
|
||||
-o -n "${CT_ISL}" \
|
||||
-o -n "${CT_CLOOG}" \
|
||||
-o -n "${CT_MPC}" \
|
||||
-o -n "${CT_LIBELF}" \
|
||||
-o -n "${CT_EXPAT}" \
|
||||
-o -n "${CT_NCURSES}" \
|
||||
-o -n "${CT_GMP_TARGET}" \
|
||||
-o -n "${CT_MPFR_TARGET}" \
|
||||
-o -n "${CT_ISL_TARGET}" \
|
||||
-o -n "${CT_CLOOG_TARGET}" \
|
||||
-o -n "${CT_MPC_TARGET}" \
|
||||
-o -n "${CT_LIBELF_TARGET}" \
|
||||
-o -n "${CT_EXPAT_TARGET}" \
|
||||
-o -n "${CT_NCURSES_TARGET}" \
|
||||
]; then
|
||||
printf " %-*s :" ${width} "Companion libs"
|
||||
complibs=1
|
||||
fi
|
||||
[ -z "${CT_GMP}" -a -z "${CT_GMP_TARGET}" ] || printf " gmp-%s" "${CT_GMP_VERSION}"
|
||||
[ -z "${CT_MPFR}" -a -z "${CT_MPFR_TARGET}" ] || printf " mpfr-%s" "${CT_MPFR_VERSION}"
|
||||
[ -z "${CT_ISL}" -a -z "${CT_ISL_TARGET}" ] || printf " isl-%s" "${CT_ISL_VERSION}"
|
||||
[ -z "${CT_CLOOG}" -a -z "${CT_CLOOG_TARGET}" ] || printf " cloog-%s" "${CT_CLOOG_VERSION}"
|
||||
[ -z "${CT_MPC}" -a -z "${CT_MPC_TARGET}" ] || printf " mpc-%s" "${CT_MPC_VERSION}"
|
||||
[ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
|
||||
[ -z "${CT_EXPAT}" -a -z "${CT_EXPAT_TARGET}" ] || printf " expat-%s" "${CT_EXPAT_VERSION}"
|
||||
[ -z "${CT_NCURSES}" -a -z "${CT_NCURSES_TARGET}" ] || printf " ncurses-%s" "${CT_NCURSES_VERSION}"
|
||||
[ -z "${complibs}" ] || printf "\n"
|
||||
printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
|
||||
printf " %-*s :" ${width} "C compilers"
|
||||
cc=$(echo ${CT_CC} | ${awk} '{ print toupper($0)}')
|
||||
version=$(eval echo \${CT_${cc}_VERSION})
|
||||
compiler=$(echo $cc | ${awk} '{print tolower($0)}')
|
||||
printf " $compiler-$version"
|
||||
printf "\n"
|
||||
printf " %-*s : %s" ${width} "Languages" "C"
|
||||
[ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
|
||||
[ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
|
||||
[ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
|
||||
[ "${CT_CC_LANG_ADA}" = "y" ] && printf ",ADA"
|
||||
[ "${CT_CC_LANG_OBJC}" = "y" ] && printf ",Objective-C"
|
||||
[ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ",Objective-C++"
|
||||
[ "${CT_CC_LANG_GOLANG}" = "y" ] && printf ",Go"
|
||||
[ -n "${CT_CC_LANG_OTHERS}" ] && printf ",${CT_CC_LANG_OTHERS}"
|
||||
printf "\n"
|
||||
printf " %-*s : %s (threads: %s)\n" ${width} "C library" "${libc_name}${libc_ver:+-}${libc_ver}" "${CT_THREADS}"
|
||||
printf " %-*s :" ${width} "Tools"
|
||||
[ "${CT_DEBUG_DUMA}" ] && printf " duma-${CT_DUMA_VERSION}"
|
||||
[ "${CT_DEBUG_GDB}" ] && printf " gdb-${CT_GDB_VERSION}"
|
||||
[ "${CT_DEBUG_LTRACE}" ] && printf " ltrace-${CT_LTRACE_VERSION}"
|
||||
[ "${CT_DEBUG_STRACE}" ] && printf " strace-${CT_STRACE_VERSION}"
|
||||
printf "\n"
|
||||
fi
|
||||
else
|
||||
case "${CT_TOOLCHAIN_TYPE}" in
|
||||
cross)
|
||||
printf "| ''${sample}'' | "
|
||||
;;
|
||||
canadian)
|
||||
printf "| ''"
|
||||
printf "${sample}" |${sed} -r -e 's/.*,//'
|
||||
printf "'' | ${CT_HOST} "
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
printf "| "
|
||||
[ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
|
||||
[ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
|
||||
printf " | ''${CT_KERNEL}'' |"
|
||||
if [ "${CT_KERNEL}" != "bare-metal" ];then
|
||||
if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
|
||||
printf " //custom// "
|
||||
else
|
||||
printf " ${CT_LINUX_VERSION} "
|
||||
fi
|
||||
fi
|
||||
printf "| ${CT_BINUTILS_VERSION} "
|
||||
printf "| "
|
||||
cc=$(echo ${CT_CC} | ${awk} '{ print toupper($0)}')
|
||||
version=$(eval echo \${CT_${cc}_VERSION})
|
||||
compiler=$(echo $cc | ${awk} '{print tolower($0)}')
|
||||
printf " $compiler | $version"
|
||||
printf " "
|
||||
printf "| ''${libc_name}'' |"
|
||||
if [ "${libc_name}" != "none" ]; then
|
||||
printf " ${libc_ver} "
|
||||
fi
|
||||
printf "| ${CT_THREADS:-none} "
|
||||
printf "| ${CT_ARCH_FLOAT} "
|
||||
printf "| C"
|
||||
[ "${CT_CC_LANG_CXX}" = "y" ] && printf ", C++"
|
||||
[ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
|
||||
[ "${CT_CC_LANG_JAVA}" = "y" ] && printf ", Java"
|
||||
[ "${CT_CC_LANG_ADA}" = "y" ] && printf ", ADA"
|
||||
[ "${CT_CC_LANG_OBJC}" = "y" ] && printf ", Objective-C"
|
||||
[ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ", Objective-C++"
|
||||
[ -n "${CT_CC_LANG_OTHERS}" ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
|
||||
printf " "
|
||||
( . "${sample_top}/samples/${sample}/reported.by"
|
||||
if [ -n "${reporter_name}" ]; then
|
||||
if [ -n "${reporter_url}" ]; then
|
||||
printf "| [[${reporter_url}|${reporter_name}]] "
|
||||
else
|
||||
printf "| ${reporter_name} "
|
||||
fi
|
||||
else
|
||||
printf "| (//unknown//) "
|
||||
fi
|
||||
)
|
||||
sample_updated="$( git log -n1 --pretty=format:'%ci' "${sample_top}/samples/${sample}" \
|
||||
|${awk} '{ print $1; }' )"
|
||||
printf "| ${sample_updated} "
|
||||
echo "|"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "${opt}" = "-w" -a ${#} -eq 0 ]; then
|
||||
printf "^ %s |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
|
||||
printf "^ Target "
|
||||
printf "^ Host "
|
||||
printf "^ Status "
|
||||
printf "^ Kernel headers\\\\\\\\ version ^"
|
||||
printf "^ binutils\\\\\\\\ version "
|
||||
printf "^ C compiler\\\\\\\\ version ^"
|
||||
printf "^ C library\\\\\\\\ version ^"
|
||||
printf "^ Threading\\\\\\\\ model "
|
||||
printf "^ Floating point\\\\\\\\ support "
|
||||
printf "^ Languages "
|
||||
printf "^ Initially\\\\\\\\ reported by "
|
||||
printf "^ Last\\\\\\\\ updated "
|
||||
echo "^"
|
||||
exit 0
|
||||
elif [ "${opt}" = "-W" ]; then
|
||||
printf "^ Total: ${#} samples || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||"
|
||||
echo ""
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for sample in "${@}"; do
|
||||
( dump_single_sample ${opt} "${sample}" )
|
||||
done
|
Loading…
x
Reference in New Issue
Block a user