dockcross/Makefile
Jean-Christophe Fillion-Robin 2a12475d36
Makefile: Remove dependencies on a non-generated files
Since image targets are all "phony", they are always consider out-of-date
and will always be rebuilt. This means there is no need to add an explicit
dependency on non-generated files like  "Dockerfile", "settings.mk" and
"test/run.py".

The only required dependencies on Dockerfile are the one for the "base"
and "manylinux" images.

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

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
```
2016-09-25 17:38:20 -04:00

120 lines
4.5 KiB
Makefile

DOCKER = docker
ORG = dockcross
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
images: base $(IMAGES)
test: base.test $(addsuffix .test,$(IMAGES))
android-arm: base
$(DOCKER) build -t $(ORG)/android-arm android-arm
android-arm.test: android-arm
$(DOCKER) run --rm dockcross/android-arm > $(BIN)/dockcross-android-arm && chmod +x $(BIN)/dockcross-android-arm
$(BIN)/dockcross-android-arm python test/run.py
browser-asmjs: base
cp -r test browser-asmjs/
$(DOCKER) build -t $(ORG)/browser-asmjs browser-asmjs
rm -rf browser-asmjs/test
browser-asmjs.test: 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"
linux-x86: base
$(DOCKER) build -t $(ORG)/linux-x86 linux-x86
linux-x86.test: 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
linux-x64: base
$(DOCKER) build -t $(ORG)/linux-x64 linux-x64
linux-x64.test: 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
linux-arm64: base
$(DOCKER) build -t $(ORG)/linux-arm64 linux-arm64
linux-arm64.test: 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
linux-armv5: base
$(DOCKER) build -t $(ORG)/linux-armv5 linux-armv5
linux-armv5.test: 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
linux-armv6: base
$(DOCKER) build -t $(ORG)/linux-armv6 linux-armv6
linux-armv6.test: 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
linux-armv7: base
$(DOCKER) build -t $(ORG)/linux-armv7 linux-armv7
linux-armv7.test: 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
linux-ppc64le: base
$(DOCKER) build -t $(ORG)/linux-ppc64le linux-ppc64le
linux-ppc64le.test: linux-ppc64le
$(DOCKER) run --rm dockcross/linux-ppc64le > $(BIN)/dockcross-linux-ppc64le && chmod +x $(BIN)/dockcross-linux-ppc64le
$(BIN)/dockcross-linux-ppc64le python test/run.py --languages C
manylinux-x64/Dockerfile: manylinux-x64/Dockerfile.in common.docker
sed '/common.docker/ r common.docker' manylinux-x64/Dockerfile.in > manylinux-x64/Dockerfile
manylinux-x64: manylinux-x64/Dockerfile
$(DOCKER) build -t $(ORG)/manylinux-x64 -f manylinux-x64/Dockerfile .
manylinux-x64.test: manylinux-x64
$(DOCKER) run --rm dockcross/manylinux-x64 > $(BIN)/dockcross-manylinux-x64 && chmod +x $(BIN)/dockcross-manylinux-x64
$(BIN)/dockcross-manylinux-x64 /opt/python/cp35-cp35m/bin/python test/run.py
manylinux-x86/Dockerfile: manylinux-x86/Dockerfile.in common.docker
sed '/common.docker/ r common.docker' manylinux-x86/Dockerfile.in > manylinux-x86/Dockerfile
manylinux-x86: manylinux-x86/Dockerfile
$(DOCKER) build -t $(ORG)/manylinux-x86 -f manylinux-x86/Dockerfile .
manylinux-x86.test: 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
windows-x86: base
$(DOCKER) build -t $(ORG)/windows-x86 windows-x86
windows-x86.test: 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"
windows-x64: base
$(DOCKER) build -t $(ORG)/windows-x64 windows-x64
windows-x64.test: 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"
Dockerfile: Dockerfile.in common.docker
sed '/common.docker/ r common.docker' Dockerfile.in > Dockerfile
base: Dockerfile
$(DOCKER) build -t $(ORG)/base .
base.test: base
mkdir -p $(BIN)
$(DOCKER) run --rm dockcross/base > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
.PHONY: base images $(IMAGES) tests %.test