dockcross/Makefile
Jean-Christophe Fillion-Robin e428bb3c03
Makefile: Simplify test rule using "addsuffix" filename function
See https://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html#File-Name-Functions

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:05 -04:00

120 lines
5.1 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 android-arm/Dockerfile
$(DOCKER) build -t $(ORG)/android-arm android-arm
android-arm.test: android-arm test/run.py
$(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 browser-asmjs/Dockerfile
cp -r test browser-asmjs/
$(DOCKER) build -t $(ORG)/browser-asmjs browser-asmjs
rm -rf browser-asmjs/test
browser-asmjs.test: browser-asmjs test/run.py
$(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 linux-x86/Dockerfile linux-x86/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-x86 linux-x86
linux-x86.test: linux-x86 test/run.py
$(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 linux-x64/Dockerfile
$(DOCKER) build -t $(ORG)/linux-x64 linux-x64
linux-x64.test: linux-x64 test/run.py
$(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 linux-arm64/Dockerfile linux-arm64/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-arm64 linux-arm64
linux-arm64.test: linux-arm64 test/run.py
$(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 linux-armv5/Dockerfile linux-armv5/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-armv5 linux-armv5
linux-armv5.test: linux-armv5 test/run.py
$(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 linux-armv6/Dockerfile linux-armv6/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-armv6 linux-armv6
linux-armv6.test: linux-armv6 test/run.py
$(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 linux-armv7/Dockerfile linux-armv7/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-armv7 linux-armv7
linux-armv7.test: linux-armv7 test/run.py
$(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 linux-ppc64le/Dockerfile linux-ppc64le/Toolchain.cmake
$(DOCKER) build -t $(ORG)/linux-ppc64le linux-ppc64le
linux-ppc64le.test: linux-ppc64le test/run.py
$(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 test/run.py
$(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 test/run.py
$(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 windows-x86/Dockerfile windows-x86/settings.mk
$(DOCKER) build -t $(ORG)/windows-x86 windows-x86
windows-x86.test: windows-x86 test/run.py
$(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 windows-x64/Dockerfile windows-x64/settings.mk
$(DOCKER) build -t $(ORG)/windows-x64 windows-x64
windows-x64.test: windows-x64 test/run.py
$(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 test/run.py
mkdir -p $(BIN)
$(DOCKER) run --rm dockcross/base > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
.PHONY: base images $(IMAGES) tests %.test