Topics covered: - Prerequisites: what do you need to compile and run LDMud-3.5.x - Unix or Unix-like systems (like Linux, FreeBSD, MacOS X, ...). - 64 bit systems (LP64 model) - Compiling for 32-bit environments on 64-bit systems - Compiling sources directly from our git repository - IPv6 - mySQL - Windows 95/98/NT/XP Prerequisites ------------- - a POSIX.1-2001 conformant platform - a C99 compatible build environment - bison (yacc won't work! bison 2.7.x is known to work) - supported architectures: i386, x86_64 (work in progress, see section about 64 bit systems). Other platforms are not actively supported and tested by us, but many will most likely work as well. Please try and tell us about your experiences. - autoconf and automake for compiling sources directly from our git repository. Optional libraries: - libpcre for the support of PCRE compatible regular expressions - mysql for the mysql package - postgresql for the postgresql package - libsqlite3 for the sqlite package - libgcrypt for various optional algorithms for hashing and crypting - OpenSSL or GnuTLS for TLS support - libxml2 or libiksemel for XML support - json-c (libjson0) for JSON support Unix or Unix-like system ------------------------ The driver uses a standard autoconfiguration system which on most systems does all the work for you (for exceptions see below). To prepare the compilation, execute the 'configure' script from within the src/ directory. [Note: If you got LDMud from our git repository please execute the autogen.sh script in src/ to generate the configure script and other auto-generated files.] If you have git or compile for other people (e.g. to distribute a binary), it is seriously recommended to compile from a cloned git repository. Otherwise the version information of the binary will not be precise. configure checks for a number of site specific settings and uses this information to create the files machine.h (from machine.h.in), Makefile (from Makefile.in) and config.h (from config.h.in). We'll come back to config.h below. configure takes a lot of arguments (--help will tell you everything), but the most important are these: --prefix=PREFIX: the base directory for the mud installation, defaults to /usr/local/mud . --bindir=DIR: the directory to install the executables in, defaults to ${PREFIX}/bin . --libdir=DIR: the directory where the mudlib is found, defaults to ${PREFIX}/lib . --includedir=DIR: the directory where driver's LPC include files are supposed to live. defaults to ${PREFIX}/include (which is usually wrong). --libexecdir=DIR: the directory where the programs for the ERQ are found, defaults to ${PREFIX}/libexec . These settings are written into the Makefile and compiled into the driver, just the mudlib directory setting can be changed with a commandline argument. A lot of the drivers parameters can be tweaked for better performance; these parameters are defined in config.h . This file too is created by configure, which provides sensible defaults for all parameters for which no explicite setting is provided. To tweak a setting yourself, pass the argument '--enable-