User:Cazfi/SeparateTree
Contents
Building FreeOrion to separate directory tree
I wanted to check out FreeOrion, but not to pollute my system with scattered, hard to uninstall, files. Such files are easily left behind not only when trying to completely uninstall software, but also when software is upgraded and some file from older version is no longer needed and should be removed. Installing uninstallable debian packets is ok, any other method of installing files to system directories I don't like. So I decided to build FreeOrion and those dependencies that cannot be installed as debian packets to separate directory tree. This means 1) I don't need root permissions in any part of installation process, 2) I can completely remove freeorion by a simple "rm -Rf freeorion".
Tested systems
So far I have built FreeOrion in this manner in Debian Lenny (64bit), Ubuntu Jaunty (64bit) and Debian Sid/Unstable (32bit). I documented this thing only when building for Jaunty, so below instructions apply to that case. Lenny differed at least in that I had to compile also libboost.
Build
Create freeorion directory. I'm doing this under my home directory (/home/cazfi)
mkdir freeorion cd freeorion
Download and build ogre
wget http://downloads.sourceforge.net/ogre/ogre-v1-6-2.tar.bz2 tar xjf ogre-v1-6-2.tar.bz2 cd ogre ./configure --prefix=$HOME/freeorion/sys make install cd ..
Download and build bullet. For some reason bullet tarball contains install-sh but no other build system files. We have to create other files by ./autogen.sh but then we may have inconsistent system; install-sh might be incompatible from other files. ./autogen.sh does not overwrite install-sh, but it creates new one if it's missing. So I simply remove tarball provided install-sh before running ./autogen.sh.
wget http://bullet.googlecode.com/files/bullet-2.74.tgz tar xzf bullet-2.74.tgz cd bullet-2.74 rm install-sh ./autogen.sh ./configure --prefix=$HOME/freeorion/sys make install cd ..
FreeOrion checkout
svn co https://freeorion.svn.sourceforge.net/svnroot/freeorion/trunk TRUNK
Build GG
cd TRUNK/FreeOrion/GG PKG_CONFIG_PATH=$HOME/freeorion/sys/lib/pkgconfig scons configure prefix=$HOME/freeorion/sys pkgconfigdir=$HOME/freeorion/sys/lib/pkgconfig scons install cd ..
Build FreeOrion. FreeOrion does not install ogre_plugins.cfg, nor does it generate it correctly. So we do that with sed.
PKG_CONFIG_PATH=$HOME/freeorion/sys/lib/pkgconfig scons configure prefix=$HOME/freeorion/install scons install sed "s,PluginFolder=.,PluginFolder=$HOME/freeorion/sys/lib/OGRE," ogre_plugins.cfg > $HOME/freeorion/install/share/freeorion/ogre_plugins.cfg
Running FreeOrion
FreeOrion binary is in /home/cazfi/freeorion/install/bin. Since we have installed self built dependency libraries to non-standard location, we have to set LD_LIBRARY_PATH before running freeorion.
cd ../.. LD_LIBRARY_PATH=$HOME/freeorion/sys/lib install/bin/freeorion