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>
Allow selection of make/m4/... version. Support imports of new versions
via addToolVersion.sh. Import newest versions of the companion tools.
One non-trivial change is the handling of make versions. Existing code
was not handling make companion tool as described (see the previous
commit). However, since most modern systems have make 4.x, that previous
commit made crosstool-ng always build make as a companion tool.
This traces back to the commit dd15c93 from 2014. That commit's log message
says that actually it was 3.81 which broke the build for certain component
(it was originally breaking eglibc, but I noticed it was breaking current
glibc on powerpc64), and introduced an option to force using 3.81 by
"components that really need it". It looks like in 2.5 years we haven't
seen any such components that really need make 3.81, and (given that make
has already had a few releases since 3.81) we're unlikely to see them
in the future.
Hence, the configure check is changed from "exactly 3.81" to "3.81 or newer".
In its current form, configure will accept make 3.80+, and will not require
make as a companion tool for 3.81+. We might want to bump the latter check
to even newer version given the claim from dd15c93. Killed
COMP_TOOLS_make_3_81_NEEDED.
Anyway, I retained 3.81 just in case; ditto for m4 1.14.3, autoconf 2.65
and automake 1.11.1.
Signed-off-by: Alexey Neyman <stilor@att.net>
Because I don't pass `-o` to gcc, it makes an a.out file with gcc.
For clang it doesn't make the a.out, as that is not the default.
It doesn't hurt to output to /dev/null for both.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This is a semi-nasty-hack to see if gcc can static link.
Obviously on Mac OS X this is not possible, so we set
CT_CONFIGURE_has_static_link=y if it can.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
I previously thought that tinfo could only be a link to libncurses in
modern ncurses installations. I was wrong.
Now we check for ncurses, then check for tinfo. If tinfo is a link to
ncurses, it is then not required to link against. But if libtinfo is
providing tgetent, and not libncurses, then we must add it to LIBS as
well.
Also, kconfig shouldn't hardcode -lncurses, it should use what is in
$(LIBS).
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
We require GNU/patch, and when we install patch with `pkg`, crosstool-ng
still only finds the BSD/patch in /usr/bin/patch.
This commit fixes that and searches for gpatch first.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
While usually distributed with ncurses, some distributions distribute
this library separately. Check to make sure it is installed.
This closes#241
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
I was going to start doing some autoconf work, and noticed that
configure.in was executable. Then I noticed Makefile.in was executable.
o.O
So, I ran ```find . -type f -executable``` and found a bunch of files
that shouldn't be set executable.
This commit makes them normal files again.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
This commit introduces a configure time option to let the build know
that this is going to be an automated build.
This forces the build to disable the progress bar, log tool warnings,
and force the log level to debug.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Due to patch 0e45cdf, the VERSION string has changed. And so, the the sub
directory names has changed too:
From 'ct-ng.1.21.0' to 'ct-ng.crosstool-ng-1.21.0-xx-yyyyyyy'
This patch rename the sub directory to: 'crosstool-ng-1.21.0-xx-yyyyyyy'
Signed-off-by: Jean-Marie Lemetayer <jeanmarie.lemetayer@gmail.com>
This change removes the static .version file, and moves to using the git
tag as the version number, the change number if the current commit is
newer then the latest tag, and '-dirty' if there are changes to the git
repository since the last commit that are uncommitted.
This helps us in the troubleshooting process to identify if the user is:
* using a released version (i.e.: 1.21.0)
* using a clone from git (i.e.: 1.21.0-29-13e14f)
* using a clone from git with local uncommitted changes (i.e.: 1.21.0-29-13e14f-dirty)
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Allows users for which GNU grep is not the default grep (e.g. BSD
folks), or is in a weird location.
Reported-by: Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
Signed-off-by: "Fabian Freyer" <fabian.freyer@physik.tu-berlin.de>
[yann.morin.1998@free.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
This avoids using an oldish tag as base for the version string.
Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
For awk and make, we currently check the standard names as found on
a classic GNU-userland system, and then fallback to looking for the
g-named variants as found on a *BSD system.
But it happens that the usual name might also be available on a *BSD
system, so we should first check the g-variant.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
BSD OS'es (OS X for me) provide GNU tools with prefixed 'g'. To find correct
versions of libtool/libtoolize on those systems search also for
glibtool/glibtoolize.
Signed-off-by: Andreas Bießmann <andreas@biessmann.de>
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
[yann.morin.1998@free.fr: search for the g-variant first]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <2f1530b54afcb6a00e1d.1395158786@andreas-mbp.er.biessmann.org>
Patchwork-Id: 331467
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
[yann.morin.1998@free.fr: add message "checking for make 3.81"]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <8b8bf6998f3d239f6c74.1392920971@advancedsearch.virginmedia.com>
Patchwork-Id: 322302
The autoconf manual suggests not to use ' in messages.
I don't why they do, but it breaks syntax-highlighting.
Just remove the lone quote we have.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
On OS X, Apple supply an old gperf (3.0.3) with xcode and
xcode commandline tools which causes build failures:
./zconf.hash.c:183:17: error: expected expression
{offsetof(struct kconf_id_strings_t, kconf_id_strings_str2),
.. upgrading to gperf 3.0.4 was sufficient to fix this,
so this option allows the user to specify the gperf
program that they wish to use.
To install gperf 3.0.4 from homebrew, I did:
brew tap homebrew/dupes
brew install homebrew/dupes/gperf
.. then passed --with-gperf=$BREWFIX/Cellar/gperf/3.0.4/bin/gperf
to configure
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Message-Id: <CAOYw7dtCmcJ9WiqmQ81MmZeRPcV-tDOqe9=kRDW4uQGuZNd2Ng@mail.gmail.com>
Patchwork-Id: 274892
#0a0410dd0cb0 broke #0cc4d6352c3e. This patch fixes this, which fixes the build
of gcc/glibc/gdb manuals.
Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
In the process of converting to autoconf, the kconfig option
were not properly translated.
Fix that.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
We need just 'grep', and we need to be able to call it with 'grep -E'.
Check for 'grep', and bailout if egrep != grep -E
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
The real sources for a few files are the lex/yacc/gperf
files, and the C files are only generated...
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
The kconfig frontends are currently instaleld as source files. This is
a remnant of the early times, when I wanted a single installation of
crosstool-NG to be shared across multiple machines, potentially of
different architectures.
This does not really make sense, and it's been a long time since it
was las tpossible in practice.
So, just build the kconfig frontends at make-time, and install them
as we do for all other crosstool-NG dependent files.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Create configure.ac, an autoconf script to generate ./configure
This will be needed by a subsequent patch to properly handle
--build and --host, and more tests, when the kconfig stuff will
be installed pre-built.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>