* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
@ 2015-11-05 13:16 Stephen Beckwith
2015-11-05 13:29 ` Thomas Petazzoni
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Beckwith @ 2015-11-05 13:16 UTC (permalink / raw)
To: buildroot
I'm having an issue getting code to build using a BR2_EXTERNAL setup with
the 2015.08.01 release of Buildroot.
The Config.in file structure works just fine, the options specified show up
in menuconfig and are selectable. Defined CONFIG items (MUST they be
BR2_XXXX names?) are listed at the bottom of the top level .config (using
an "out of tree" build setup. . . )
However, when I try to build the extra code, nothing happens. This code is
just simple "hello world" programs in a custom directory structure, using
the generic-package setup.
My initial attempt did produce some make errors, so I know build-root was
parsing through the make files, but fixes to remove the warnings results in
NO makes being run to compile and add the code to the build.
I've reviewed the Slides & Lab Notes posted on-line from this years
training session and reviewed the manual. I have NO idea what's missing
here.
And yes, I have a .br-external file in the out of tree build directory
(board as has been recommended - is this a MUST for Buildroot?) that is
pointing to the external tree.
I would GREATLY appreciate access to the magic decoder ring that will allow
me to build this extra code as part of my embedded linux system.
How many directory levels are allowed in an external tree?
Your expertise and quick response is GREATLY appreciated!
Regards,
EmbeddedSteve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151105/08116d44/attachment.html>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-05 13:16 [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01???? Stephen Beckwith
@ 2015-11-05 13:29 ` Thomas Petazzoni
2015-11-05 21:57 ` Stephen Beckwith
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2015-11-05 13:29 UTC (permalink / raw)
To: buildroot
Dear Stephen Beckwith,
On Thu, 5 Nov 2015 08:16:33 -0500, Stephen Beckwith wrote:
> I'm having an issue getting code to build using a BR2_EXTERNAL setup with
> the 2015.08.01 release of Buildroot.
> The Config.in file structure works just fine, the options specified show up
> in menuconfig and are selectable. Defined CONFIG items (MUST they be
> BR2_XXXX names?) are listed at the bottom of the top level .config (using
> an "out of tree" build setup. . . )
> However, when I try to build the extra code, nothing happens. This code is
> just simple "hello world" programs in a custom directory structure, using
> the generic-package setup.
> My initial attempt did produce some make errors, so I know build-root was
> parsing through the make files, but fixes to remove the warnings results in
> NO makes being run to compile and add the code to the build.
> I've reviewed the Slides & Lab Notes posted on-line from this years
> training session and reviewed the manual. I have NO idea what's missing
> here.
> And yes, I have a .br-external file in the out of tree build directory
> (board as has been recommended - is this a MUST for Buildroot?) that is
> pointing to the external tree.
> I would GREATLY appreciate access to the magic decoder ring that will allow
> me to build this extra code as part of my embedded linux system.
Can you post:
- The output of "tree" in your external tree
- The contents of the top-level Config.in and external.mk of your
external tree.
- The contents of the Config.in and <package>.mk files of the package
in your external tree that you are trying to build
Then we can probably point you to the issues that are causing the
problems.
Other than that:
- Using a directory called board/ is not mandatory at all. You can
name it whatever you want. The only things in the external tree that
Buildroot enforces is the external.mk makefile, the top-level
Config.in, and the configs/ subdirectory if you want to store
defconfigs in your external tree.
- There can be as many subdirectories you want in your external tree,
as long as your external.mk (or the makefiles it includes) account
for it.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-05 13:29 ` Thomas Petazzoni
@ 2015-11-05 21:57 ` Stephen Beckwith
2015-11-05 22:05 ` Thomas Petazzoni
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Beckwith @ 2015-11-05 21:57 UTC (permalink / raw)
To: buildroot
Thomas,
After some more poking around, I was successful in getting the desired
build to work. Here is what I found:
1) Typing "make" @ the top level does not seem to build the BR2_EXTERNAL
code. Is there something missing here? Or is this by design? (based upon
the fact that this code is not a "normal auto-something package") ??
2) Explicitly doing "make <pkg>" will rsync, build, and install the code
successfully.
3) The sample test code successfully ran on the target platform.
Questions:
1) Can I have "layered" Config.in files in the BR2_EXTERNAL tree? Or does
it all have to be done in one? (currently, it is layered)
2) Do I need to have a <directory>.mk for sub-directories, if they do
nothing? If I specify the correct path to find the <pkg>.mk from
external.mk, is that OK?
3) is the <PKG>_VERSION in the <pkg>.mk used in any way other than the
build folder directory?
So far, Buildroot seems to be working out OK.
Thanks for your efforts!
Best Regards,
Stephen Beckwith
On Thu, Nov 5, 2015 at 8:29 AM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Dear Stephen Beckwith,
>
> On Thu, 5 Nov 2015 08:16:33 -0500, Stephen Beckwith wrote:
> > I'm having an issue getting code to build using a BR2_EXTERNAL setup with
> > the 2015.08.01 release of Buildroot.
> > The Config.in file structure works just fine, the options specified show
> up
> > in menuconfig and are selectable. Defined CONFIG items (MUST they be
> > BR2_XXXX names?) are listed at the bottom of the top level .config (using
> > an "out of tree" build setup. . . )
> > However, when I try to build the extra code, nothing happens. This code
> is
> > just simple "hello world" programs in a custom directory structure, using
> > the generic-package setup.
> > My initial attempt did produce some make errors, so I know build-root was
> > parsing through the make files, but fixes to remove the warnings results
> in
> > NO makes being run to compile and add the code to the build.
> > I've reviewed the Slides & Lab Notes posted on-line from this years
> > training session and reviewed the manual. I have NO idea what's missing
> > here.
> > And yes, I have a .br-external file in the out of tree build directory
> > (board as has been recommended - is this a MUST for Buildroot?) that is
> > pointing to the external tree.
> > I would GREATLY appreciate access to the magic decoder ring that will
> allow
> > me to build this extra code as part of my embedded linux system.
>
> Can you post:
>
> - The output of "tree" in your external tree
>
> - The contents of the top-level Config.in and external.mk of your
> external tree.
>
> - The contents of the Config.in and <package>.mk files of the package
> in your external tree that you are trying to build
>
> Then we can probably point you to the issues that are causing the
> problems.
>
> Other than that:
>
> - Using a directory called board/ is not mandatory at all. You can
> name it whatever you want. The only things in the external tree that
> Buildroot enforces is the external.mk makefile, the top-level
> Config.in, and the configs/ subdirectory if you want to store
> defconfigs in your external tree.
>
> - There can be as many subdirectories you want in your external tree,
> as long as your external.mk (or the makefiles it includes) account
> for it.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151105/b027b686/attachment.html>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-05 21:57 ` Stephen Beckwith
@ 2015-11-05 22:05 ` Thomas Petazzoni
2015-11-06 14:12 ` Stephen Beckwith
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2015-11-05 22:05 UTC (permalink / raw)
To: buildroot
Dear Stephen Beckwith,
On Thu, 5 Nov 2015 16:57:56 -0500, Stephen Beckwith wrote:
> After some more poking around, I was successful in getting the desired
> build to work. Here is what I found:
> 1) Typing "make" @ the top level does not seem to build the BR2_EXTERNAL
> code. Is there something missing here? Or is this by design? (based upon
> the fact that this code is not a "normal auto-something package") ??
No, this is not by design. "make" should build all packages you have
enabled in your configuration. If some packages don't get built even if
they are enabled in the configuration, it's because you didn't comply
with the naming conventions.
Package "foo" *must*:
* Be implemented in package/foo/foo.mk
* Have its Config.in option named BR2_PACKAGE_FOO
* Use FOO_ as the prefix for all variables in foo.mk
> Questions:
> 1) Can I have "layered" Config.in files in the BR2_EXTERNAL tree? Or does
> it all have to be done in one? (currently, it is layered)
I'm not sure what you mean by "layered", but you definitely don't have
to put everything in one Config.in file, it can source other Config.in
files, like in Buildroot itself.
Have you read the documentation at
http://buildroot.org/downloads/manual/manual.html#customize-dir-structure ?
Also, read
http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf
starting from slide 230.
> 2) Do I need to have a <directory>.mk for sub-directories, if they do
> nothing? If I specify the correct path to find the <pkg>.mk from
> external.mk, is that OK?
Yes, it is OK. In fact, we suggest that external.mk should contain
something like:
include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
> 3) is the <PKG>_VERSION in the <pkg>.mk used in any way other than the
> build folder directory?
Yes, it is generally used to define <pkg>_SOURCE, either explicitly (in
your .mk file) or implicitly (if not provided in your .mk file).
I.e:
FOO_VERSION = 0.3.2
FOO_SOURCE = foo-$(FOO_VERSION).tar.xz
Or, when you don't explicitly give a value for FOO_SOURCE, the package
infrastructure will automatically give it the value
'<pkg>-$(FOO_VERSION).tar.gz'.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-05 22:05 ` Thomas Petazzoni
@ 2015-11-06 14:12 ` Stephen Beckwith
2015-11-06 14:41 ` Thomas Petazzoni
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Beckwith @ 2015-11-06 14:12 UTC (permalink / raw)
To: buildroot
Thomas,
Thank you for your reply. As an experienced embedded software developer
(33 years overall, 10+ years with embedded linux) I would like to provide
the following ?constructive feedback? regarding the documentation.
As previously stated, I reviewed the Buildroot manual and the slides
(and lab notes).
Referencing Slide 232 - it states: ?recommended structure? - and this
shows a structure beginning with <board> - hence my earlier question about
directory naming.
Referencing the Manual, Section 9.1.1 - Implemeting layered
customizations. I reviewed this, since in my setup, I will have what would
be considered a ?layered? setup: A common directory with ~ 75 packages,
directories for ?platform? specific items, and then directories with items
from specific vendors that need to be included in the overall system.
So based upon Section 9.1.1 - there is no ?package? directory here, which
contradicts your ?must? list for the naming conventions. This may/may not
be obvious to someone who works deeply in this project every day. I?m
trying to understand these ?nuances? in the Buildroot setup so as I can
setup my system, in accordance with the requirements of Buildroot, yet
provide the flexibility I will need moving foward.
So - refering to Section 9.1.1 of the manual about ?layered customizations?
- And refering to my previous of the directory tree:
- Does each package need to be in a separate ?package/xyz? directory or
can there be a single package directory with multiple sub-directories for
each package? Refer to Slide 232.
{ I?ll assume Buildroot is keying off of ?package? for processing needs? }
Questions:
1) So all the Config.in files must follow the following convention:
BR2_EXTERNAL_<PACKAGE>?
{that was another boo-boo on my part - I used different names. . . }
2) I can use BR2_EXTERNAL_<PACKAGE> in the foo.mk to clarify make options,
yes?
Best Regards,
Stephen Beckwith
On Thu, Nov 5, 2015 at 5:05 PM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Dear Stephen Beckwith,
>
> On Thu, 5 Nov 2015 16:57:56 -0500, Stephen Beckwith wrote:
>
> > After some more poking around, I was successful in getting the desired
> > build to work. Here is what I found:
> > 1) Typing "make" @ the top level does not seem to build the BR2_EXTERNAL
> > code. Is there something missing here? Or is this by design? (based
> upon
> > the fact that this code is not a "normal auto-something package") ??
>
> No, this is not by design. "make" should build all packages you have
> enabled in your configuration. If some packages don't get built even if
> they are enabled in the configuration, it's because you didn't comply
> with the naming conventions.
>
> Package "foo" *must*:
>
> * Be implemented in package/foo/foo.mk
> * Have its Config.in option named BR2_PACKAGE_FOO
> * Use FOO_ as the prefix for all variables in foo.mk
>
> > Questions:
> > 1) Can I have "layered" Config.in files in the BR2_EXTERNAL tree? Or
> does
> > it all have to be done in one? (currently, it is layered)
>
> I'm not sure what you mean by "layered", but you definitely don't have
> to put everything in one Config.in file, it can source other Config.in
> files, like in Buildroot itself.
>
> Have you read the documentation at
> http://buildroot.org/downloads/manual/manual.html#customize-dir-structure
> ?
> Also, read
> http://free-electrons.com/doc/training/buildroot/buildroot-slides.pdf
> starting from slide 230.
>
> > 2) Do I need to have a <directory>.mk for sub-directories, if they do
> > nothing? If I specify the correct path to find the <pkg>.mk from
> > external.mk, is that OK?
>
> Yes, it is OK. In fact, we suggest that external.mk should contain
> something like:
>
> include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
>
> > 3) is the <PKG>_VERSION in the <pkg>.mk used in any way other than the
> > build folder directory?
>
> Yes, it is generally used to define <pkg>_SOURCE, either explicitly (in
> your .mk file) or implicitly (if not provided in your .mk file).
>
> I.e:
>
> FOO_VERSION = 0.3.2
> FOO_SOURCE = foo-$(FOO_VERSION).tar.xz
>
> Or, when you don't explicitly give a value for FOO_SOURCE, the package
> infrastructure will automatically give it the value
> '<pkg>-$(FOO_VERSION).tar.gz'.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151106/e3df6459/attachment.html>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-06 14:12 ` Stephen Beckwith
@ 2015-11-06 14:41 ` Thomas Petazzoni
2015-11-06 15:22 ` Stephen Beckwith
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2015-11-06 14:41 UTC (permalink / raw)
To: buildroot
Dear Stephen Beckwith,
On Fri, 6 Nov 2015 09:12:50 -0500, Stephen Beckwith wrote:
> Referencing Slide 232 - it states: ?recommended structure? - and this
> shows a structure beginning with <board> - hence my earlier question about
> directory naming.
Recommended != Mandatory.
It is not because we *recommend* a certain structure that all aspects
of this *recommended* structure are *mandatory*.
And indeed, the board/ directory is not *mandatory*, it's a pure
suggestion.
> Referencing the Manual, Section 9.1.1 - Implemeting layered
> customizations. I reviewed this, since in my setup, I will have what would
> be considered a ?layered? setup: A common directory with ~ 75 packages,
> directories for ?platform? specific items, and then directories with items
> from specific vendors that need to be included in the overall system.
OK. There's no question in this paragraph, so I assume you're just
giving some context. So far, everything looks right.
> So based upon Section 9.1.1 - there is no ?package? directory here, which
> contradicts your ?must? list for the naming conventions.
Section 9.1.1 only shows an example organization for the board/
directory, in which we recommend to store things like rootfs overlays,
post-build scripts, Linux kernel configuration files, etc.
Nowhere is section 9.1.1 talking about packages.
Moreover, I never said that you *must* have a package/ directory in
your BR2_EXTERNAL. *If* you have packages to implement in your
BR2_EXTERNAL then we *recommend* to put their description in package/,
in order to mimic the organization of Buildroot itself.
> - Does each package need to be in a separate ?package/xyz?
> directory or can there be a single package directory with multiple
> sub-directories for each package? Refer to Slide 232.
package/ is just a suggestion, and you can organize it whichever way
you want. Buildroot does not enforce anything in that respect. There
can be sub-directories, just like we have sub-directories for certain
packages in Buildroot itself.
So something like:
+ Config.in
+ external.mk
+ package
+ foo1
+ foo1.mk
+ Config.in
+ vendor1
+ vendor1.mk
+ vendor1-app1
+ vendor1-app1.mk
+ Config.in
+ vendor1-app2
+ vendor1-app2.mk
+ Config.in
is perfectly fine. Of course, you have to make sure that external.mk
includes package/*/*.mk, and that vendor1.mk includes
package/vendor1/*/*.mk. See the numerous examples of this available in
Buildroot proper.
> 1) So all the Config.in files must follow the following convention:
> BR2_EXTERNAL_<PACKAGE>?
No. Please read the documentation again. The Config.in options for
packages *must* be named BR2_PACKAGE_<pkg>
> 2) I can use BR2_EXTERNAL_<PACKAGE> in the foo.mk to clarify make
> options, yes?
I don't see why you need BR2_EXTERNAL_<PACKAGE> to clarify anything in
the .mk files.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-06 14:41 ` Thomas Petazzoni
@ 2015-11-06 15:22 ` Stephen Beckwith
2015-11-06 15:54 ` Thomas Petazzoni
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Beckwith @ 2015-11-06 15:22 UTC (permalink / raw)
To: buildroot
Thomas,
* You State:*
package/ is just a suggestion, and you can organize it whichever way
you want. Buildroot does not enforce anything in that respect. There
can be sub-directories, just like we have sub-directories for certain
packages in Buildroot itself.
*And you also state:*
Package "foo" *must*:
* Be implemented in package/foo/foo.mk
* Have its Config.in option named BR2_PACKAGE_FOO
* Use FOO_ as the prefix for all variables in foo.mk
Back to the original problem: I have a External setup, with "packages"
specified in a custom directory structure, NOT in a "package" directory yet
the top level make does NOT build these external packages. Why? They are
only built if I explicity: make <package> - then it works just fine. . .
I modified the ?leaf? config.in to declare BR2_EXTERNAL_<PKG> - re-run the
menu config, deslect, re-select, save, verify that the BR2_EXTERNAL_<PKG>
=y is in the top level .config.
Still does not build from ?make? (there is build directory present.)
Regards,
Stephen Beckwith
On Fri, Nov 6, 2015 at 9:41 AM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Dear Stephen Beckwith,
>
> On Fri, 6 Nov 2015 09:12:50 -0500, Stephen Beckwith wrote:
>
> > Referencing Slide 232 - it states: ?recommended structure? - and this
> > shows a structure beginning with <board> - hence my earlier question
> about
> > directory naming.
>
> Recommended != Mandatory.
>
> It is not because we *recommend* a certain structure that all aspects
> of this *recommended* structure are *mandatory*.
>
> And indeed, the board/ directory is not *mandatory*, it's a pure
> suggestion.
>
> > Referencing the Manual, Section 9.1.1 - Implemeting layered
> > customizations. I reviewed this, since in my setup, I will have what
> would
> > be considered a ?layered? setup: A common directory with ~ 75 packages,
> > directories for ?platform? specific items, and then directories with
> items
> > from specific vendors that need to be included in the overall system.
>
> OK. There's no question in this paragraph, so I assume you're just
> giving some context. So far, everything looks right.
>
> > So based upon Section 9.1.1 - there is no ?package? directory here, which
> > contradicts your ?must? list for the naming conventions.
>
> Section 9.1.1 only shows an example organization for the board/
> directory, in which we recommend to store things like rootfs overlays,
> post-build scripts, Linux kernel configuration files, etc.
>
> Nowhere is section 9.1.1 talking about packages.
>
> Moreover, I never said that you *must* have a package/ directory in
> your BR2_EXTERNAL. *If* you have packages to implement in your
> BR2_EXTERNAL then we *recommend* to put their description in package/,
> in order to mimic the organization of Buildroot itself.
>
> > - Does each package need to be in a separate ?package/xyz?
> > directory or can there be a single package directory with multiple
> > sub-directories for each package? Refer to Slide 232.
>
> package/ is just a suggestion, and you can organize it whichever way
> you want. Buildroot does not enforce anything in that respect. There
> can be sub-directories, just like we have sub-directories for certain
> packages in Buildroot itself.
>
> So something like:
>
> + Config.in
> + external.mk
> + package
> + foo1
> + foo1.mk
> + Config.in
> + vendor1
> + vendor1.mk
> + vendor1-app1
> + vendor1-app1.mk
> + Config.in
> + vendor1-app2
> + vendor1-app2.mk
> + Config.in
>
> is perfectly fine. Of course, you have to make sure that external.mk
> includes package/*/*.mk, and that vendor1.mk includes
> package/vendor1/*/*.mk. See the numerous examples of this available in
> Buildroot proper.
>
> > 1) So all the Config.in files must follow the following convention:
> > BR2_EXTERNAL_<PACKAGE>?
>
> No. Please read the documentation again. The Config.in options for
> packages *must* be named BR2_PACKAGE_<pkg>
>
> > 2) I can use BR2_EXTERNAL_<PACKAGE> in the foo.mk to clarify make
> > options, yes?
>
> I don't see why you need BR2_EXTERNAL_<PACKAGE> to clarify anything in
> the .mk files.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151106/73a70da5/attachment.html>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-06 15:22 ` Stephen Beckwith
@ 2015-11-06 15:54 ` Thomas Petazzoni
2015-11-06 16:04 ` Stephen Beckwith
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2015-11-06 15:54 UTC (permalink / raw)
To: buildroot
Dear Stephen Beckwith,
On Fri, 6 Nov 2015 10:22:03 -0500, Stephen Beckwith wrote:
> *And you also state:*
>
> Package "foo" *must*:
>
> * Be implemented in package/foo/foo.mk
Yes, in the main Buildroot tree. In the BR2_EXTERNAL tree, it can be
anywhere you want, as long as the directory name is "foo". I.e, it can
be in
baz/boz/foo/foo.mk
package/vendor/foo/foo.mk
> Back to the original problem: I have a External setup, with "packages"
> specified in a custom directory structure, NOT in a "package" directory yet
> the top level make does NOT build these external packages. Why? They are
> only built if I explicity: make <package> - then it works just fine. . .
Because you named wrongly the Config.in option for those packages....
> I modified the ?leaf? config.in to declare BR2_EXTERNAL_<PKG> - re-run the
> menu config, deslect, re-select, save, verify that the BR2_EXTERNAL_<PKG>
> =y is in the top level .config.
Why do you insist on using BR2_EXTERNAL_<pkg>, while I have been
telling you (as well as the manual and the training slides) that you
should be using BR2_PACKAGE_<pkg> ?
If you don't read what I write, how do you expect things to work ?
> Still does not build from ?make? (there is build directory present.)
Yes, because your Config.in options incorrectly start with
BR2_EXTERNAL_ while they should start with BR2_PACKAGE_.
The code that decides if a package should be built or not is in
package/pkg-generic.mk, and the relevant pieces are:
$(2)_KCONFIG_VAR = BR2_PACKAGE_$(2)
...
ifeq ($$($$($(2)_KCONFIG_VAR)),y)
PACKAGES += $(1)
endif
So, a package named 'foo' is built if BR2_PACKAGE_FOO=y.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-06 15:54 ` Thomas Petazzoni
@ 2015-11-06 16:04 ` Stephen Beckwith
2015-11-06 16:51 ` Thomas Petazzoni
0 siblings, 1 reply; 10+ messages in thread
From: Stephen Beckwith @ 2015-11-06 16:04 UTC (permalink / raw)
To: buildroot
Thomas,
My apologies - my brain was stuck on the "external aspect" of what I'm
doing. . . . Thinking that the EXTERNAL needed to be propagated. . .
Got it now, thanks!!!
Question:
In the Config.in - can there be "other" defined config options that will
allow me to toggle builds based upon these selections?
Thanks for your assistance, sorry for my "stuck-ness: :(
Best Regards,
Stephen Beckwith
On Fri, Nov 6, 2015 at 10:54 AM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
> Dear Stephen Beckwith,
>
> On Fri, 6 Nov 2015 10:22:03 -0500, Stephen Beckwith wrote:
>
> > *And you also state:*
> >
> > Package "foo" *must*:
> >
> > * Be implemented in package/foo/foo.mk
>
> Yes, in the main Buildroot tree. In the BR2_EXTERNAL tree, it can be
> anywhere you want, as long as the directory name is "foo". I.e, it can
> be in
>
> baz/boz/foo/foo.mk
> package/vendor/foo/foo.mk
>
> > Back to the original problem: I have a External setup, with "packages"
> > specified in a custom directory structure, NOT in a "package" directory
> yet
> > the top level make does NOT build these external packages. Why? They
> are
> > only built if I explicity: make <package> - then it works just fine. . .
>
> Because you named wrongly the Config.in option for those packages....
>
> > I modified the ?leaf? config.in to declare BR2_EXTERNAL_<PKG> - re-run
> the
> > menu config, deslect, re-select, save, verify that the BR2_EXTERNAL_<PKG>
> > =y is in the top level .config.
>
> Why do you insist on using BR2_EXTERNAL_<pkg>, while I have been
> telling you (as well as the manual and the training slides) that you
> should be using BR2_PACKAGE_<pkg> ?
>
> If you don't read what I write, how do you expect things to work ?
>
> > Still does not build from ?make? (there is build directory present.)
>
> Yes, because your Config.in options incorrectly start with
> BR2_EXTERNAL_ while they should start with BR2_PACKAGE_.
>
> The code that decides if a package should be built or not is in
> package/pkg-generic.mk, and the relevant pieces are:
>
> $(2)_KCONFIG_VAR = BR2_PACKAGE_$(2)
> ...
> ifeq ($$($$($(2)_KCONFIG_VAR)),y)
> PACKAGES += $(1)
> endif
>
> So, a package named 'foo' is built if BR2_PACKAGE_FOO=y.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151106/b0d44985/attachment.html>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01????
2015-11-06 16:04 ` Stephen Beckwith
@ 2015-11-06 16:51 ` Thomas Petazzoni
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2015-11-06 16:51 UTC (permalink / raw)
To: buildroot
Dear Stephen Beckwith,
On Fri, 6 Nov 2015 11:04:45 -0500, Stephen Beckwith wrote:
> In the Config.in - can there be "other" defined config options that will
> allow me to toggle builds based upon these selections?
Yes, of course.
You should really read more code in Buildroot itself, there are
*plenty* of examples. Just one random example: package/gpsd/Config.in.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-11-06 16:51 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-05 13:16 [Buildroot] BR2_EXTERNAL - Broken in 2015.08.01???? Stephen Beckwith
2015-11-05 13:29 ` Thomas Petazzoni
2015-11-05 21:57 ` Stephen Beckwith
2015-11-05 22:05 ` Thomas Petazzoni
2015-11-06 14:12 ` Stephen Beckwith
2015-11-06 14:41 ` Thomas Petazzoni
2015-11-06 15:22 ` Stephen Beckwith
2015-11-06 15:54 ` Thomas Petazzoni
2015-11-06 16:04 ` Stephen Beckwith
2015-11-06 16:51 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox