Dependencies ============ GLEW, GLM, SDL2, SDL2_image, SDL2_net, SDL2_ttf, OpenAL, freealut, zlib CppUnit for tests Cppcheck for linting archlinux: pacman -S \ glew glm sdl2 sdl2_image sdl2_net sdl2_ttf openal freealut zlib \ cppunit cppcheck debian: apt install \ libglew-dev libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-net-dev \ libsdl2-ttf-dev libopenal-dev libalut-dev zlib1g-dev \ libcppunit-dev cppcheck (!) you may have to build the tests with CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 centos: yum install \ glew-devel glm-devel SDL2-devel SDL2_image-devel SDL2_net-devel \ SDL2_ttf-devel openal-soft-devel freealut-devel zlib-devel \ cppunit-devel cppcheck (!) you need the "epel" repository for SDL2 et al. `yum install epel-release` manual: Cppcheck: http://cppcheck.sourceforge.net/ CppUnit http://sourceforge.net/projects/cppunit/ GLEW http://glew.sourceforge.net/ GLM http://glm.g-truc.net/0.9.6/index.html OpenAL http://openal.org/ SDL http://www.libsdl.org/ zlib http://zlib.net/ Makefile ======== Targets ------- all: build everything release (default), debug, profile: build executables tuned for running, debugging, and profiling run: build and execute the main binary with state path set to ./saves server: same as run, only in server mode server: same as run, only in client mode and the save path is set to ./client-saved to prevent clashes with a running `make server` test: build and run tests unittest: build and run tests that require no X server gdb, cachegrind, callgrind: build the binary suited for given tool and launch clean: remove intermediates distclean: remove intermediates and artifacts (also those generated by tool invocations!) Variables --------- CXX, LXX: compiler/linker used for C++ sources/objects LIBS: names of libraries (for pkg-config) CPPFLAGS, CXXFLAGS, LDXXFLAGS: flags for the preprocessor, compiler, and linker DEBUG_FLAGS, PROFILE_FLAGS, RELEASE_FLAGS: flags for building binaries in debug, profile, and release mode