Make

如何重構此 Makefile 以不使用假的 .out 輸出?

  • September 11, 2017

我有測試,tests/FILENAME-test.sh對於每個我想在 docker 容器中執行腳本的測試。

我怎樣才能重構這個 MakefileTEST_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 .

這裡是:

.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)。

引用自:https://unix.stackexchange.com/questions/391702