Subject: [RFC] Kbuild: allow code re-use across different directories

From: [email-masked] (Michal Marek)
Date: Fri, 09 Sep 2011 14:32:28 +0200

On 9.9.2011 03:22, Arnaud Lacombe wrote:
> Hi,
> 
> On Thu, Sep 8, 2011 at 4:33 PM, Nicolas Pitre <[email-masked]> wrote:
>> On Thu, 8 Sep 2011, Arnaud Lacombe wrote:
>>
>>> you missed:
>>>
>>>  # Make sure files are removed during clean
>>> -extra-y       += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S
>>> +extra-y       += piggy.gzip piggy.lzo piggy.lzma
>>>
>>> This confused make.
>>
>> Well... that was suttle.
>>
> he, welcome to make(1) world :)
> 
>> So yes, your patch may certainly be useful to a couple cases, and it
>> works fine for this lib1func.S.
>>
>> It doesn't help me much in the following situation though.  What I
>> actually want to achieve is to compile arch/arm/boot/compressed/fdt_rw.o
>> from scripts/dtc/libfdt/fdt_rw.c, however I want it to include my local
>> version of libfdt_env.h rather than scripts/dtc/libfdt/libfdt_env.h.  I
>> still haven't found a way to convince gcc to do that.
>>
> The only choice you have in gcc, is to use -I-, to construct:
> 
>  $(CROSS_COMPILE)gcc -I$(srctree)/arch/arm/boot/compressed -I- [...]
> 
> however, it's been marked as deprecated, but still usable as of today
> snapshot of 4.7.0. Its replacement, -iquote, do not provide this
> functionnality, that is to override the source file origin directory
> as search directory for #include "...".

Or you modify libfdt to support -DLIBFDT_ENV=libfdt_arm.h or similar.

Michal