Messages in this thread | | | Date | Wed, 5 Dec 2007 21:31:26 -0600 | From | Jay Cliburn <> | Subject | Re: Allow (O=...) from file |
| |
On Wed, 5 Dec 2007 22:00:03 +0100 Sam Ravnborg <sam@ravnborg.org> wrote:
> On Tue, Dec 04, 2007 at 09:04:33PM -0600, Jay Cliburn wrote: > > Sam, > > > > This piece of the top-level Makefile in current git causes an > > out-of-tree driver Makefile to fail. > > > > 101 ifdef O > > 102 ifeq ("$(origin O)", "command line") > > 103 KBUILD_OUTPUT := $(O) > > 104 endif > > 105 endif > > > > The out-of-tree driver Makefile contains an O=... directive that > > (correctly) does _not_ specify the kernel source dir, and apparently > > isn't overridden by the command line either. If in the above > > Makefile snippet I change "command line" to "file", my out-of-tree > > make succeeds. What do you think about allowing O= to come from a > > file in addition to the command line? > > When you change "command line" to "file" you actually makes kbuild > ignore the O=... value which is why it succeeds.
I'm puzzled by your statement. Isn't the opposite true? When using "command line", doesn't the following happen?
1. My makefile sets O=/foo 2. My makefile invokes your makefile with O=/foo 3. Your makefile ignores my O=/foo because it requires O=/foo to originate from the command line 4. KBUILD_OUTPUT never gets set to /foo and we hit the error
OTOH, if I use "file": 1. My makefile sets O=/foo 2. My makefile invokes your makefile with O=/foo 3. Your makefile accepts my O=/foo because it requires O=/foo to originate from another makefile 4. KBUILD_OUTPUT gets set to /foo and my make succeeds
This all used to work the last time I tried it, which was sometime during 2.6.23 development, IIRC. Isn't the current structure going to break just about all out-of-tree driver builds?
Jay
| |