Skip to content

Commit

Permalink
Rework configure logic wrt GNU autotools
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
stilor committed Jan 28, 2017
1 parent 0636034 commit 7a94c81
Show file tree
Hide file tree
Showing 9 changed files with 172 additions and 207 deletions.
4 changes: 2 additions & 2 deletions Makefile.in
Expand Up @@ -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@
Expand Down
24 changes: 0 additions & 24 deletions config/companion_tools.in
Expand Up @@ -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"
Expand All @@ -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
5 changes: 4 additions & 1 deletion 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
Expand All @@ -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

Expand Down
1 change: 1 addition & 0 deletions config/companion_tools/automake.in
@@ -1,5 +1,6 @@
# Automake

## default y if !CONFIGURE_has_automake_1_15_or_newer
## help Automake

choice
Expand Down
2 changes: 2 additions & 0 deletions 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
Expand Down
1 change: 1 addition & 0 deletions 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
Expand Down
1 change: 1 addition & 0 deletions 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
Expand Down

0 comments on commit 7a94c81

Please sign in to comment.