Difference between revisions of "Compile"

From FreeOrionWiki
Jump to: navigation, search
(Software requirements)
(38 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
Currently, [[FreeOrion]] will compile in most recent Windows, Linux, and MacOSX.  The *BSD genus of operating systems might also work; follow the Linux instructions in this case.
 
Currently, [[FreeOrion]] will compile in most recent Windows, Linux, and MacOSX.  The *BSD genus of operating systems might also work; follow the Linux instructions in this case.
  
==Overview==
+
For the most up-to-date instructions we recommend you begin by consulting [https://github.com/freeorion/freeorion/blob/master/BUILD.md the build instructions in our repository].  The information below may possibly add some helpful details, but is also at greater risk of being out of date.
First of all, you will need to obtain the [[source]]. This can be grabbed from our [[project page]] or from Subversion (SVN).  The versions available on the [[project page]] are official releases or point releases, and may be somewhat or very out of date.  To help with [[programming]] [[FreeOrion]], you will need to grab the SVN copy.  Then you need to set up the required software, compile the game, download the missing artwork, and run it.
+
  
 +
First of all, you will need to obtain the source code from [https://github.com/freeorion/freeorion GitHub repository]. To help with [[programming]] [[FreeOrion]], you will need to grab the Git master repository latest version. Then you need to set up the required software, compile the game.
  
 
==Hardware requirements==
 
==Hardware requirements==
 +
 
The FreeOrion code makes heavy use of templates, and requires much memory to compile; 4 GB or more RAM is recommended.
 
The FreeOrion code makes heavy use of templates, and requires much memory to compile; 4 GB or more RAM is recommended.
  
On Linux, shutting down your X server and compiling from console may help on systems with little RAM.  (If this doesn't mean anything to you, simply ignore this advice.)
+
To build FreeOrion, expect up to 45 minutes of a Core i5 system, or over an hour on a Core2 Duo system; on a Core i7 system it can be under 10 minutes.
  
You will also need a fast processor.  To build GG and FreeOrion, expect up to 45 minutes of a Core i5 system, or over an hour on a Core2 Duo system.
+
==Software requirements==
  
Note that, while not required to compile FreeOrion, running the FreeOrion client requires a graphics card and drivers that support OpenGL 2.0.
 
 
==Software requirements==
 
 
'''Note: On Windows and OSX, most dependencies are available pre-compiled in the [[Compile#FreeOrion SDK|FreeOrion SDK]].'''
 
'''Note: On Windows and OSX, most dependencies are available pre-compiled in the [[Compile#FreeOrion SDK|FreeOrion SDK]].'''
  
* [[GiGi]] - Including GiGiOgre and the GiGiOgre OIS plugin. The code for these is included in the FreeOrion SVN repository, but they must be built as separate libraries.
+
* [http://www.boost.org/ Boost] - '''version 1.58''' or later.
* [http://www.boost.org/ Boost] - '''version 1.47''' or later.
+
* [http://www.freetype.org FreeType2] -'''version 2.5.5 is known to work'''.
* [http://www.ogre3d.org/ Ogre 3D] - Various versions after 1.6.1 may work.  1.7.3 and 1.8 work.
+
* [http://code.google.com/p/bullet/downloads/list Bullet] - '''version 2.73 or later.''' 2.77 works.
+
* [http://www.freetype.org FreeType2] - a GiGi dependency.  version 2.4.3 is known to work.
+
 
* [http://www.python.org/download/ Python] - '''version 2.7 or later''' ('''version 2.x only; 3.x will not work''')
 
* [http://www.python.org/download/ Python] - '''version 2.7 or later''' ('''version 2.x only; 3.x will not work''')
* [http://www.openal.org/downloads.html OpenAL and ALUT] - freealut 1.1.0 is known to work.
+
* [https://www.openal.org/downloads/ OpenAL]
 
* [http://xiph.org/downloads/ libogg] - '''version 1.1.3 or later''' 1.2.1 is known to work.
 
* [http://xiph.org/downloads/ libogg] - '''version 1.1.3 or later''' 1.2.1 is known to work.
 
* [http://xiph.org/downloads/ libvorbis] - '''version 1.1.2 or later''' 1.3.2 is known to work.
 
* [http://xiph.org/downloads/ libvorbis] - '''version 1.1.2 or later''' 1.3.2 is known to work.
* [http://glew.sourceforge.net/ GLEW] - (Windows only) version 1.5.7 is known to work.
 
 
* [http://www.zlib.net/ zlib] - version 1.2.5 is known to work with libpng 1.4.4
 
* [http://www.zlib.net/ zlib] - version 1.2.5 is known to work with libpng 1.4.4
* [http://www.libpng.org/pub/png/libpng.html libpng] - ''' versions 1.2 and 1.4 work'''
+
* [http://www.libpng.org/pub/png/libpng.html libpng] - '''version 1.6''' works.
 +
* [http://www.libsdl.org/download-2.0.php SDL2] - '''version 2.0.3''' works.
 +
* [http://glew.sourceforge.net/ GLEW] - (Windows only) '''version 1.5.7''' is known to work.
  
 
==Getting the source==
 
==Getting the source==
  
===Subversion===
+
The source code can be obtained from the [https://github.com/freeorion/freeorion freeorion/freeorion] repository hosted on GitHub via any Git client.  Release versions are tagged in that repository.  To download a release source tarball without cloning the complete freeorion/freeorion repository the GitHub [https://github.com/freeorion/freeorion/releases Release] page can be used.
  
The source code can be obtained from the sourceforge Subversion server, using this command from the Linux command prompt:
 
 
svn co https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk freeorion
 
 
For Windows, a graphical shell-extension SVN client, such as [http://tortoisesvn.tigris.org/ TortoiseSVN] is recommended, with which the source can be obtained from ''https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk'' or by just updating the FreeOrion code directory present in the SDK.  If you have the SDK and TortoiseSVN installed, right click on the FreeOrion directory in the SDK directory, and pick "Update" in the submenu (at the top). If you don't have "Update" but just have "SVN Upgrade Working Copy", do that first, and then update.
 
  
 
===FreeOrion SDK===
 
===FreeOrion SDK===
Alternatively, you can download the [http://sourceforge.net/projects/freeorion/files/FreeOrion%20SDK/ FreeOrion SDK] (Windows and MacOSX) and update that directory tree with SVN.
 
  
===Tarballs===
+
There are Software Development Kits (SDKs) available for Windows and MacOSX which contain precompiled dependencies needed for building FreeOrion from source. The script to build and package the FreeOrion SDK can be obtained from [https://github.com/freeorion/freeorion-sdk freeorion/freeorion-sdk].  The FreeOrion SDK itself can be downloaded from [https://github.com/freeorion/freeorion-sdk/releases GitHub] (for FreeOrion later than v0.4.6) or [http://sourceforge.net/projects/freeorion/files/FreeOrion%20SDK SourceForge] (for FreeOrion v0.4.6 and earlier).
  
The SourceForge Subversion web-client allows one to download numbered versions of the source code as a tarball.
 
  
The latest version can be obtained from the '''Download GNU tarball''' link on the bottom of this page: ''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/FreeOrion/''
+
The SDKs do not contain the FreeOrion source code, which must be retrieved from GitHub.
  
You can also download source versions corresponding to previous releases:
 
  
==== FreeOrion v0.4.1 ====
+
==Compilation==
  
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.4.1/ FreeOrion v0.4.1] is FreeOrion SVN revision 5096: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=5096''' with GiGi SVN revision 1074: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=1074'''
+
Compilation instructions and troubleshooting tips are available for the following operating systems:
 +
* [[Compile_In_Linux|Linux]]
 +
* [[Compile_In_Windows|Windows]]
 +
* [[Compile_In_Mac_OS_X|Mac OS X]]
 +
* For BSD, consult the Linux instructions.
  
==== FreeOrion v0.4 ====
 
  
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.4/ FreeOrion v0.4] is FreeOrion SVN revision 4635: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=4635''' with GiGi SVN revision 1074: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=1074'''
+
==Development Environment==
  
==== FreeOrion v0.3.17 ====
+
Create a [[Config.xml#Persistent Config|persistent_config.xml]] with settings that you want to preserve between builds. Otherwise, the first time that you run the game after re-building it all options in config.xml will be reset.
 
+
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.3.17/ FreeOrion v0.3.17] is FreeOrion SVN revision 4282: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=4282''' with GiGi SVN revision 1044: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=1044'''
+
 
+
==== FreeOrion v0.3.16 ====
+
 
+
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.3.16/ FreeOrion v0.3.16] is FreeOrion SVN revision 4046: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=4046''' with GiGi SVN revision 1043: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=1043'''
+
 
+
==== FreeOrion v0.3.15 ====
+
 
+
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.3.15/ FreeOrion v0.3.15] is FreeOrion SVN revision 3727: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=3727''' with GiGi SVN revision 813: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=813'''
+
 
+
==== FreeOrion v0.3.14 ====
+
 
+
* [https://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.3.14/ FreeOrion v0.3.14] is FreeOrion SVN revision 3571: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=3571''' with GiGi SVN revision 812: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=812'''
+
 
+
==== FreeOrion v0.3.13 ====
+
 
+
* [https://sourceforge.net/project/showfiles.php?group_id=75752&package_id=111134&release_id=685272 FreeOrion v0.3.13]
+
** '''On Windows''' is FreeOrion SVN revision 3094: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=3094''' with GiGi SVN revision 756: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=756'''
+
** '''On Linux''' is FreeOrion SVN revision 3103: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=3103''' with GiGi SVN revision 757: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=757'''
+
** '''On Mac OSX''' is FreeOrion SVN revision 3094: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=3094''' with GiGi SVN revision 757: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/?pathrev=757'''
+
 
+
==== FreeOrion v0.3.12.1 '''for Linux''' ====
+
* [https://sourceforge.net/project/showfiles.php?group_id=75752&package_id=111134&release_id=660507 FreeOrion v0.3.12.1 '''for Linux'''] is SVN revision 2918: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=2918''' with GiGi revision 711: '''http://gigi.svn.sourceforge.net/viewvc/gigi/?pathrev=711'''
+
 
+
==== FreeOrion v0.3.12 '''for Windows''' ====
+
* [https://sourceforge.net/project/showfiles.php?group_id=75752&package_id=111134&release_id=660507 FreeOrion v0.3.12 '''for Windows'''] is SVN revision 2807: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/?pathrev=2807''' with GiGi revision 710: '''http://gigi.svn.sourceforge.net/viewvc/gigi/?pathrev=710'''
+
 
+
==== FreeOrion v0.3.11 ====
+
* [https://sourceforge.net/project/showfiles.php?group_id=75752&package_id=111134&release_id=652545 FreeOrion v0.3.11]
+
** '''On Windows''' is SVN revision 2729 '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/FreeOrion/?pathrev=2729''' with GiGi revision 695: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/GG/?pathrev=695'''
+
** '''On Linux''' is SVN revision 2732 '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/FreeOrion/?pathrev=2732''' with GiGi revision 695: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/GG/?pathrev=695'''
+
 
+
==== FreeOrion v0.3.10 ====
+
* [https://sourceforge.net/project/showfiles.php?group_id=75752&package_id=111134&release_id=609273 FreeOrion v0.3.10] is SVN revision 2607: '''http://freeorion.svn.sourceforge.net/viewvc/freeorion/trunk/FreeOrion/?pathrev=2607''' with GiGi revision 651: '''http://gigi.svn.sourceforge.net/viewvc/gigi/trunk/GG/?pathrev=651'''
+
 
+
==Compilation==
+
Compilation instructions and troubleshooting tips are available for the following operating systems:
+
* [[Compile_In_Linux|Linux]]
+
* [[Compile_In_Windows|Windows]]
+
* [[Compile_In_MacOsX|MacOS X]]
+
* For BSD, consult the Linux instructions, and possibly [http://www.freeorion.org/forum/viewtopic.php?p=36318#p36318 this forum thread].
+

Revision as of 02:43, 14 May 2018

Currently, FreeOrion will compile in most recent Windows, Linux, and MacOSX. The *BSD genus of operating systems might also work; follow the Linux instructions in this case.

For the most up-to-date instructions we recommend you begin by consulting the build instructions in our repository. The information below may possibly add some helpful details, but is also at greater risk of being out of date.

First of all, you will need to obtain the source code from GitHub repository. To help with programming FreeOrion, you will need to grab the Git master repository latest version. Then you need to set up the required software, compile the game.

Hardware requirements

The FreeOrion code makes heavy use of templates, and requires much memory to compile; 4 GB or more RAM is recommended.

To build FreeOrion, expect up to 45 minutes of a Core i5 system, or over an hour on a Core2 Duo system; on a Core i7 system it can be under 10 minutes.

Software requirements

Note: On Windows and OSX, most dependencies are available pre-compiled in the FreeOrion SDK.

  • Boost - version 1.58 or later.
  • FreeType2 -version 2.5.5 is known to work.
  • Python - version 2.7 or later (version 2.x only; 3.x will not work)
  • OpenAL
  • libogg - version 1.1.3 or later 1.2.1 is known to work.
  • libvorbis - version 1.1.2 or later 1.3.2 is known to work.
  • zlib - version 1.2.5 is known to work with libpng 1.4.4
  • libpng - version 1.6 works.
  • SDL2 - version 2.0.3 works.
  • GLEW - (Windows only) version 1.5.7 is known to work.

Getting the source

The source code can be obtained from the freeorion/freeorion repository hosted on GitHub via any Git client. Release versions are tagged in that repository. To download a release source tarball without cloning the complete freeorion/freeorion repository the GitHub Release page can be used.


FreeOrion SDK

There are Software Development Kits (SDKs) available for Windows and MacOSX which contain precompiled dependencies needed for building FreeOrion from source. The script to build and package the FreeOrion SDK can be obtained from freeorion/freeorion-sdk. The FreeOrion SDK itself can be downloaded from GitHub (for FreeOrion later than v0.4.6) or SourceForge (for FreeOrion v0.4.6 and earlier).


The SDKs do not contain the FreeOrion source code, which must be retrieved from GitHub.


Compilation

Compilation instructions and troubleshooting tips are available for the following operating systems:


Development Environment

Create a persistent_config.xml with settings that you want to preserve between builds. Otherwise, the first time that you run the game after re-building it all options in config.xml will be reset.