Summary ======= This file contains instructions on how to buid Eliot on various platforms. In case of compilation problem, you can send a mail to the eliot-dev@nongnu.org mailing-list. 1) General information: useful information for any platform 2) Linux/Unix build 3) Windows build 4) Mac OS X build 1) General information ====================== If you build Eliot from a CVS snapshot, you need to run ./bootstrap to generate the configure script. This is not needed when building from a release tarball. In the following, do not forget that the ./configure command can take options. Run ./configure --help to have the list of available options. Here are the external dependencies of Eliot, with a link to the relevant website. You need to install them (at least the mandatory ones) before building Eliot. Note that the OS-specific instructions may contain hints on how to install them easily. - libboost (mandatory): http://www.boost.org/ --> Used for many things - libarabica (mandatory): http://www.jezuk.co.uk/cgi-bin/view/arabica --> Used for saving/loading games You can use any XML back-end supported by Arabica (like expat, or libxml2) - libconfig (optional): http://www.hyperrealm.com/libconfig/ --> Used for saving/loading preferences - Qt (optional, but recommended): http://qt.nokia.com/ --> Used for the graphical interface (see below) - libncursesw (optional): http://www.gnu.org/software/ncurses/ --> Used for the ncurses interface (see below) There are in fact several interfaces to Eliot: - one in text mode: mostly useful to debug Eliot - one using the ncursesw library: nice and almost complete, but not really graphical - a Qt interface: the best interface to use, it supports all the features. This one is enabled by default if Qt development files are detected, but you can force it with --enable-qt These interfaces can be enabled or disabled at configuration time. Example: ./configure --disable-text --enable-ncurses --enable-qt 2) Linux/Unix build =================== On Debian-based systems (like Ubuntu), the following command should install the needed dependencies (you may need to adjust the version numbers): sudo apt-get install libboost-dev libqt4-core libqt4-gui libconfig++8-dev libncursesw5-dev In addition, you need to download and build libarabica (this is straight-forward). To build Eliot, you only have to run the following command: ./configure && make Then, as root: make install 3) Windows build ================ There are 2 ways to proceed: * cross-compilation from a Linux host, using the mingw32 cross-compiler * directly on Windows, using Cygwin (http://www.cygwin.com/) Only the cross-compilation is officially supported (but adapting these instructions for Cygwin shouldn't be too hard; patches welcome!). Here are the steps for the cross-compilation: * install the build environment (this step is not documented here, as it is out of the scope of this document) * build and install dependencies: The Makefile in the 'extras/contrib' directory should be able to do it for you: cd extras/contrib && make all Eliot dependencies will be downloaded and cross-compiled. The dependencies are installed in 'extras/contrib/inst' * build Eliot: - if you don't have the 'configure' script, generate it: ./bootstrap - configure with the following command: export INST=`pwd`/extras/contrib/inst && \ PKG_CONFIG_PATH="${INST}/lib/pkgconfig:${PKG_CONFIG_PATH}" \ CPPFLAGS=-I${INST}/include LDFLAGS=-L${INST}/lib \ CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ \ ./configure --host=i586-mingw32msvc --build=i386-linux \ --with-boost=${INST} --with-expat=${INST} - to compile, run 'make', possibly followed with 'make install' - run 'make package-win32-zip' to get everything packed up in a nice .zip 4) Mac OS X build ================= * Installing dependencies can be done easily using MacPorts (http://www.macports.org/): sudo port install libconfig-hr sudo port install boost sudo port install arabica sudo port install qt4-mac * Configure: you can use the following command (assuming the dependencies are installed in /opt/local): CPPFLAGS="-I/opt/local/include/libxml2 -I/opt/local/include" \ LDFLAGS="-L/opt/local/lib" \ LIBS="-lxml2" \ ./configure --enable-qt --disable-text * You may need to remove the moc files manually: rm qt/*.moc.cpp * To compile, run 'make' * Then, to get a ready to use .dmg file, run 'make package-macosx-dmg'