Pull request for branch yem-misc-fixes
Hello All!
This series introduces exporting a variable, $(BR2_CONFIG_FILE), that contains the fully-qualified path to out .config.
In some cases, scripts in support/ need to parse our .config (eg. the dependency-checking script needs to check the conformity of rxternal toolchain features).
Also, some Makefile fragments (eg. the crosstool-Ng backend) need to refer to this config file for make-dependency-checking.
This was currently done in different ad-hoc manners, and is not scalable.
I'll also use it later to retrieve the password encoding scheme when creating users from packages.
The following changes since commit 13a9fc901f637a1534baa4f08322f3b29ba66b0d:
libnspr: only pass --{enable,disable}-thumb2 on ARM (2013-01-07 09:11:44 +0100)
are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem-misc-fixes
Yann E. MORIN (3):
Makefile: export BR2_CONFIG_FILE, pointing to our .config support/dependencies: use globally-exported BR2_CONFIG_FILE toolchain/crostool-ng: use globally-exported CONFIG_FILE
Makefile | 4 ++++ support/dependencies/dependencies.mk | 1 - support/dependencies/dependencies.sh | 10 +++++----- toolchain/toolchain-crosstool-ng/crosstool-ng.mk | 4 ++-- 4 files changed, 11 insertions(+), 8 deletions(-)
Regards,
Yann E. MORIN
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Support scripts (in support/) may need to parse the .config file, so give them an easy access to it, by exporting CONFIG_FILE with the fully-qualified path to .config.
--- Makefile | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
Makefile +4 -0
@@ -91,6 +91,10 @@ EXTRAMAKEARGS = O=$(O) NEED_WRAPPER=y endif +# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config + # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(CONFIG_DIR)/.config
Signature · 1 line
1.7.2.5
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Hello All,
Quoted 14 lines · On Monday 07 January 2013 Yann E. MORIN wrote:
Support scripts (in support/) may need to parse the .config file, so give them an easy access to it, by exporting
CONFIG_FILEwith the fully-qualified path to .config.Signed-off-by "Yann E. MORIN" <[email protected]>--- Makefile | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)Makefile +0
-0
Makefile EXTRAMAKEARGS = O=$(O) · line 100
Quoted 10 lines
Makefile +4
-0@@ -91,6 +91,10 @@ EXTRAMAKEARGS = O=$(O) NEED_WRAPPER=y endif +# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config + # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(CONFIG_DIR)/.config
There are a few other places in this file where we use:
$(CONFIG_DIR)/.config
I was not sure how to handle these, especially since they are associated with:
$(CONFIG_DIR)/.config.nopkg
Using $(BR2_CONFIG_FILE).nopkg looks a bit ugly to me. Instead, I went to reason that we're in the top-level Makefile, and that we know what we're doing. BR2_CONFIG_FILE is our /API/ and although it would be nice to use it internally too, it does not fit properly, so I did not change it.
Comments welcome. ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
In reply to Yann E. MORINHi Yann,
Quoted 3 lines · Yann E. MORIN
Support scripts (in support/) may need to parse the .config file, so give them an easy access to it, by exporting
CONFIG_FILEwith the fully-qualified path to .config.
Good idea!
Quoted 11 lines
Signed-off-by "Yann E. MORIN"<[email protected]>--- Makefile | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)Makefile +0
-0
Makefile EXTRAMAKEARGS = O=$(O) · line 96
Quoted 6 lines
Makefile +3
-0@@ -91,6 +91,10 @@ EXTRAMAKEARGS = O=$(O) NEED_WRAPPER=y endif +# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config.
Convention is that BR2_* is set by Kconfig. I kind of like that, it
helps us developers to understand a variable's meaning.
[Yes, BR2_DEFCONFIG which I introduced myself is an exception. However,
I have a pending patch that moves it into the .config :-)]
Makefile EXTRAMAKEARGS = O=$(O) · line 100
Quoted 4 lines
Makefile +1
-0+ # Pull in the user's configuration file ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) -include $(CONFIG_DIR)/.config
I would replace the occurences of the plain config file with
$(CONFIG_FILE). $(CONFIG_FILE).nopkg does indeed look stupid, so that one should be left alone.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Arnout,, All,
Quoted 1 line · On Tuesday 08 January 2013 07:50:51 Arnout Vandecappelle wrote:
On 07/01/13 22:52, Yann E. MORIN wrote:
[--SNIP--]
Quoted 6 lines
Makefile EXTRAMAKEARGS = O=$(O)
Quoted 3 lines
Makefile +3
-0+# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config.Convention is that BR2_* is set by
Kconfig. I kind of like that, it
helps us developers to understand a variable's meaning.
I am afraid CONFIG_FILE as is could clash with some packages. Maybe DOT_CONFIG instead? I'll use that.
Quoted 3 lines
I would replace the occurences of the plain config file with
$(CONFIG_FILE). $(CONFIG_FILE).nopkg does indeed look stupid, so that one should be left alone.
OK, will do. Thanks.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< O_o >==-- '------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL | """ conspiracy. | '------------------------------'-------'------------------'--------------------'
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Quoted 12 lines · Yann E. MORIN
Arnout,, All,
Quoted 1 line · On Tuesday 08 January 2013 07:50:51 Arnout Vandecappelle wrote:
On 07/01/13 22:52, Yann E. MORIN wrote:
[--SNIP--]
Quoted 6 lines
Makefile EXTRAMAKEARGS = O=$(O)
Quoted 3 lines
Makefile +3
-0+# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config.Convention is that BR2_* is set by
Kconfig. I kind of like that, it
helps us developers to understand a variable's meaning.
Quoted 2 lines
I am afraid
CONFIG_FILEas is could clash with some packages. MaybeDOT_CONFIGinstead? I'll use that.
DOT_CONFIG is equally likely to conflict.
(None of our own files use CONFIG_FILE, cfr. 'git grep -w CONFIG_FILE').
Regards,
Arnout
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Arnout, All,
Quoted 11 lines · On Tuesday 08 January 2013 14:07:39 Arnout Vandecappelle wrote:
Quoted 10 lines · Yann E. MORIN
Quoted 1 line · On Tuesday 08 January 2013 07:50:51 Arnout Vandecappelle wrote:
On 07/01/13 22:52, Yann E. MORIN wrote:
[--SNIP--]
Quoted 6 lines
Makefile EXTRAMAKEARGS = O=$(O)
Quoted 3 lines
Makefile +3
-0+# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config.Convention is that BR2_* is set by
Kconfig. I kind of like that, it
helps us developers to understand a variable's meaning.
Quoted 6 lines
Quoted 2 lines
I am afraid
CONFIG_FILEas is could clash with some packages. MaybeDOT_CONFIGinstead? I'll use that.
DOT_CONFIGis equally likely to conflict.(None of our own files use
CONFIG_FILE, cfr. 'git grep -wCONFIG_FILE').
I was not referring to our .mk files, but rather to the packages themselves. I did a quick survey in 110+ packages, and:
- kconfig-based packages are not affected: kernel, uClibc, busybox, ct-ng
- packages using CONFIG_FILE:
- gdb: gdb/sim/ppc/Makefile.in:CONFIG_FILE = @sim_config@
- xbmc: xbmc/lib/freetype/builds/detect.mk:ifndef CONFIG_FILE
- no package uses DOT_CONFIG
- openbricks is using DOT_CONFIG, too
List of tested packages in attached file, searched for with:
grep --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn \
-r -E '\<(CONFIG_FILE|DOT_CONFIG)\>' * 2>/dev/nullRegards,
Yann E. MORIN.
Signature · 130 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< O_o >==-- '------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL | """ conspiracy. | '------------------------------'-------'------------------'--------------------' -------------- next part -------------- aboriginal Android aports Archipel autoconf automake bencode-tools binutils bitfield bizou btrfs-progs buildroot buildroot-test busybox CEGUI ceph cloog cloog-ppl config curl debtree ditaa dokuwiki dpkg-repack dtc dvb-apps dvcs-autosync e2fsprogs eglibc fakeroot fakerootng fast-export feh firefox-sync-server force_bind freelan-all gcc gdb gentoo giblib git gitdm glibc gmailfs Gource hg infobot irker kexec-tools klibc kmod libiscsi LibLime-Koha libmtp libseccomp libssh2 libtirpc libtool libvirt lighttpd lima linux linux-firmware liquidprompt ltrace mpfr mplayer2 nilfs2-utils oe openbricks openocd openwrt owncloud pam_usb paperwork patchelf patchwork petitboot PhotoShow pkgxx ppl python-virtinst qcontrol qemu raspberrypi-firmware retroshare rofs rpi-userland sane-backends sane-frontends sd send-patches-org shim showtime sim1 smbnetfs smem snipmate.vim socat spice squashfs-tools sshuttle stgit synergy tinyproxy toybox tslib tvheadend tz tz-history-scripts u-boot uClibc uClibc++ unetbootin unionfs-fuse vash virt-manager virt-viewer weird-compiler xbmc Xpra xz zbar
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Quoted 21 lines · Yann E. MORIN
Arnout, All,
Quoted 11 lines · On Tuesday 08 January 2013 14:07:39 Arnout Vandecappelle wrote:
Quoted 10 lines · Yann E. MORIN
Quoted 1 line · On Tuesday 08 January 2013 07:50:51 Arnout Vandecappelle wrote:
On 07/01/13 22:52, Yann E. MORIN wrote:
[--SNIP--]
Quoted 6 lines
Makefile EXTRAMAKEARGS = O=$(O)
Quoted 3 lines
Makefile +3
-0+# Scripts in support/ may need to parse out .config, so give +# them easy access +export BR2_CONFIG_FILE=$(CONFIG_DIR)/.config.Convention is that BR2_* is set by
Kconfig. I kind of like that, it
helps us developers to understand a variable's meaning.Quoted 6 lines
Quoted 2 lines
I am afraid
CONFIG_FILEas is could clash with some packages. MaybeDOT_CONFIGinstead? I'll use that.
DOT_CONFIGis equally likely to conflict.(None of our own files use
CONFIG_FILE, cfr. 'git grep -wCONFIG_FILE').
Quoted 8 lines
I was not referring to our .mk files, but rather to the packages themselves. I did a quick survey in 110+ packages, and:
- kconfig-based packages are not affected: kernel, uClibc, busybox, ct-ng
- packages usingCONFIG_FILE:
- gdb: gdb/sim/ppc/Makefile.in:CONFIG_FILE = @sim_config@
- xbmc: xbmc/lib/freetype/builds/detect.mk:ifndefCONFIG_FILE
- no package usesDOT_CONFIG
- openbricks is usingDOT_CONFIG, too
But if you anyway change the name, BUILDROOT_CONFIG is better than the
non-specific DOT_CONFIG.
How long can we discuss about a name? :-)
Regards,
Arnout
Quoted 8 lines
List of tested packages in attached file, searched for with:
grep --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn \ -r -E '\<(CONFIG_FILE|DOT_CONFIG)\>' * 2>/dev/nullRegards,
Yann E. MORIN.
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Arnout" == Arnout Vandecappelle <[email protected]> writes:
Hi,
Quoted 8 lines
Quoted 8 lines
I was not referring to our .mk files, but rather to the packages themselves. I did a quick survey in 110+ packages, and:
- kconfig-based packages are not affected: kernel, uClibc, busybox, ct-ng
- packages usingCONFIG_FILE:
- gdb: gdb/sim/ppc/Makefile.in:CONFIG_FILE = @sim_config@
- xbmc: xbmc/lib/freetype/builds/detect.mk:ifndefCONFIG_FILE
- no package usesDOT_CONFIG
- openbricks is usingDOT_CONFIG, too
Arnout> But if you anyway change the name, BUILDROOT_CONFIG is better than Arnout> the non-specific DOT_CONFIG.
Arnout> How long can we discuss about a name? :-)
Long ;)
I like BUILDROOT_CONFIG. It's unique and it's meaning is very obvious. Yann, care to rework the series to use BUILDROOT_CONFIG instead?
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/3 Makefile: export BR2_CONFIG_FILE, pointing to our .config
Peter, Arnout, All,
Quoted 13 lines · On Sunday 13 January 2013 Peter Korsgaard wrote:
Quoted 9 lines
Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Arnout" == Arnout Vandecappelle <[email protected]> writes:
I was not referring to our .mk files, but rather to the packages themselves. I did a quick survey in 110+ packages, and:
- kconfig-based packages are not affected: kernel, uClibc, busybox, ct-ng
- packages usingCONFIG_FILE:
- gdb: gdb/sim/ppc/Makefile.in:CONFIG_FILE = @sim_config@
- xbmc: xbmc/lib/freetype/builds/detect.mk:ifndefCONFIG_FILE
- no package usesDOT_CONFIG
- openbricks is usingDOT_CONFIG, tooArnout> But if you anyway change the name,
BUILDROOT_CONFIGis better than Arnout> the non-specificDOT_CONFIG.
Quoted 7 lines
Arnout> How long can we discuss about a name? :-)
Long ;)
I like
BUILDROOT_CONFIG. It's unique and it's meaning is very obvious. Yann, care to rework the series to useBUILDROOT_CONFIGinstead?
Yes, it's just a pull-request away! ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 2/3 support/dependencies: use globally-exported BR2_CONFIG_FILE
In reply to Yann E. MORINNo need to recreate a path we already have.
--- support/dependencies/dependencies.mk | 1 - support/dependencies/dependencies.sh | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-)
support/dependencies/dependencies.mk +0 -1
@@ -22,7 +22,6 @@ endif core-dependencies: @HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \ - CONFIG_FILE="$(CONFIG_DIR)/.config" \ DL_TOOLS="$(sort $(DL_TOOLS_DEPENDENCIES))" \ $(TOPDIR)/support/dependencies/dependencies.sh
support/dependencies/dependencies.sh +5 -5
@@ -147,8 +147,8 @@ for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio p fi done -if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \ - grep ^BR2_ENABLE_LOCALE=y $CONFIG_FILE > /dev/null ; then +if grep ^BR2_TOOLCHAIN_BUILDROOT=y $BR2_CONFIG_FILE > /dev/null && \ + grep ^BR2_ENABLE_LOCALE=y $BR2_CONFIG_FILE > /dev/null ; then if ! which locale > /dev/null ; then /bin/echo -e "\nYou need locale support on your build machine to build a toolchain supporting locales\n" exit 1 ;
@@ -159,7 +159,7 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $CONFIG_FILE > /dev/null && \ fi fi -if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then +if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG_FILE ; then for prog in javac jar; do if ! which $prog > /dev/null ; then /bin/echo -e "\nYou must install '$prog' on your build machine\n" >&2
@@ -168,7 +168,7 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $CONFIG_FILE ; then done fi -if grep -E '^BR2_TARGET_GENERIC_ROOT_PASSWD=".+"$' $CONFIG_FILE > /dev/null 2>&1; then +if grep -E '^BR2_TARGET_GENERIC_ROOT_PASSWD=".+"$' $BR2_CONFIG_FILE > /dev/null 2>&1; then if ! which mkpasswd > /dev/null 2>&1; then /bin/echo -e "\nYou need the 'mkpasswd' utility to set the root password\n" /bin/echo -e "(in Debian/ubuntu, 'mkpasswd' provided by the whois package)\n"
@@ -176,7 +176,7 @@ if grep -E '^BR2_TARGET_GENERIC_ROOT_PASSWD=".+"$' $CONFIG_FILE > /dev/null 2>&1 fi fi -if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $CONFIG_FILE ; then +if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG_FILE ; then if test ! -f /lib/ld-linux.so.2 ; then /bin/echo -e "\nYour Buildroot configuration uses pre-built tools for the x86 architecture," /bin/echo -e "but your build machine uses the x86-64 architecture without the 32 bits compatibility"
Signature · 1 line
1.7.2.5
PATCH 3/3 toolchain/crostool-ng: use globally-exported CONFIG_FILE
In reply to Yann E. MORINNo need to recreate a path we already have.
--- toolchain/toolchain-crosstool-ng/crosstool-ng.mk | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +2 -2
@@ -316,7 +316,7 @@ CTNG_FIX_DOT_CONFIG_PATHS_SED += s:^(CT_LIBC_UCLIBC_CONFIG_FILE)=.*:\1="$(CTNG_D $(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/libc.config # And here is how we get this uClibc's .config -$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE) $(CONFIG_DIR)/.config +$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE) $(BR2_CONFIG_FILE) -$(Q)cp -a $@ [email protected] $(Q)cp -f $< $@ $(call ctng-fix-dot-config,$@,$(CTNG_FIX_DOT_CONFIG_LIBC_SED))
@@ -372,7 +372,7 @@ $(CTNG_DIR)/.config: | host-crosstool-ng # can't do anything about it ) Ideally, this should go in oldconfig # itself, but it's much easier to handle here. -$(CTNG_DIR)/.config: $(CTNG_CONFIG_FILE) $(CONFIG_DIR)/.config +$(CTNG_DIR)/.config: $(CTNG_CONFIG_FILE) $(BR2_CONFIG_FILE) $(Q)if [ ! -f $@ ]; then \ mkdir -p "$(CTNG_DIR)"; \ libc="$$(awk -F '"' '$$1=="CT_LIBC=" { print $$2; }' "$<")"; \
Signature · 1 line
1.7.2.5