makefile - 迭代并构建每个文件

时间:2016-04-07 17:28:18

标签: gnu-make

我有一个目录列表BUILDS := $(wildcard */),每个目录都是一个Dockerfile。 如何构建每个docker文件?显然,这不起作用,但我正在寻找同样的东西:

build: $(BUILDS) $(DOCKERCMD) $@ -t $(DOCKER_REPO_URL):$(subst /,,$^) --force-rm $^

1 个答案:

答案 0 :(得分:0)

除了详细信息之外,你可能想要这些内容:

<强>生成文件

BUILDS := a b c

define build_it =
$(1):
    @echo "Building $$@"
    touch $$@
endef

.PHONY: all clean

all: $(BUILDS)

$(foreach build,$(BUILDS),$(eval $(call build_it,$(build))))

clean:
    rm -f $(BUILDS)

运行方式如下:

$ make
Building a
touch a
Building b
touch b
Building c
touch c

8.5 The foreach Function8.9 The eval Function