Re: [PATCH] scripts/dtc: consolidate include path options in Makefile

From: Masahiro Yamada
Date: Mon Aug 20 2018 - 22:09:18 EST


Hi Frank,

2018-08-21 10:31 GMT+09:00 Frank Rowand <frowand.list@xxxxxxxxx>:
> On 08/20/18 14:32, Rob Herring wrote:
>> On Mon, Aug 20, 2018 at 1:55 PM Frank Rowand <frowand.list@xxxxxxxxx> wrote:
>>>
>>> On 07/03/18 18:59, Masahiro Yamada wrote:
>>>> It is tedious to specify extra compiler options for every file.
>>>> HOST_EXTRACFLAGS is useful to add options to all files in a
>>>> directory.
>>>>
>>>> -I$(src)/libfdt is needed for all the files in this directory
>>>> to include libfdt_env.h etc. from scripts/dtc/libfdt/.
>>>>
>>>> On the other hand, -I$(src) is used to include check-in headers
>>>> from generated C files. Thus, I added it only to dtc-lexer.lex.o
>>>> and dtc-parser.tab.o .
>>>>
>>>> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>>>> ---
>>>>
>>>> scripts/dtc/Makefile | 18 ++++--------------
>>>> 1 file changed, 4 insertions(+), 14 deletions(-)
>>>>
>>>> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
>>>> index 9cac65b..1c943e0 100644
>>>> --- a/scripts/dtc/Makefile
>>>> +++ b/scripts/dtc/Makefile
>>>> @@ -9,21 +9,11 @@ dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
>>>> dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
>>>>
>>>> # Source files need to get at the userspace version of libfdt_env.h to compile
>>>> +HOST_EXTRACFLAGS := -I$(src)/libfdt
>>>
>>> Shouldn't that be += instead of :=?
>>
>> I don't think so. The definition is local to the file (and reset
>> before each makefile is included).
>>
>> Rob
>>
>
> Every other place where HOST_EXTRACFLAGS is assigned a value, += is used
> instead of :=, including the example in Documentation/kbuild/makefiles.txt
>
> What makes scripts/dtc/Makefile different than the other makefiles?
>
> -Frank
>


:= and += work in the same way in here.


As Rob said, HOST_EXTRACFLAGS is reset in each makefile
because HOST_EXTRACFLAGS is not export'ed.
(scripts/gcc-plugins/Makefile actually export's it, but it is wrong.)


Precisely speaking, HOST_EXTRACFLAGS is immediately expanded
if it is set by :=, whereas it is lazily expanded if it is
set by +=. But, there is no effective difference in this case.


--
Best Regards
Masahiro Yamada