Go to file
Nicolas Hake 092a23c2f7 Aul: Parse scripts into an AST, then generate bytecode from that
This commit contains a fairly substantial rewrite of the C4Script code
generator. Instead of generating bytecode while parsing the script,
we're now parsing the script into a syntax tree, and have any further
processing happen on that instead of the raw source.

At this time, the code generator emits the same bytecode as the old
parser; there are several optimization opportunities that arise from the
new possibility to emit code out of order from its specification by the
author.

Compared to the old compiler, this one is still rather deficient when
dealing with incorrect code; it's also not emitting several warnings
that used to be diagnosed.
2016-05-12 19:43:48 +02:00
cmake Update all copyright notices for 2016 2016-04-03 20:24:42 +02:00
docs Merge branch script 2016-04-28 03:25:44 +02:00
include/c4script Update all copyright notices for 2016 2016-04-03 20:24:42 +02:00
licenses Use PCG as random number generator 2016-04-20 22:42:00 +02:00
masterserver Revert engine-side league localization 2014-04-27 15:42:47 +02:00
planet OneMillionParticles.ocs: removed some randomness in the amount of particles in the final test 2016-05-10 22:29:30 +02:00
src Aul: Parse scripts into an AST, then generate bytecode from that 2016-05-12 19:43:48 +02:00
tests Aul: Parse scripts into an AST, then generate bytecode from that 2016-05-12 19:43:48 +02:00
thirdparty pcg: Make MSVC compatible 2016-04-22 00:15:12 +02:00
tools convert_cr_to_oc: Don't bother writing out empty Script.c 2016-05-03 02:13:14 +02: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 Aul: Parse scripts into an AST, then generate bytecode from that 2016-05-12 19:43:48 +02:00
COPYING Update all copyright notices for 2016 2016-04-03 20:24:42 +02: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 CMake: Remove unused HAVE_X11_KEYSYM_H 2016-02-13 22:36:41 +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.