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 <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-01-26 21:05:17 -08:00
parent 0636034688
commit 7a94c81e5b
9 changed files with 167 additions and 202 deletions

View File

@ -57,8 +57,8 @@ export docdir := @docdir@@subdocdir@
export mandir := @mandir@ export mandir := @mandir@
export datarootdir := @datarootdir@ export datarootdir := @datarootdir@
export install := @INSTALL@ export install := @INSTALL@
export bash := @_BASH@ export bash := @BASH_SHELL@
export awk := @_AWK@ export awk := @AWK@
export grep := @GREP@ export grep := @GREP@
export make := @MAKE@ export make := @MAKE@
export sed := @SED@ export sed := @SED@

View File

@ -2,28 +2,6 @@
menu "Companion tools" 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 config COMP_TOOLS_FOR_HOST
bool bool
prompt "Install companion tools for host" 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 tools into the final toolchain (rather than just using them
to build it). to build it).
if COMP_TOOLS || COMP_TOOLS_FOR_HOST
source "config.gen/companion_tools.in" source "config.gen/companion_tools.in"
endif
endmenu endmenu

View File

@ -1,5 +1,7 @@
# Autoconf # Autoconf
## default y if !CONFIGURE_has_autoconf_2_63_or_newer
## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
## help Autoconf ## help Autoconf
choice choice
@ -14,7 +16,8 @@ config AUTOCONF_V_2_69
config AUTOCONF_V_2_65 config AUTOCONF_V_2_65
bool bool
prompt "2.65" prompt "2.65 (OBSOLETE)"
depends on OBSOLETE
endchoice endchoice

View File

@ -1,5 +1,6 @@
# Automake # Automake
## default y if !CONFIGURE_has_automake_1_15_or_newer
## help Automake ## help Automake
choice choice

View File

@ -1,5 +1,7 @@
# Libtool # Libtool
## default y if !CONFIGURE_has_libtool_2_4_or_newer
## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
## help Libtool ## help Libtool
choice choice

View File

@ -1,5 +1,6 @@
# GNU m4 # GNU m4
## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
## help GNU m4 ## help GNU m4
choice choice

View File

@ -1,5 +1,6 @@
# GNU make # GNU make
## default y if !CONFIGURE_has_make_3_81_or_newer
## help GNU make ## help GNU make
choice choice

View File

@ -11,6 +11,16 @@ AC_CONFIG_AUX_DIR([scripts])
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# A few helper macros # 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 # Check for required tool
AC_DEFUN( AC_DEFUN(
[ACX_CHECK_TOOL_REQ], [ACX_CHECK_TOOL_REQ],
@ -23,7 +33,9 @@ AC_DEFUN(
# Check for required tool, set variable to full pathname # Check for required tool, set variable to full pathname
AC_DEFUN( AC_DEFUN(
[ACX_PATH_TOOL_REQ], [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( AS_CASE(
[$$1], [$$1],
[/*],, [/*],,
@ -58,6 +70,56 @@ AC_DEFUN(
[kconfig_options="$kconfig_options has_$1"]) [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} # Allow dummy --{en,dis}able-{static,shared}
AC_ARG_ENABLE( AC_ARG_ENABLE(
@ -66,16 +128,19 @@ AC_ARG_ENABLE(
[--enable-local], [--enable-local],
[do not install, and use current directory])]) [do not install, and use current directory])])
AC_SUBST([enable_local], [${enable_local:-no}]) 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( AC_ARG_ENABLE(
[shared], [shared],
[AS_HELP_STRING( [AS_HELP_STRING(
[--enable-shared], [--enable-shared],
[build shared libraries (default=yes) (ignored)])]) [build shared libraries (deprecated, ignored)])])
AC_ARG_ENABLE( AC_ARG_ENABLE(
[static], [static],
[AS_HELP_STRING( [AS_HELP_STRING(
[--enable-static], [--enable-static],
[build static libraries (default=yes) (ignored)])]) [build static libraries (deprecated, ignored)])])
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Check for --build and --host... # 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 # Initial checks that are usually done first (I don't know why, that's
# just what I seem to experience...) # just what I seem to experience...)
#--------------------------------------------------------------------- #---------------------------------------------------------------------
AC_ARG_WITH([install], ACX_WITH_DEPRECATED([install], [INSTALL])
AS_HELP_STRING([--with-install=PATH], AC_ARG_VAR([INSTALL], [Specify the full path to a BSD-compatible install])
[Specify the full PATH to a BSD-compatible install]),
[INSTALL=$withval])
AC_PROG_INSTALL AC_PROG_INSTALL
AC_CACHE_VAL([ac_cv_path_GREP],
[AC_ARG_WITH([grep], ACX_WITH_DEPRECATED([grep], [GREP])
AS_HELP_STRING([--with-grep=PATH], AC_ARG_VAR([INSTALL], [Specify the full path to GNU grep])
[Specify the full PATH to GNU grep]),
[ac_cv_path_GREP=$withval])])
AC_PROG_GREP AC_PROG_GREP
AC_PROG_EGREP AC_PROG_EGREP
AS_IF( AS_IF([test "$EGREP" != "$GREP -E"],
[test ! "$EGREP" = "$GREP -E"],
[AC_MSG_ERROR([egrep is not $GREP -E])]) [AC_MSG_ERROR([egrep is not $GREP -E])])
AC_CACHE_VAL([ac_cv_path_SED],
[AC_ARG_WITH([sed], ACX_WITH_DEPRECATED([sed], [SED])
AS_HELP_STRING([--with-sed=PATH], AC_ARG_VAR([INSTALL], [Specify the full path to GNU sed])
[Specify the full PATH to GNU sed]),
[ac_cv_path_SED=$withval])])
AC_PROG_SED AC_PROG_SED
AC_MSG_CHECKING([whether sed understands -r -i -e]) AC_MSG_CHECKING([whether sed understands -r -i -e])
touch .ct-ng.sed.test echo foo > .ct-ng.sed.test
if ${SED} -r -i -e 's/foo/bar/' .ct-ng.sed.test >/dev/null 2>&1; then ${SED} -r -i -e 's/f(o)o/b\1ar/' .ct-ng.sed.test >/dev/null 2>&1
rm -f .ct-ng.sed.test rc=$?
AC_MSG_RESULT([yes]) content=`cat .ct-ng.sed.test`
else rm -f .ct-ng.sed.test
rm -f .ct-ng.sed.test AS_IF([test "$rc:$content" = "0:boar"],
AC_MSG_RESULT([no]) [AC_MSG_RESULT([yes])],
AC_MSG_ERROR() [AC_MSG_ERROR([sed does not accept -r -i -e])])
fi
AC_PROG_LN_S AC_PROG_LN_S
#-------------------------------------------------------------------- #--------------------------------------------------------------------
@ -146,33 +204,11 @@ AS_IF([test $static_test -eq 0],
AC_MSG_RESULT([no])]) AC_MSG_RESULT([no])])
ACX_SET_KCONFIG_OPTION([static_link]) 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 AC_PROG_RANLIB
ACX_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy]) ACX_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy])
ACX_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump]) ACX_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump])
ACX_PATH_TOOL_REQ([READELF], [greadelf readelf]) ACX_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf])
ACX_PATH_TOOL_REQ([GPERF], [gperf]) ACX_PATH_TOOL_REQ([GPERF], [gperf], [gperf])
ACX_CHECK_PROGS_REQ([bison], [bison]) ACX_CHECK_PROGS_REQ([bison], [bison])
ACX_CHECK_PROGS_REQ([flex], [flex]) ACX_CHECK_PROGS_REQ([flex], [flex])
@ -189,121 +225,81 @@ ACX_CHECK_PROGS_REQ([help2man], [help2man])
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# Still boring, but remember the path, now... # 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... # And a bunch of less boring tests...
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# We need a bash that is >= 3.1 # We need a bash that is >= 3.1
AC_CACHE_VAL([ac_cv_path__BASH], ACX_PROG_VERSION_REQ_STRICT([BASH_SHELL],
[AC_ARG_WITH([bash], [GNU bash >= 3.1],
AS_HELP_STRING([--with-bash=PATH], [bash],
[Specify the full PATH to GNU bash >= 3.1]), [bash],
[ac_cv_path__BASH=$withval])]) ['^GNU bash, version (3\.[1-9]|4)'])
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])
# We need a awk that *is* GNU awk # We need a awk that *is* GNU awk
AC_CACHE_VAL([ac_cv_path__AWK], ACX_PROG_VERSION_REQ_STRICT([AWK],
[AC_ARG_WITH([awk], [GNU awk],
AS_HELP_STRING([--with-awk=PATH], [awk],
[Specify the full PATH to GNU awk]), [gawk awk],
[ac_cv_path__AWK=$withval])]) ['^GNU Awk '])
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])
# 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 GNU make 3.80 or above # Check for GNU make (want 3.81 or above, but will accept as long as any make is found)
AC_CACHE_VAL([ac_cv_path_MAKE], ACX_PROG_VERSION_REQ_ANY([MAKE],
[AC_ARG_WITH([make], [GNU make >= 3.81],
AS_HELP_STRING([--with-make=PATH], [make],
[Specify the full PATH to GNU make >= 3.80]), [gmake make],
[ac_cv_path_MAKE=$withval])]) ['^GNU Make (3\.8[1-9]|3\.9[0-9]|[4-9]\.)'],
AC_CACHE_CHECK([for GNU make >= 3.80], [ac_cv_path_MAKE], [make_3_81_or_newer])
[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 # Check other companion tools that we may or may not build
# it will be built as a companion tool. ACX_PROG_VERSION([LIBTOOL],
AC_MSG_CHECKING([if make is 3.81 or newer]) [GNU libtool >= 2.4],
AS_IF( [libtool],
[[MAKE_ver2=$(echo "$MAKE_ver" \ [glibtool libtool],
|$EGREP '^GNU Make (3.81|3.9[0-9]|[4-9])') ['^libtool \(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'],
test -n "$MAKE_ver2"]], [libtool_2_4_or_newer])
[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])
#---------------------------------------- ACX_PROG_VERSION([LIBTOOLIZE],
# Check for libtool >= 1.5.26 [GNU libtoolize >= 2.4],
AC_CACHE_VAL([ac_cv_path_LIBTOOL], [libtoolize],
[AC_ARG_WITH([libtool], [glibtoolize libtoolize],
AS_HELP_STRING([--with-libtool=PATH], ['^libtoolize \(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'],
[Specify the full PATH to GNU libtool >= 1.5.26]), [libtoolize_2_4_or_newer])
[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])
#---------------------------------------- ACX_PROG_VERSION([AUTOCONF],
# Check for libtoolize >= 1.5.26 [GNU autoconf >= 2.63],
AC_CACHE_VAL([ac_cv_path_LIBTOOLIZE], [AUTOCONF],
[AC_ARG_WITH([libtoolize], [autoconf],
AS_HELP_STRING([--with-libtoolize=PATH], ['^autoconf \(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[3-9])'],
[Specify the full PATH to GNU libtoolize >= 1.5.26]), [autoconf_2_63_or_newer])
[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([AUTORECONF],
# Check for automake >= 1.10 [GNU autoreconf >= 2.63],
AC_CACHE_VAL([ac_cv_path_automake], [autoreconf],
[AC_ARG_WITH([automake], [autoreconf],
AS_HELP_STRING([--with-automake=PATH], ['^autoreconf \(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[3-9])'],
[Specify the full PATH to GNU automake >= 1.10]), [autoreconf_2_63_or_newer])
[ac_cv_path_automake=$withval])])
AC_CACHE_CHECK([for GNU automake >= 1.10], [ac_cv_path_automake], ACX_PROG_VERSION([AUTOMAKE],
[AC_PATH_PROGS_FEATURE_CHECK([automake], [automake], [GNU automake >= 1.15],
[[automake_ver=$($ac_path_automake --version 2>&1 \ [automake],
|$EGREP '\(GNU automake\) (1\.[[:digit:]]{2,}|[2-9][[:digit:]]*\.)') [automake],
test -n "$automake_ver" && ac_cv_path_automake=$ac_path_automake ac_path_automake_found=:]], ['automake \(GNU automake\) ([2-9]\.|1\.[2-9][0-9]|1\.1[5-9])'],
[AC_MSG_RESULT([no]) [automake_1_15_or_newer])
AC_MSG_ERROR([could not find GNU automake >= 1.10])])])
AC_SUBST([automake], [$ac_cv_path_automake]) 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 # Gperf 3.1 started generating functions with size_t rather than unsigned int

View File

@ -31,23 +31,6 @@ do_companion_tools_extract() {
# Build the companion tools facilities for build # Build the companion tools facilities for build
do_companion_tools_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 for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
do_companion_tools_${f}_for_build do_companion_tools_${f}_for_build
done done
@ -55,12 +38,14 @@ do_companion_tools_for_build() {
# Build the companion tools facilities for host # Build the companion tools facilities for host
do_companion_tools_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 case "${CT_TOOLCHAIN_TYPE}" in
# For native/cross, build==host, skip: the tools were built
# earlier by do_companion_tools_for_build.
native|cross) native|cross)
return return
;; ;;
# For canadian/cross-native, only need to build tools for host
# if explicitly requested.
canadian|cross-native) canadian|cross-native)
if [ -z "${CT_COMP_TOOLS_FOR_HOST}" ]; then if [ -z "${CT_COMP_TOOLS_FOR_HOST}" ]; then
return return