Split the has_or_abort function in two:
- one that checks if the tool if found,
- one that calls the above check, and aborts if not found
The rational behind this is to be able to check for a tool
and if not found, fallback to using our bundled version,
should the need arise (and I get time).
For every components where it makes sense, use bash arrays (instead
of a string with space-separated values) to store the options pased
to ./configure.
The configure script fails on automake-1.11 (in Fedora-11) since
it looks for 3-digit version number.
Patch fixed by "Yann E. MORIN", with the added comment:
The check for the automake version is not against a 3-digit number,
but really against a 3-part version number, a-la 'x.y.z'. Versions
such as 1.10 and 1.11 are also valid.
Now that we have migrated to hg from svn, it does not make sense
to keep using svn tools to compute the version string, so switch
to using mercurial tools (that are much more flexible, BTW).
- when a variable name was given, with no regexp, the pattern did not correctly extract the variable name
/trunk/configure | 11 8 3 0 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
- removed the --force command line option
- use FORCE from the environment
/trunk/configure | 9 2 7 0 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
- update the tool_pattern to use ' || ' as a pattern separator
- which allows using | in regexp
- add checks for cut and xargs
- manually check for grep and sed because they are needed when checking for tools
- print why a test failed, with each tested tool and regexp
- move tools checks before options parsing
- apply conttibutions before computing the version string
- inform user to run make && make install
/trunk/configure | 173 111 62 0 ++++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 111 insertions(+), 62 deletions(-)
- borrow a lot of ideas from Michael ABBOTT ( http://sourceware.org/ml/crossgcc/2008-12/msg00030.html )
- should be conforming to POSIX 1003.1-2008, non compliance due to bashsims is to be considered a bug
- as a result, it now works with dash
- make a little easier to read in some places
- enforce 4-space indentation
- get rid of futile 'return $?'
- quote all variables assignments
- save and restore IFS prior to and after using alternate values
- simplify the TOOLS_TO_CHECK listing
What's left:
- provide a mean to actually _compare_ version numbers
- change the TOOLS_TO_CHECK pattern style to be able to use '|' in regexp
/trunk/configure | 243 127 116 0 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 127 insertions(+), 116 deletions(-)
- previously, only version with a more-than-two-digits minor would match
- make versions starting with major in [2-9] also match
/trunk/configure | 4 2 2 0 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
- automake must be at least 1.10 to correctly setup MPFR
- either one of curl or wget is needed to retrieve the tarballs
/trunk/configure | 7 4 3 0 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
We need GNU Awk? Then check for, and use 'gawk', not plain 'awk'.
Be a little mre verbose if a tool was not found.
/trunk/configure | 7 4 3 0 ++++---
/trunk/scripts/build/kernel/linux.sh | 2 1 1 0 +-
/trunk/scripts/functions | 16 8 8 0 ++++++++--------
/trunk/scripts/saveSample.sh | 4 2 2 0 ++--
4 files changed, 15 insertions(+), 14 deletions(-)
It was needed by glibc and eglibc to re-generate their 'configure' files, but they no longer do (in fact never did).
/trunk/configure | 1 0 1 0 -
1 file changed, 1 deletion(-)
Fix this by determining both the cross-readelf and the sys-root at runtime, not at build time.
/trunk/configure | 1 1 0 0 +
/trunk/scripts/crosstool.sh | 14 6 8 0 ++++++--------
/trunk/tools/populate.in | 6 4 2 0 ++++--
3 files changed, 11 insertions(+), 10 deletions(-)
Move some functions around (no code change).
Only tell about applying contribs when there are contribs to apply.
Some eye-candy here and there.
/trunk/configure | 94 75 19 0 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 75 insertions(+), 19 deletions(-)
Thanks to Martin GUY for pointing out that ./configure was not POSIXly correct.
/trunk/configure | 51 35 16 0 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 35 insertions(+), 16 deletions(-)
Change the version string so that it does not break 'make', and so that it has no '/' (it would be a hell if installed directories would mirror the SVN branches... :-/ )
Do not use implicit rules for the Makefile.
Simplify and enc=hance the --local test to refuse (un)installing.
Double-quotes variables, they are based on user input.
Eye-candy in the 'compile' and install messages.
/trunk/configure | 26 14 12 0 ++++++++++---------
/trunk/Makefile.in | 83 45 38 0 +++++++++++++++++++++++++++++++++---------------------------
2 files changed, 59 insertions(+), 50 deletions(-)
Homogenise the references to crosstool-NG:
- the project is named "crosstool-NG"
- the front-end is named "ct-ng"
- don't use shortcuts (such as "ct-ng" to stand for "crosstool-NG")
Default action is to print help.
Don't speak of make rules when dumping help, just speak of actions.