DarkRadiant - Compiling in Linux
Install Libraries and Tools
Ubuntu 7.04
You'll need a bunch of packages to get DarkRadiant to compile without glitches. I can't remember all from the top of my head, I will try to complete this list during my next Linux setup, but don't hold your breath. These are the names as found in Ubuntu 7.04 (Feisty Fawn):
- g++
- gcc-4.1
- libboost-dev
- libboost-serialization-dev
- libboost-filesystem-dev
- libboost-regex-dev
- libglew-dev
- libgtk2.0-dev
- libglib2.0-dev (maybe installed with libgtk2.0-dev)
- libgtkglext1-dev
- libxml2-dev
- libopenal-dev
- libalut-dev
- libvorbis-dev
- libboost-python-dev (for the optional scripting plugin)
- python-dev (for the optional scripting plugin)
Always download all the dependencies as well.
If you get an error about the G++ compiler not being found, make sure you also install the g++
package, and not just the g++-4.1
package.
Ubuntu 7.10
- g++
- libboost-dev
- libboost-regex-dev
- libgtk2.0-dev
- libglew1.4-dev
- libgtkglext1-dev
- libxml2-dev
- libboost-serialization-dev
- libboost-filesystem-dev
- libboost-date-time-dev
- libalut-dev
- libvorbis-dev
- libboost-python-dev (for the optional scripting plugin)
- python-dev (for the optional scripting plugin)
Always download all the dependencies as well.
For the D3Hook plugin, the boost/asio library is needed (version 0.3.7, newer versions don't work). This library is located in the plugins/dm.d3hook/boost/ folder and should be ready for compilation.
Ubuntu 8.04
Copy and paste the following into a terminal:
sudo apt-get install g++ libboost-dev libboost-regex-dev libgtk2.0-dev libglew1.5-dev libgtkglext1-dev libxml2-dev libboost-serialization-dev libboost-filesystem-dev libboost-date-time-dev libalut-dev libvorbis-dev libboost-python-dev python-dev
The python headers are needed for the optional scripting plugin.
In the terminal, Ctrl Shift V is used for pasting instead of Ctrl V.
Ubuntu 8.10
Copy and paste the following into a terminal:
sudo apt-get install g++ libboost-dev libboost-regex-dev libgtk2.0-dev libglew1.5-dev libgtkglext1-dev libxml2-dev libboost-filesystem-dev libboost-serialization-dev libboost-date-time-dev libjpeg62-dev libalut-dev libvorbis-dev libboost-python-dev python-dev
The python headers are needed for the optional scripting plugin.
In the terminal, Ctrl Shift V is used for pasting instead of Ctrl V.
Ubuntu 9.10
Copy and paste the following into a terminal:
sudo apt-get install g++ libboost1.38-dev libgtk2.0-dev libglew1.5-dev libgtkglext1-dev libxml2-dev libalut-dev libvorbis-dev libboost-python-dev python-dev libgtksourceview2.0-dev
The python headers are needed for the optional scripting plugin.
Adjust the configure.ac file, as Ubuntu 9.10 appends the postfix -mt for each boost library installed in /usr/lib:
boost_regex => boost_regex-mt boost_filesystem => boost_filesystem-mt boost_system => boost_system-mt boost_python => boost_python-mt
# Boost.Regex AC_CHECK_LIB([boost_regex-mt], [main], [REGEX_LIBS='-lboost_regex-mt'], [AC_MSG_ERROR([Boost.Regex not found])]) AC_SUBST([REGEX_LIBS]) # Boost.Filesystem AC_CHECK_LIB([boost_filesystem-mt], [main], [BOOST_FILESYSTEM_LIBS='-lboost_filesystem-mt'], [AC_MSG_ERROR([Boost.Filesystem not found])]) AC_SUBST([BOOST_FILESYSTEM_LIBS]) # Boost.System AC_CHECK_LIB([boost_system-mt], [main], [BOOST_SYSTEM_LIBS='-lboost_system-mt'], [AC_MSG_ERROR([Boost.System not found])]) AC_SUBST([BOOST_SYSTEM_LIBS])
Same for the Python check below in configure.ac:
AC_CHECK_LIB([boost_python-mt], [main], [BOOST_PYTHON_LIBS='-lboost_python-mt'], [script_module=])
Then re-run ./autogen.sh and ./configure
Fedora 10
The Duke has posted a how-to in his blog at http://realduke.wordpress.com/2008/07/28/darkradiant-under-fedora-10/. I might quote the relevant parts about the needed packages:
To compile DarkRadiant under Fedora 10, we’ll need the folowing tools and libraries installed:
“subversion”(svn), “gcc”, “gcc-c++” (g++) “boost-devel”, “gtk2-devel”, “glew-devel”, “gtkglext-devel”, “libxml2-devel”, “freealut-devel” and “libvorbis-devel”
For yum users, just copy and execute this:
“yum -y install subversion gcc gcc-c++ boost-devel gtk2-devel glew-devel gtkglext-devel libxml2-devel freealut-devel libvorbis-devel”
For the optional scripting plugin, you'll need the python and boost::python headers as well (note: I can't really check if these are correct, I don't have Fedora available --greebo):
libboost-python-devel python-devel
Obtain the source
Install the subversion client. On Ubuntu this can be done via the Synaptic Manager or the command line:
sudo apt-get install subversion
Change to the directory where you want the source code to be in and then check the current version out of SVN with:
svn checkout https://darkradiant.svn.sourceforge.net/svnroot/darkradiant/trunk/darkradiant/ darkradiant
Compile
Note: in the past, DarkRadiant was built using SCons. This build system has now been removed in favour of the standard Automake build.
First, make sure you have the automake toolchain downloaded:
sudo apt-get install libtool autoconf
Then run
./autogen.sh
in your darkradiant folder.
DarkRadiant employs an Autoconf/Automake build system under Linux as used in the majority of open-source projects. Compilation can be achieved using the standard
$ ./configure $ make $ make install
on most systems.
By default, a release build will be created; if a debug build is required pass the --enable-debug option to the configure script.
Other points to note about the configure process:
- The DarkMod-specific plugins are not built by default. To enable these, pass --enable-darkmod-plugins to ./configure.
- The configure script autodetects required dependencies, and will conditionally-enable optional components of DarkRadiant (such as the sound plugin) based on what it finds.
- For quick testing of a DarkRadiant build, it is desirable to install it into a temporary location rather than the default of /usr/local; for this, simply pass a prefix option such as --prefix=/tmp/dr to configure, after which DarkRadiant will be installed in /tmp/dr/bin/darkradiant.
If you want to update the source with the latest version from the SVN, just issue:
svn update
in the darkradiant source directory. svn info
shows you what version you currently have.
Multiprocessor Systems
You can pass the --jobs=N parameter to make:
make --jobs=2
to use more than one processor for the compilation.
Building a .deb package
To build a Debian/Ubuntu package, simply run
dpkg-buildpackage -rfakeroot
in the main darkradiant directory. The .deb will be created in the parent directory.