====== Dependency list ======
==== Mana Client ====
Here is the list of libraries currently used by the Mana client:
* **SDL** - [[http://www.libsdl.org/]]
* **SDL_mixer** - [[http://www.libsdl.org/projects/SDL_mixer]]
* **SDL_image** - [[http://www.libsdl.org/projects/SDL_image]]
* **SDL_net** - [[http://www.libsdl.org/projects/SDL_net]]
* **SDL_ttf** - [[http://www.libsdl.org/projects/SDL_ttf]]
* **SDL_gfx** - [[http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx]]
* **Guichan 0.8.x** - [[http://code.google.com/p/guichan/]]
* **libxml2** - [[http://www.xmlsoft.org/]]
* **physfs** - [[http://icculus.org/physfs]] (both 1.0.x or 2.x should work)
* **zlib 1.2.x** - [[http://www.gzip.org/zlib/]]
* **libcurl** - [[http://curl.haxx.se/libcurl/]]
* **enet 1.3** - [[http://enet.bespin.org/]]
==== Mana Server ====
These are the libraries that are needed for compiling ManaServ:
* **libxml2** - [[http://www.xmlsoft.org]]
* **physfs 1.0.x** - [[http://icculus.org/physfs]] (not the unstable 1.1.0 release!)
* **zlib 1.2.x** - [[http://www.gzip.org/zlib/]]
* **enet 1.3** - [[http://enet.bespin.org/]]
* **pThread** - Usually included in POSIX compatible operating systems. Windows users need to download it from [[http://sourceware.org/pthreads-win32/]]
* **SQLite** - [[http://www.sqlite.org/]]
* **LUA** - [[http://www.lua.org]]
You'll need to install these dependencies when you want to compile Mana yourself. The most convenient way to install them varies per operating system, below you'll find instructions for a few popular choices.
====== Installation instructions ======
===== Installing the dependencies on Ubuntu =====
To install all or most of the packages needed for compiling Mana on Ubuntu, just paste the code given below into a terminal, type your root password and wait for it to finish!
==== The current client on Intrepid (8.10) ====
sudo apt-get install build-essential libcurl4-openssl-dev libguichan-dev libphysfs-dev libpng12-dev libpthread-stubs0-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev libxml2-dev zlib1g-dev libsdl-gfx1.2-dev
==== The current client on Hardy (8.04) ====
sudo apt-get install build-essential libcurl4-openssl-dev libphysfs-dev libpng12-dev libpthread-stubs0-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev libxml2-dev zlib1g-dev libsdl-gfx1.2-dev
You will also have to install the Guichan development library on your own. Get the latest 0.8.x version from [http://guichan.sourceforge.net/wiki/index.php/Downloads their downloads page] and install it on your own. You will now be ready to compile the source (instruction for installing the latest code: [[compile mana from source#linux|Linux compilation]], including Guichan).
==== Getting the client source directly from Git ====
If you checked out the source from the [[Git repository]], you will need to install some additional packages to those mentioned above (CMake is also supported as an alternative for automake):
* Current client: ''sudo apt-get install automake gettext git-core''
* New client: ''sudo apt-get install automake cvs gettext git-core libtool''
* You will have to compile ''enet'' yourself, as the package ''libenet1-dev'' contains an older version
===== Installing the dependencies on Windows =====
When you just want to play the game you should just download the installer that includes all the dependencies as DLL files. But when you want to check out the latest developer version from the [[Git repository]] or when you want to tinker with the source code you will need some libraries to compile it from source.
When you are using an IDE that uses MinGW as a compiler (like Code::Blocks, Dev-Cpp or Eclipse with CDT) you can find a zip file with all needed libraries on:
* [[http://forums.themanaworld.org/viewtopic.php?f=6&t=5356]]
* Or current direct link: [[http://www.crushnet.org/tmw/tmw_libs.zip]]
Extract the individual files to a location where your IDE finds them.
When you want to use a different compiler (like Microsoft Visual Studio or Borland C++ Builder) you have to get the libraries from the home pages listed above in the library format for your compiler. When they aren't offered for download in binary form you have to compile the libraries yourself from the source code.
Then you should be able to [[compile mana from source|compile the Mana client.]]