[buildgear-devel] Buildgear: build failure for u-boot

Martin Lund martin.lund at keep-it-simple.com
Tue Jun 10 08:13:04 MDT 2014


> Here are some quick questions:-
> a: Me coming from Linux kernel background, one obvious question is how do
>      I custom config the kernel using menuconfig in buildgear ?
>      I don’t want to manually edit the defconfig file every time in buildgear.
Buildgear does not provide any means of triggering eg. menuconfig or any 
other type of configuration system. It simply builds stuff with 
preconfigured configuration files.

This means that any reconfiguration of the linux kernel config using 
menuconfig must be done outside of buildgear context. But its quite easy.

For example, to reconfigure the beaglebone kernel, the easiest way is to 
let buildgear prepare the kernel source to make sure all patches are 
included (if any):

$ buildgear build native/linux-source

Then, to reconfigure the kernel I go extract the prepared source and 
reconfigures it like so:

$ cd build/package/native
$ tar xf linux-source#3.8.13-1.pkg.tar.gz
$ cd usr/src/linux
$ make ARCH=arm menuconfig
$ cp .config 
~/projects/beaglebone/buildfiles/native/native-beaglebone/linux-source/beaglebone.config

That's it, kernel is reconfigured and ready to build:
$ buildgear build linux

Notice, that building linux is split into two builds: 
native/linux-source and linux. The first prepares the source and the 
latter simply builds the kernel from the same source. The reason this is 
so is that the native toolchain build (crosstool-ng) also needs the 
linux source and to avoid circular dependencies a split is required 
(both native/crosstool-ng and linux depends on linux-source). Also worth 
mentioning is that the kernel version is defined in the top level 
configuration file (config/config) because this definition is used in 
more than one buildfile.

> b: If I suppose to add a application or a library as part of fs this
> in itself should
>      have a complete build system (what I mean is Makefile) ? an example for this
>      in handbook would be very helpful.
Buildgear is a build system for building firmware images. As such, it 
does not provide a build mechanism for building individual component 
software distributions - this is what make, cmake, autoconf etc. take 
care of.

So yes, in case you have some source code (be it lib or app), it would 
very helpful to have a makefile that defines how to build it. 
Alternatively, you could of course put all the gcc/g++/ld commands in a 
buildfile - it is not recommended but I guess it could be done for quick 
and dirty development/debug.

Ps. make sure that your custom Makefile features cross compilation.

/Martin




More information about the buildgear-devel mailing list