X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=BUILDING.md;h=2decc4b6fc0aeb4268d268343bd40ca691fdc896;hb=0bf3c59ff99d91419e362e3451738f69eb9edb35;hp=4e42aa63f03f5df7e2805871da62bb9561b6e11e;hpb=85e1cc520502ea7f92bbf1484c277ea25bcd7f22;p=dragonblocks_alpha.git diff --git a/BUILDING.md b/BUILDING.md index 4e42aa6..2decc4b 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -1,33 +1,49 @@ # Building instructions -GNU make is used for compiling. The code and the Makefile are located in the src/ directory. +CMake is used for compiling. Make sure to clone the repository recursively: -## Dependencies -To build anything you need g++ and GNU make. ```bash -sudo apt install build-essential make +git clone --recurse-submodules https://github.com/dragonblocks/dragonblocks_alpha.git ``` -The development versions OpenGL, GLFW3, GLEW are required to build the client. +## Dependencies +To build anything you need CMake and Lua. The ZLib development library is needed as well. +The development versions of OpenGL, GLFW3, GLEW and Freetype are required to build the client. +For building the server the SQLite3 development library is required. + + +Ubuntu / Debian: + ```bash -sudo apt install libgl1-mesa-dev libglfw3-dev libglew-dev +sudo apt install build-essential cmake zlib1g-dev libgl1-mesa-dev libglfw3-dev libglew-dev libfreetype-dev libsqlite3-dev lua5.3 ``` -Don't forget to pull the submodules before building. -``bash -git submodule update --init +FreeBSD: + +```csh +sudo pkg install cmake gcc lzlib mesa-devel glfw glew freetype sqlite3 lua +``` + +OpenBSD: + +```sh +sudo pkg_add cmake lzlib glfw glew freetype sqlite3 lua +``` + +## Building a debug build +By default CMake will make a Debug build if nothing else is specified. Simply use + +```bash +cd src +cmake . +make -j$(nproc) ``` -## Available targets -- `all` (default) -- `Dragonblocks` -- `DragonblocksServer` -- `clean` -- `clobber` +to build the dragonblocks client and server. +If you use a debug build, the singleplayer script should be invoked from the src/ directory, because that's where the binaries are located. -The debug flag (`-g`) is set by default (RELEASE=TRUE will disable it). +## Building a snapshot -## Release ```bash ./snapshot.sh ```