From 7a94c81e5bf171d1258aa60438482fd44e5f9800 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 26 Jan 2017 21:05:17 -0800 Subject: Rework configure logic wrt GNU autotools Rather than requiring them of a certain version, detect if they are present (and have sufficient version) and select an appropriate companion tool otherwise. The reason is that, for example, most recent gettext requires automake 1.15, but the newest available CentOS has 1.13. Hence, the option to "upgrade your system" does not apply, and the warning comment above the companion tools is rather scary. With this approach, it will work out of the box - either by using the host's tools, or by building them as needed. Note that the user can still change the setting in the config. While there, propagate the new version checking macro to awk/bash/host binutils, and switch from --with-foo=xxx to officially blessed FOO=xxx: the latter does not require checking for bogus values (i.e., --with-foo, --without-foo) and AC_PROG_* macros recognize the corresponding settings without further modifications. For now, I kept --with-foo=, if only to complain and steer people to the new way. To be cleaned up after a release. Signed-off-by: Alexey Neyman diff --git a/Makefile.in b/Makefile.in index 8d629c9..92759ca 100644 --- a/Makefile.in +++ b/Makefile.in @@ -57,8 +57,8 @@ export docdir := @docdir@@subdocdir@ export mandir := @mandir@ export datarootdir := @datarootdir@ export install := @INSTALL@ -export bash := @_BASH@ -export awk := @_AWK@ +export bash := @BASH_SHELL@ +export awk := @AWK@ export grep := @GREP@ export make := @MAKE@ export sed := @SED@ diff --git a/config/companion_tools.in b/config/companion_tools.in index 1df9802..5291f46 100644 --- a/config/companion_tools.in +++ b/config/companion_tools.in @@ -2,28 +2,6 @@ menu "Companion tools" -config COMP_TOOLS_FORCE_make_3_81 - def_bool y - depends on ! CONFIGURE_has_make_3_81_or_newer - select COMP_TOOLS - select COMP_TOOLS_make - -comment "READ HELP before you say 'Y' below !!!" - -config COMP_TOOLS - bool - prompt "Build some companion tools" - help - Crosstool-NG relies on some external tools to be recent enough, namely: - make >= 3.81 - m4 >= 1.4.12 - autoconf >= 2.63 - automake >= 1.10.2 - libtool >= 2.2.4 - - If your system has older versions, we can build them for you, - but you are strongly encouraged to update your system instead! - config COMP_TOOLS_FOR_HOST bool prompt "Install companion tools for host" @@ -32,8 +10,6 @@ config COMP_TOOLS_FOR_HOST tools into the final toolchain (rather than just using them to build it). -if COMP_TOOLS || COMP_TOOLS_FOR_HOST source "config.gen/companion_tools.in" -endif endmenu diff --git a/config/companion_tools/autoconf.in b/config/companion_tools/autoconf.in index 3b33df6..b85e1f9 100644 --- a/config/companion_tools/autoconf.in +++ b/config/companion_tools/autoconf.in @@ -1,5 +1,7 @@ # Autoconf +## default y if !CONFIGURE_has_autoconf_2_63_or_newer +## default y if !CONFIGURE_has_autoreconf_2_63_or_newer ## help Autoconf choice @@ -14,7 +16,8 @@ config AUTOCONF_V_2_69 config AUTOCONF_V_2_65 bool - prompt "2.65" + prompt "2.65 (OBSOLETE)" + depends on OBSOLETE endchoice diff --git a/config/companion_tools/automake.in b/config/companion_tools/automake.in index 781a44a..31d036b 100644 --- a/config/companion_tools/automake.in +++ b/config/companion_tools/automake.in @@ -1,5 +1,6 @@ # Automake +## default y if !CONFIGURE_has_automake_1_15_or_newer ## help Automake choice diff --git a/config/companion_tools/libtool.in b/config/companion_tools/libtool.in index 62e6ee1..5c14fa0 100644 --- a/config/companion_tools/libtool.in +++ b/config/companion_tools/libtool.in @@ -1,5 +1,7 @@ # Libtool +## default y if !CONFIGURE_has_libtool_2_4_or_newer +## default y if !CONFIGURE_has_libtoolize_2_4_or_newer ## help Libtool choice diff --git a/config/companion_tools/m4.in b/config/companion_tools/m4.in index a09e9fa..eb6a3d3 100644 --- a/config/companion_tools/m4.in +++ b/config/companion_tools/m4.in @@ -1,5 +1,6 @@ # GNU m4 +## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer ## help GNU m4 choice diff --git a/config/companion_tools/make.in b/config/companion_tools/make.in index e9e7997..b6834a7 100644 --- a/config/companion_tools/make.in +++ b/config/companion_tools/make.in @@ -1,5 +1,6 @@ # GNU make +## default y if !CONFIGURE_has_make_3_81_or_newer ## help GNU make choice diff --git a/configure.ac b/configure.ac index bb9fec5..6cf0f4e 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,16 @@ AC_CONFIG_AUX_DIR([scripts]) #-------------------------------------------------------------------- # A few helper macros +# ACX_WITH_DEPRECATED(PROG, VAR) +# Declare a deprecated --with option: instead of --with-PROG=xxx, must use VAR=xxx +AC_DEFUN( + [ACX_WITH_DEPRECATED], + [AC_ARG_WITH([$1], + [AS_HELP_STRING([--with-$1=PATH], + [Deprecated; use $2=PATH instead])], + [AC_MSG_ERROR([--with-$1=$withval deprecated; use $2=$withval instead])]) + ]) + # Check for required tool AC_DEFUN( [ACX_CHECK_TOOL_REQ], @@ -23,7 +33,9 @@ AC_DEFUN( # Check for required tool, set variable to full pathname AC_DEFUN( [ACX_PATH_TOOL_REQ], - [ACX_CHECK_TOOL_REQ([$1], [$2]) + [ACX_WITH_DEPRECATED([$3], [$1]) + AC_ARG_VAR([$1], [Specify the full path to GNU $3]) + ACX_CHECK_TOOL_REQ([$1], [$2]) AS_CASE( [$$1], [/*],, @@ -58,6 +70,56 @@ AC_DEFUN( [kconfig_options="$kconfig_options has_$1"]) ]) +# Check if a given program is available with a particular version. +# ACX_PROG_VERSION(VAR, HELP, PROG, SRCH, VERSION_CHECK[, CONFIG_OPT]) +# Search for PROG under possible names of SRCH. Allow user overrides in variable +# VAR; display HELP message. Try to find a version that satisfies VERSION_CHECK +# regexp; if that is achieved, set CONFIG_OPT in the kconfig. Otherwise, settle +# for any version found. +# Sets acx_version_VAR_ok to ':' if the version met the criterion, or false otherwise. +AC_DEFUN( + [ACX_PROG_VERSION], + [AS_IF([test -z "$EGREP"], + [AC_MSG_ERROR([This macro can only be used after checking for EGREP])]) + ACX_WITH_DEPRECATED([$3], [$1]) + AC_ARG_VAR([$1], [Specify the full path to $2]) + acx_version_$1_ok=false + AC_CACHE_CHECK([for $3], [ac_cv_path_$1], + [AC_PATH_PROGS_FEATURE_CHECK([$1], [$4], + [[ver=`$ac_path_$1 --version 2>/dev/null| $EGREP $5` + test -z "$ac_cv_path_$1" && ac_cv_path_$1=$ac_path_$1 + test -n "$ver" && ac_cv_path_$1="$ac_path_$1" ac_path_$1_found=: acx_version_$1_ok=:]])]) + AS_IF([test -n "$1"], + [[ver=`$ac_path_$1 --version 2>/dev/null| $EGREP $5` + test -n "$ver" && acx_version_$1_ok=:]]) + AC_MSG_CHECKING([for $2]) + AS_IF([$acx_version_$1_ok], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + AC_SUBST([$1], [$ac_cv_path_$1]) + AS_IF([test -n "$6"], + [AS_IF([$acx_version_$1_ok], [$6=y], [$6=]) + ACX_SET_KCONFIG_OPTION([$6])]) + ]) + +# Same as above, but make it a fatal error if the tool is not found at all +# (i.e. "require any version, prefer version X or newer") +AC_DEFUN( + [ACX_PROG_VERSION_REQ_ANY], + [ACX_PROG_VERSION([$1], [$2], [$3], [$4], [$5], [$6]) + AS_IF([test -z "$$1"], + [AC_MSG_ERROR([Required tool not found: $3])]) + ]) + +# Same, but also require the version check to pass +# (i.e. "require version X or newer") +AC_DEFUN( + [ACX_PROG_VERSION_REQ_STRICT], + [ACX_PROG_VERSION([$1], [$2], [$3], [$4], [$5], [$6]) + AS_IF([test -z "$$1" || ! $acx_version_$1_ok], + [AC_MSG_ERROR([Required tool not found: $2])]) + ]) + #-------------------------------------------------------------------- # Allow dummy --{en,dis}able-{static,shared} AC_ARG_ENABLE( @@ -66,16 +128,19 @@ AC_ARG_ENABLE( [--enable-local], [do not install, and use current directory])]) AC_SUBST([enable_local], [${enable_local:-no}]) + +# FIXME: I don't know why we have this. Will remove after the next +# release. AC_ARG_ENABLE( [shared], [AS_HELP_STRING( [--enable-shared], - [build shared libraries (default=yes) (ignored)])]) + [build shared libraries (deprecated, ignored)])]) AC_ARG_ENABLE( [static], [AS_HELP_STRING( [--enable-static], - [build static libraries (default=yes) (ignored)])]) + [build static libraries (deprecated, ignored)])]) #--------------------------------------------------------------------- # Check for --build and --host... @@ -92,37 +157,30 @@ AC_ARG_PROGRAM # Initial checks that are usually done first (I don't know why, that's # just what I seem to experience...) #--------------------------------------------------------------------- -AC_ARG_WITH([install], - AS_HELP_STRING([--with-install=PATH], - [Specify the full PATH to a BSD-compatible install]), - [INSTALL=$withval]) +ACX_WITH_DEPRECATED([install], [INSTALL]) +AC_ARG_VAR([INSTALL], [Specify the full path to a BSD-compatible install]) AC_PROG_INSTALL -AC_CACHE_VAL([ac_cv_path_GREP], - [AC_ARG_WITH([grep], - AS_HELP_STRING([--with-grep=PATH], - [Specify the full PATH to GNU grep]), - [ac_cv_path_GREP=$withval])]) + +ACX_WITH_DEPRECATED([grep], [GREP]) +AC_ARG_VAR([INSTALL], [Specify the full path to GNU grep]) AC_PROG_GREP AC_PROG_EGREP -AS_IF( - [test ! "$EGREP" = "$GREP -E"], +AS_IF([test "$EGREP" != "$GREP -E"], [AC_MSG_ERROR([egrep is not $GREP -E])]) -AC_CACHE_VAL([ac_cv_path_SED], - [AC_ARG_WITH([sed], - AS_HELP_STRING([--with-sed=PATH], - [Specify the full PATH to GNU sed]), - [ac_cv_path_SED=$withval])]) + +ACX_WITH_DEPRECATED([sed], [SED]) +AC_ARG_VAR([INSTALL], [Specify the full path to GNU sed]) AC_PROG_SED AC_MSG_CHECKING([whether sed understands -r -i -e]) -touch .ct-ng.sed.test -if ${SED} -r -i -e 's/foo/bar/' .ct-ng.sed.test >/dev/null 2>&1; then - rm -f .ct-ng.sed.test - AC_MSG_RESULT([yes]) -else - rm -f .ct-ng.sed.test - AC_MSG_RESULT([no]) - AC_MSG_ERROR() -fi +echo foo > .ct-ng.sed.test +${SED} -r -i -e 's/f(o)o/b\1ar/' .ct-ng.sed.test >/dev/null 2>&1 +rc=$? +content=`cat .ct-ng.sed.test` +rm -f .ct-ng.sed.test +AS_IF([test "$rc:$content" = "0:boar"], + [AC_MSG_RESULT([yes])], + [AC_MSG_ERROR([sed does not accept -r -i -e])]) + AC_PROG_LN_S #-------------------------------------------------------------------- @@ -146,33 +204,11 @@ AS_IF([test $static_test -eq 0], AC_MSG_RESULT([no])]) ACX_SET_KCONFIG_OPTION([static_link]) -# But we still need a way to specify the PATH to GNU versions (Damn MacOS) -AC_ARG_WITH([objcopy], - AS_HELP_STRING([--with-objcopy=PATH], - [Specify the full PATH to GNU objcopy]), - [OBJCOPY=$withval]) -AC_ARG_WITH([objdump], - AS_HELP_STRING([--with-objdump=PATH], - [Specify the full PATH to GNU objdump]), - [OBJDUMP=$withval]) -AC_ARG_WITH([ranlib], - AS_HELP_STRING([--with-ranlib=PATH], - [Specify the full PATH to GNU ranlib]), - [RANLIB=$withval]) -AC_ARG_WITH([readelf], - AS_HELP_STRING([--with-readelf=PATH], - [Specify the full PATH to GNU readelf]), - [READELF=$withval]) -AC_ARG_WITH([gperf], - AS_HELP_STRING([--with-gperf=PATH], - [Specify the full PATH to GNU gperf]), - [GPERF=$withval]) - AC_PROG_RANLIB -ACX_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy]) -ACX_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump]) -ACX_PATH_TOOL_REQ([READELF], [greadelf readelf]) -ACX_PATH_TOOL_REQ([GPERF], [gperf]) +ACX_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy]) +ACX_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump]) +ACX_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf]) +ACX_PATH_TOOL_REQ([GPERF], [gperf], [gperf]) ACX_CHECK_PROGS_REQ([bison], [bison]) ACX_CHECK_PROGS_REQ([flex], [flex]) @@ -189,121 +225,81 @@ ACX_CHECK_PROGS_REQ([help2man], [help2man]) #-------------------------------------------------------------------- # Still boring, but remember the path, now... #-------------------------------------------------------------------- -ACX_PATH_TOOL_REQ([PATCH], [gpatch patch]) +ACX_PATH_TOOL_REQ([PATCH], [gpatch patch], [patch]) #-------------------------------------------------------------------- # And a bunch of less boring tests... #-------------------------------------------------------------------- # We need a bash that is >= 3.1 -AC_CACHE_VAL([ac_cv_path__BASH], - [AC_ARG_WITH([bash], - AS_HELP_STRING([--with-bash=PATH], - [Specify the full PATH to GNU bash >= 3.1]), - [ac_cv_path__BASH=$withval])]) -AC_CACHE_CHECK([for bash >= 3.1], [ac_cv_path__BASH], - [AC_PATH_PROGS_FEATURE_CHECK([_BASH], [bash], - [[_BASH_ver=$($ac_path__BASH --version 2>&1 \ - |$EGREP '^GNU bash, version (3\.[1-9]|4)') - test -n "$_BASH_ver" && ac_cv_path__BASH=$ac_path__BASH ac_path__BASH_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find bash >= 3.1])])]) -AC_SUBST([_BASH], [$ac_cv_path__BASH]) +ACX_PROG_VERSION_REQ_STRICT([BASH_SHELL], + [GNU bash >= 3.1], + [bash], + [bash], + ['^GNU bash, version (3\.[1-9]|4)']) # We need a awk that *is* GNU awk -AC_CACHE_VAL([ac_cv_path__AWK], - [AC_ARG_WITH([awk], - AS_HELP_STRING([--with-awk=PATH], - [Specify the full PATH to GNU awk]), - [ac_cv_path__AWK=$withval])]) -AC_CACHE_CHECK([for GNU awk], [ac_cv_path__AWK], - [AC_PATH_PROGS_FEATURE_CHECK([_AWK], [gawk awk], - [[_AWK_ver=$($ac_path__AWK --version 2>&1 \ - |$EGREP '^GNU Awk ') - test -n "$_AWK_ver" && ac_cv_path__AWK=$ac_path__AWK ac_path__AWK_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find GNU awk])])]) -AC_SUBST([_AWK], [$ac_cv_path__AWK]) - -#---------------------------------------- -# Check for GNU make 3.80 or above -AC_CACHE_VAL([ac_cv_path_MAKE], - [AC_ARG_WITH([make], - AS_HELP_STRING([--with-make=PATH], - [Specify the full PATH to GNU make >= 3.80]), - [ac_cv_path_MAKE=$withval])]) -AC_CACHE_CHECK([for GNU make >= 3.80], [ac_cv_path_MAKE], - [AC_PATH_PROGS_FEATURE_CHECK([MAKE], [gmake make], - [[MAKE_ver=$($ac_path_MAKE --version 2>&1 \ - |$EGREP '^GNU Make (3.[89][[:digit:]]|[4-9])') - test -n "$MAKE_ver" && ac_cv_path_MAKE=$ac_path_MAKE ac_path_MAKE_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find GNU make >= 3.80])])]) -AC_SUBST([MAKE], [$ac_cv_path_MAKE]) -AC_PROG_MAKE_SET - -# Check for GNU make 3.81 or newer, otherwise -# it will be built as a companion tool. -AC_MSG_CHECKING([if make is 3.81 or newer]) -AS_IF( - [[MAKE_ver2=$(echo "$MAKE_ver" \ - |$EGREP '^GNU Make (3.81|3.9[0-9]|[4-9])') - test -n "$MAKE_ver2"]], - [make_3_81_or_newer="y" - AC_MSG_RESULT([yes]) - ], - [make_3_81_or_newer= - AC_MSG_RESULT([no]) - ] - ) -ACX_SET_KCONFIG_OPTION([make_3_81_or_newer]) - -#---------------------------------------- -# Check for libtool >= 1.5.26 -AC_CACHE_VAL([ac_cv_path_LIBTOOL], - [AC_ARG_WITH([libtool], - AS_HELP_STRING([--with-libtool=PATH], - [Specify the full PATH to GNU libtool >= 1.5.26]), - [ac_cv_path_LIBTOOL=$withval])]) -AC_CACHE_CHECK([for GNU libtool >= 1.5.26], [ac_cv_path_LIBTOOL], - [AC_PATH_PROGS_FEATURE_CHECK([LIBTOOL], [glibtool libtool], - [[LIBTOOL_ver=$($ac_path_LIBTOOL --version 2>&1 \ - |$EGREP '\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)') - test -n "$LIBTOOL_ver" && ac_cv_path_LIBTOOL=$ac_path_LIBTOOL ac_path_LIBTOOL_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find GNU libtool >= 1.5.26])])]) -AC_SUBST([LIBTOOL], [$ac_cv_path_LIBTOOL]) - -#---------------------------------------- -# Check for libtoolize >= 1.5.26 -AC_CACHE_VAL([ac_cv_path_LIBTOOLIZE], - [AC_ARG_WITH([libtoolize], - AS_HELP_STRING([--with-libtoolize=PATH], - [Specify the full PATH to GNU libtoolize >= 1.5.26]), - [ac_cv_path_LIBTOOLIZE=$withval])]) -AC_CACHE_CHECK([for GNU libtoolize >= 1.5.26], [ac_cv_path_LIBTOOLIZE], - [AC_PATH_PROGS_FEATURE_CHECK([LIBTOOLIZE], [glibtoolize libtoolize], - [[LIBTOOLIZE_ver=$($ac_path_LIBTOOLIZE --version 2>&1 \ - |$EGREP '\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)') - test -n "$LIBTOOLIZE_ver" && ac_cv_path_LIBTOOLIZE=$ac_path_LIBTOOLIZE ac_path_LIBTOOLIZE_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find GNU libtoolize >= 1.5.26])])]) -AC_SUBST([LIBTOOLIZE], [$ac_cv_path_LIBTOOLIZE]) - +ACX_PROG_VERSION_REQ_STRICT([AWK], + [GNU awk], + [awk], + [gawk awk], + ['^GNU Awk ']) + +# FIXME This checks for tools at the time configure runs. If a tool is later updated +# to satisfy our version requirement, we still won't be able to see that. Or worse, +# downgraded/removed. We should check this and update configure.in options right +# before running kconfig. Our configure should only check for stuff needed to +# build/install crosstool-ng itself. #---------------------------------------- -# Check for automake >= 1.10 -AC_CACHE_VAL([ac_cv_path_automake], - [AC_ARG_WITH([automake], - AS_HELP_STRING([--with-automake=PATH], - [Specify the full PATH to GNU automake >= 1.10]), - [ac_cv_path_automake=$withval])]) -AC_CACHE_CHECK([for GNU automake >= 1.10], [ac_cv_path_automake], - [AC_PATH_PROGS_FEATURE_CHECK([automake], [automake], - [[automake_ver=$($ac_path_automake --version 2>&1 \ - |$EGREP '\(GNU automake\) (1\.[[:digit:]]{2,}|[2-9][[:digit:]]*\.)') - test -n "$automake_ver" && ac_cv_path_automake=$ac_path_automake ac_path_automake_found=:]], - [AC_MSG_RESULT([no]) - AC_MSG_ERROR([could not find GNU automake >= 1.10])])]) -AC_SUBST([automake], [$ac_cv_path_automake]) +# Check for GNU make (want 3.81 or above, but will accept as long as any make is found) +ACX_PROG_VERSION_REQ_ANY([MAKE], + [GNU make >= 3.81], + [make], + [gmake make], + ['^GNU Make (3\.8[1-9]|3\.9[0-9]|[4-9]\.)'], + [make_3_81_or_newer]) + +# Check other companion tools that we may or may not build +ACX_PROG_VERSION([LIBTOOL], + [GNU libtool >= 2.4], + [libtool], + [glibtool libtool], + ['^libtool \(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'], + [libtool_2_4_or_newer]) + +ACX_PROG_VERSION([LIBTOOLIZE], + [GNU libtoolize >= 2.4], + [libtoolize], + [glibtoolize libtoolize], + ['^libtoolize \(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'], + [libtoolize_2_4_or_newer]) + +ACX_PROG_VERSION([AUTOCONF], + [GNU autoconf >= 2.63], + [AUTOCONF], + [autoconf], + ['^autoconf \(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[3-9])'], + [autoconf_2_63_or_newer]) + +ACX_PROG_VERSION([AUTORECONF], + [GNU autoreconf >= 2.63], + [autoreconf], + [autoreconf], + ['^autoreconf \(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[3-9])'], + [autoreconf_2_63_or_newer]) + +ACX_PROG_VERSION([AUTOMAKE], + [GNU automake >= 1.15], + [automake], + [automake], + ['automake \(GNU automake\) ([2-9]\.|1\.[2-9][0-9]|1\.1[5-9])'], + [automake_1_15_or_newer]) + +ACX_PROG_VERSION([M4], + [GNU m4 >= 1.4.12], + [m4], + [gm4 m4], + ['^m4 \(GNU M4\) ([2-9]\.|1\.[5-9]|1\.[1-4][0-9]|1\.4\.[2-9][0-9]|1\.4\.1[2-9])'], + [gnu_m4_1_4_12_or_newer]) #---------------------------------------- # Gperf 3.1 started generating functions with size_t rather than unsigned int diff --git a/scripts/build/companion_tools.sh b/scripts/build/companion_tools.sh index 415f3a2..b190ed7 100644 --- a/scripts/build/companion_tools.sh +++ b/scripts/build/companion_tools.sh @@ -31,23 +31,6 @@ do_companion_tools_extract() { # Build the companion tools facilities for build do_companion_tools_for_build() { - # Skip out if: - # - native/cross, and companion tools were neither selected - # to be built, nor included in the final toolchain - # - canadian/cross-native, and companion tools were not - # selected to be built - case "${CT_TOOLCHAIN_TYPE}" in - native|cross) - if [ -z "${CT_COMP_TOOLS}${CT_COMP_TOOLS_FOR_HOST}" ]; then - return - fi - ;; - canadian|cross-native) - if [ -z "${CT_COMP_TOOLS}" ]; then - return - fi - ;; - esac for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do do_companion_tools_${f}_for_build done @@ -55,12 +38,14 @@ do_companion_tools_for_build() { # Build the companion tools facilities for host do_companion_tools_for_host() { - # For native/cross, build==host, and the tools were built - # earlier by do_companion_tools_for_build. case "${CT_TOOLCHAIN_TYPE}" in + # For native/cross, build==host, skip: the tools were built + # earlier by do_companion_tools_for_build. native|cross) return ;; + # For canadian/cross-native, only need to build tools for host + # if explicitly requested. canadian|cross-native) if [ -z "${CT_COMP_TOOLS_FOR_HOST}" ]; then return -- cgit v0.10.2-6-g49f6