2.3 Installation
This section covers installation from source. Other ways of installing
the program are not described here.
2.3.1 Requirements
All these libraries are mandatory to compile the game.
Liquid War 6 won't compile, let alone run, without them.
Some of them could probably be replaced by equivalent tools,
but this would certainly require a programming effort and
some changes in Liquid War 6 source code.
- GNU Make.
Liquid War 6 might and certainly does use GNU Make extensions.
- GNU C library.
Sounds obvious, but you need a standard C library. It happens
that glibc has some rather usefull extensions (yes, as of 2006, some
vendors continue to offer C libraries without
snprintf
...)
and Liquid War 6 might use them. In a general manner, Liquid War 6
is part of and designed for GNU. You might however manage to compile
it with limited libc support, this is the case with mingw32 for instance
but, do it at your own risk.
- Perl.
Some Makefile commands require Perl. You don't need any Perl
devel packages, and you can probably use any Perl 5.x version,
since no fancy recent feature of Perl is used. Just plain Perl.
- Guile.
Possibly the most required library, since Liquid War 6
is a scheme program which uses a set of functions
coded in standard C. You need at least Guile 1.8.
- GNU MP.
GMP is a free library for arbitrary precision arithmetic,
required by Guile.
- ltdl.
This library, which comes with libtool, provides a portable
alternative to
dlopen
and dlclose
. Check
that you have a /usr/include/ltdl.h
file, or install
the corresponding package.
- zlib. Required by other
libraries, but can also be used directly by Liquid War 6 to
compress network messages for instance.
- expat.
Used to read and write XML files, which contain constants
and configuration data.
- libpng.
Liquid War 6 uses libpng to read levels (maps), not
to speak of other optional libraries (SDL and the rest)
who need it themselves.
- libjpeg.
Maps can also be provided as jpeg files, so libjpeg
is required as well.
- SQLite 3.
Used to handle the list of available servers.
2.3.2 Optional libraries
While all these libraries are theorically optional (the game will
successfully compile without them), you'll obviously need, for instance,
one graphics backend. Otherwise, you'll simply have no display. This is
not acceptable. As of today, one can reasonnably consider all SDL-related
libraries are required. The rest is truely optional.
- ncurses.
Required by readline, needs to be there otherwise readline
might not be detected properly on some systems.
- GNU readline.
Used to handle input on the console. Console is not absolutely
mandatory, but it's a must-have if you want to hack the game.
Console unavailable does not mean you won't get anything on stdout but,
the interactive script shell just won't work.
- Mesa. This library
provides an API similar to OpenGL and enables 2-D and 3-D
drawing.
- SDL.
SDL is used to set up a working OpenGL environnement,
and handle input (mouse and keyboard).
- SDL_image.
This SDL extension is used to read textures and
other graphics from disk.
- FreeType 2.
This library is required by SDL_ttf, to draw fonts.
- SDL_ttf.
This SDL extension is used to draw fonts. It is UTF-8
enabled.
- libcsound.
While this tool is not used yet, it is meant to be
the final sound backend, as CSounds offers great power to the composer,
enabling truely dynamically generated sound & music.
- SDL_mixer.
This SDL extension is used to allow dynamic mixing of
sounds, and it also provides a builtin
OGG/Vorbis
file renderer.
- libcURL.
Used to handle HTTP requests, the idea being not to re-invent the
wheel but use a robust standards-compliant generic library.
2.3.3 Compiling
Liquid War 6 uses GNU Automake,
Autoconf and
GNU Libtool.
Once the requirements and optional libraries are installed on your system, run:
./configure
make
make install
Liquid War 6 supports the standard ./configure --prefix=/my/path
option
(in fact, it supports much more than that) so you can install the game
in any directory. You do not need to be root
to install Liquid War 6.