Difference between revisions of "HowTo:Compile from SVN on Linux"
Iansterguy (talk | contribs) m (Labled windows compiling links) |
Iansterguy (talk | contribs) m (→Compiling: Added "With" to the front of compiling methods) |
||
Line 56: | Line 56: | ||
Compiling can be accomplished with two systems as of now. There's the classic autotools, and the newer (recommended) cmake. If you have cmake installed, you should try it. | Compiling can be accomplished with two systems as of now. There's the classic autotools, and the newer (recommended) cmake. If you have cmake installed, you should try it. | ||
− | ===CMake=== | + | ===With CMake=== |
Building with CMake is just building with Make, only the configure part can be done interactively, and all intermediate files are tidily put in their own folders: | Building with CMake is just building with Make, only the configure part can be done interactively, and all intermediate files are tidily put in their own folders: | ||
Line 65: | Line 65: | ||
cd build | cd build | ||
ccmake .. # this will pop up an interactive configuration screen, press "c" to autoconfigure, | ccmake .. # this will pop up an interactive configuration screen, press "c" to autoconfigure, | ||
− | # and once it's done "g" to generate everything and exit. | + | # and once it's done "g" to generate everything and exit. classic autotools, and the newer (recommended) cmake. I |
# Or edit stuff and follow on-screen instructions if you know what you're doing. | # Or edit stuff and follow on-screen instructions if you know what you're doing. | ||
make | make | ||
Line 80: | Line 80: | ||
</pre> | </pre> | ||
− | ===Autotools=== | + | ===With Autotools=== |
The compile procedure should look like the following listing. Remember the configure part depends on above requirements. Though autoconf may not work, if so just skip it. | The compile procedure should look like the following listing. Remember the configure part depends on above requirements. Though autoconf may not work, if so just skip it. | ||
<pre> | <pre> |
Revision as of 02:05, 22 December 2012
Compiling with Cygwin | HowTos | Compiling from SVN on Mac OSX |
How to compile from SVN under Linux.
For specific instructions for Ubuntu see: HowTo:Checkout SVN (Ubuntu Linux)
For windows compiling see: HowTo:Cygwin Compiling, HowTo:VCPP Compiling
Contents
Getting the SVN-files
- Checkout the following modules ...
- data package: data (repository link: https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/data)
- code package: vegastrike (repository link: https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/vegastrike)
- Visit HowTo:Checkout SVN to see how you check these modules out.
Requirements
In order to compile Vegastrike there are a few things to check:
- Make sure you have these packages installed ...
- make
- gcc
- automake at least version 1.6
- autoconf at least version 2.53
- X11...
- libpng + libpng-devel <-- libpng 3 is recommended.
- python and python-dev <-- 2.2.1 or above
- expat + expat-devel
- (lib)jpeg + libjpeg-devel
- opengl (see below) (you probably already have it)
- glut + glut-devel
- openal + openal-devel
- libgtk2.0 + libgtk2.0-devel
- libfreeimage3 (vegastrike itself can compile without it, but mesher can't)
This probably should do the trick in debian/ubuntu (copy and paste the entire code into terminal):
sudo apt-get install libpng12-0 libpng12-dev python-dev libexpat1-dev \ libjpeg62-dev freeglut3-dev libopenal-dev libgtk2.0-dev libogg-dev libvorbis-dev \ build-essential libgl1-mesa-dev automake autoconf libsdl1.2-dev
In fedora 17, this should do the trick (copy and paste into terminal):
sudo yum install \ automake cmake gcc gcc-c++ glibc-devel kernel-devel make \ {python,expat,freealut,freeglut,gtk2,libjpeg-turbo,libpng,libvorbis,openal-soft,SDL}-devel \ lib{X11,Xdmcp,xkbfile,Xmu,Xpm,Xres,XScrnSaver,Xtst,Xv,Xxf86misc}-devel
Compiling
Compiling can be accomplished with two systems as of now. There's the classic autotools, and the newer (recommended) cmake. If you have cmake installed, you should try it.
With CMake
Building with CMake is just building with Make, only the configure part can be done interactively, and all intermediate files are tidily put in their own folders:
cd ./vegastrike mkdir build cd build ccmake .. # this will pop up an interactive configuration screen, press "c" to autoconfigure, # and once it's done "g" to generate everything and exit. classic autotools, and the newer (recommended) cmake. I # Or edit stuff and follow on-screen instructions if you know what you're doing. make
Now you can run from the build folder:
cd ./vegastrike ./build/vegastrike # to play the game ./build/vegastrike --debug=3 # to generate detailled logs for bug reporting ./build/setup/vssetup # to edit game settings ./build/mesh_tool/mesh_tool # mesh converter, for modding
With Autotools
The compile procedure should look like the following listing. Remember the configure part depends on above requirements. Though autoconf may not work, if so just skip it.
cd ./vegastrike ./bootstrap-sh ./configure --enable-flags='-O3 -g' # or --enable-debug to disable optimization. -ffast-math will cause problems in code that checks for infinities. Note that in the first flag there's a capital 'o', not a zero. make
Now you can run from the build folder:
cd ./vegastrike ./vegastrike # to play the game ./vegastrike --debug=3 # to generate detailled logs for bug reporting ./vssetup # to edit game settings ./mesher # mesh converter, for modding
Installing
Installing is not really necessary to play, but you can do it if you wish to have the game accessible to all users. Otherwise, you can play by executing the built binary from the data folder.
If you do want to install, you'll need root access:
sudo make install
If you plan to install, when you're configuring:
- To be sure set the data dir to your vs-data dir:
./configure --with-data-dir=<DIR> ........
- When using libpng 1.2,
--with-png-inc=<DIR>
is needed. An example is
--with-png-inc=/usr/include/libpng12/
- If you don't want to compile with GTK just turn it off, however you will not get a setup program if you do this:
./configure --disable-gtk ...........
- If you only want the server, and want to disable all GUI components--This removes the dependency on X11, OpenGL, SDL, GLUT, OpenAL.
./configure --disable-client ...........
- See this thread about boost versions. Set this option to 1.28, 1.29, 1.33, or "system" if the default does not compile.
./configure --with-boost=<VER> ...........
You will likely receive some error messages during any of these stages, especially during the configure part. If they tell you that your system is missing some development libraries, install them. How this is done depends on your Linux distribution, but we will assist you in the Compiling Problems forums. You will be left with a file called "config.log" please attach that instead of copy-and-pasting thousands of lines of error messages. It's all in this file.
After you installed the missing libraries repeat the last (failed) step and continue.
Note: The configure script currently has a bug that can cause it to incorrectly report on the absence of GLUT. If you are sure you have installed glut-devel and are still seeing this error, check near the end of config.log to see if another library (such as libxmu or libxi) is the true culprit. [1]
Make
The final step for compiling is the make command. The Makefile should be able to compile most of the included utilities.
To compile mesher, for example, type:
make mesher
- Running
make all-am
reduces memory usage while compiling because there's only one instance of make instead of two. From this forum thread.
- The step
make install
is optional as the program is quite happy running in userland.
If you receive error without any mention of missing library (or something like) after very long line about running g++, try to set proper permissions or simply force your way through it and see whether it's your problem (if you're superuser). It looks like that:
collect2: ld returned 1 exit status make[1]: *** [vegastrike] Error 1 make[1]: Leaving directory `/home/username/Games/VegaStrike/vegastrike' make: *** [all] Error 2 ~/Games/VegaStrike/vegastrike$ sudo make
See also
FIXME These links are broken and they are very old from 2003 and most likely becoming irrelevant if someone knows for sure please update the links and put them in the right location, or delete FIXME
- "make clean/distclean" thread in the forum - A quite helpful thread about the make process.
- "Ubuntu problems" thread in the forum - more about little troubles linuxoids can encounter.
Compiling with Cygwin | HowTos | Compiling from SVN on Mac OSX |