Compiling with Docker
If you want to compile the Linux version of the ohrrpgce using Docker images, you can use the Dockerfiles located in the docker subdirectory after you check out the source code from git or svn
Running the docker container[edit]
Set the OHRDIR environment variable to the folder where you have checked out the OHRRPGCE source code. It will default to ~/src/ohrrpgce if you don't set it yourself.
Then run one of the following commands:
# 64 bit Linux ./docker/ohrrpgce-build-env-linux-x86_64/lin64.sh # 32 bit Linux ./docker/ohrrpgce-build-env-linux-x86/lin32.sh # Emscripten web build ./docker/ohrrpgce-build-env-emscripten/emscr.sh
The above commands should work on any host that has a recent Docker-compatible service installed. You will also need to be able to run bash scripts (Easy on Linux & Mac. Its possible on Windows, but I haven't tried it myself yet).
Docker Enterprise is not required. This will work with open-source docker.
Note that the Linux containers will take a very long time to build the first time you run them, because they must compile Euphoria from source. They will be fast when you run them again. (until you clear your Docker image cache)
Compiling inside the container[edit]
Your $OHRDIR folder from your host will be mounted to /src/ohr inside the container. You can compile with scons as documented in Compiling. You can also run fbc and eui/euc directly if you wish.
cd /src/ohr scons release=1 game custom hspeak
The resulting binaries will be inside the $OHRDIR mounted folder, so you do not need to take any extra steps to copy them from the container to the host, they will already be on the host.
Android[edit]
A docker container for building OHRRPGCE for android exists (game only, does not support custom or hspeak)
It is out of date, and we don't currently (2026) consider it stable. The builds it produces don't run on Android versions 12 and newer. (1253)
It requires a very specific version of the Android SDK from 2012 which we can't legally redistribute ourselves. It also requires NDK version r12b. The SDK might possibly require some manual configuration that I have failed to document.
It also depends on our stale fork of Commandergenius SDL-android. https://github.com/bob-the-hamster/commandergenius
# This script requires additional configuration with environment variables. # Read the comments in the "Config" section of the andr-oldstyle.sh bash script. ./docker/ohrrpgce-build-env-android/andr-oldstyle.sh
Inside the container (assuming you have all the SDK and NDK config correct) you can run:
/src/ohr/distrib-nightly-android.sh
And it will make a debug apk build of the game player that can be sideloaded on older Androids
Any help would be extremely welcome with the difficult task of modernizing our android port, and getting it moved to modern SDKs and modern SDL.