Makefile: Add implicit rule for STANDARD_IMAGES

Adding a new images with the usual build rule:

  $(DOCKER) build -t $(ORG)/$@ $@

is now just a matter of adding an item to the "STANDARD_IMAGES" list.


To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.

Note that since this patch changes the order in which the images are
listed (manylinux is now last), the baseline and current files are
different. After inspection, we can confirm the difference is explained
by the order of the commands.

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
This commit is contained in:
Jean-Christophe Fillion-Robin 2016-09-25 17:44:08 -04:00
parent 2a12475d36
commit 53b158314a
No known key found for this signature in database
GPG Key ID: 15C1A2812F958BD3

View File

@ -1,14 +1,17 @@
DOCKER = docker DOCKER = docker
ORG = dockcross ORG = dockcross
BIN = bin BIN = bin
IMAGES = android-arm linux-x86 linux-x64 manylinux-x64 manylinux-x86 linux-arm64 linux-armv5 linux-armv6 linux-armv7 windows-x86 windows-x64
STANDARD_IMAGES = android-arm linux-x86 linux-x64 linux-arm64 linux-armv5 linux-armv6 linux-armv7 windows-x86 windows-x64
IMAGES = $(STANDARD_IMAGES) manylinux-x64 manylinux-x86
images: base $(IMAGES) images: base $(IMAGES)
test: base.test $(addsuffix .test,$(IMAGES)) test: base.test $(addsuffix .test,$(IMAGES))
android-arm: base $(STANDARD_IMAGES): base
$(DOCKER) build -t $(ORG)/android-arm android-arm $(DOCKER) build -t $(ORG)/$@ $@
android-arm.test: android-arm android-arm.test: android-arm
$(DOCKER) run --rm dockcross/android-arm > $(BIN)/dockcross-android-arm && chmod +x $(BIN)/dockcross-android-arm $(DOCKER) run --rm dockcross/android-arm > $(BIN)/dockcross-android-arm && chmod +x $(BIN)/dockcross-android-arm
@ -23,44 +26,26 @@ browser-asmjs.test: browser-asmjs
$(DOCKER) run --rm dockcross/browser-asmjs > $(BIN)/dockcross-browser-asmjs && chmod +x $(BIN)/dockcross-browser-asmjs $(DOCKER) run --rm dockcross/browser-asmjs > $(BIN)/dockcross-browser-asmjs && chmod +x $(BIN)/dockcross-browser-asmjs
$(BIN)/dockcross-browser-asmjs python test/run.py --exe-suffix ".js" $(BIN)/dockcross-browser-asmjs python test/run.py --exe-suffix ".js"
linux-x86: base
$(DOCKER) build -t $(ORG)/linux-x86 linux-x86
linux-x86.test: linux-x86 linux-x86.test: linux-x86
$(DOCKER) run --rm dockcross/linux-x86 > $(BIN)/dockcross-linux-x86 && chmod +x $(BIN)/dockcross-linux-x86 $(DOCKER) run --rm dockcross/linux-x86 > $(BIN)/dockcross-linux-x86 && chmod +x $(BIN)/dockcross-linux-x86
$(BIN)/dockcross-linux-x86 python test/run.py $(BIN)/dockcross-linux-x86 python test/run.py
linux-x64: base
$(DOCKER) build -t $(ORG)/linux-x64 linux-x64
linux-x64.test: linux-x64 linux-x64.test: linux-x64
$(DOCKER) run --rm dockcross/linux-x64 > $(BIN)/dockcross-linux-x64 && chmod +x $(BIN)/dockcross-linux-x64 $(DOCKER) run --rm dockcross/linux-x64 > $(BIN)/dockcross-linux-x64 && chmod +x $(BIN)/dockcross-linux-x64
$(BIN)/dockcross-linux-x64 python test/run.py $(BIN)/dockcross-linux-x64 python test/run.py
linux-arm64: base
$(DOCKER) build -t $(ORG)/linux-arm64 linux-arm64
linux-arm64.test: linux-arm64 linux-arm64.test: linux-arm64
$(DOCKER) run --rm dockcross/linux-arm64 > $(BIN)/dockcross-linux-arm64 && chmod +x $(BIN)/dockcross-linux-arm64 $(DOCKER) run --rm dockcross/linux-arm64 > $(BIN)/dockcross-linux-arm64 && chmod +x $(BIN)/dockcross-linux-arm64
$(BIN)/dockcross-linux-arm64 python test/run.py $(BIN)/dockcross-linux-arm64 python test/run.py
linux-armv5: base
$(DOCKER) build -t $(ORG)/linux-armv5 linux-armv5
linux-armv5.test: linux-armv5 linux-armv5.test: linux-armv5
$(DOCKER) run --rm dockcross/linux-armv5 > $(BIN)/dockcross-linux-armv5 && chmod +x $(BIN)/dockcross-linux-armv5 $(DOCKER) run --rm dockcross/linux-armv5 > $(BIN)/dockcross-linux-armv5 && chmod +x $(BIN)/dockcross-linux-armv5
$(BIN)/dockcross-linux-armv5 python test/run.py $(BIN)/dockcross-linux-armv5 python test/run.py
linux-armv6: base
$(DOCKER) build -t $(ORG)/linux-armv6 linux-armv6
linux-armv6.test: linux-armv6 linux-armv6.test: linux-armv6
$(DOCKER) run --rm dockcross/linux-armv6 > $(BIN)/dockcross-linux-armv6 && chmod +x $(BIN)/dockcross-linux-armv6 $(DOCKER) run --rm dockcross/linux-armv6 > $(BIN)/dockcross-linux-armv6 && chmod +x $(BIN)/dockcross-linux-armv6
$(BIN)/dockcross-linux-armv6 python test/run.py $(BIN)/dockcross-linux-armv6 python test/run.py
linux-armv7: base
$(DOCKER) build -t $(ORG)/linux-armv7 linux-armv7
linux-armv7.test: linux-armv7 linux-armv7.test: linux-armv7
$(DOCKER) run --rm dockcross/linux-armv7 > $(BIN)/dockcross-linux-armv7 && chmod +x $(BIN)/dockcross-linux-armv7 $(DOCKER) run --rm dockcross/linux-armv7 > $(BIN)/dockcross-linux-armv7 && chmod +x $(BIN)/dockcross-linux-armv7
$(BIN)/dockcross-linux-armv7 python test/run.py $(BIN)/dockcross-linux-armv7 python test/run.py
@ -92,16 +77,10 @@ manylinux-x86.test: manylinux-x86
$(DOCKER) run --rm dockcross/manylinux-x86 > $(BIN)/dockcross-manylinux-x86 && chmod +x $(BIN)/dockcross-manylinux-x86 $(DOCKER) run --rm dockcross/manylinux-x86 > $(BIN)/dockcross-manylinux-x86 && chmod +x $(BIN)/dockcross-manylinux-x86
$(BIN)/dockcross-manylinux-x86 /opt/python/cp35-cp35m/bin/python test/run.py $(BIN)/dockcross-manylinux-x86 /opt/python/cp35-cp35m/bin/python test/run.py
windows-x86: base
$(DOCKER) build -t $(ORG)/windows-x86 windows-x86
windows-x86.test: windows-x86 windows-x86.test: windows-x86
$(DOCKER) run --rm dockcross/windows-x86 > $(BIN)/dockcross-windows-x86 && chmod +x $(BIN)/dockcross-windows-x86 $(DOCKER) run --rm dockcross/windows-x86 > $(BIN)/dockcross-windows-x86 && chmod +x $(BIN)/dockcross-windows-x86
$(BIN)/dockcross-windows-x86 python test/run.py --exe-suffix ".exe" $(BIN)/dockcross-windows-x86 python test/run.py --exe-suffix ".exe"
windows-x64: base
$(DOCKER) build -t $(ORG)/windows-x64 windows-x64
windows-x64.test: windows-x64 windows-x64.test: windows-x64
$(DOCKER) run --rm dockcross/windows-x64 > $(BIN)/dockcross-windows-x64 && chmod +x $(BIN)/dockcross-windows-x64 $(DOCKER) run --rm dockcross/windows-x64 > $(BIN)/dockcross-windows-x64 && chmod +x $(BIN)/dockcross-windows-x64
$(BIN)/dockcross-windows-x64 python test/run.py --exe-suffix ".exe" $(BIN)/dockcross-windows-x64 python test/run.py --exe-suffix ".exe"