Peter Maydell <peter.mayd...@linaro.org> writes:

> On 2 June 2017 at 16:49, Alex Bennée <alex.ben...@linaro.org> wrote:
>> Peter Maydell <peter.mayd...@linaro.org> writes:
>>> We seem to run into "CONFIG_FOO is defined for make but not
>>> for the C preprocessor" from time to time, so maybe we should
>>> fix that?
>>
>> Hmm is should be auto-generated from config-(host|target).mak but I've
>> never quite figured out why we need timestamps rather than a straight
>> dependency check in rules.mk:
>>
>>   # Generate timestamp files for .h include files
>>
>>   config-%.h: config-%.h-timestamp
>>           @cmp $< $@ >/dev/null 2>&1 || cp $< $@
>>
>>   config-%.h-timestamp: config-%.mak $(SRC_PATH)/scripts/create_config
>>           $(call quiet-command, sh $(SRC_PATH)/scripts/create_config < $< > 
>> $@,"GEN","$(TARGET_DIR)config-$*.h")
>>
>> This seems to be one of those things that goes away on a make clean && 
>> rebuild
>
> Not the issue in this case -- what happens is that these CONFIG_*
> defines are defined in config-devices.mak, but we don't have any
> equivalent config-devices.h which would expose them to the C code.

Ahh I see. So I guess once the relevant dependencies are added alongside:

  %/config-devices.mak: default-configs/%.mak 
$(SRC_PATH)/scripts/make_device_config.sh

The default rules should pick it up and generate the right things.

> (I assume the rules.mak stuff is attempting to avoid having a
> not-an-actual-change to the .h file result in rebuilding the whole
> world.)

OK that makes sense.

--
Alex Bennée

Reply via email to