Source code of KeeperRL
Prerequisites
- make essentials
- gcc-4.8.2 OR clang-3.3
- git
- libboost 1.56+ with libboost-serialization, libboost-program-optoins
- For compiling on OSX you'll also need libboost-system and libboost-thread
- libsfml-dev 2+ (Ubuntu ppa that contains libsfml 2: http://www.playdeb.net/updates/Ubuntu/13.10#how_to_install )
- freeglut-dev
- libglew-dev (if you're still getting undefined symbols about GLEW, try compiling SFML from source)
Under Ubuntu 14.4 , you could use these to create development enviroment
sudo apt-get install libboost1.56-all-dev libsfml-dev freeglut3-dev libglew-dev llvm-3.4 build-essential
In terminal:
git clone https://github.com/miki151/keeperrl.git
cd keeperrl
make -j 8 # for slow & debug mode or
make -j 8 OPT=true RELEASE=true # for release
# add CLANG=true to compile with clang.
# add OSX=true to compile on OSX
./keeper
A Dockerfile
is provided for easy installation of the dependencies
git clone https://github.com/miki151/keeperrl.git
cd keeperrl
docker build -t keeperrl ./
##Docker Run with GUI Handling Docker containers are usually headless You can run GUI apps like KeeperRL by passing environment information about your host machines window system to the container. Then when the container is run it will do all the rendering on your host machine.
see: https://blog.jessfraz.com/post/docker-containers-on-the-desktop/ for more info and examples
docker run \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=unix$DISPLAY \
--device /dev/snd:/dev/snd \
keeperrl
OSX Docker Container GUI support is more complicated. boot2docker runs the docker environment in a VM You need to run socat and host an Xquartz server on your host machine. You can then run the docker container and have it pipe the X GUI to the OSX host.
see: http://haven.nightlyart.com/trying-gui-apps-with-docker/
brew install socat
brew cask install xquartz
open -a XQuartz
##### Run socat
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
In a seperate terminal window
docker run -e DISPLAY=192.168.59.3:0 keeperrl