« Previous - Version 82/84 (diff) - Next » - Current version
Hialmar, 02/18/2011 02:06 pm


Building Ryzom Core on GNU/Linux (deprecated)

This build process is deprecated. Please follow BuildForLinuxCmake and EverythingServerUbuntu.

Building the server with "make_all/build" system

  • Install the following packages:
sudo apt-get install libxml2-dev g++ build-essential libtool automake autoconf libpng12-dev \
libjpeg62-dev rrdtool libmysqlclient15-dev flex libxmu-dev libfreetype6-dev libgl1-mesa-dev \
bison libxxf86vm-dev libxrandr-dev libopenal-dev libogg-dev libvorbis-dev mercurial \
libcurl4-openssl-dev libluabind-dev
  • If you're using ubuntu 10.04 or 9.10 you may still need to install bison as nel has yacc references:
sudo apt-get install bison

Note: You will also need to install libwww-dev. In Ubuntu lucid this package doesn't seem to exist. You can however use the package from Karmic or download the source.

libwww-dev depends on:

libexpat1-dev (in repository use apt-get)
libwww-ssl0 (not in repository) package from Karmic or
libwww0 (not in repository) package from Karmic

Choose libwww-ssl0 if you want SSL support or libwww0 if you don't need SSL.

  • To install the above manually downloaded packages use dpkg
sudo dpkg -i libwww-ssl0_5.4.0_build2_i386.deb

Do the same for libwww-ssl0 or libwww0, libwww-dev replacing the file name with the correct one for each package. Then use your package manager to install libexpat1-dev

  • Tell where the Ryzom source code directory is:
    Note: Change the below path to the path where you cloned the source.
export RYZOM_PATH="/home/user/ryzom/code/ryzom" 
  • Run the following command:
$RYZOM_PATH/tools/scripts/linux/buildmode static

You will see the following. Be sure "Static linking" line is set "ON".
Compilation modes :

   Debug mode      : OFF

   Static linking  : ON
   Dynamic linking : OFF

   Silent compilation  : OFF
  • Run the following script that will compile NeL and Ryzom Core Services. It's a very slow process because it compiles lot of things. You can follow the process and see errors in $RYZOM_PATH/log/
$RYZOM_PATH/tools/scripts/linux/make_all

Note: If 'make_all' fails at the end, you may need to execute this as 'root'. In ubuntu 10.4 try entering the following, make sure your $RYZOM_PATH is still correct and try running make_all again.

sudo su -
cd $RYZOM_PATH

Note: For those who are failing at this stage in the process, and receiving Error Log messages as detailed in the Forums. cannot find -lnetnet or Error in compiling the following steps worked for me.

- Follow the steps outlined in [[BuildForLinuxCmake]] to build and install the NeL and NeLNS libraries.
- Create a copy of the $RYZOM_PATH/tools/scripts/linux/make_all script, and comment out the entries for BUILD NEL and BUILD NELNS
- Run this modified make_all script

Note2: another solution to this problem is to link $RYZOM_PATH/../install/debug to $RYZOM_PATH/../install/release

cd $RYZOM_PATH/../install/
ln -s debug release

A better solution might be to recursively copy everything in debug to release...
This is due to the fact that even if you choose to build in debug mode, the DBG variable in $RYZOM_PATH/Variables.mk is set to "off".

I have also had to correct the following problem:
- the Makefile found in $RYZOM_PATH/server/src/ryzom_welcome_service misses -lnelgeorges that you need to put between -lnelnet and -lnelmisc:

...
        -lnelnet \
        -lnelgeorges \
        -lnelmisc \
...

Building the client with "make_all/build" system — DEPRECATED

Note: This method might not work, please follow for steps of the CMake method to build the client

  • If you already compile the server with the method above, you just have to continue the process to compile the client
  • Install the following packages:
sudo apt-get install libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libopenal-dev libalut-dev libogg-dev libvorbis-dev 
cd $RYZOM_PATH/client

CFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" CXXFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" $RYZOM_PATH/tools/scripts/linux/build init nel --disable-samples --disable-tools --enable-sound
CFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" CXXFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" $RYZOM_PATH/tools/scripts/linux/build nel
CFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" CXXFLAGS="-DFINAL_VERSION=1 -DNL_STATIC=1" $RYZOM_PATH/tools/scripts/linux/build nel install

cd src/client_sheets/; make update; cd ../..
cd src/seven_zip/; make update; cd ../..
make update
cd src/client_sheets/; make; cd ../..
cd src/seven_zip/; make; cd ../..
make

I had to correct the following problems:
- the Makefile found in $RYZOM_PATH/../build/debug/nel/src/3d/driver/opengl erroneously references driver_opengl_mac.lo (on line 83) so you have to remove it or comment it out like this:

...
    driver_opengl_extension.lo driver_opengl_light.lo \
#    driver_opengl_mac.lo driver_opengl_material.lo \
    driver_opengl_material.lo \
    driver_opengl_matrix.lo driver_opengl_states.lo \
...

- the file dru.cpp found in $RYZOM_PATH/../nel/src/3d needs a config.h file that I couldn't find so I copied over the nelconfig.h to config.h in $RYZOM_PATH/../build/debug/nel/include