Re: kbuild: libraries and subdirectories

From: Sam Ravnborg
Date: Thu Sep 08 2005 - 10:27:45 EST


On Thu, Sep 08, 2005 at 03:40:59PM +0200, Budde, Marco wrote:
> I have a large number of sources files, which I have to
> compile into one kernel module. Let's assume I have the
> following source organisation:
>
> main/
> main_code.c
> lib1/
> part1/
> file_1_1_1.c
> part2/
> file_1_2_1.c
> lib2/
> part1/
> file_2_1_1.c
> part2/
> file_2_2_1.c
>
> I would like to build all source files in lib1 into one
> lib.a library and all files in lib2 into a second lib.a
> library.

kbuild is optimised for kernel usage.
And within the kernel only xfs and oprofile (+a few others)
have files spread over more than one directory like in your
example. This is not considered good practice and therefore
kbuild does not document this usage - neither encourage it.

Also kbuild does not support building .a file in the way you
want it to do.

You can do the following:
obj-$(CONFIG_foo) += main/main_code.o
obj-$(CONFIG_foo) += lib1/part1/file_1_1_1.c
obj-$(CONFIG_foo) += lib1/part2/file1_2_1.o

etc.

>
> At the end I would like to compile the code in main and
> link every together (result should be one kernel module).
>
> How can I archieve this with kbuild? Its documentation is not
> really deep.
Please point out in what section you miss information and I will try to
update it.
I for one consider the kbuild syntax well documented, but I may be a bit
biased in this respect.

Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/