blob: bbfd3950975480e597ef28c25c7ed97c7830daf9 [file] [log] [blame]
#!/usr/bin/env make
# Emscripten version to build: Should match the version that has been already released.
# i.e.: 1.39.18
version =
alias =
.TEST:
ifndef version
$(error argument 'version' is not set. Please call `make version=SOME_VERSION ...`)
endif
build: .TEST
docker build --network host --build-arg=EMSCRIPTEN_VERSION=${version} --tag emscripten/emsdk:${version} .
test: .TEST
# compilation as non-root
docker run --rm -u `id -u`:`id -g` -e HOME=/tmp -v `pwd`:/src -w /src emscripten/emsdk:${version} \
bash -c "\
mkdir -p .test \
&& echo 'int main() { return 0; }' > .test/main.c \
&& emcc -c .test/main.c -o .test/main\
"
# artifact should be removable from host by non-root
rm -fr .test
# running as non-root and forcing downloading ports
docker run --rm -u `id -u`:`id -g` -e HOME=/tmp --net=host emscripten/emsdk:${version} embuilder build zlib
# compilation without entrypoint
docker run --rm -e /bin/bash -v `pwd`:/src -w /src emscripten/emsdk:${version} \
bash -c "\
mkdir -p .test \
&& echo 'int main() { return 0; }' > .test/main.c \
&& emcc -c .test/main.c -o .test/main\
"
# artifact should be removable from host by non-root
rm -fr .test
push: .TEST
docker push emscripten/emsdk:${version}
ifdef alias
docker tag emscripten/emsdk:${version} emscripten/emsdk:${alias}
docker push emscripten/emsdk:${alias}
endif