content: #bobthehamster/ohrrpgce-build-env-android-oldstyle
  
  #-----------------------------------------------------------------------
  # Old-style Android SDK with OHRRPGCE build-deps
  # and both Freebasic and Euphoria Compilers
  
  FROM debian:11-slim
  
  #
  # Apt packages
  #
  
  # Install the packages needed to compile the ohrrpgce.
  # Also include git and subversion because build scripts use them.
  # g++-multilib is needed for when we install euphoria later.
  # We don't bother with timidity or freepats because those
  # are really run-time requirements, not build-time.
  
  RUN apt-get update \
      && apt-get install -y --no-install-recommends \
        curl \
        git \
        subversion \
        bzip2 \
        zip unzip \
        libx11-dev \
        libxpm-dev \
        libxrandr-dev \
        libxrender-dev \
        libsdl2-dev \
        libsdl2-mixer-dev \
        libsdl1.2-dev \
        libsdl-mixer1.2-dev \
        libncurses5-dev \
        scons \
        g++ \
        g++-multilib \
        make \
        fakeroot \
        libtinfo5 \
        ca-certificates \
        less \
        nano \
        ant \
        file \
        gpg \
        imagemagick \
        libsdl-image1.2-dev \
      && rm -rf /var/lib/apt/lists/*
  # Note that libsdl-image1.2-dev is only used for the sdl-android button image theme converter
  
  # Correto is Amazon's LTS distribution of OpenJDK 8.
  # This seems to be the easiest way to get openjdk8 on Debian 10+
  # because only openjdk11 is available on debian+ and our crusty old
  # Android SDK is too old for openjdk11
  RUN curl -sS https://apt.corretto.aws/corretto.key \
    | gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg \
    && echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" \
    > /etc/apt/sources.list.d/corretto.list \
    && apt-get update \
    && apt-get install -y java-1.8.0-amazon-corretto-jdk \
    && rm -rf /var/lib/apt/lists/* \
    && update-java-alternatives -s /usr/lib/jvm/java-1.8.0-amazon-corretto
  
  #
  # Freebasic
  #
  
  ENV FBC_VERSION 1.08.1
  
  # First install the 64 bit version
  WORKDIR /freebasic-installer/
  RUN curl -sS http://mirror.motherhamster.org/dependencies/FreeBASIC-${FBC_VERSION}-linux-x86_64.tar.gz \
    | tar -zx
  WORKDIR /freebasic-installer/FreeBASIC-${FBC_VERSION}-linux-x86_64/
  RUN ./install.sh -i
  
  # Also add in the 32 bit libraries for multilib support
  WORKDIR /freebasic-installer/
  RUN curl -sS http://mirror.motherhamster.org/dependencies/FreeBASIC-${FBC_VERSION}-linux-x86.tar.gz \
    | tar -zx
  WORKDIR /freebasic-installer/FreeBASIC-${FBC_VERSION}-linux-x86/
  RUN cp -r ./lib/freebasic/linux-x86 /usr/local/lib/freebasic/
  
  WORKDIR /
  RUN rm -rf /freebasic-installer
  
  #
  # Euphoria
  #
  
  # Install the euphoria compiler. In spite of the deb name
  # this is actually a 32 bit binary (which is why we need g++-multilib)
  WORKDIR /euphoria-install/
  RUN curl -sS -O http://mirror.motherhamster.org/dependencies/euphoria_4.0.5_amd64.deb
  RUN dpkg -i /euphoria-install/euphoria_4.0.5_amd64.deb
  WORKDIR /
  RUN rm -rf /euphoria-install
  
  #
  # Freebasic ARM support
  #
  
  WORKDIR /fbc-arm-install
  RUN git clone --branch android https://github.com/rversteegen/fbc.git freebasic && \
    echo "CFLAGS := -Wfatal-errors -g" > /fbc-arm-install/freebasic/config.mk && \
    echo "FBCFLAGS := -g" >> /fbc-arm-install/freebasic/config.mk && \
    echo "FBLFLAGS := -g" >> /fbc-arm-install/freebasic/config.mk && \
    echo "prefix=/opt/fbc-arm/fbc-1.06-android" >> /fbc-arm-install/freebasic/config.mk && \
    cd /fbc-arm-install/freebasic && \
    make compiler && \
    make install-compiler install-includes
  
  RUN mkdir -p /src/ && \
    cp -pr /fbc-arm-install/freebasic/src/rtlib /src/fbc-arm-rtlib
  
  WORKDIR /
  RUN rm -rf /fbc-arm-install
  
  ENV FBCARM /opt/fbc-arm/fbc-1.06-android/bin/fbc
  
  #
  # Symlinks fixer
  #
  
  COPY fix_symlinks.sh /src/fix_symlinks.sh
  RUN chmod +x /src/fix_symlinks.sh
  
  #
  # Final stuff
  #
  
  # This is mounted as a volume by wrapper script
  ENV SDLANDROID /src/sdl-android
  ENV ANDROIDNDK /opt/android-ndk-r12b
  ENV ANDROIDNDKVER r12b
  ENV ANDROIDAPI 26
  ENV ANDROIDSDK /opt/android-sdk
  ENV ANDROID_HOME /opt/android-sdk
  ENV PATH="${PATH}:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-ndk-r12b:/opt/android-sdk/build-tools/26.0.3"
  
  WORKDIR /src
  # See also wrapper script which sets up the correct volume mount and UID:GID
  