lkml.org 
[lkml]   [2000]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: PATCH - kbuild documentation.
On Thursday November 30, rmk@arm.linux.org.uk wrote:
> Neil Brown writes:
> > + An example for libraries from drivers/acorn/scsi/Makefile:
>
> This is no longer true; you'll have to find another example.
>
> > + As ordering is not so important in libraries, this still uses
> > + LX_OBJS and MX_OBJS, though (presumably) it could be changed to
> > + use MIX_OBJS as follows:
> > +
> > + active-objs := $(sort $(obj-y) $(obj-m))
> > + L_OBJS := $(obj-y)
> > + M_OBJS := $(obj-m)
> > + MIX_OBJS := $(filter $(export-objs), $(active-objs))
> > +
> > + which is clearly shorted and arguably clearer.
>
> What if you have
>
> obj-$(CONFIG_FOO) += foo.o foobar.o
> obj-$(CONFIG_BAR) += bar.o foobar.o
>
> and CONFIG_FOO=y and CONFIG_BAR=m? What about CONFIG_FOO=y and
> CONFIG_BAR=y? Do we still support this method? If not, what is the
> recommended way of doing this sort of stuff?

The first case (y and m) would be satisifed by

M_OBJS := $(filter-out $(O_OBJS) $(L_OBJS), $(obj-m))

but the second (y and y) wouldn't. If you want to be allowed to
mention a .o file twice, and still maintain ordering, you are asking a lot.
You could try:

obj-$(CONFIG_FOO)$(CONFIG_BAR) += foobar.o
obj-$(CONFIG_FOO) += foo.o foobar.o
obj-$(CONFIG_BAR) += bar.o foobar.o

O_OBJS := $(obj-y) $(obj-ym) $(obj-my)
M_OBJS := $(obj-m) $(obj-mm)

But that it starting to look ugly.

Maybe:
O_OBJS := $(shell echo $(obj-y) | tr ' ' '\n' | cat -n | sort -u +1 | sort -n | cut -f2)

But I don't think that is much better.

There is room for other good ideas here if this is a real need.

NeilBrown

(I love Unix pipelines)

> _____
> |_____| ------------------------------------------------- ---+---+-
> | | Russell King rmk@arm.linux.org.uk --- ---
> | | | | http://www.arm.linux.org.uk/personal/aboutme.html / / |
> | +-+-+ --- -+-
> / | THE developer of ARM Linux |+| /|\
> / | | | --- |
> +-+-+ ------------------------------------------------- /\\\ |
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:47    [W:0.112 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site