Re: diet-kconfig: a script to trim unneeded kconfigs

Steven Rostedt
2008-09-22T15:41:47Z

On Mon, 22 Sep 2008, Giacomo A. Catenazzi wrote:
> Takashi Iwai wrote:
> > At Fri, 19 Sep 2008 16:55:51 -0700,
> > Chris Li wrote:
> >
> > > I avoid arch/ and firmware/ because it is nasty. I figure module in
> > > arch/ is small enough I don't mind building it. And the firmware
> > > directory,
> > > if I don't build the module loads it. Those firmware will automatically
> > > skipped
> > > any way.
> >
> > Agreed.
> >
> > > The little tricky part is some thing like this:
> > > ========================
> > > ifeq ($(CONFIG_BLK_DEV_CMD640), m)
> > > obj-m += cmd640.o
> > > endif
> > > ========================
> > > Internally it get convert it into:
> > > "obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o"
>
> Are you sure?
> I.e. if you set CONFIG_BLK_DEV_CMD640=y, you see that
> the two constructs gives different results.
>
> If the makefile author did such complex construct, I
> really think there is a reason ;-)
>

Yes indeed, we should find out what the author meant.

ifeq ($(CONFIG_BLK_DEV_CMD640), m)
obj-m += cmd640.o
endif

and

obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o

mean two different things.

The former means to compile the cmd640 only if it is set to a module.
The later means to compile the cmd640 if it is either a module or built
into the core kernel code.

The author needs to make this change or explain why it is like this.

-- Steve