Re: Re: how about KBUILD_MODNAME

From: Sam Ravnborg
Date: Tue Aug 03 2010 - 06:00:16 EST

On Tue, Aug 03, 2010 at 05:35:40PM +0800, hacklu wrote:
> I am compiling the boardcom's driver now.
> the driver had defined EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags)
> in the a.makefile.
> and the a.makefile was included by b.makefile.
> when in the b.makefile,
> there is this command.
> $(CC) $(DEPS_OPT) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< ;)
> I had add "echo $(EXTRA_CFLAGS)" before this line;but returns NULL;
> so I suspicion the $(EXTRA_CFLAGS) hasn't been work.
> I aslo try to add "export EXTRA_CFLAGS" in a.makefile,but it doesn't work either.
> the problem has puzzled me for some days.
> help me please~~

It looks like the driver uses the old 2.4 way to define a Makefile.
This will not work with 2.6.

What you need to do is to define a Makefile (*) like you would
if the driver was included in the kernel and then build
it using the following command:

make -C path/to/kernel/ M=`pwd`

The kernel shall be built before you do this as the method uses
information from the buitl kernel.

(*) The Makefile may not refer to new CONFIG_ symbols.
So it likely looks like this:

obj-m := foo.o bar.o

Do not be suprised that the Makefile becomes much much simpler - this is expected.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at