Free and Open Source real time strategy game with a new take on micro-management

Difference between revisions of "Compiling"

From Globulation2

Jump to: navigation, search
(New page: Image:source_download.png == Compile from Sources == {{Warning|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the [[Mingw com...)
 
(Debian/Ubuntu: updated the dependencies)
 
(26 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{UserManualLinks}}
[[Image:source_download.png]]


__TOC__
== Compile from Sources ==
{{Warning|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the [[Mingw compilation]] guide, which explains how to compile globulation2 on windows using mingw.}}


{{Message|Compiling on Windows|The instructions below will not work for Windows. To compile on that OS, please see the <u>[[Mingw compilation]]</u> guide, which explains how to compile globulation2 on windows using mingw.}}

==Compilation requirements==
{{Message|Compiling on Mac OSX|There is an easier way to get all the dependancies than to compile them all. See the [[MAC OS X Development]] page for more information.}}
For source tarbal, Mercurial source, and package installations, you'll also need to install these packages:
* [http://www.scons.org/ scons] build system
* [http://www.libsdl.org/index.php SDL 1.2] download SDL-devel and SDL
* [http://www.libsdl.org/projects/SDL_net/ SDL_net 1.2] download SDL_net-devel
* [http://www.libsdl.org/projects/SDL_image/ SDL_image 1.2] download SDL_image-devel
* [http://www.libsdl.org/projects/SDL_ttf/ SDL_ttf 2.0] download SDL_ttf-devel
* [http://www.speex.org speex] download current stable release
* [http://www.xiph.org/ libogg and libvorbis] can be found in their download-section. libspeex, too.
* [http://zlib.net/ zlib]
* [http://boost.org/ Boost C++ Libraries] download boost, boost-devel, including boost_thread and boost_date_time.
* (optional) [http://fribidi.org/ Fribidi] download GNU FriBidi

===Debian/Ubuntu===
The following terminal command will get you all the dependencies:
sudo apt-get install mercurial scons libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \
libsdl-ttf2.0-dev zlibc libspeex-dev libogg-dev libvorbis-dev libboost-dev libboost-thread-dev \
libboost-date-time-dev

== Compile from Sources ==
=== Source Distribution ===
=== Source Distribution ===
* Get the [[#downloadlink_source|source distribution archive]] from the download section above.
* Get the [[Download and Install|source distribution archive]] from the download section.
* Extract the archive using a compression/extraction utility such as tar.
* Extract the archive using a compression/extraction utility such as tar.
* Go in the extracted archive. If you have a Unix system (Linux, Solaris, Mac OS X):
* Go in the extracted archive. If you have a Unix system (GNU/Linux, Solaris, Mac OS X):
** Run the 'scons' script to compile the game (it will check dependencies, install any you have missing)
** Run the 'scons' script to compile the game (it will check dependencies, install any you have missing)
*** If you want to install the game in a special place, instead of 'scons', type:
*** If you want to install the game in a special place, instead of 'scons', type:
Line 13: Line 35:
** Install with a simple 'scons install' command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).
** Install with a simple 'scons install' command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).
** Run the game by typing 'glob2'. If it doesn't work, type '/path/to/install/bin/glob2' instead.
** Run the game by typing 'glob2'. If it doesn't work, type '/path/to/install/bin/glob2' instead.
** Note: in some Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.
** Note: in some GNU/+Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.


=== Sources from [[Mercurial]] ===
=== Sources from [[Mercurial]] ===
{{Warning|Warning|Mercurial is occasionally unstable and will break, it is meant for testing purposes.}}
{{Message|Warning|The source from Mercurial is occasionally unstable and will break. It is not meant for playing games but only for development and testing.}}
==== The quick way ====
* Download the source code from the Mercurial by typing
Use this if you want to get exactly one copy of glob2 repository to compile and run it. This is also the recommended way if you are sure you will not want to push only parts of your changes.
:hg clone http://hg.globulation2.org/glob2/
* Initial download
:hg clone -r default glob2 glob2-work
cd some_workspace_directory
:* You can update the source code you have any time with a simple
hg clone https://bitbucket.org/giszmo/glob2
* Subsequent updates
cd glob2
hg pull
hg update
: '''pull''' will get all changes from the original repository into your repository
: '''update''' will get your local files to the latest revision. Use '''-C''' to loose all local changes.
==== The more complicated way ====
Use this if you want to commit several changes that you are not sure of being finished some day while at the same time you want to have access to a clean checkout, too.
* Initial download
cd some_workspace_directory
hg clone https://bitbucket.org/giszmo/glob2
* clone to a working directory
cd some_workspace_directory
hg clone glob2 glob2-work
* Subsequent updates
cd glob2
cd glob2
hg pull
hg pull
cd ../glob2-work
cd ../glob2-work
hg pull -r default ../glob2
hg pull
hg update -C tip
hg update
: '''pull''' will get all changes from the original repository into your target repository
: '''update''' will get your files to the latest revision. Use '''-C''' to loose all local changes.

* Read the README.hg and README files.
* Read the README.hg and README files.
* Continue by following the [[#Source_Distribution|''source distribution'']] instructions from the 3rd step onwards.
* Continue by following the [[#Source_Distribution|''source distribution'']] instructions from the 3rd step onwards.

[[Category:en]]
[[Category:User Manual]]

Latest revision as of 16:48, 11 April 2016

Main User Resources: User Manual | Frequently Asked Questions | Map editor guide | YOG
Game specific arguments: Resources | Buildings | Units | Combat | Flags and special areas | Farming | Graphs | Statistics | Prestige | Fruit and conversion
Building from Sources: Git | Compiling
Compiling on Windows: The instructions below will not work for Windows. To compile on that OS, please see the Mingw compilation guide, which explains how to compile globulation2 on windows using mingw.

Compilation requirements

Compiling on Mac OSX: There is an easier way to get all the dependancies than to compile them all. See the MAC OS X Development page for more information.

For source tarbal, Mercurial source, and package installations, you'll also need to install these packages:

Debian/Ubuntu

The following terminal command will get you all the dependencies:

sudo apt-get install mercurial scons libsdl1.2-dev libsdl-net1.2-dev libsdl-image1.2-dev \
libsdl-ttf2.0-dev zlibc libspeex-dev libogg-dev libvorbis-dev libboost-dev libboost-thread-dev \
libboost-date-time-dev

Compile from Sources

Source Distribution

  • Get the source distribution archive from the download section.
  • Extract the archive using a compression/extraction utility such as tar.
  • Go in the extracted archive. If you have a Unix system (GNU/Linux, Solaris, Mac OS X):
    • Run the 'scons' script to compile the game (it will check dependencies, install any you have missing)
      • If you want to install the game in a special place, instead of 'scons', type:
scons BINDIR="/path/to/install/bin" INSTALLDIR="/path/to/install/share"
    • Install with a simple 'scons install' command (will install to the location you might have entered when compiling (BINDIR and INSTALLDIR)).
    • Run the game by typing 'glob2'. If it doesn't work, type '/path/to/install/bin/glob2' instead.
    • Note: in some GNU/+Linux distributions (eg: Archlinux), scons complains about not finding -lboost_thread (with boost already installed). A solution is to modify the SConstruct file to look for boost_thread-mt instead of boost_thread, and the modify the LIBS variable with boost_thread-mt, to link against this library. If you have root access you can create a symlink libboost_thread.so instead.

Sources from Mercurial

Warning: The source from Mercurial is occasionally unstable and will break. It is not meant for playing games but only for development and testing.

The quick way

Use this if you want to get exactly one copy of glob2 repository to compile and run it. This is also the recommended way if you are sure you will not want to push only parts of your changes.

  • Initial download
cd some_workspace_directory
hg clone https://bitbucket.org/giszmo/glob2
  • Subsequent updates
cd glob2
hg pull
hg update
pull will get all changes from the original repository into your repository
update will get your local files to the latest revision. Use -C to loose all local changes.

The more complicated way

Use this if you want to commit several changes that you are not sure of being finished some day while at the same time you want to have access to a clean checkout, too.

  • Initial download
cd some_workspace_directory
hg clone https://bitbucket.org/giszmo/glob2
  • clone to a working directory
cd some_workspace_directory
hg clone glob2 glob2-work
  • Subsequent updates
cd glob2
hg pull
cd ../glob2-work
hg pull
hg update
pull will get all changes from the original repository into your target repository
update will get your files to the latest revision. Use -C to loose all local changes.
  • Read the README.hg and README files.
  • Continue by following the source distribution instructions from the 3rd step onwards.
Misc