Skip to content

Commit 4ddc872

Browse files
authored
Merge pull request #9 from CSCfi/feature/add-multiplatform-build
Enable build for ARM processor architectuere
2 parents eb28b1b + ff3365c commit 4ddc872

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

Dockerfile

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
ARG EMSCRIPTEN_VERSION=3.1.51
2+
ARG EMSDK_IMAGE=docker.io/emscripten/emsdk
23

34
# Build libsodium
4-
FROM docker.io/emscripten/emsdk:$EMSCRIPTEN_VERSION AS SODIUM
5+
FROM ${EMSDK_IMAGE}:${EMSCRIPTEN_VERSION} AS SODIUM
56

67
ARG LIBSODIUM_VERSION=1.0.19-stable
78

89
ADD https://download.libsodium.org/libsodium/releases/libsodium-${LIBSODIUM_VERSION}.tar.gz .
910

1011
RUN tar xvf libsodium-${LIBSODIUM_VERSION}.tar.gz \
1112
&& cd libsodium-stable \
13+
&& sed -i -e 's/WASM_INITIAL_MEMORY=4MB/WASM_INITIAL_MEMORY=8MB/g' dist-build/emscripten.sh \
1214
&& dist-build/emscripten.sh --sumo
1315

1416
# Build openssl
15-
FROM docker.io/emscripten/emsdk:$EMSCRIPTEN_VERSION AS OPENSSL
17+
FROM ${EMSDK_IMAGE}:${EMSCRIPTEN_VERSION} AS OPENSSL
1618

1719
ARG OPENSSL_VERSION=1.1.1w
1820

@@ -30,7 +32,7 @@ RUN bash -c 'echo "$(cat openssl-${OPENSSL_VERSION}.tar.gz.sha256) openssl-${OPE
3032
&& emmake make install
3133

3234
# Build libcrypt4gh
33-
FROM docker.io/emscripten/emsdk:$EMSCRIPTEN_VERSION AS LIBCRYPT4GH
35+
FROM ${EMSDK_IMAGE}:${EMSCRIPTEN_VERSION} AS LIBCRYPT4GH
3436

3537
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
3638

@@ -57,7 +59,7 @@ RUN export EMCC_CFLAGS="-I/emsdk/upstream/include -L/emsdk/upstream/lib" \
5759
&& emmake make install
5860

5961
# Build libcrypt4gh-keys
60-
FROM docker.io/emscripten/emsdk:$EMSCRIPTEN_VERSION AS LIBCRYPT4GHKEYS
62+
FROM ${EMSDK_IMAGE}:${EMSCRIPTEN_VERSION} AS LIBCRYPT4GHKEYS
6163

6264
COPY --from=SODIUM /src/libsodium-stable/libsodium-js-sumo/include/ /emsdk/upstream/include/
6365
COPY --from=SODIUM /src/libsodium-stable/libsodium-js-sumo/lib/ /emsdk/upstream/lib/
@@ -85,7 +87,7 @@ RUN export EMCC_CFLAGS="-I/emsdk/upstream/include -L/emsdk/upstream/lib" \
8587
&& emmake make install
8688

8789
# Build wasm application
88-
FROM docker.io/emscripten/emsdk:$EMSCRIPTEN_VERSION AS WASMCRYPT
90+
FROM ${EMSDK_IMAGE}:${EMSCRIPTEN_VERSION} AS WASMCRYPT
8991

9092
LABEL maintainer="CSC Developers"
9193
LABEL org.label-schema.schema-version="1.0"

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ Build your application
3030
## Extras
3131
You can provide argument variables to change which library versions get built.
3232

33-
`emscripten`, `libsodium`, and `openssl` versions can be changed with `--build-arg` by changing the value of `EMSCRIPTEN_VERSION`, `LIBSODIUM_VERSION`, and `OPENSSL_VERSION`.
33+
`emscripten`, `libsodium`, and `openssl` versions can be changed with `--build-arg` by changing the value of `EMSCRIPTEN_VERSION`, `LIBSODIUM_VERSION`, `EMSDK_IMAGE` and `OPENSSL_VERSION`.
34+
35+
>__NOTE:__ To build only ARM images use -arm in version tag and for ARM built images. For example `EMSDK_IMAGE --build-arg="EMSDK_IMAGE=<local-registry>/emscripten/emsdk" --build-arg="EMSCRIPTEN_VERSION=3.1.21-arm"` instructs to use locally build emsdk:3.1.21-arm container.
3436
3537
# License
3638

build_wasm.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#!/bin/bash
22

3-
EMCC_CFLAGS="-I/emsdk/upstream/include -L/emsdk/upstream/lib" EMCC_FORCE_STDLIBS=libc emmake make $1
3+
EMCC_CFLAGS="-I/emsdk/upstream/include -L/emsdk/upstream/lib -sINITIAL_MEMORY=26214400" EMCC_FORCE_STDLIBS=libc emmake make $1

0 commit comments

Comments
 (0)