* [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs
@ 2014-02-08 16:04 Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory Yann E. MORIN
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-02-08 16:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Hello All!
Here is a small series that fixes use of relative paths in BR2_EXTERNAL
and documents the limitations in the manual for BR2_EXTERNAL and O.
Changes v1 -> v2:
- don't discourage relative paths, just properly document them (Thomas,
Arnout)
- fix overriding BR2_EXTERNAL (J?r?my)
- simplify error message when BR2_EXTERNAL is not found (Arnout)
- document that $(O) is created
Regards,
Yann E. MORIN.
----------------------------------------------------------------
Yann E. MORIN (4):
manual: $(BR2_EXTERNAL)/{Config.in,external.mk} are mandatory
Makefile: internally use absolute paths to BR2_EXTERNAL
manual: switch BR2_EXTERNAL examples to use absolute paths
manual: add explanations on limitations about using O=...
Makefile | 5 +++++
docs/manual/common-usage.txt | 12 +++++++++---
docs/manual/customize-outside-br.txt | 11 ++++++-----
3 files changed, 20 insertions(+), 8 deletions(-)
--
.-----------------.--------------------.------------------.--------------------.
| 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. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory
2014-02-08 16:04 [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs Yann E. MORIN
@ 2014-02-08 16:04 ` Yann E. MORIN
2014-02-08 21:19 ` Peter Korsgaard
2014-02-08 16:04 ` [Buildroot] [PATCH 2/4] Makefile: internally use absolute paths to BR2_EXTERNAL Yann E. MORIN
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2014-02-08 16:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
The manual is a bit vague about whether Config.in and external.mk
are mandatory or optional.
Make it explicit in the manual that they are mandatory.
Reported-by: J?r?my Rosen <jeremy.rosen@openwide.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
docs/manual/customize-outside-br.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/manual/customize-outside-br.txt b/docs/manual/customize-outside-br.txt
index 19257e6..585eedf 100644
--- a/docs/manual/customize-outside-br.txt
+++ b/docs/manual/customize-outside-br.txt
@@ -83,6 +83,7 @@ Or disable the usage of external definitions:
logic. Buildroot automatically includes +BR2_EXTERNAL/Config.in+ to
make it appear in the top-level configuration menu, and includes
+BR2_EXTERNAL/external.mk+ with the rest of the makefile logic.
+ Providing those two files is mandatory, but they can be empty.
+
The main usage of this is to store package recipes. The recommended
way to do this is to write a +BR2_EXTERNAL/Config.in+ that looks
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/4] Makefile: internally use absolute paths to BR2_EXTERNAL
2014-02-08 16:04 [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory Yann E. MORIN
@ 2014-02-08 16:04 ` Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 3/4] manual: switch BR2_EXTERNAL examples to use absolute paths Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 4/4] manual: add explanations on limitations about using O= Yann E. MORIN
3 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-02-08 16:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Using a relative path for BR2_EXTERNAL, and using an external defconfig,
such as in (from a Buildroot top-dir):
make O=.. BR2_EXTERNAL=.. foo_defconfig
is broken. It is unclear why the %_defconfig rule recurses in that case.
This patch internaly makes BR2_EXTERNAL canonical (ie. makes it an absolute
path), and checks the directory exists.
Reported-by: J?r?my Rosen <jeremy.rosen@openwide.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Romain Naour <romain.naour@openwide.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
Changes v1->v2:
- fix override BR2_EXTERNAL (J?r?my)
- only one error message (Arnout)
---
Makefile | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Makefile b/Makefile
index fceb2e8..142c78f 100644
--- a/Makefile
+++ b/Makefile
@@ -118,6 +118,11 @@ ifeq ($(BR2_EXTERNAL),)
override BR2_EXTERNAL = support/dummy-external
$(shell rm -f $(BR2_EXTERNAL_FILE))
else
+ _BR2_EXTERNAL = $(shell cd $(BR2_EXTERNAL) >/dev/null 2>&1 && pwd)
+ ifeq ($(_BR2_EXTERNAL),)
+ $(error BR2_EXTERNAL='$(BR2_EXTERNAL)' does not exist, relatively to $(TOPDIR))
+ endif
+ override BR2_EXTERNAL := $(_BR2_EXTERNAL)
$(shell echo BR2_EXTERNAL ?= $(BR2_EXTERNAL) > $(BR2_EXTERNAL_FILE))
endif
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 3/4] manual: switch BR2_EXTERNAL examples to use absolute paths
2014-02-08 16:04 [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 2/4] Makefile: internally use absolute paths to BR2_EXTERNAL Yann E. MORIN
@ 2014-02-08 16:04 ` Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 4/4] manual: add explanations on limitations about using O= Yann E. MORIN
3 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-02-08 16:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Although it is possible to use relative paths, there are a few pitfalls
whith doing so. To avoid confusion for a (newcoming) user, use absolute
paths in the manual, since it is guaranteed to be working without corner
cases.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Note: we only change our examples in the manual; using relative paths is
still possible. There is no additional blurb in the manual that would
favour using relative or absolute paths.
---
docs/manual/customize-outside-br.txt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/manual/customize-outside-br.txt b/docs/manual/customize-outside-br.txt
index 585eedf..134ed64 100644
--- a/docs/manual/customize-outside-br.txt
+++ b/docs/manual/customize-outside-br.txt
@@ -30,18 +30,18 @@ there is no need to pass +BR2_EXTERNAL+ at every +make+ invocation. It
can however be changed at any time by passing a new value, and can be
removed by passing an empty value.
-The +BR2_EXTERNAL+ path can be either an absolute or a relative path,
+*Note:* the +BR2_EXTERNAL+ path can be either an absolute or a relative path,
but if it's passed as a relative path, it is important to note that it
-is interpreted relatively to the main Buildroot source directory, not
+is interpreted relatively to the main Buildroot source directory, *not*
the Buildroot output directory.
Some examples:
-----
- buildroot/ $ make BR2_EXTERNAL=../foobar menuconfig
+ buildroot/ $ make BR2_EXTERNAL=/path/to/foobar menuconfig
-----
-Starting from now on, external definitions from the +../foobar+
+Starting from now on, external definitions from the +/path/to/foobar+
directory will be used:
-----
@@ -52,7 +52,7 @@ directory will be used:
We can switch to another external definitions directory at any time:
-----
- buildroot/ $ make BR2_EXTERNAL=../barfoo xconfig
+ buildroot/ $ make BR2_EXTERNAL=/where/we/have/barfoo xconfig
-----
Or disable the usage of external definitions:
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 4/4] manual: add explanations on limitations about using O=...
2014-02-08 16:04 [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs Yann E. MORIN
` (2 preceding siblings ...)
2014-02-08 16:04 ` [Buildroot] [PATCH 3/4] manual: switch BR2_EXTERNAL examples to use absolute paths Yann E. MORIN
@ 2014-02-08 16:04 ` Yann E. MORIN
3 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2014-02-08 16:04 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Using a relative path for O=... has limitations, since it is interpreted
relative to the Buildroot tree, and thus may lead to unexpected results.
For example, running this:
make -C buildroot O=my-O
will not create my-O in the current working directory, but as a
sub-directory of the Buildroot tree, here in buildroot/my-O
Explain this in the manual (as is similarly done for BR2_EXTERNAL).
Also add a note that $(O) will be created if missing.
Also change O=.. and -C .. to O=<...> and -C <...> to make it explicit
this is an ellipse, not a relative path.
Reported-by: J?r?my Rosen <jeremy.rosen@openwide.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
docs/manual/common-usage.txt | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/docs/manual/common-usage.txt b/docs/manual/common-usage.txt
index 1d15c05..5e3d71d 100644
--- a/docs/manual/common-usage.txt
+++ b/docs/manual/common-usage.txt
@@ -40,7 +40,13 @@ Or:
$ cd /tmp/build; make O=$PWD -C path/to/buildroot
--------------------
-All the output files will be located under +/tmp/build+.
+All the output files will be located under +/tmp/build+. If the +O+
+path does not exist, Buildroot will create it.
+
+*Note:* the +O+ path can be either an absolute or a relative path, but if it's
+passed as a relative path, it is important to note that it is interpreted
+relative to the main Buildroot source directory, *not* the current working
+directory.
When using out-of-tree builds, the Buildroot +.config+ and temporary
files are also stored in the output directory. This means that you can
@@ -48,8 +54,8 @@ safely run multiple builds in parallel using the same source tree as
long as they use unique output directories.
For ease of use, Buildroot generates a Makefile wrapper in the output
-directory - so after the first run, you no longer need to pass +O=..+
-and +-C ..+, simply run (in the output directory):
+directory - so after the first run, you no longer need to pass +O=<...>+
+and +-C <...>+, simply run (in the output directory):
--------------------
$ make <target>
--
1.8.1.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory
2014-02-08 16:04 ` [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory Yann E. MORIN
@ 2014-02-08 21:19 ` Peter Korsgaard
0 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2014-02-08 21:19 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> The manual is a bit vague about whether Config.in and external.mk
> are mandatory or optional.
> Make it explicit in the manual that they are mandatory.
> Reported-by: J?r?my Rosen <jeremy.rosen@openwide.fr>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Committed, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-02-08 21:19 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-08 16:04 [Buildroot] [PATCH 0/4 v2] BR2_EXTERNAL, O: misc fixes and docs Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 1/4] manual: $(BR2_EXTERNAL)/{Config.in, external.mk} are mandatory Yann E. MORIN
2014-02-08 21:19 ` Peter Korsgaard
2014-02-08 16:04 ` [Buildroot] [PATCH 2/4] Makefile: internally use absolute paths to BR2_EXTERNAL Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 3/4] manual: switch BR2_EXTERNAL examples to use absolute paths Yann E. MORIN
2014-02-08 16:04 ` [Buildroot] [PATCH 4/4] manual: add explanations on limitations about using O= Yann E. MORIN
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.