summaryrefslogtreecommitdiffstats
path: root/crawl-ref/INSTALL
blob: bf0598d60e373261f876dadd0c8bdb3e938656f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
Install instructions for Dungeon Crawl Stone Soup (DCSS)
--------------------------------------------------------
(Last updated on 20060926 for Dungeon Crawl Stone Soup 0.1.1.)

Building Dungeon Crawl Stone Soup
---------------------------------
Crawl Stone Soup is known to compile successfully on the following platforms as
of version 0.1.1:

- Any Unix with a recent gcc (and g++), GNU make and libncurses, including
  Linux and Mac OS X.
- MS-DOS (with at least 32M RAM).
- Microsoft Windows NT/2000/XP. The game will also run on Windows 9X and ME.

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 and the curses 
library.


Optional libraries
------------------
Crawl can be built with some optional features:
* Sounds
* Regular expressions
* Lua support

Sounds must be enabled by editing AppHdr.h (uncomment SOUND_PLAY_COMMAND on
Unixes or WINMM_PLAY_SOUNDS on Windows).

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.


Makefile system
---------------
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.


Building on Linux (or other Unixes)
-----------------------------------
* Make sure you have gcc and GNU make. This is especially important on non-Linux
  Unixes such as Solaris (Solaris cc might work, but it's not been tested).

* Make sure you have libcurses or libncurses. If you're using libcurses, edit
  makefile.lnx to match.

* cd to the source directory (you can safely ignore the dolinks.sh and 
  domake.sh scripts).

* Edit makefile and make sure that MAKEFILE=makefile.lnx is uncommented and all
  other MAKEFILE= lines are commented out.

* Run make to build the normal (non-wizard) Crawl.

* If you have Lua, you can edit AppHdr.h and uncomment
        // #define CLUA_BINDINGS
  then add -llua to your LIB = line in makefile.lnx, and rebuild to compile with
  Lua support.


Building on Mac OS X
--------------------
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.

* 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.

* Make sure Xcode is installed. Xcode should be available on the OS X install
  DVD if you haven't already installed it.

* Open the Xcode project (Crawl.xcodeproj) under the "source" directory.

* Hit Build in Xcode.

* 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.

* You can also use makefile.osx, which will run xcodebuild from the command line.

* 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.


Building on Windows
-------------------

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.

We've also not tested or updated the makefile for Borland C++. We strongly
recommend using MinGW if possible.

* Install MinGW from 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).

* Make sure you have g++ and mingw32-make in your path.

* cd to the the Crawl source directory.

* Build Crawl by running
        mingw32-make MAKEFILE=makefile.mgw

* If you have Lua and/or libpcre, you can edit AppHdr.h and uncomment 
  these lines:
        // #define CLUA_BINDINGS
  and
        // #define REGEX_PCRE
  Note that there are multiple // #define REGEX_PCRE lines in AppHdr.h - find
  the one in the Windows-specific section.

* Add -llua and -lpcre to the LIB line in makefile.mgw as:
        LIB = -lwinmm -static -llua -lpcre
  and build Crawl to include Lua and regex support.

* When you're done, you should have crawl.exe under a "rel" subdirectory.


Building on DOS
---------------

* 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.

* Make sure gxx and make are in your PATH.

* cd to the Crawl source directory.

* Build Crawl by running
        make MAKEFILE=makefile.dos

* If you have Lua and/or PCRE, edit makefile.dos and change this line:
        CFLAGS = -D$(OS_TYPE) $(EXTRA_FLAGS)
  to
        CFLAGS = -D$(OS_TYPE) $(EXTRA_FLAGS) -DCLUA_BINDINGS -DREGEX_PCRE
  Add -llua and -lpcre to the LIB line in makefile.dos, like so:
        LIB = -llua -lpcre
  then build Crawl.

* When the build is done, crawl.exe should be in the source directory.

*****************************************************************************
Optional Libraries
------------------

Lua
---
NOTE: When linking in Lua, the makefile LIB line usually looks like this:

LIB = -llua

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

LIB = -llua -llualib


Getting Lua:

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 Windows, Lua binaries are available on luaforge.net. You should find links to
get binaries from www.lua.org.

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.


PCRE
----
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 Windows, PCRE binaries are available from 
http://gnuwin32.sourceforge.net/packages/pcre.htm

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.