git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1218 c06c8d41-db1a-0410-9941-cceddc491573
HXOYKQF6JLOELDE27O66U3Q7J6CP2YPRF42VSJD4LPTV7PZNT6PQC
- Any Unix with a recent gcc (and g++), GNU make and libncurses, including
Linux and Mac OS X.
- Microsoft Windows NT/2000/XP. The game will also run on Windows 9X and ME.
DOS binaries can also be compiled on Windows NT+.
Crawl Stone Soup is known to compile successfully on the following
platforms as of version 0.2:
The only supported compiler is gcc (available on almost all Unixes, and as djgpp
for DOS, and MinGW for Windows).
- Any Unix with a recent gcc (and g++), GNU make and libncurses,
including Linux and Mac OS X. "Recent" is defined as gcc 3.3 or
newer.
- Microsoft Windows NT/2000/XP. The game will also run on Windows 9X
and ME. DOS binaries can also be compiled on Windows NT+.
The only supported compiler is gcc (available on almost all Unixes,
and as djgpp for DOS, and MinGW for Windows).
Other platforms are unsupported, but you should be able to build Crawl on
pretty much any operating system with a modern C++ compiler (full support for
the standard C++ library, in particular <string>, the collection classes and
<algorithm> is necessary) and the curses library.
Other platforms are unsupported, but you should be able to build Crawl
on pretty much any operating system with a modern C++ compiler (full
support for the standard C++ library, in particular <string>, the
collection classes and <algorithm> is necessary) and the curses
library.
definitions; to make changes to the level compiler, you'll need the flex and
bison/byacc tools (Other lex/yaccs may also work). More details are available
below.
definitions; to make changes to the level compiler, you'll need the
flex and bison/byacc tools (Other lex/yaccs may also work). More
details are available below.
Regular expressions require libpcre on non-Unix operating systems. On Unixes,
the standard POSIX regular expression support is adequate for Crawl's needs.
Regular expressions require libpcre on non-Unix operating systems. On
Unixes, the standard POSIX regular expression support is adequate for
Crawl's needs.
Lua support requires liblua, which you can build by downloading the sources from
www.lua.org. On most Unixes, you can also use the native package management
system to easily install lua.
Lua support requires liblua, which you can build by downloading the
sources from www.lua.org. On most Unixes, you can also use the native
package management system to easily install lua.
Crawl uses a selector makefile (under source/makefile) to control what platform
it's building for. Your first step in building Crawl should be to edit
source/makefile and point it at the correct platform makefile. For instance, if
you're building for Windows, you'd use MAKEFILE=makefile.mgw to build with MinGW
for Windows (# is used for comments in makefiles).
Consult the operating-system specific sections for detailed information on
building Crawl.
Crawl uses a selector makefile (under source/makefile) to control what
platform it's building for. Your first step in building Crawl should
be to edit source/makefile and point it at the correct platform
makefile. For instance, if you're building for Windows, you'd use
MAKEFILE=makefile.mgw to build with MinGW for Windows (# is used for
comments in makefiles).
Consult the operating-system specific sections for detailed
information on building Crawl.
* Edit AppHdr.h and check that SAVE_DIR_PATH, SAVE_PACKAGE_CMD and
LOAD_UNPACKAGE_CMD are set correctly for your system. If you do not want your
saves packaged in a zip archive, it's safe to comment out SAVE_PACKAGE_CMD and
LOAD_UNPACKAGE_CMD.
* If you want to install Crawl for multiple users, edit makefile.unix
and set SAVEDIR and DATADIR to appropriate directories. This is not
necessary if only one user is going to play Crawl. Also check
INSTALLDIR and change it if necessary.
* Edit AppHdr.h and check that SAVE_PACKAGE_CMD and LOAD_UNPACKAGE_CMD
are set correctly for your system. If you do not want your saves
packaged in a zip archive, it's safe to comment out SAVE_PACKAGE_CMD
and LOAD_UNPACKAGE_CMD.
* If you don't have flex or bison, edit makefile.unix and set DOYACC
:= n. If you want to use byacc instead of bison, edit makefile.unix
and set YACC := byacc. On some Linuxes you may not have lex
symlinked to flex, in which case you'll have to set LEX := flex in
makefile.unix.
* If you don't have flex or bison, edit makefile.unix and set DOYACC := n. If
you want to use byacc instead of bison, edit makefile.unix and set YACC :=
byacc. On some Linuxes you may not have lex symlinked to flex, in which case
you'll have to set LEX := flex in makefile.unix.
* Run make to build the normal (non-wizard) Crawl. On systems such as
Solaris, you may have to use gmake for GNU make. Make sure your make
identifies itself as GNU make when you do make --version.
* Run make to build the normal (non-wizard) Crawl. On systems such as Solaris,
you may have to use gmake for GNU make. Make sure your make identifies itself
as GNU make when you do make --version.
* If you're installing Crawl for multiple users, run make install.
Crawl will be copied into the directory specified by INSTALLDIR. The
save and data directories will be created if necessary, and the
level layout (.des) and help files will be copied to the data
directory.
You can follow the Linux instructions to build Crawl (but note you still need to
install Xcode to get gcc and make), or alternatively you can use Xcode.
You can follow the Unix instructions to build Crawl (but note you
still need to install Xcode to get gcc and make), or alternatively you
can use Xcode.
Note that the Unix instructions will build Crawl assuming that your
terminal can display 16 colours. If you're planning to use
Terminal.app (which supports only 8 colours), you should follow the
Mac build instructions below.
* Crawl has been tested with Xcode 2.4 under OS X 10.4.7 on both PPC and Intel
machines, but is likely to be buildable with earlier versions.
* Crawl has been tested with Xcode 2.4 under OS X 10.4.7 on both PPC
and Intel machines, but is likely to be buildable with earlier
versions.
* The default build configuration, Release, will build a ppc/i386 Universal
binary suitable for play on all OS X 10.3.9 or newer systems. The other build
configurations are intended for development and may not result in a binary
that can be distributed to others.
* The default build configuration, Release, will build a ppc/i386
Universal binary suitable for play on all OS X 10.3.9 or newer
systems. The other build configurations are intended for development
and may not result in a binary that can be distributed to others.
* If you have Lua installed, you can add your lua headers and liblua library to
the 'Crawl' target in the Xcode project, uncomment the '#define CLUA_BINDINGS'
line in AppHdr.h, and rebuild to compile with Lua support.
* If you have Lua installed, you can add your lua headers and liblua
library to the 'Crawl' target in the Xcode project, uncomment the
'#define CLUA_BINDINGS' line in AppHdr.h, and rebuild to compile
with Lua support.
NOTE: Building for Windows+MinGW on Windows 9x/ME may work, but we've not tested
it. You may be better off using the DOS build instructions if you're on 9x/ME.
NOTE: Building for Windows+MinGW on Windows 9x/ME may work, but we've
not tested it. You may be better off using the DOS build instructions
if you're on 9x/ME.
* Install MinGW from http://www.mingw.org. The MinGW 5.0.2 installer is best so
you don't have to fiddle with individual packages (you can mess with the
individual packages if you like to, of course). If you want to edit the level
compiler, also get the flex and bison packages (available from the GnuWin32
project on Sourceforge: http://gnuwin32.sourceforge.net/).
* Install MinGW from http://www.mingw.org. The MinGW 5.0.2 installer
is best so you don't have to fiddle with individual packages (you
can mess with the individual packages if you like to, of course). If
you want to edit the level compiler, also get the flex and bison
packages (available from the GnuWin32 project on Sourceforge:
http://gnuwin32.sourceforge.net/).
* Install djgpp from http://www.delorie.com/djgpp/. Don't forget to include C++
support when the Zip picker asks for what you want. You may also have to
download GNU make as a separate package. It's important to follow the install
instructions carefully, because bad installs can produce rather confusing
error messages.
* Install djgpp from http://www.delorie.com/djgpp/. Don't forget to
include C++ support when the Zip picker asks for what you want. You
may also have to download GNU make as a separate package. It's
important to follow the install instructions carefully, because bad
installs can produce rather confusing error messages.
* If you want to modify the level compiler, install the djgpp flex, bison and m4
packages and set DOYACC := y in makefile.dos.
* If you want to modify the level compiler, install the djgpp flex,
bison and m4 packages and set DOYACC := y in makefile.dos.
The level compiler source is in the source/util directory (levcomp.lpp and
levcomp.ypp). The steps involved in building the level compiler are:
The level compiler source is in the source/util directory (levcomp.lpp
and levcomp.ypp). The steps involved in building the level compiler
are:
If you're using Lua older than 5.1, though, the Lua library comprises of *two*
libraries: liblua and liblualib (yes, confusing), so you need
If you're using Lua older than 5.1, though, the Lua library comprises
of *two* libraries: liblua and liblualib (yes, confusing), so you need
On Unixes your package management system is the best way to get Lua. Make
sure to install the development headers and not just the naked library.
On Unixes your package management system is the best way to get Lua.
Make sure to install the development headers and not just the naked
library.
On DOS, you get the joy of compiling Lua yourself. It's not hard, and you can
use the existing Windows support in the Lua makefiles with some minor
modifications, but you may be better served using the official Crawl Stone Soup
binaries if you want Lua with your Crawl and don't want to compile Lua.
On DOS, you get the joy of compiling Lua yourself. It's not hard, and
you can use the existing Windows support in the Lua makefiles with
some minor modifications, but you may be better served using the
official Crawl Stone Soup binaries if you want Lua with your Crawl and
don't want to compile Lua.
On Unixes, you're better served by the existing POSIX regular expression
support. If you want PCRE, your package management system is again your best
bet. Remember to install development headers, not just the plain library.
On Unixes, you're better served by the existing POSIX regular
expression support. If you want PCRE, your package management system
is again your best bet. Remember to install development headers, not
just the plain library.
On DOS you get the joy of building PCRE yourself. It's a little more annoying
than building Lua (you have to roll your own makefile), but not by much.
On DOS you get the joy of building PCRE yourself. It's a little more
annoying than building Lua (you have to roll your own makefile), but
not by much.