Il 24/07/2012 13:53, Andreas Färber ha scritto: > Am 24.07.2012 13:43, schrieb Paolo Bonzini: >> Il 24/07/2012 13:38, Andreas Färber ha scritto: >>>>> +$(foreach var,$(nested-vars), $(eval \ >>>>> + -include $(addsuffix *.d, $(sort $(dir $($(var))))))) >>>>> endef >>>>> >>> Are you sure? Dependencies are not guaranteed to be in one of the >>> unnested variables, thought we ran into some issues earlier... In >>> particular I'm thinking of tcg/*.d and of *.d in .user, .target, those >>> that are actually recursed into. >> >> obj-y is a nested variable: >> >> nested-vars += obj-y >> >> # This resolves all nested paths, so it must come last >> include $(SRC_PATH)/Makefile.objs >> >> $(dir $(obj-y)) contains tcg/ and from there you get tcg/*.d. >> >> The only makefile that doesn't use the nesting mechanism is tests/Makefile. > > I think you misunderstood: My worry is > > qemu-something: $(obj-y) foo bar baz > > obj-y and friends are handled, foo, bar, baz are not. If you checked all > those cases, fine with me. :) Otherwise the new unnesting rule is fine, > but not all "*.d" inclusions could be deleted.
Ah, yes, I did. The only cases are in the toplevel Makefile (and the included tests/Makefile), hence this statement left in that Makefile: +-include $(wildcard *.d tests/*.d) Paolo