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