FROM debian:bullseye

RUN apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential git cmake python3 autotools-dev autoconf libtool imagemagick

WORKDIR /
RUN git clone -b 4.0.21 --depth 1 https://github.com/emscripten-core/emsdk.git emsdk

WORKDIR /emsdk/
RUN ./emsdk install 4.0.21
RUN ./emsdk activate 4.0.21

WORKDIR /
RUN git clone -b v0.1.3 --depth 1 https://github.com/supertux/supertux supertux

# Emscripten forces NODERAWFS when using Autotools, which doesn't work.
RUN sed -i 's/settings.NODERAWFS = 1/#settings.NODERAWFS = 1/g' /emsdk/upstream/emscripten/tools/link.py

WORKDIR /supertux/
COPY patch-0.1.3.patch .
RUN git apply patch-0.1.3.patch
RUN bash -c 'source /emsdk/emsdk_env.sh && convert data/images/icon.xpm data/images/icon.png && ./autogen.sh && CFLAGS="-sUSE_SDL=1 -sUSE_SDL_IMAGE=1 -sUSE_SDL_MIXER=1 -sUSE_ZLIB=1 -std=c99" CXXFLAGS="-sUSE_SDL=1 -sUSE_SDL_IMAGE=1 -sUSE_SDL_MIXER=1 -sUSE_ZLIB=1 -std=c++03 -sNO_DISABLE_EXCEPTION_CATCHING" LDFLAGS="-sUSE_SDL=1 -sUSE_SDL_IMAGE=1 -sUSE_SDL_MIXER=1 -sUSE_ZLIB=1 -sNO_DISABLE_EXCEPTION_CATCHING --preload-file /supertux/data --use-preload-plugins -s EXPORTED_RUNTIME_METHODS=[\"ccall\",\"cwrap\"] -sALLOW_MEMORY_GROWTH" emconfigure ./configure --disable-opengl && emmake make -j11'
