Re: kbuild/kconfig for non-Linux projects

Arnaud Lacombe
2011-02-16T16:53:13Z

Hi,

On Wed, Feb 16, 2011 at 8:46 AM, Michal Marek <mmarek@suse.cz> wrote:
> On 16.2.2011 10:08, Thomas De Schampheleire wrote:
>> Hi,
>>
>> I'm interested in using kbuild/kconfig for other projects than the
>> Linux kernel. I notice that a lot of projects (e.g. Buildroot,
>> Busybox, uClibc, OpenBricks, ...) are already using this framework,
>> but it's unclear to me which steps are needed to do so.
>
> You should talk to Arnaud Lacombe, who has done quite some work in this
> direction on kconfig (portability and ability to easily "rebrand"
> kconfig).
>
using kconfig outside the linux kernel tree should be trivial,
normally, as you said, all the Linux "branding" should have been made
configurable. The trick might be to have the correct Makefile glue to
let it build. If you want some of the work pre-done, I just pushed an
old repository of mine on github. It should contains only what's
needed to build the various part of kconfig:

https://github.com/lacombar/kconfig/

I did not really touch it since October 2010, so it is certainly
missing parts (especially bug fixes). Moreover, it squashes commit to
keep the history clean, but I tried to keep the shortlog to have an
idea what has been going on. Last warning, I do not guarantee the tree
integrity (ie. I love rebasing :))

'hope that would help,
- Arnaud

> Honestly, I don't know if kbuild is used outside of the kernel
> and if it would make sense at all. It might be easier to write the
> Makefiles yourself. It's not that large and most of it is linux-specific
> anyway:
>
> $ wc -l Makefile scripts/Makefile.* scripts/Kbuild.include
>  1533 Makefile
>   405 scripts/Makefile.build
>   104 scripts/Makefile.clean
>    72 scripts/Makefile.fwinst
>   103 scripts/Makefile.headersinst
>     3 scripts/Makefile.help
>   170 scripts/Makefile.host
>   244 scripts/Makefile.lib
>    60 scripts/Makefile.modbuiltin
>    35 scripts/Makefile.modinst
>   153 scripts/Makefile.modpost
>   262 scripts/Kbuild.include
>  3144 total
>
>
>
>> I found a related thread on this mailing list that seemed to have died out.
>> http://www.mail-archive.com/kbuild-devel@lists.sourceforge.net/msg02487.html
>>
>> I also found a code repository 'menuconfig' here, although I doubt
>> that this is an official one:
>> http://code.google.com/p/menuconfig/source/browse/trunk/
>>
>> Specifically, I'd like to know:
>> * are there 'official' sources to kbuild in some repository outside
>> the linux kernel?
>
> No, it is maintained as part of the kernel.
>
>
>> * which steps are needed to use kbuild in a project other than the
>> linux kernel? Is there some documentation available?
>> * what is the license under which kbuild is distributed? In case it's
>> GPL, does this impact the license of the software project using
>> kbuild, i.e. does using kbuild imply the project being a derived work?
>
> The license is GPLv2. Using kconfig as a separate tool to configure
> options should probably be OK, I'm not so sure about using kbuild. You
> should ask a lawyer. Or ask Kai Germaschewski and Sam Ravnborg if they
> will sue you or not :-). Also see the first paragraph.
>
> Michal
>