mirror of
https://github.com/bensuperpc/dockcross.git
synced 2024-12-22 16:24:27 +01:00
2a12475d36
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 ```
120 lines
4.5 KiB
Makefile
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
|