Re: [PATCH] Kbuild.include: addtree: Remove quotes before matching path

Sam Ravnborg
2017-04-03T20:27:26Z

On Mon, Apr 03, 2017 at 03:25:10PM +0200, Michal Marek wrote:
> On 2017-04-03 09:42, Masahiro Yamada wrote:
> > Each Makefile knows it wants to see
> > additional headers in the source tree, or objtree.
> >
> > I am guessing the right approach in a long run is,
> > we require -I to specify $(srctree) or $(objtree) explicitly.
> >
> > ccflags-y := -I$(srctree)/foo/bar/baz
> >
> > or
> >
> > ccflags-y := -I$(objtree)/foo/bar/baz
> >
> >
> > (For the latter, we can omit $(objtree)/ as it is ./)
> >
> >
> > Then, delete $(call flags,_c_flags) after the conversion.
>
> Agreed. The addtree function is more of a hack to make things just work
> with O=, but AFAIK there is no clean way to implement VPATH for -I
> arguments. So it's sensible to get rid of the hack. It looks like it's
> going to be lot of work though:
>
> $ git grep -e '-I' -- '*Makefile*' | wc -l
> 732
> $ git grep -e '-I *\$(\(src\|obj\)tree)' -- '*Makefile*' | wc -l
> 166

There was a goal long time ago that moving the kernel source should
not trigger a rebuild.
Any hardcoded path would violate this (like $(srctree), $(objtree))

I dunno if this is really something to aim for today.

I have personally from time to time renamed the directory where
I have kernel soruce (which is seen like moving the kernel source),
and would not be happy if this always triggered a full rebuild.
But this is frankly a corner case.

Sam