Go to file
Günther Brammer d4634526fd GL: Switch from GLEW to Epoxy
Epoxy automatically fetches the extension functions on demand, including
the GLX context creation functions. This means that you can't test the
function pointers for NULL anymore, because they're always set to a
resolver function until the first call. Instead, you have to check for the
availability of an extension by the extension's name. Thanks to Isilkor for
catching these.

On windows, epoxy invalidates all extension function pointers when the
GL context changes. This means we need to have an active context at all
times we call an extension function (like wglGetPixelFormatAttribivARB)
or else the code will jump to an invalid pointer. On the other hand, we do
not need to make it reinitialize the pointers ourselves.

Epoxy automatically uses an alias for a function if the requested name is
not available, like glDebugMessageCallbackARB instead of
glDebugMessageCallback. It also does not have the problem with varying
parameter types for that function. So switch to it while removing
GLDEBUGPROCARB_USERPARAM_IS_CONST.
2016-02-06 16:50:47 +01:00
cmake GL: Switch from GLEW to Epoxy 2016-02-06 16:50:47 +01:00
docs block construction sites based on Exclusive and not on planes (#1534) 2016-01-30 14:46:14 +01:00
include/c4script C4Script: Allow executing strings from cmdline instead of only files 2015-09-04 13:40:27 +02:00
licenses Update copyright notices 2013-12-23 13:03:19 +01:00
masterserver Revert engine-side league localization 2014-04-27 15:42:47 +02:00
planet shovel: changed GetModifiedDigSpeed to GetDigSpeed 2016-02-05 21:06:30 +01:00
src GL: Switch from GLEW to Epoxy 2016-02-06 16:50:47 +01:00
tests Add some more C4Script tests 2016-01-25 00:43:24 +01:00
thirdparty CMake: Split GTK3 tests into a separate module 2015-10-19 16:11:12 +02:00
tools GL: Switch from GLEW to Epoxy 2016-02-06 16:50:47 +01:00
.git_archival Prepare build for Git repository 2012-11-20 22:23:59 +01:00
.gitattributes Hard-code line endings of shell scripts to LF 2015-02-23 11:54:37 +01:00
.gitignore Add openclonk-server to .gitignore 2015-12-24 16:11:01 -08:00
CMakeLists.txt GL: Switch from GLEW to Epoxy 2016-02-06 16:50:47 +01:00
COPYING Point out that the source code license is the ISC license 2015-03-15 20:18:27 +01:00
Credits.txt Correct the spelling of my name in Credits.txt 2016-01-17 13:49:57 +01:00
README README: Update version numbers 2016-01-10 12:55:10 +01:00
TRADEMARK Update TRADEMARK and add trademark reference to credits (#1370) 2015-08-09 19:20:53 +02:00
Version.txt increase version to 8.0 alpha 2016-01-23 19:56:53 +01:00
config.h.cmake GL: Switch from GLEW to Epoxy 2016-02-06 16:50:47 +01:00
openclonk.desktop Register clonk:// protocol handler on Linux 2014-12-26 21:48:17 +01:00
scriptdefinitionsources.txt scriptdefinitionsources.txt: list of source files that contain definitions relevant to script (C4DT reads it) 2012-05-01 14:34:27 +02:00

README

Requirements
============
You should be able to build OpenClonk with any C++ compiler that supports
ISO C++14. That said, on Windows, we recommend using Microsoft Visual C++
2015 or higher; the Express edition will be sufficient. On Linux, you will
be fine with GNU g++ 4.9 or later. Apple users should use a clang-based
XCode version.

To generate project files for your chosen build system, you will also have to
install CMake from http://www.cmake.org/.

Additionally, OpenClonk depends on a number of third-party libraries:
  - zlib (http://zlib.net/)
  - libpng (http://www.libpng.org/pub/png/libpng.html)
  - libjpeg-turbo (http://sourceforge.net/projects/libjpeg-turbo/files/)
  - FreeType (http://www.freetype.org/)
  - The OpenGL Extension Wrangler Library (http://glew.sourceforge.net/)
  - FreeALUT (https://github.com/vancegroup/freealut)
  - libogg and libvorbis (https://www.xiph.org/downloads/)

OS X Specific
=============
OpenClonk supports OS X versions 10.8 "Mountain Lion" and later.
If you are using brew (https://github.com/mxcl/homebrew) or MacPorts
(http://www.macports.org/), the packages you'll have to install are:
    libjpeg, libpng, freetype, glew, libogg, libvorbis

Linux Specific
==============
For building OpenClonk on Linux, you need the following libraries in addition
to the ones listed above:
  - GTK+ 3.4 or greater (http://www.gtk.org)
  - libGL (http://www.mesa3d.org/)
  - SDL 1.2 (http://www.libsdl.org/download-1.2.php)
  - SDL_mixer 1.2 (http://www.libsdl.org/projects/SDL_mixer/release-1.2.html)
  - libupnp
  - libxrandr
Most distributions should provide these dependencies via their packaging
system. For Debian based distributions, you will need these packages:
  build-essential cmake imagemagick libfreetype6-dev libgl1-mesa-dev
  libglew-dev libgtk-3-dev libjpeg-dev libpng-dev libsdl1.2-dev
  libsdl-mixer1.2-dev libupnp-dev libxrandr-dev x11proto-core-dev
  zlib1g-dev libalut0
At least gcc-4.9 is required.

Windows Specific
================
In addition to the libraries above, you will need one more if you want to
target Windows:
  - OpenAL Soft (http://kcat.strangesoft.net/openal.html)
To create an installer, you will also need the Nullsoft Install System
(http://nsis.sourceforge.net/). To create the installer, build the "setup" target.