On Mon, Mar 28, 2022 at 09:41:26AM +0200, Jan Beulich wrote: > --- a/Makefile > +++ b/Makefile > @@ -75,6 +75,13 @@ ifeq (x86_64,$(XEN_TARGET_ARCH)) > XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub-if-enabled > endif > > +define do-subtree > +$(1)/%: FORCE > + $$(MAKE) -C $(1) $$* > +endef > + > +$(foreach m,$(wildcard */Makefile),$(eval $(call do-subtree,$(patsubst > %/Makefile,%,$(m)))))
Any reason to not use $(SUBSYSTEMS) instead of $(wildcard ) ? Or maybe you would rather been able to run `make xen/foo/bar.o` even after running `./configure --disable-xen`. > + > .PHONY: build-docs > build-docs: > $(MAKE) -C docs build > @@ -334,3 +341,6 @@ uninstall: uninstall-tools-public-header > .PHONY: xenversion > xenversion: > @$(MAKE) --no-print-directory -C xen xenversion > + > +PHONY += FORCE That's a Kbuild construct which will not work here. You need to write ".PHONY: FORCE" instead. In Kbuild, there's a ".PHONY: $(PHONY)", and various macros needs to know what's .PHONY. With at least the .PHONY business taking care of: Reviewed-by: Anthony PERARD <[email protected]> Thanks, -- Anthony PERARD
