![如何重构此 Makefile 以不使用假 .out 输出?](https://linux22.com/image/117794/%E5%A6%82%E4%BD%95%E9%87%8D%E6%9E%84%E6%AD%A4%20Makefile%20%E4%BB%A5%E4%B8%8D%E4%BD%BF%E7%94%A8%E5%81%87%20.out%20%E8%BE%93%E5%87%BA%EF%BC%9F.png)
我tests/FILENAME-test.sh
对每个测试都进行了测试,我想在 docker 容器内运行脚本。
我怎样才能重构这个Makefile,使其不像TEST_OUTPUTS
我一样使用?
另外,如何使每个docker run
命令并行运行?
.PHONY: test image
TESTS=$(wildcard tests/*-test.sh)
TEST_OUTPUTS=$(patsubst %.sh,%.out,$(TESTS))
%.out: %.sh image
@sudo docker run -t box-test /bin/bash "-c" "./$^"
test: $(TEST_OUTPUTS)
@echo
image:
@sudo docker build -q -t box-test .
答案1
这里是:
.PHONY: test image
TESTS=$(wildcard tests/*-test.sh)
test: $(TESTS)
$(TESTS): image
@sudo docker run -t box-test /bin/bash "-c" "./$@"
image:
@sudo docker build -q -t box-test .
对于docker run
并行运行的命令,只需使用make -j test
(您可以使用 指定最大并发运行数-j
)。