In make-3.8x, the $(wildacrd) function would sort the entries,
while in make-4.x, it would just return the entries in any
unpredictable order [*]
Use the $(sort) function to get reproducible behaviour.
[*] Well, most probably the roder the entries appear when read
from readdir()
Reported-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
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
After commit 15f57d843296e244487ac0845a73247f9d6749b8, the defconfig target
has been renamed into savedefconfig, and olddefconfig into defconfig. However,
the help text and man page was not updated.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
[yann.morin.1998@free.fr: rename CONFIG -> DEFCONFIG]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <0c1dff89c9ee1672693f.1374042343@BEANTN0L019720>
Patchwork-Id: 259601
What 'defconfig' really does is save the current .config to a defconfig,
so it is better named 'savedefconfig' (as other projects do).
What 'olddefconfig' really does is create a .config from a defconfig,
so rename it to 'defconfig' (as other projects do, too).
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
... and one to restore it, of course.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
On some distors (eg. latesst openSuSE), the ncurses headers are not
located in the usual location.
Hard-code this location in the kconfig Makefile, as a (temporary?)
workaround.
Reported-by: Simon Gornall <sgornall@apple.com>
[Fix suggested by Simon]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Older flex versions require there be no space between options and
their arguments. For example '-P zconf' is not correct and should
be '-Pzconf'. This is for example the case for flex-2.5.4 shipped
with CentOS 5.8.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Message-Id: <9652ce148bddc1def484.1339241000@beantl019720>
When saving a sample, use savedefconfig instead of copying
the full .config file.
This reduces the saved .config, and reduces clutter when it
is later upgraded.
Also use defconfig when retrieving a sample.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.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>
Having the crosstool-NG version in the .config helps in case we
want to reproduce the toolchain with the exact same version of
crosstool-NG.
This also reverts #bb73e7632b54.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
In case a set of options are conditional to two different paths,
the forward dependencies in these options is wrong, but in the
first path.
Fix by Arnaud Lacombe on linux-kbuild ML:
http://www.spinics.net/lists/linux-kbuild/msg04832.html
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Unlinke the Linux kernel, crosstool-NG does not (directly) use make
as a frontend, so remove any occurence of reference to running make
after the configuration.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
In case a choices has different combinations, it can be displayed
more than once.
See the discussion thread on the linux-kbuild ML:
http://www.spinics.net/lists/linux-kbuild/msg04709.html
The fix applied here was proposed by Arnaud LACOMBE.
That fix, or a similar one, will probably be pushed upstream soon.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
In crosstool-NG, we use env variables for the backend mode.
So it is perfectly legit that these variables are not set.
So do not warn about it.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
check-lxdialog.sh breaks on 64-bit distributions which are lacking
the lib -> lib64 symlinks (eg. some Fedora).
The script from the 2.6.35 Linux kernel is reportedly functional
on the systems that were requiring the current hack. See:
http://sourceware.org/ml/crossgcc/2010-09/msg00113.html
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Allow stdin/stdout redirection for the CLI conf (not mconf).
This allows to recall a sample and automatically apply the defaults
to new configuration option, with something like the following:
yes "" |ct-ng "sample_name"
- cleanup conf.exe and mconf.exe as well as their non-.exe counterparts.
/trunk/kconfig/kconfig.mk | 2 1 1 0 +-
1 file changed, 1 insertion(+), 1 deletion(-)
- better allocate CFLAGS/LDFLAGS to object and dependency files
- only include the needed dependency files
- cleanly handle the kconfig/ check and creation
- use HOST_LD to link, not HOST_CC (even if both are set to 'gcc' for now)
- get rid of defoldconfig, it does not make much sense using it.
/trunk/kconfig/kconfig.mk | 110 66 44 0 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 66 insertions(+), 44 deletions(-)
- create config/config.mk, with all the config.gen/ rules
- the only common points between config files and configurators:
- the top-level config file to include, stored in KCONFIG_TOP
- the config_file rules, which makes config files available to configurators
- dependency-files are renamed from %.d to %.dep (.d is reserved for directories)
- a few eye-candy here and there
/trunk/kconfig/kconfig.mk | 184 12 172 0 +++--------------------------------------------------
/trunk/config/config.mk | 118 9 109 0 +++-------------------------------
/trunk/ct-ng.in | 1 1 0 0 +
3 files changed, 22 insertions(+), 281 deletions(-)
- silent/quiet/verbose build:
- ct-ng by default only prints quit messages, such as "CC xxx",
- if using V=0, nothing is printed,
- if using V=1, the full command lines are printed,
- other values are indeterminate,
- should help in debugging the kconfig stuff;
- complete kconfig/{,m}conf generation:
- fully dynamic dependencies on source files,
- compilation of .c into .o, then linking (instead of direct linking),
- VPATH usage when not --local;
Typo + a coment moved.
/trunk/kconfig/kconfig.mk | 140 87 53 0 +++++++++++++++++++++++++++++++++--------------------
/trunk/tools/tools.mk | 12 6 6 0 ++--
/trunk/steps.mk | 6 3 3 0 +-
/trunk/samples/samples.mk | 30 15 15 0 +++++-----
/trunk/ct-ng.in | 40 28 12 0 +++++++++++----
5 files changed, 139 insertions(+), 89 deletions(-)
- better handle config file generation dependencies
- get rid of CT_TOP_DIR where useless
- rearrange code to be cleaner, and add adequate '#----' comments to split the different parts
- a few eye-candy here and there
/trunk/kconfig/kconfig.mk | 158 99 59 0 +++++++++++++++++++++++++++++++++--------------------
1 file changed, 99 insertions(+), 59 deletions(-)
- change the menu label from 'Target OS' to 'Operating System',
- bare-metal is a kind of kernel (OS), rename to 'bare-metal' from 'none',
- update the kconfig.mk to generate the kernel choice entries,
- update glibc&eglibc kernel version option accordingly.
Update the debug & tools confiog file generation to match with arch & kernel.
Print terse command lines when building in kconfig/ (a-la Linux kernel).
Fix the makefile rules in kconfig/kconfig.mk to be /simple/ rules.
/trunk/kconfig/kconfig.mk | 117 81 36 0 +++++++++++++++++++++----------
/trunk/config/kernel/linux.in | 4 4 0 0 +
/trunk/config/kernel/bare-metal.experimental.in | 15 15 0 0 ++++
/trunk/config/kernel.in | 33 5 28 0 +--------
/trunk/config/libc/glibc-eglibc-common.in | 4 2 2 0
5 files changed, 107 insertions(+), 66 deletions(-)
Turned out that a POSIX script shell was in fact not POSIX: == does not check for equality, -eq does.
/trunk/kconfig/lxdialog/check-lxdialog.sh | 4 2 2 0 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Get rid of this by using printf(1) with no trailing new-line (\n).
Again, thanks to Martin GUY, who pointed this issue.
/trunk/kconfig/kconfig.mk | 2 1 1 0
/trunk/scripts/build/libc_uClibc.sh | 4 3 1 0 ++
/trunk/scripts/showSamples.sh | 78 39 39 0 +++++++++++++++++++++---------------------
3 files changed, 43 insertions(+), 41 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.
Add a uClibc-0.9.29 patch directory with one patch (from me!).
Update the armeb-unknown-linux-uclibc sample to uClibc-0.9.29.
Some eyecandy in the gdb build process.
- reorder most of the environment setup,
- geting, extracting and patching are now components' sub-actions,
- save the current config as a sample to be used as a pre-configured target.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(