Re: kbuild: support of new KBUILD_FULL_PATH

From: Michal Marek
Date: Thu Jun 19 2014 - 09:14:29 EST


Dne 19.6.2014 14:01, Boaz Harrosh napsal(a):
> On 06/19/2014 01:41 PM, Michal Marek wrote:
>>> Signed-off-by: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
>>> - ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
>>> + # if KBUILD_FULL_PATH is not empty then condition will fail
>>> + ifeq ($(KBUILD_FULL_PATH)$(KBUILD_SRC)/,$(dir $(CURDIR)))
>>
>> This is an ugly way to express the logic.
>>
>
> I kind of agree. My Makefile foo is not very strong any other way I
> know would duplicate code. What would you suggest?
>
> [ Best I can think of is:
>
> srctree := $(KBUILD_SRC)
>
> # if KBUILD_FULL_PATH=1 then do not use relative path
> ifneq ($(KBUILD_FULL_PATH), 1)
> ifeq ($(KBUILD_SRC)/,$(dir $(CURDIR)))
> # building in a subdirectory of the source tree
> srctree := ..
> endif
> endif
>
>
> Is this better?

Definitely.


>> How about generated sources like asm-offsets.s or the lexer and parser
>> in scripts/kconfig, does kdevelop figure out where the files live? If
>> not, you might need to add
>>
>> -objtree := .
>> +ifeq ($(KBUILD_FULL_PATH),1)
>> + objtree := $(CURDIR)
>> +else
>> + objtree := .
>> +endif
>>
>> to use the full path also for the O= directory.
>>
>
> I would not care for those at all. The important is those files that
> you need to point and edit to fix stuff. The generated files I better
> not edit usually. The edit is in some other place, right?

Fair enough.


> I saw that this patch caused other breakage as well. Will you be
> fixing those? Do you want to own this or you still need a ver2
> of this patch?

I already sent three fixes to Linus:
https://lkml.org/lkml/2014/6/18/664. There is one more brekage that
Alexei is seeing with deb-pkg, but this needs further investigation.
Anyway, either send a v2 or tell me and I will fold the above change to
the first version of your patch.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/