Commit Graph

119 Commits

Author SHA1 Message Date
Yann E. MORIN"
bdae0332be configure: fix version string breakage
As we use the directory names as Makefile targets, they can not contain any
column ':', or else make will complain about 'multiple target patterns'.

Replace the offending ':' with a dash '-', as Titus suggested.

Reported-by: Erdem Budak <erdembudak@hotmail.com>
Reported-by: Titus von Boxberg <titus@v9g.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-14 18:12:55 +01:00
Yann E. MORIN"
66cf16ec46 configure: compute a simpler version string
Compute a simpler, yet still completely descriptive, version string.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-13 18:24:36 +01:00
Yann E. MORIN"
a37a585637 configure: add support for helper script to compute version string
Some projects are using (or planning to use) crosstool-NG, and are storing
it in their VCS, which might not be Mercurial. At the same time, those
projects may want to track development snapshots versions the way we do
with the Hg identity string (hg id).

Provide a way for these project to do so, without having to patch
./configure, and maintain that patch over-and-over again.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-11-13 17:48:17 +01:00
Yann E. MORIN"
2db92c8d14 configure: don't check for host system
This is no longer used.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-16 16:21:33 +02:00
Yann E. MORIN"
e2b9a81da3 scripts: check host features with host compiler
Currently, we check host feature in ./configure. This works only for
cross toolchains, but not for canadian toolchains. ./configure has
absolutely no way to know what the host for the toolchain will be;
only the build scripts know.

So, move the headers & libraries checks from ./configure to the build
scripts, early enough in the build, but not before we know the host
compiler and other tools.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-14 22:44:24 +02:00
Yann E. MORIN"
c7a396f9b7 debug/gdb: new option to enable/disable use of python
Add a new option to enable/disable the Python scripting in gdb.
Hide the option (ie. disable it) when statically linking the cross-gdb.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-10-08 22:57:21 +02:00
Yann E. MORIN"
4b0155c24f scripts/functions: only use one download program
Currently, we use either wget or curl, whichever is installed.
In case both are installed, both are used. This means that it
takes a while trying all extensions.

Remove use of wget, and use only curl.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-09-09 15:34:04 +02:00
Yann E. MORIN"
4c1666134b configure: xz-utils alone can also handle LZMA-compressed tarballs
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-26 00:07:51 +02:00
Yann E. MORIN"
04250cc896 configure: check for lzma
Some packages are available as LZMA tarballs. LZMA is a relatively recent
compression algorithm; it's slightly better than bzip2, but offers much
faster decompression. LZMA is now deprecated in favor of XZ, but some
packages switched to LZMA when XZ was not yet available, or still in its
infancy. Latest XZ (which totaly obsoletes LZMA) offers a backward LZMA-
compatible utility, so we can check for 'lzma' nonetheless.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-25 18:30:18 +02:00
Yann E. MORIN"
4bf42bfd02 configure: fix typo in xz-utils warning message
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-26 00:05:20 +02:00
Titus von Boxberg"
6b9c9e74b2 configure: require libtoolize, create wrapper to it
libtoolize must be checked_for and there needs to be a wrapper
that points to GNU libtoolize since that may be installed
as glibtoolize.
This fixes a problem with building Cloog/PPL that was

Reported-by: "Pierrick Brossin" <pierrick@bs-network.net>
Signed-off-by: "Titus von Boxberg" <titus@v9g.de>
2011-08-22 09:40:31 +02:00
Titus von Boxberg"
9e5e41568c configure: fix --with-prog=[...]
check_for didn't set variable 'where' when the path to a prog
was passed manually "(cached)".

Signed-off-by: "Titus von Boxberg" <titus@v9g.de>
2011-08-22 09:41:35 +02:00
Yann E. MORIN"
770a64c7ff configure: recognise and handle --program-transform-name
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-21 23:11:26 +02:00
Yann E. MORIN"
9ff2560230 configure: recognise and handle --program-suffix
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-19 22:43:01 +02:00
Yann E. MORIN"
f2f6d799c5 configure: handle --program-prefix
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-17 23:05:01 +02:00
Yann E. MORIN"
fd91781fbe configure: document ignored switches
Autostuff tradiotionnally have some switches to set host, build and
target systems, static or shared libs, and a bunch of others...

In the crosstool-NG case, they do not matter, as crosstool-NG is
just a set of scripts (there are C files, but they are compiled
after installation, at runtime, so it does not count).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-17 22:23:21 +02:00
Yann E. MORIN"
6537cbdeac configure: add test for xz-utils
Some upstream now release tarballs compressed with xz, along with the
more traditional bzip2 and/or gzip tarballs.  xz (and its predecessor
lzma) achieves better compression, so is a good candidate to shorten
the time it takes to download the source tarballs.

Enable downloading xz-cmopressed tarballs if the user has xz-utils.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-10 23:13:46 +02:00
Yann E. MORIN"
0486fba24c configure: do not require lzma
Nothing uses lzma now, so we can get rid of it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-14 16:06:20 +02:00
Yann E. MORIN"
e83c7dc21f configure: more autostuff compatibility
Ignore --program-prefix=...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-09 22:10:57 +02:00
Yann E. MORIN"
f7a05d343a configure: do not require svn
svn is needed to download eglibc from the upstream repository.
In some situations, though, it can happen that:
 - the developpers' machines do not have svn
 - a LAN mirror has been set-up with pre-downloaded eglibc tarballs
In this case, it makes sense not to hard-depend on svn.

So, if svn is missing, just say so, and add a comment in the
menuconfig.

Reported-by: ANDY KENNEDY <ANDY.KENNEDY@adtran.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-01 22:46:57 +02:00
Yann E. MORIN"
8be2754464 configure: add yet a bit more of autostuff compatibility
Well, at least it helps buildroot! :-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-14 17:59:33 +02:00
Yann E. MORIN"
a6ec9c6052 configure: add check for svn
svn is needed to downlod eglibc, so we require it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-05 00:54:06 +02:00
Yann E. MORIN"
76bfe6ef36 configure: do not require cvs
cvs is used to get newlib directly from its repository. Missing cvs
will only allow getting newlib from the released tarballs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-04 22:53:49 +02:00
Yann E. MORIN"
b8dc6fb232 configure: portability fixes - take 2
It is useful to sometime run on a strictly POSIX-compliant
shell... :-/

And it is sometime interesting to refresh Q-patches before
finishing the series... :-(

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-04 22:37:44 +02:00
Yann E. MORIN"
66f5e1919b configure: do not test for static libs if static link is impossible
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-28 00:52:33 +02:00
Yann E. MORIN"
30d160d636 configure: pass the allowed lib extensions to check_for()
Rather than building all possible library names in the caller,
lets just do it once in check_for.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-28 00:29:02 +02:00
Yann E. MORIN"
74a50972fb configure: disable static linking on Darwin
Static liunking is not supported on Darwin, so hide the corresponding
options when the build machine is Darwin.

Reported-by: Andrea Franceschini <therealmorpheu5@gmail.com>
Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Reported-by: "Titus von Boxberg" <titus@v9g.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-27 21:03:40 +02:00
Yann E. MORIN"
87425910c2 configure: check host system
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-28 17:25:02 +02:00
Yann E. MORIN"
165d6abf6d configure: indent error/warning message
Indent the error/warning message so that it is explicit that
the second line is giving details for the first general hint.

Reported-by: Titus von Boxberg <titus@v9g.de>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-03 12:00:37 +02:00
Yann E. MORIN"
a62097ddca configure: check for ncurses libs + headers in one go
./configure now has the possibility to check for libraries and headers
in one go, so we can use it! :-)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-08 19:32:20 +02:00
Yann E. MORIN"
b5225e3ff2 debug/cross-gdb: check host dependencies
Cross-gdb depends on expat and python. If either is missing, cross-gdb will
build successfully, but lacking some features.

Especially, if expat is missing, cross-gdb will be unable to parse the target
description, which may lead to runtime malfunctions and the following GDB
warning:
"Can not parse XML target description; XML support was disabled at compile time"

Hence, expat should be considered mandatory.

On the other hand, the features missing without python are not critical, so
python should not be considered mandatory.

This patch does the following:
 - At configure time, warn the user if either expat or python is missing.
 - In menuconfig, disable the static build options regarding cross-gdb if no
   static version of expat is available, and disable cross-gdb if expat is
   missing.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
[yann.morin.1998@anciens.enib.fr: add comment for impossible static cross-gdb]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-08 15:47:43 +02:00
Benoît THÉBAUDEAU"
c890ff476c configure: give check_for() the ability to test several item types at once
Currently, check_for() can only test one of prog, inc or lib at once. This patch
removes this limitation.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
2011-06-08 15:47:03 +02:00
Yann E. MORIN"
fa8cf23b2e configure: rationalise error messages with meaningful texts
Currently, error messages just state the obvious: a required
component is required. While in some cases, there is not much
else to say, in some other cases we could tell much more.

For example, a missing libstdc++ means no static toolchain.

Also, format error and warning messages in a similar fashion,
with a {error,warning} intro, followed by the message specified
by the caller.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-04 19:17:26 +02:00
Yann E. MORIN"
08ebd6ec3d cc/gcc: CC_STATIC_LIBSTDCXX 'depends on' CONFIGURE_has_static_libstdcpp
Hide the staticaly linked libstdc++ option if the static libstdc++ is not
present, detected at configure time.

Add a blind option that says whether static linking is possible at all.
It defaults to 'y', but depends on the needed CONFIGURE_* options. For
now, it only depends on static libtdc++, but new dependencies can be
easily added.

Hide the global static toolchain option behind this new option.

Original patch by Bryan Hundven <bryanhundven@gmail.com>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-02 19:50:12 +02:00
Yann E. MORIN"
203f2d36ba configure: check for libstdc++.{so,dylib,a}
It's probably a good thing to check for at least one instance of
libstdc++.{so,dylib,a} at configure time. At least one is needed
by the companion libraries and gcc.

Original patch by Bryan Hundven <bryanhundven@gmail.com>

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-02 19:49:36 +02:00
Yann E. MORIN"
c6f3947bcb configure: add prefix to err messages in has_or_{abort,warn}
Make it easier to spot messages spewed out by has_or_{abort,warn}.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-02 21:43:36 +02:00
Yann E. MORIN"
a8f575082a configure: maintain single quotes in error messages
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-06-02 19:58:05 +02:00
Yann E. MORIN"
a257ff7da8 configure: add possibility to set arbitrary variable in check_for
If check_for is able to find the required prog/inc/lib, allow it to
set an arbitrary variable to 'y'. This variable is then pushed down
to the kconfig definition.

For example:
  has_or_abort prog=foobar kconfig=has_foobar

If foobar is available, it yields a kconfig variable defaulting to y:
    config CONFIGURE_has_foobar
        bool
        default y

If foobar is missing, it yields a kconfig variable defaulting to n:
    config CONFIGURE_has_foobar
        bool

Thus it is possible to depends on that variabel to show/hide options:
    config SOME_FEATURE
        bool
        prompt "Some feature"
        depends on CONFIGURE_has_foobar

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-26 22:51:03 +02:00
Yann E. MORIN"
7aa57aa228 configure: add has_or_warn
By popular request, add a function to only warn on missing stuff.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-26 18:33:53 +02:00
Yann E. MORIN"
94314fce7c configure: move error message down to has_or_abort
When has_or_warn will come, we do want to print the error message
only in has_or_abort, so move it down there.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-05-26 18:40:53 +02:00
Yann E. MORIN"
9dbbc8e5f6 scripts: remove aria2c as downloader, retain only curl and wget
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2010-11-16 10:00:27 +01:00
Yann E. MORIN"
11c957c216 configure: fix --mandir
--mandir points to the base dir of the man pages, so
we have to append our man section below given dir.
2010-07-15 22:34:31 +02:00
Titus von Boxberg
7e0d63c969 configure: add path to libtool to pathlist
forgot var=libtool
2010-05-23 16:34:15 +02:00
Titus von Boxberg
ebf80df032 ct-ng: Add ability to configure and use some GNU tools
Make the paths to libtool, objcopy, objdump, readelf, patch configurable.
2010-05-17 14:11:08 +02:00
Titus von Boxberg
82af5a5d7b configure: make call to readlink portable to non-GNU (BSD) systems
The argument '-e' for readlink is a GNU extension.
In setting the variable 'where' the argument '-e' is not necessary, thus eliminated.
2010-05-17 12:23:24 +02:00
Titus von Boxberg
5417e0f79c configure: Do not require stat to be of GNU coreutils
calls to stat have been made portable, thus it is not necessary
that the GNU version is present on the user's system.
2010-05-17 11:29:26 +02:00
Yann E. MORIN"
e497ddd14a configure: do not require hg when configuring in an hg clone
When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
2010-01-17 23:06:02 +01:00
blueness
2a5d424288 configure: silently ignore auto-stuff options --build --host and friends 2010-01-17 11:57:53 -05:00
Yann E. MORIN"
04c68600ea scripts/functions: add aria2, a powerfull downloader
aria2 is a powerfull downloader that is capable of chunking and
parallel retrieval.

Due to li;itations in crosstool-NG retrieval facilities, it's not possible
to take fully advantage of aria2. It might happen that, in the future,
those limitations get lifted away, so we can take use features such as
parallel downloading from more than one server at the same time. For now,
it should still speed up downloads thanks to parallel downloading of chunks.
2009-12-30 15:36:22 +01:00
Yann E. MORIN"
6c6415a101 configure: install in a sub-dir of --libdir and --docdir
In case the user specifies the LIBDIR with --libdir , or DOCDIR with
--docdir, install our support files in a sub-dir, so as not to mangle
existing (potentially system) files/dirs.
2009-12-10 15:09:13 +01:00