On 11/03/2019 17.21, Eric Blake wrote:
> On 3/11/19 5:29 AM, Thomas Huth wrote:
>> When running "make" in a build directory from the pre-Kconfig merge time,
>> the build process currently fails with:
>>
>>  make: *** No rule to make target `.../default-configs/pci.mak',
>>   needed by `aarch64-softmmu/config-devices.mak'.  Stop.
>>
>> To make sure that this problem at least goes away when the user runs
>> "configure" (or "sh config.status") again, we have to make sure that
>> we re-generate the .mak.d files. Thus remove the old stale files
>> while running the configure script.
>>
>> Signed-off-by: Thomas Huth <th...@redhat.com>
>> ---
>>  configure | 3 +++
>>  1 file changed, 3 insertions(+)
> 
> What are the conditions for make deciding it needs to rerun
> config.status? Are end users still going to get 'make' failing with the
> cryptic message (where we just advise on-list and on-wiki to
> './config.status' to fix it), or is there a way to build in a dependency
> so that the makefile itself knows that if config.status has to be rerun,
> that takes priority over any other rule that depends on .mak files?

I just noticed that I never replied to this mail so far, sorry!

The conditions for rerunning config.status can be found in the Makefile:

config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION
        @echo $@ is out-of-date, running configure
        ...

At least we change VERSION regularly, so while not being perfect, the problem
should go away after a while with this patch. Not sure whether there is a better
way to do this - maybe depend on the files in default-configs/, too? Or maybe we
could simply bump VERSION from x.y.50 to x.y.51 the next time when we ever hit
such a problem again...?

 Thomas

Reply via email to