On 5/9/21 6:05 PM, Thomas Huth wrote: > On 07/05/2021 14.41, Paolo Bonzini wrote: >> On 07/05/21 11:45, Thomas Huth wrote: >>> >>> >>> diff --git a/Makefile b/Makefile >>> index bcbbec71a1..3088502329 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -85,7 +85,8 @@ x := $(shell rm -rf meson-private meson-info >>> meson-logs) >>> endif >>> >>> # 1. ensure config-host.mak is up-to-date >>> -config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios >>> $(SRC_PATH)/VERSION >>> +config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios >>> $(SRC_PATH)/VERSION \ >>> + $(SRC_PATH)/default-configs/targets >>> @echo config-host.mak is out-of-date, running configure >>> @if test -f meson-private/coredata.dat; then \ >>> ./config.status --skip-meson; \ >>> >>> I.e. re-run configure if somethings in default-configs/targets changed. >>> Does that look sane? >> >> I am not sure if using a directory is reliable (it's pre-existing for >> pc-bios). However you probably can use >> >> # currently in tests/Makefile.include, move it to toplevel Makefile >> TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, >> $(ninja-targets))) >> config-host.mak: $(SRC_PATH)/configure >> $(TARGETS:%=default-configs/targets/%) >> >> And then if a file goes missing it will trigger the rebuild of >> config-host.mak. > > Sounds like an idea, too ... but I'm unsure whether it's doable due to > the order of the statements there... TARGETS gets populated from > ninja-targets, but ninja-targets gets set *after* the config-host.mak > block ... would it be safe to move the config-host.mak block around?
Not sure I understood Paolo's suggestion, I tried: -- >8 -- diff --git a/Makefile b/Makefile index bcbbec71a1c..3ef3622228b 100644 --- a/Makefile +++ b/Makefile @@ -152,6 +152,10 @@ ifneq ($(filter $(ninja-targets), $(ninja-cmd-goals)),) +$(quiet-@)$(if $(MAKE.nq),@:, $(NINJA) -d keepdepfile \ $(NINJAFLAGS) $(sort $(filter $(ninja-targets), $(ninja-cmd-goals))) | cat) endif + +TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets))) +config-host.mak: $(SRC_PATH)/configure $(TARGETS:%=default-configs/targets/%) + endif # Force configure to re-run if the API symbols are updated --- But still get (after git pull this morning): $ ninja qemu-system-ppc [0/1] Regenerating build files. ... meson.build:1303:2: ERROR: Failed to load default-configs/targets/moxie-softmmu.mak: [Errno 2] No such file or directory: 'default-configs/targets/moxie-softmmu.mak' A full log can be found at meson-logs/meson-log.txt FAILED: build.ninja I'm keeping the directory unmodified in case you want me to try other fixes.