1# =============================================================================
2# Rocks'n'Diamonds Makefile
3# -----------------------------------------------------------------------------
4# (c) 1995-2007 Holger Schemel <info@artsoft.org>
5# =============================================================================
6
7# -----------------------------------------------------------------------------
8# configuration
9# -----------------------------------------------------------------------------
10
11# command name of your favorite ANSI C compiler
12# (this must be set to "cc" for some systems)
13CC = gcc
14
15# command name of GNU make on your system
16# (this must be set to "gmake" for some systems)
17MAKE = make
18
19# path to X11 on your system
20X11_PATH = /usr/X11R6
21
22# directory for read-only game data (like graphics, sounds, levels)
23# default is '.' to be able to run program without installation
24# RO_GAME_DIR = /usr/games
25# use the following setting for Debian / Ubuntu installations:
26# RO_GAME_DIR = /usr/share/games/rocksndiamonds
27
28# directory for writable game data (like highscore files)
29# default is '.' to be able to run program without installation
30# RW_GAME_DIR = /var/games
31# use the following setting for Debian / Ubuntu installations:
32# RW_GAME_DIR = /var/games/rocksndiamonds
33
34# uncomment if system has no joystick include file
35# JOYSTICK = -DNO_JOYSTICK
36
37# choose if more than one global score file entry for one player is allowed
38# (default: MANY_PER_NAME)
39# uncomment to install game in multi-user environment
40# SCORE_ENTRIES = ONE_PER_NAME
41# uncomment to install game in single-user environment (default)
42# SCORE_ENTRIES = MANY_PER_NAME
43
44# paths for cross-compiling (only needed for non-native MS-DOS and Win32 build)
45CROSS_PATH_MSDOS = /usr/local/cross-msdos/i386-msdosdjgpp
46CROSS_PATH_WIN32 = /usr/local/cross-tools/i386-mingw32msvc
47
48# compile special edition of R'n'D instead of the normal (classic) version
49SPECIAL_EDITION = rnd_jue
50
51
52# -----------------------------------------------------------------------------
53# there should be no need to change anything below
54# -----------------------------------------------------------------------------
55
56.EXPORT_ALL_VARIABLES:
57
58SRC_DIR = src
59MAKE_CMD = $(MAKE) -C $(SRC_DIR)
60
61# DEFAULT_TARGET = x11
62DEFAULT_TARGET = sdl
63
64
65# -----------------------------------------------------------------------------
66# build targets
67# -----------------------------------------------------------------------------
68
69all:
70	@$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
71
72x11:
73	@$(MAKE_CMD) TARGET=x11
74
75sdl:
76	@$(MAKE_CMD) TARGET=sdl
77
78solaris:
79	@$(MAKE_CMD) PLATFORM=solaris TARGET=x11
80
81solaris-sdl:
82	@$(MAKE_CMD) PLATFORM=solaris TARGET=sdl
83
84mac:
85	@$(MAKE_CMD) PLATFORM=macosx
86
87mac-static:
88	@$(MAKE_CMD) PLATFORM=macosx TARGET=sdl-static
89
90msdos:
91	@$(MAKE_CMD) PLATFORM=msdos
92
93os2:
94	@$(MAKE_CMD) PLATFORM=os2
95
96cross-msdos:
97	@PATH=$(CROSS_PATH_MSDOS)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-msdos
98
99cross-win32:
100	@PATH=$(CROSS_PATH_WIN32)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-win32
101
102clean:
103	@$(MAKE_CMD) clean
104
105
106# -----------------------------------------------------------------------------
107# development, test, distribution build and packaging targets
108# -----------------------------------------------------------------------------
109
110auto-conf:
111	@$(MAKE_CMD) auto-conf
112
113run: all
114	@$(MAKE_CMD) run
115
116gdb: all
117	@$(MAKE_CMD) gdb
118
119valgrind: all
120	@$(MAKE_CMD) valgrind
121
122enginetest: all
123	./Scripts/make_enginetest.sh
124
125enginetestcustom: all
126	./Scripts/make_enginetest.sh custom
127
128enginetestfast: all
129	./Scripts/make_enginetest.sh fast
130
131enginetestnew: all
132	./Scripts/make_enginetest.sh new
133
134leveltest: all
135	./Scripts/make_enginetest.sh leveltest
136
137levelsketch_images: all
138	./Scripts/make_levelsketch_images.sh
139
140backup:
141	./Scripts/make_backup.sh src tar
142
143backup-net-copy:
144	./Scripts/make_backup.sh src scp
145
146backup-net: backup backup-net-copy
147
148backup_lev:
149	./Scripts/make_backup.sh lev
150
151backup_gfx:
152	./Scripts/make_backup.sh gfx
153
154# prerelease:
155#	./Scripts/make_prerelease.sh
156
157jue:
158	@$(MAKE) SPECIAL_EDITION=rnd_jue all
159
160jue-win:
161	@$(MAKE) SPECIAL_EDITION=rnd_jue cross-win32
162
163dist-clean:
164	@$(MAKE_CMD) dist-clean
165
166dist-build-unix:
167	@BUILD_DIST=TRUE $(MAKE) x11
168
169dist-build-msdos:
170	@BUILD_DIST=TRUE $(MAKE) cross-msdos
171
172dist-build-win32:
173	@BUILD_DIST=TRUE $(MAKE) cross-win32
174
175dist-build-macosx:
176	# (this is done by "dist-package-macosx" target)
177
178dist-package-unix:
179	./Scripts/make_dist.sh unix .
180
181dist-package-msdos:
182	./Scripts/make_dist.sh dos .
183
184dist-package-win32:
185	./Scripts/make_dist.sh win .
186
187dist-package-macosx:
188	./Scripts/make_dist.sh mac . $(MAKE)
189
190dist-upload-unix:
191	./Scripts/make_dist.sh unix . upload
192
193dist-upload-msdos:
194	./Scripts/make_dist.sh dos . upload
195
196dist-upload-win32:
197	./Scripts/make_dist.sh win . upload
198
199dist-upload-macosx:
200	./Scripts/make_dist.sh mac . upload
201
202dist-build-all:
203	$(MAKE) clean
204	$(MAKE) dist-build-unix		; $(MAKE) dist-clean
205	$(MAKE) dist-build-win32	; $(MAKE) dist-clean
206#	$(MAKE) dist-build-msdos	; $(MAKE) dist-clean
207
208dist-package-all:
209	$(MAKE) dist-package-unix
210	$(MAKE) dist-package-win32
211	$(MAKE) dist-package-macosx
212#	$(MAKE) dist-package-msdos
213
214dist-upload-all:
215	$(MAKE) dist-upload-unix
216	$(MAKE) dist-upload-win32
217	$(MAKE) dist-upload-macosx
218#	$(MAKE) dist-upload-msdos
219
220dist-all: dist-build-all dist-package-all
221
222upload-all: dist-upload-all
223
224tags:
225	$(MAKE_CMD) tags
226
227depend dep:
228	$(MAKE_CMD) depend
229