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
- Install luabind.
- Get the source code
- 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 \
...
- Check Configuring and running Ryzom Core on GNU/Linux to see what you can do next.
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 know this method is deprecated but I couldn't manage to build a static client using the CMake building way... therefore I used this.
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
- there are no longer vcproj files in the $RYZOM_PATH/client/src directory and it's subdirectories. Which means the last part of the building fails. Maybe we should generate the vcproj files using CMake on windows and copy them over...

