* [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