rnd-20030927-2-src
[rocksndiamonds.git] / Makefile
1 #=============================================================================#
2 # Makefile for Rocks'n'Diamonds                                               #
3 # (c) 1995-2002 Holger Schemel, info@artsoft.org                              #
4 #=============================================================================#
5
6 #-----------------------------------------------------------------------------#
7 # configuration section                                                       #
8 #-----------------------------------------------------------------------------#
9
10 # specify command name of your favorite ANSI C compiler
11 # (this must be set to "cc" for some systems)
12 CC = gcc
13
14 # specify command name of GNU make on your system
15 # (this must be set to "gmake" for some systems)
16 MAKE = make
17
18 # specify path to X11 on your system
19 X11_PATH = /usr/X11R6
20
21 # specify directory for read-only game data (like graphics, sounds, levels)
22 # default is '.', so you can play without installing game data somewhere
23 # RO_GAME_DIR = /usr/games
24
25 # specify directory for writable game data (like highscore files)
26 # default is '.', so you can play without installing game data somewhere
27 # RW_GAME_DIR = /var/games
28
29 # uncomment this if your system has no joystick include file
30 # JOYSTICK = -DNO_JOYSTICK
31
32 # choose if you want to allow many global score file entries for one player
33 # default is 'MANY_PER_NAME'
34 # when installing the game in a multi user environment, choose this
35 # SCORE_ENTRIES = ONE_PER_NAME
36 # when installing the game in a single user environment, choose this
37 # SCORE_ENTRIES = MANY_PER_NAME
38
39 # specify paths for cross-compiling (only needed for MS-DOS and Win32 build)
40 CROSS_PATH_MSDOS=/usr/local/cross-msdos/i386-msdosdjgpp
41 CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc
42
43 #-----------------------------------------------------------------------------#
44 # you should not need to change anything below                                #
45 #-----------------------------------------------------------------------------#
46
47 .EXPORT_ALL_VARIABLES:
48
49 SRC_DIR = src
50 MAKE_CMD = $(MAKE) -C $(SRC_DIR)
51
52 DEFAULT_TARGET = x11
53 # DEFAULT_TARGET = sdl
54
55 all:
56         @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
57
58 x11:
59         @$(MAKE_CMD) TARGET=x11
60
61 sdl:
62         @$(MAKE_CMD) TARGET=sdl
63
64 solaris:
65         @$(MAKE_CMD) PLATFORM=solaris TARGET=x11
66
67 solaris-sdl:
68         @$(MAKE_CMD) PLATFORM=solaris TARGET=sdl
69
70 mac:
71         @$(MAKE_CMD) PLATFORM=macosx
72
73 msdos:
74         @$(MAKE_CMD) PLATFORM=msdos
75
76 cross-msdos:
77         @PATH=$(CROSS_PATH_MSDOS)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-msdos
78
79 cross-win32:
80         @PATH=$(CROSS_PATH_WIN32)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-win32
81
82 clean:
83         @$(MAKE_CMD) clean
84
85
86 #-----------------------------------------------------------------------------#
87 # development only stuff                                                      #
88 #-----------------------------------------------------------------------------#
89
90 auto-conf:
91         @$(MAKE_CMD) auto-conf
92
93 run:
94         @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) && ./rocksndiamonds --verbose
95
96 gdb:
97         @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) && gdb ./rocksndiamonds
98
99 valgrind:
100         valgrind -v --leak-check=yes ./rocksndiamonds 2> valgrind.out
101
102 enginetest:
103         ./Scripts/make_enginetest.sh
104
105 enginetestfast:
106         ./Scripts/make_enginetest.sh fast
107
108 backup:
109         ./Scripts/make_backup.sh src
110
111 backup_lev:
112         ./Scripts/make_backup.sh lev
113
114 backup_gfx:
115         ./Scripts/make_backup.sh gfx
116
117 dist-unix:
118         ./Scripts/make_dist.sh unix .
119
120 dist-msdos:
121         ./Scripts/make_dist.sh dos .
122
123 dist-win32:
124         ./Scripts/make_dist.sh win .
125
126 dist-macosx:
127         ./Scripts/make_dist.sh mac . $(MAKE)
128
129 upload-unix:
130         ./Scripts/make_dist.sh unix . upload
131
132 upload-msdos:
133         ./Scripts/make_dist.sh dos . upload
134
135 upload-win32:
136         ./Scripts/make_dist.sh win . upload
137
138 upload-macosx:
139         ./Scripts/make_dist.sh mac . upload
140
141 dist-clean:
142         @$(MAKE_CMD) dist-clean
143
144 dist-build-unix:
145         @BUILD_DIST=TRUE $(MAKE) x11
146
147 dist-build-win32:
148         @BUILD_DIST=TRUE $(MAKE) cross-win32
149
150 dist-build-msdos:
151         @BUILD_DIST=TRUE $(MAKE) cross-msdos
152
153 dist-build-all:
154         $(MAKE) clean
155         $(MAKE) dist-build-unix         ; $(MAKE) dist-clean
156         $(MAKE) dist-build-win32        ; $(MAKE) dist-clean
157         $(MAKE) dist-build-msdos        ; $(MAKE) dist-clean
158
159 dist-all: dist-build-all dist-unix dist-msdos dist-win32 dist-macosx
160
161 upload-all: upload-unix upload-msdos upload-win32 upload-macosx
162
163 depend dep:
164         $(MAKE_CMD) depend