Hi

I have a list like

CHILDREN := Block1 Block2 Block99 Block1999

Now I want to have a target "all.%" which should do the "%" on all blocks indicated by $(CHILDREN). E.g., "all.SomeAction" should depend on Block1.SomeAction, Block2.SomeAction, Block99.SomeAction, Block1999.SomeAction where there should be only one receipe. After playing around I came across this:

CHILDREN := Block1 Block2 Block99 Block1999

FOO2 = $(addsuffix .%,$(CHILDREN))
.PHONY: $(FOO2)
$(FOO2):
        @echo "    I am $@ (replacement: $*)"
        @echo "        Call: $(MAKE) -C Subblocks/$(word 1,$(subst ., ,$@)) $*"

.PHONY: all.%
all.%: $(FOO2)
        @echo "    Ich bin all.% (all.$*)"
        @echo "         Deps: $+"

However, the output is:

$ make all.SomeAction
    I am Block2.SomeAction (replacement: SomeAction)
        Call: make -C Subblocks/Block2 SomeAction
    Ich bin all.% (all.SomeAction)
Deps: Block1.SomeAction Block2.SomeAction Block99.SomeAction Block1999.SomeAction

Only the action for Block2.SomeAction (i.e. for the second element) is called.

How can I solve this issue?

Regards
Niki





_______________________________________________
Help-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-make

Reply via email to