2016-04-07 11 views
0

Ich habe eine Liste von Verzeichnissen BUILDS := $(wildcard */), jeweils als Dockerfile. Wie erstelle ich jede Docker-Datei? Offensichtlich funktioniert das nicht, aber ich bin auf der Suche nach etwas in die gleiche Richtung:Makefile - Iterieren und erstellen Sie jede Datei

build: $(BUILDS) $(DOCKERCMD) [email protected] -t $(DOCKER_REPO_URL):$(subst /,,$^) --force-rm $^

Antwort

0

Einzelheiten beiseite, Sie wollen wahrscheinlich etwas auf diesen Linien:

Makefile

BUILDS := a b c 

define build_it = 
$(1): 
    @echo "Building [email protected]" 
    touch [email protected] 
endef 

.PHONY: all clean 

all: $(BUILDS) 

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

clean: 
    rm -f $(BUILDS) 

, die wie läuft:

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

Siehe 8.5 The foreach Function und 8.9 The eval Function

+0

Ehrfürchtig. Danke Mike. Ich bin noch lange nicht fertig (diese Details), aber Sie haben meine Frage genau beantwortet. – Tom

Verwandte Themen