如何在GNUmakefile中检索参数

如何在GNUmakefile中检索参数,makefile,Makefile,不确定是否有人知道这个问题的答案,我环顾四周,还没有找到解决办法。我有一个makefile,如下所示: MODELS := abc def all: all_models all_models: $(foreach m,$(MODELS),test$(m)) test%: echo $(subst test,,$@) Output: echo abc abc echo def def 我知道$(m

不确定是否有人知道这个问题的答案,我环顾四周,还没有找到解决办法。我有一个makefile,如下所示:

    MODELS := abc def
    all:    all_models
    all_models: $(foreach m,$(MODELS),test$(m))

    test%:
        echo $(subst test,,$@)

    Output:
    echo abc
    abc
    echo def
    def
我知道$(m)abc和def是通过test%传入的:我的问题是,如果出于某些文件依赖性原因,我必须硬编码test%:到类似“test”的东西:我如何检索参数,即abc和def?例如,新条款如下

    test:
        # how do I retrieve abc and def from MODELS ?

谢谢

我仍然不认为你是在要求你真正想要的东西,但事情是这样的

在文件
模型中

MODELS := abc def ghi jkl
在makefile中:

include models

test:
    @echo do something with $(word 1,$(MODELS))
    @echo MODELS := $(wordlist 2,$(words $(MODELS)), $(MODELS)) > models

官方的GNU make手册大约有200页长,包括索引,你可能很快就能阅读它,我没有找到解决方案。也许做不到?你的要求很简单。我想你心里有一个不同的问题。对,很抱歉没有把我的问题说清楚。我的意思是在第一次执行test:时检索“abc”,在第二次执行test:时检索“def”,等等。为什么在您的“硬编码”情况下,
test
会多次运行?在您的宇宙中,静态目标如何以不同的依赖关系运行?