为多个先决条件和多个目标使用模式规则

时间:2016-07-21 09:07:46

标签: makefile wildcard gnu-make

我遇到make的问题,我无法弄清楚如何解决它。我想使用shell脚本转换子目录中的每个文件。这就是我写的:

OBJ=$(wildcard src/*.in)
OUT=$(patsubst %.in, %.out, $(notdir $(OBJ)))

%.out : src/%.in
    ./myscript.sh $< > $@

$(OUT) : $(OBJ)

makefile可以正常工作,但它只为第一个.in文件运行脚本,然后停止。抱歉这个愚蠢的问题,但我无法解决这个问题!

1 个答案:

答案 0 :(得分:0)

因为您没有告诉Makefile构建所有$(OUT)文件,所以您只是说它应该如何构建。

尝试这个

OBJ=$(wildcard src/*.in)
OUT=$(patsubst %.in, %.out, $(notdir $(OBJ)))

all: $(OUT)

%.out : src/%.in
    ./myscript.sh $< > $@

.PHONY: all