如何在makefile中修改全局变量?

如何在makefile中修改全局变量?,makefile,Makefile,我的makefile中有类似的内容: JAR = jar1.jar run: java -cp $(JAR) 我想做的是让makefile执行多次运行,但是在每次迭代中,它都使用另一个jar,它们都被称为jarx.jar,例如x从1到10 不在语句中传递jar名称就可以完成吗?为了简单起见,我给出的示例非常简单,但是我正在使用的实际makefile已经相当复杂了…make使用文件系统对象来保持状态。跟踪当前目录中不直接可见的文件的常见解决方案是创建本地标志文件 JARS := fir

我的makefile中有类似的内容:

JAR = jar1.jar

run:
    java -cp $(JAR)
我想做的是让makefile执行
多次运行
,但是在每次迭代中,它都使用另一个jar,它们都被称为jarx.jar,例如x从1到10


不在语句中传递jar名称就可以完成吗?为了简单起见,我给出的示例非常简单,但是我正在使用的实际makefile已经相当复杂了…

make
使用文件系统对象来保持状态。跟踪当前目录中不直接可见的文件的常见解决方案是创建本地标志文件

JARS := first.jar 2nd.jar thirdjar.jar

.PHONY: all run
all: $(patsubst %, .made-%,$(JARS))
run: all

.made-%.jar: %.jar
    java -cp $<
    touch $@
JARS:=first.jar 2nd.jar thirdjar.jar
.骗子:都跑吧
全部:$(patsubst%,.made-%,$(罐))
跑步:全部
.made-%.jar:%.jar
java-cp$<
触碰$@
因此,
.made first.jar
的存在表明此目标已针对先决条件
first.jar
执行,等等


如果您有一个
clean
目标,或者至少是
realclean
,它可能会清理所有标志文件。

不清楚您是否希望在一次make调用中“do
run
”。如果是,您希望它是可并行的吗?您的意思是
run:for f in jar1 jar2/3;do java-cp$$f.jar;在一个配方中完成了
?@Vroomfondel我想让它们按顺序运行@triplee或多或少像那样,但不是执行
java-cp$$f.jar
我想调用一个生成规则