#bobthehamster/ohrrpgce-build-env-android # NOTE this doesn't work yet! -- 2023-12 James Paige #----------------------------------------------------------------------- # Android SDK with OHRRPGCE build-deps # and both Freebasic and Euphoria Compilers FROM thyrlian/android-sdk # The base image is descended from Ubuntu 22.04 LTS (jammy) # # 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 \ && rm -rf /var/lib/apt/lists/* # # 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 WORKDIR / RUN rm -rf /fbc-arm-install ENV FBCARM /opt/fbc-arm/fbc-1.06-android/bin/fbc # # Final stuff # # This is mounted as a volume by the wrapper script ENV SDLANDROID /src/sdl-android WORKDIR /src # See also the wrapper script which sets up the correct volume mount and UID:GID