| # The name for the docker builder image |
| BUILDER_CONTAINER_NAME="milagro-crypto/amcl-builder" |
| |
| # Coverage info |
| COVERAGE_INFO=target/LINUX_64BIT_COVERAGE/coverage/amcl.info |
| |
| define make |
| rm -rf target |
| docker create \ |
| --env WINEPREFIX=/tmp/.wine \ |
| --name builder \ |
| --workdir /src \ |
| $(BUILDER_CONTAINER_NAME) sh -c "mkdir -p /tmp/.wine && make $1" |
| docker cp . builder:/src |
| -docker start -ai builder; \ |
| echo $$? > buildall.exit |
| docker cp builder:/src/target . |
| docker stop builder |
| docker rm builder |
| @# Workaround: Correct path for coverage src files |
| ls ${COVERAGE_INFO} && sed -i -e "s#^SF:/src\(.*\)#SF:${PWD}\1#g" ${COVERAGE_INFO} || echo "Skipping coverage info" |
| @mv buildall.exit target |
| @exit `cat target/buildall.exit` |
| endef |
| |
| all: builder |
| |
| builder: |
| docker build -t $(BUILDER_CONTAINER_NAME) . |
| |
| |
| # --- MAKE TARGETS DOCKER WRAPPERS --- |
| |
| default: |
| $(call make,default) |
| qa: |
| $(call make,qa) |
| build: |
| $(call make,build TYPE=$(TYPE)) |
| buildall: |
| $(call make,buildall) |
| |
| .PHONY: all builder default qa build buildall |