1#
2# Quake2 Makefile for Linux 2.0
3#
4# Nov '97 by Zoid <zoid@idsoftware.com>
5#
6# ELF only
7#
8
9# start of configurable options
10
11# Here are your build options:
12# (Note: not all options are available for all platforms).
13# quake2 (uses OSS for sound, cdrom ioctls for cd audio) is automatically built.
14# game$(ARCH).so is automatically built.
15#BUILD_SDLQUAKE2=YES	# sdlquake2 executable (uses SDL for cdrom and sound)
16#BUILD_SVGA=NO		# SVGAlib driver. Seems to work fine.
17#BUILD_X11=YES		# X11 software driver. Works somewhat ok.
18#BUILD_GLX=YES		# X11 GLX driver. Works somewhat ok.
19#BUILD_FXGL=NO		# FXMesa driver. Not tested. (used only for V1 and V2).
20#BUILD_SDL=YES		# SDL software driver. Works fine for some people.
21#BUILD_SDLGL=YES		# SDL OpenGL driver. Works fine for some people.
22#BUILD_CTFDLL=YES	# game$(ARCH).so for ctf
23#BUILD_XATRIX=NO		# game$(ARCH).so for xatrix (see README.r for details)
24#BUILD_ROGUE=NO		# game$(ARCH).so for rogue (see README.r for details)
25#BUILD_JOYSTICK=YES	# build in joystick support
26#BUILD_ARTS=NO		# build in support for libaRts sound.
27#BUILD_ALSA=NO		# build in support for ALSA (default sound on 2.6)
28#BUILD_DEDICATED=NO	# build a dedicated quake2 server
29#BUILD_AA=NO		# build the ascii soft renderer.
30#BUILD_QMAX=NO		# build the fancier GL graphics
31#BUILD_RETEXTURE=NO	# build a version supporting retextured graphics
32#BUILD_REDBLUE=NO	# build a red-blue 3d glasses renderer...
33STATICSDL=NO
34SDLDIR=${PREFIX}/lib
35
36# Other compile-time options:
37# Compile with IPv6 (protocol independent API). Tested on DragonFly
38#HAVE_IPV6=NO
39
40# (hopefully) end of configurable options
41
42# Check OS type.
43OSTYPE := $(shell uname -s)
44
45ifneq ($(OSTYPE),Linux)
46ifneq ($(OSTYPE),DragonFly)
47ifeq ($(OSTYPE),SunOS)
48$(error OS $(OSTYPE) detected, use "Makefile.Solaris" instead.)
49else
50$(error OS $(OSTYPE) is currently not supported)
51endif
52endif
53endif
54
55CC?=gcc
56
57RELEASE_CFLAGS=$(BASE_CFLAGS) $(OPTIMIZED_CFLAGS)
58
59VERSION=3.21+r0.16.2
60
61MOUNT_DIR=src
62
63BUILD_DEBUG_DIR=debug
64BUILD_RELEASE_DIR=release
65CLIENT_DIR=$(MOUNT_DIR)/client
66SERVER_DIR=$(MOUNT_DIR)/server
67REF_SOFT_DIR=$(MOUNT_DIR)/ref_soft
68REF_GL_DIR=$(MOUNT_DIR)/ref_gl
69COMMON_DIR=$(MOUNT_DIR)/qcommon
70LINUX_DIR=$(MOUNT_DIR)/linux
71GAME_DIR=$(MOUNT_DIR)/game
72CTF_DIR=$(MOUNT_DIR)/ctf
73XATRIX_DIR=$(MOUNT_DIR)/xatrix
74ROGUE_DIR=$(MOUNT_DIR)/rogue
75NULL_DIR=$(MOUNT_DIR)/null
76
77BASE_CFLAGS=-Wall $(CFLAGS) -Dstricmp=strcasecmp
78ifeq ($(HAVE_IPV6),YES)
79BASE_CFLAGS+= -DHAVE_IPV6
80ifeq ($(OSTYPE),DragonFly)
81BASE_CFLAGS+= -DHAVE_SIN6_LEN
82endif
83NET_UDP=net_udp6
84else
85NET_UDP=net_udp
86endif
87
88ifeq ($(strip $(BUILD_QMAX)),YES)
89	BASE_CFLAGS+=-DQMAX
90endif
91
92ifeq ($(strip $(BUILD_RETEXTURE)),YES)
93	BASE_CFLAGS+=-DRETEX
94endif
95
96ifeq ($(strip $(BUILD_JOYSTICK)),YES)
97BASE_CFLAGS+=-DJoystick
98endif
99ifeq ($(strip $(BUILD_ARTS)),YES)
100BASE_CFLAGS+=$(shell artsc-config --cflags)
101endif
102
103ifeq ($(ARCH),i386)
104ifneq ($(strip $(NO_X86_ASM)),YES)
105 BASE_CFLAGS+=-Did386
106else
107 BASE_CFLAGS+=-DC_ONLY
108endif
109else
110 BASE_CFLAGS+=-DC_ONLY
111endif
112
113DEBUG_CFLAGS=$(BASE_CFLAGS) -g
114
115ifeq ($(OSTYPE),DragonFly)
116LDFLAGS=-lm
117endif
118ifeq ($(OSTYPE),Linux)
119LDFLAGS=-lm -ldl
120endif
121
122ifeq ($(strip $(BUILD_ARTS)),YES)
123LDFLAGS+=$(shell artsc-config --libs)
124endif
125
126ifeq ($(strip $(BUILD_ALSA)),YES)
127LDFLAGS+=-lasound
128endif
129
130
131SVGALDFLAGS=-L${PREFIX}/lib -lvga
132SVGACFLAGS=-I${PREFIX}/include
133
134XCFLAGS=-I${LOCALBASE}/include
135XLDFLAGS=-L${LOCALBASE}/lib -lX11 -lXext -lXxf86dga -lXxf86vm
136AACFLAGS=-I${PREFIX}/include
137AALDFLAGS=-L${PREFIX}/lib -laa
138
139SDLCFLAGS=$(shell ${SDL_CONFIG} --cflags)
140ifeq ($(strip $(STATICSDL)),YES)
141	SDLLDFLAGS += -L${LOCALBASE}/lib$(_LIB) -Wl,-Bstatic $(SDLDIR)/libSDL.a
142	SDLLDFLAGS += $(SDLDIR)/libesd.a $(SDLDIR)/libartsc.a -Wl,-Bdynamic
143	SDLLDFLAGS += -lpthread -lX11 -lXext -lXxf86dga -lXxf86vm -lXv \
144		-lXinerama
145else
146	SDLLDFLAGS=$(shell ${SDL_CONFIG} --libs)
147endif
148
149ifeq ($(strip $(BUILD_JOYSTICK)),YES)
150SDLCFLAGS+=-DJoystick
151endif
152
153FXGLCFLAGS=-I/usr/X11R6/include
154FXGLLDFLAGS=-L/usr/local/glide/lib -L/usr/X11/lib -L/usr/local/lib \
155	-L/usr/X11R6/lib -lX11 -lXext -lGL -lvga
156
157GLXCFLAGS=-I${LOCALBASE}/include -DOPENGL
158GLXLDFLAGS=-L${LOCALBASE}/lib$(_LIB) -lX11 -lXext -lXxf86dga -lXxf86vm
159
160SDLGLCFLAGS=$(SDLCFLAGS) -DOPENGL
161SDLGLLDFLAGS=$(SDLLDFLAGS)
162
163ifeq ($(strip $(BUILD_QMAX)),YES)
164GLXCFLAGS+=-I${PREFIX}/include
165GLXLDFLAGS+=-L${PREFIX}/lib -ljpeg
166SDLGLLDFLAGS+=-L${PREFIX}/lib -ljpeg
167REF_GL_DIR = $(MOUNT_DIR)/ref_candygl
168CL_FX = cl_fxmax.c
169else
170CL_FX = cl_fx.c
171endif
172
173SHLIBEXT=so
174
175SHLIBCFLAGS=-fPIC
176SHLIBLDFLAGS=-shared
177
178DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
179DO_DED_CC=$(CC) $(CFLAGS) -DDEDICATED_ONLY -o $@ -c $<
180DO_DED_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -DDEDICATED_ONLY -o $@ -c $<
181DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
182DO_GL_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) $(GLCFLAGS) $(GLXCFLAGS) -o $@ -c $<
183DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
184DO_SHLIB_AS=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
185
186#############################################################################
187# SETUP AND BUILD
188#############################################################################
189
190.PHONY : targets build_debug build_release clean clean-debug clean-release clean2
191
192ifeq ($(strip $(BUILD_CLIENT)),YES)
193 TARGETS += $(BUILDDIR)/quake2
194endif
195
196ifeq ($(strip $(BUILD_SDLQUAKE2)),YES)
197 TARGETS += $(BUILDDIR)/quake2-sdl
198endif
199
200ifeq ($(strip $(BUILD_SVGA)),YES)
201 TARGETS += $(BUILDDIR)/ref_soft.$(SHLIBEXT)
202endif
203
204ifeq ($(strip $(BUILD_X11)),YES)
205 TARGETS += $(BUILDDIR)/ref_softx.$(SHLIBEXT)
206endif
207
208ifeq ($(strip $(BUILD_GLX)),YES)
209 TARGETS += $(BUILDDIR)/ref_glx.$(SHLIBEXT)
210endif
211
212ifeq ($(strip $(BUILD_SDL)),YES)
213 TARGETS += $(BUILDDIR)/ref_softsdl.$(SHLIBEXT)
214endif
215
216ifeq ($(strip $(BUILD_SDLGL)),YES)
217 TARGETS += $(BUILDDIR)/ref_sdlgl.$(SHLIBEXT)
218endif
219
220ifeq ($(strip $(BUILD_DEDICATED)),YES)
221 TARGETS += $(BUILDDIR)/q2ded
222endif
223
224ifeq ($(strip $(BUILD_GAME)),YES)
225 TARGETS += $(BUILDDIR)/game.$(SHLIBEXT)
226endif
227
228ifeq ($(strip $(BUILD_CTFDLL)),YES)
229 TARGETS += $(BUILDDIR)/ctf/game.$(SHLIBEXT)
230endif
231
232ifeq ($(strip $(BUILD_XATRIX)),YES)
233 TARGETS += $(BUILDDIR)/xatrix/game.$(SHLIBEXT)
234endif
235
236ifeq ($(strip $(BUILD_ROGUE)),YES)
237 TARGETS += $(BUILDDIR)/rogue/game.$(SHLIBEXT)
238endif
239
240ifeq ($(strip $(BUILD_AA)),YES)
241	TARGETS += $(BUILDDIR)/ref_softaa.$(SHLIBEXT)
242endif
243
244ifeq ($(strip $(BUILD_REDBLUE)),YES)
245	BASE_CFLAGS += -DREDBLUE
246endif
247
248all: build_debug build_release
249
250build_debug:
251	@-mkdir -p $(BUILD_DEBUG_DIR) \
252		$(BUILD_DEBUG_DIR)/client \
253		$(BUILD_DEBUG_DIR)/ded \
254		$(BUILD_DEBUG_DIR)/ref_soft \
255		$(BUILD_DEBUG_DIR)/ref_gl \
256		$(BUILD_DEBUG_DIR)/game \
257		$(BUILD_DEBUG_DIR)/ctf \
258		$(BUILD_DEBUG_DIR)/xatrix \
259		$(BUILD_DEBUG_DIR)/rogue
260	$(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS) -DLINUX_VERSION='\"$(VERSION) Debug\"'"
261
262build_release:
263	@-mkdir -p $(BUILD_RELEASE_DIR) \
264		$(BUILD_RELEASE_DIR)/client \
265		$(BUILD_RELEASE_DIR)/ded \
266		$(BUILD_RELEASE_DIR)/ref_soft \
267		$(BUILD_RELEASE_DIR)/ref_gl \
268		$(BUILD_RELEASE_DIR)/game \
269		$(BUILD_RELEASE_DIR)/ctf \
270		$(BUILD_RELEASE_DIR)/xatrix \
271		$(BUILD_RELEASE_DIR)/rogue
272	$(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS) -DLINUX_VERSION='\"$(VERSION)\"'"
273
274targets: $(TARGETS)
275
276#############################################################################
277# CLIENT/SERVER
278#############################################################################
279
280QUAKE2_OBJS = \
281	$(BUILDDIR)/client/cl_cin.o \
282	$(BUILDDIR)/client/cl_ents.o \
283	$(BUILDDIR)/client/cl_fx.o \
284	$(BUILDDIR)/client/cl_input.o \
285	$(BUILDDIR)/client/cl_inv.o \
286	$(BUILDDIR)/client/cl_main.o \
287	$(BUILDDIR)/client/cl_parse.o \
288	$(BUILDDIR)/client/cl_pred.o \
289	$(BUILDDIR)/client/cl_tent.o \
290	$(BUILDDIR)/client/cl_scrn.o \
291	$(BUILDDIR)/client/cl_view.o \
292	$(BUILDDIR)/client/cl_newfx.o \
293	$(BUILDDIR)/client/console.o \
294	$(BUILDDIR)/client/keys.o \
295	$(BUILDDIR)/client/menu.o \
296	$(BUILDDIR)/client/snd_dma.o \
297	$(BUILDDIR)/client/snd_mem.o \
298	$(BUILDDIR)/client/snd_mix.o \
299	$(BUILDDIR)/client/qmenu.o \
300	$(BUILDDIR)/client/m_flash.o \
301	\
302	$(BUILDDIR)/client/cmd.o \
303	$(BUILDDIR)/client/cmodel.o \
304	$(BUILDDIR)/client/common.o \
305	$(BUILDDIR)/client/crc.o \
306	$(BUILDDIR)/client/cvar.o \
307	$(BUILDDIR)/client/files.o \
308	$(BUILDDIR)/client/md4.o \
309	$(BUILDDIR)/client/net_chan.o \
310	\
311	$(BUILDDIR)/client/sv_ccmds.o \
312	$(BUILDDIR)/client/sv_ents.o \
313	$(BUILDDIR)/client/sv_game.o \
314	$(BUILDDIR)/client/sv_init.o \
315	$(BUILDDIR)/client/sv_main.o \
316	$(BUILDDIR)/client/sv_send.o \
317	$(BUILDDIR)/client/sv_user.o \
318	$(BUILDDIR)/client/sv_world.o \
319	\
320	$(BUILDDIR)/client/q_shlinux.o \
321	$(BUILDDIR)/client/vid_menu.o \
322	$(BUILDDIR)/client/vid_so.o \
323	$(BUILDDIR)/client/sys_linux.o \
324	$(BUILDDIR)/client/glob.o \
325	$(BUILDDIR)/client/$(NET_UDP).o \
326	\
327	$(BUILDDIR)/client/q_shared.o \
328	$(BUILDDIR)/client/pmove.o
329
330QUAKE2_LNX_OBJS = \
331	$(BUILDDIR)/client/cd_linux.o
332ifeq ($(BUILD_ARTS),YES)
333QUAKE2_LNX_OBJS += $(BUILDDIR)/client/snd_arts.o
334else
335ifeq ($(strip $(BUILD_ALSA)),YES)
336QUAKE2_LNX_OBJS += $(BUILDDIR)/client/snd_alsa.o
337else
338QUAKE2_LNX_OBJS += $(BUILDDIR)/client/snd_linux.o
339endif
340endif
341
342QUAKE2_SDL_OBJS = \
343	$(BUILDDIR)/client/cd_sdl.o \
344	$(BUILDDIR)/client/snd_sdl.o
345
346ifeq ($(ARCH),i386)
347ifneq ($(strip $(NO_X86_ASM)),YES)
348QUAKE2_AS_OBJS = \
349	$(BUILDDIR)/client/snd_mixa.o
350else
351endif
352endif
353
354$(BUILDDIR)/quake2 : $(QUAKE2_OBJS) $(QUAKE2_LNX_OBJS) $(QUAKE2_AS_OBJS)
355	$(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(QUAKE2_LNX_OBJS) $(QUAKE2_AS_OBJS) $(LDFLAGS)
356
357$(BUILDDIR)/quake2-sdl : $(QUAKE2_OBJS) $(QUAKE2_SDL_OBJS) $(QUAKE2_AS_OBJS)
358	$(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(QUAKE2_SDL_OBJS) $(QUAKE2_AS_OBJS) $(LDFLAGS) $(SDLLDFLAGS)
359
360$(BUILDDIR)/client/cl_cin.o :     $(CLIENT_DIR)/cl_cin.c
361	$(DO_CC)
362
363$(BUILDDIR)/client/cl_ents.o :    $(CLIENT_DIR)/cl_ents.c
364	$(DO_CC)
365
366$(BUILDDIR)/client/cl_fx.o :      $(CLIENT_DIR)/$(CL_FX)
367	$(DO_CC)
368
369$(BUILDDIR)/client/cl_input.o :   $(CLIENT_DIR)/cl_input.c
370	$(DO_CC)
371
372$(BUILDDIR)/client/cl_inv.o :     $(CLIENT_DIR)/cl_inv.c
373	$(DO_CC)
374
375$(BUILDDIR)/client/cl_main.o :    $(CLIENT_DIR)/cl_main.c
376	$(DO_CC)
377
378$(BUILDDIR)/client/cl_parse.o :   $(CLIENT_DIR)/cl_parse.c
379	$(DO_CC)
380
381$(BUILDDIR)/client/cl_pred.o :    $(CLIENT_DIR)/cl_pred.c
382	$(DO_CC)
383
384$(BUILDDIR)/client/cl_tent.o :    $(CLIENT_DIR)/cl_tent.c
385	$(DO_CC)
386
387$(BUILDDIR)/client/cl_scrn.o :    $(CLIENT_DIR)/cl_scrn.c
388	$(DO_CC)
389
390$(BUILDDIR)/client/cl_view.o :    $(CLIENT_DIR)/cl_view.c
391	$(DO_CC)
392
393$(BUILDDIR)/client/cl_newfx.o :	  $(CLIENT_DIR)/cl_newfx.c
394	$(DO_CC)
395
396$(BUILDDIR)/client/console.o :    $(CLIENT_DIR)/console.c
397	$(DO_CC)
398
399$(BUILDDIR)/client/keys.o :       $(CLIENT_DIR)/keys.c
400	$(DO_CC)
401
402$(BUILDDIR)/client/menu.o :       $(CLIENT_DIR)/menu.c
403	$(DO_CC)
404
405$(BUILDDIR)/client/snd_dma.o :    $(CLIENT_DIR)/snd_dma.c
406	$(DO_CC)
407
408$(BUILDDIR)/client/snd_mem.o :    $(CLIENT_DIR)/snd_mem.c
409	$(DO_CC)
410
411$(BUILDDIR)/client/snd_mix.o :    $(CLIENT_DIR)/snd_mix.c
412	$(DO_CC)
413
414$(BUILDDIR)/client/qmenu.o :      $(CLIENT_DIR)/qmenu.c
415	$(DO_CC)
416
417$(BUILDDIR)/client/m_flash.o :    $(GAME_DIR)/m_flash.c
418	$(DO_CC)
419
420$(BUILDDIR)/client/cmd.o :        $(COMMON_DIR)/cmd.c
421	$(DO_CC)
422
423$(BUILDDIR)/client/cmodel.o :     $(COMMON_DIR)/cmodel.c
424	$(DO_CC)
425
426$(BUILDDIR)/client/common.o :     $(COMMON_DIR)/common.c
427	$(DO_CC)
428
429$(BUILDDIR)/client/crc.o :        $(COMMON_DIR)/crc.c
430	$(DO_CC)
431
432$(BUILDDIR)/client/cvar.o :       $(COMMON_DIR)/cvar.c
433	$(DO_CC)
434
435$(BUILDDIR)/client/files.o :      $(COMMON_DIR)/files.c
436	$(DO_CC)
437
438$(BUILDDIR)/client/md4.o :        $(COMMON_DIR)/md4.c
439	$(DO_CC)
440
441$(BUILDDIR)/client/net_chan.o :   $(COMMON_DIR)/net_chan.c
442	$(DO_CC)
443
444$(BUILDDIR)/client/q_shared.o :   $(GAME_DIR)/q_shared.c
445	$(DO_CC)
446
447$(BUILDDIR)/client/pmove.o :      $(COMMON_DIR)/pmove.c
448	$(DO_CC)
449
450$(BUILDDIR)/client/sv_ccmds.o :   $(SERVER_DIR)/sv_ccmds.c
451	$(DO_CC)
452
453$(BUILDDIR)/client/sv_ents.o :    $(SERVER_DIR)/sv_ents.c
454	$(DO_CC)
455
456$(BUILDDIR)/client/sv_game.o :    $(SERVER_DIR)/sv_game.c
457	$(DO_CC)
458
459$(BUILDDIR)/client/sv_init.o :    $(SERVER_DIR)/sv_init.c
460	$(DO_CC)
461
462$(BUILDDIR)/client/sv_main.o :    $(SERVER_DIR)/sv_main.c
463	$(DO_CC)
464
465$(BUILDDIR)/client/sv_send.o :    $(SERVER_DIR)/sv_send.c
466	$(DO_CC)
467
468$(BUILDDIR)/client/sv_user.o :    $(SERVER_DIR)/sv_user.c
469	$(DO_CC)
470
471$(BUILDDIR)/client/sv_world.o :   $(SERVER_DIR)/sv_world.c
472	$(DO_CC)
473
474$(BUILDDIR)/client/q_shlinux.o :  $(LINUX_DIR)/q_shlinux.c
475	$(DO_CC)
476
477$(BUILDDIR)/client/vid_menu.o :   $(LINUX_DIR)/vid_menu.c
478	$(DO_CC)
479
480$(BUILDDIR)/client/vid_so.o :     $(LINUX_DIR)/vid_so.c
481	$(DO_CC)
482
483$(BUILDDIR)/client/snd_mixa.o :   $(LINUX_DIR)/snd_mixa.s
484	$(DO_AS)
485
486$(BUILDDIR)/client/sys_linux.o :  $(LINUX_DIR)/sys_linux.c
487	$(DO_CC)
488
489$(BUILDDIR)/client/glob.o :       $(LINUX_DIR)/glob.c
490	$(DO_CC)
491
492$(BUILDDIR)/client/net_udp.o :    $(LINUX_DIR)/net_udp.c
493	$(DO_CC)
494
495$(BUILDDIR)/client/net_udp6.o :    $(LINUX_DIR)/net_udp6.c
496	$(DO_CC)
497
498$(BUILDDIR)/client/cd_linux.o :   $(LINUX_DIR)/cd_linux.c
499	$(DO_CC)
500
501$(BUILDDIR)/client/snd_arts.o :  $(LINUX_DIR)/snd_arts.c
502	$(DO_CC)
503
504$(BUILDDIR)/client/snd_alsa.o :  $(LINUX_DIR)/snd_alsa.c
505	$(DO_CC)
506
507$(BUILDDIR)/client/snd_linux.o :  $(LINUX_DIR)/snd_linux.c
508	$(DO_CC)
509
510$(BUILDDIR)/client/cd_sdl.o :     $(LINUX_DIR)/cd_sdl.c
511	$(DO_CC) $(SDLCFLAGS)
512
513$(BUILDDIR)/client/snd_sdl.o :     $(LINUX_DIR)/snd_sdl.c
514	$(DO_CC) $(SDLCFLAGS)
515
516#############################################################################
517# DEDICATED SERVER
518#############################################################################
519
520Q2DED_OBJS = \
521       $(BUILDDIR)/ded/cmd.o \
522       $(BUILDDIR)/ded/cmodel.o \
523       $(BUILDDIR)/ded/common.o \
524       $(BUILDDIR)/ded/crc.o \
525       $(BUILDDIR)/ded/cvar.o \
526       $(BUILDDIR)/ded/files.o \
527       $(BUILDDIR)/ded/md4.o \
528       $(BUILDDIR)/ded/net_chan.o \
529       $(BUILDDIR)/ded/sv_ccmds.o \
530       $(BUILDDIR)/ded/sv_ents.o \
531       $(BUILDDIR)/ded/sv_game.o \
532       $(BUILDDIR)/ded/sv_init.o \
533       $(BUILDDIR)/ded/sv_main.o \
534       $(BUILDDIR)/ded/sv_send.o \
535       $(BUILDDIR)/ded/sv_user.o \
536       $(BUILDDIR)/ded/sv_world.o \
537       $(BUILDDIR)/ded/q_shlinux.o \
538       $(BUILDDIR)/ded/sys_linux.o \
539       $(BUILDDIR)/ded/glob.o \
540       $(BUILDDIR)/ded/net_udp.o \
541       $(BUILDDIR)/ded/q_shared.o \
542       $(BUILDDIR)/ded/pmove.o \
543       $(BUILDDIR)/ded/cl_null.o \
544       $(BUILDDIR)/ded/cd_null.o
545
546$(BUILDDIR)/q2ded : $(Q2DED_OBJS)
547	$(CC) $(CFLAGS) -o $@ $(Q2DED_OBJS) $(LDFLAGS)
548
549$(BUILDDIR)/ded/cmd.o :        $(COMMON_DIR)/cmd.c
550	$(DO_DED_CC)
551
552$(BUILDDIR)/ded/cmodel.o :     $(COMMON_DIR)/cmodel.c
553	$(DO_DED_CC)
554
555$(BUILDDIR)/ded/common.o :     $(COMMON_DIR)/common.c
556	$(DO_DED_CC)
557
558$(BUILDDIR)/ded/crc.o :	 $(COMMON_DIR)/crc.c
559	$(DO_DED_CC)
560
561$(BUILDDIR)/ded/cvar.o :	$(COMMON_DIR)/cvar.c
562	$(DO_DED_CC)
563
564$(BUILDDIR)/ded/files.o :      $(COMMON_DIR)/files.c
565	$(DO_DED_CC)
566
567$(BUILDDIR)/ded/md4.o :	 $(COMMON_DIR)/md4.c
568	$(DO_DED_CC)
569
570$(BUILDDIR)/ded/net_chan.o :   $(COMMON_DIR)/net_chan.c
571	$(DO_DED_CC)
572
573$(BUILDDIR)/ded/q_shared.o :   $(GAME_DIR)/q_shared.c
574	$(DO_DED_CC)
575
576$(BUILDDIR)/ded/pmove.o :      $(COMMON_DIR)/pmove.c
577	$(DO_DED_CC)
578
579$(BUILDDIR)/ded/sv_ccmds.o :   $(SERVER_DIR)/sv_ccmds.c
580	$(DO_DED_CC)
581
582$(BUILDDIR)/ded/sv_ents.o :    $(SERVER_DIR)/sv_ents.c
583	$(DO_DED_CC)
584
585$(BUILDDIR)/ded/sv_game.o :    $(SERVER_DIR)/sv_game.c
586	$(DO_DED_CC)
587
588$(BUILDDIR)/ded/sv_init.o :    $(SERVER_DIR)/sv_init.c
589	$(DO_DED_CC)
590
591$(BUILDDIR)/ded/sv_main.o :    $(SERVER_DIR)/sv_main.c
592	$(DO_DED_CC)
593
594$(BUILDDIR)/ded/sv_send.o :    $(SERVER_DIR)/sv_send.c
595	$(DO_DED_CC)
596
597$(BUILDDIR)/ded/sv_user.o :    $(SERVER_DIR)/sv_user.c
598	$(DO_DED_CC)
599
600$(BUILDDIR)/ded/sv_world.o :   $(SERVER_DIR)/sv_world.c
601	$(DO_DED_CC)
602
603$(BUILDDIR)/ded/q_shlinux.o :  $(LINUX_DIR)/q_shlinux.c
604	$(DO_DED_CC)
605
606$(BUILDDIR)/ded/sys_linux.o :  $(LINUX_DIR)/sys_linux.c
607	$(DO_DED_CC)
608
609$(BUILDDIR)/ded/glob.o :	$(LINUX_DIR)/glob.c
610	$(DO_DED_CC)
611
612$(BUILDDIR)/ded/net_udp.o :    $(LINUX_DIR)/net_udp.c
613	$(DO_DED_CC)
614
615$(BUILDDIR)/ded/cd_null.o :    $(NULL_DIR)/cd_null.c
616	$(DO_DED_CC)
617
618$(BUILDDIR)/ded/cl_null.o :    $(NULL_DIR)/cl_null.c
619	$(DO_DED_CC)
620
621
622#############################################################################
623# GAME
624#############################################################################
625
626GAME_OBJS = \
627	$(BUILDDIR)/game/g_ai.o \
628	$(BUILDDIR)/game/p_client.o \
629	$(BUILDDIR)/game/g_chase.o \
630	$(BUILDDIR)/game/g_cmds.o \
631	$(BUILDDIR)/game/g_svcmds.o \
632	$(BUILDDIR)/game/g_combat.o \
633	$(BUILDDIR)/game/g_func.o \
634	$(BUILDDIR)/game/g_items.o \
635	$(BUILDDIR)/game/g_main.o \
636	$(BUILDDIR)/game/g_misc.o \
637	$(BUILDDIR)/game/g_monster.o \
638	$(BUILDDIR)/game/g_phys.o \
639	$(BUILDDIR)/game/g_save.o \
640	$(BUILDDIR)/game/g_spawn.o \
641	$(BUILDDIR)/game/g_target.o \
642	$(BUILDDIR)/game/g_trigger.o \
643	$(BUILDDIR)/game/g_turret.o \
644	$(BUILDDIR)/game/g_utils.o \
645	$(BUILDDIR)/game/g_weapon.o \
646	$(BUILDDIR)/game/m_actor.o \
647	$(BUILDDIR)/game/m_berserk.o \
648	$(BUILDDIR)/game/m_boss2.o \
649	$(BUILDDIR)/game/m_boss3.o \
650	$(BUILDDIR)/game/m_boss31.o \
651	$(BUILDDIR)/game/m_boss32.o \
652	$(BUILDDIR)/game/m_brain.o \
653	$(BUILDDIR)/game/m_chick.o \
654	$(BUILDDIR)/game/m_flipper.o \
655	$(BUILDDIR)/game/m_float.o \
656	$(BUILDDIR)/game/m_flyer.o \
657	$(BUILDDIR)/game/m_gladiator.o \
658	$(BUILDDIR)/game/m_gunner.o \
659	$(BUILDDIR)/game/m_hover.o \
660	$(BUILDDIR)/game/m_infantry.o \
661	$(BUILDDIR)/game/m_insane.o \
662	$(BUILDDIR)/game/m_medic.o \
663	$(BUILDDIR)/game/m_move.o \
664	$(BUILDDIR)/game/m_mutant.o \
665	$(BUILDDIR)/game/m_parasite.o \
666	$(BUILDDIR)/game/m_soldier.o \
667	$(BUILDDIR)/game/m_supertank.o \
668	$(BUILDDIR)/game/m_tank.o \
669	$(BUILDDIR)/game/p_hud.o \
670	$(BUILDDIR)/game/p_trail.o \
671	$(BUILDDIR)/game/p_view.o \
672	$(BUILDDIR)/game/p_weapon.o \
673	$(BUILDDIR)/game/q_shared.o \
674	$(BUILDDIR)/game/m_flash.o
675
676$(BUILDDIR)/game.$(SHLIBEXT) : $(GAME_OBJS)
677	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GAME_OBJS)
678
679$(BUILDDIR)/game/g_ai.o :        $(GAME_DIR)/g_ai.c
680	$(DO_SHLIB_CC)
681
682$(BUILDDIR)/game/g_chase.o :     $(GAME_DIR)/g_chase.c
683	$(DO_SHLIB_CC)
684
685$(BUILDDIR)/game/p_client.o :    $(GAME_DIR)/p_client.c
686	$(DO_SHLIB_CC)
687
688$(BUILDDIR)/game/g_cmds.o :      $(GAME_DIR)/g_cmds.c
689	$(DO_SHLIB_CC)
690
691$(BUILDDIR)/game/g_svcmds.o :    $(GAME_DIR)/g_svcmds.c
692	$(DO_SHLIB_CC)
693
694$(BUILDDIR)/game/g_combat.o :    $(GAME_DIR)/g_combat.c
695	$(DO_SHLIB_CC)
696
697$(BUILDDIR)/game/g_func.o :      $(GAME_DIR)/g_func.c
698	$(DO_SHLIB_CC)
699
700$(BUILDDIR)/game/g_items.o :     $(GAME_DIR)/g_items.c
701	$(DO_SHLIB_CC)
702
703$(BUILDDIR)/game/g_main.o :      $(GAME_DIR)/g_main.c
704	$(DO_SHLIB_CC)
705
706$(BUILDDIR)/game/g_misc.o :      $(GAME_DIR)/g_misc.c
707	$(DO_SHLIB_CC)
708
709$(BUILDDIR)/game/g_monster.o :   $(GAME_DIR)/g_monster.c
710	$(DO_SHLIB_CC)
711
712$(BUILDDIR)/game/g_phys.o :      $(GAME_DIR)/g_phys.c
713	$(DO_SHLIB_CC)
714
715$(BUILDDIR)/game/g_save.o :      $(GAME_DIR)/g_save.c
716	$(DO_SHLIB_CC)
717
718$(BUILDDIR)/game/g_spawn.o :     $(GAME_DIR)/g_spawn.c
719	$(DO_SHLIB_CC)
720
721$(BUILDDIR)/game/g_target.o :    $(GAME_DIR)/g_target.c
722	$(DO_SHLIB_CC)
723
724$(BUILDDIR)/game/g_trigger.o :   $(GAME_DIR)/g_trigger.c
725	$(DO_SHLIB_CC)
726
727$(BUILDDIR)/game/g_turret.o :    $(GAME_DIR)/g_turret.c
728	$(DO_SHLIB_CC)
729
730$(BUILDDIR)/game/g_utils.o :     $(GAME_DIR)/g_utils.c
731	$(DO_SHLIB_CC)
732
733$(BUILDDIR)/game/g_weapon.o :    $(GAME_DIR)/g_weapon.c
734	$(DO_SHLIB_CC)
735
736$(BUILDDIR)/game/m_actor.o :     $(GAME_DIR)/m_actor.c
737	$(DO_SHLIB_CC)
738
739$(BUILDDIR)/game/m_berserk.o :   $(GAME_DIR)/m_berserk.c
740	$(DO_SHLIB_CC)
741
742$(BUILDDIR)/game/m_boss2.o :     $(GAME_DIR)/m_boss2.c
743	$(DO_SHLIB_CC)
744
745$(BUILDDIR)/game/m_boss3.o :     $(GAME_DIR)/m_boss3.c
746	$(DO_SHLIB_CC)
747
748$(BUILDDIR)/game/m_boss31.o :     $(GAME_DIR)/m_boss31.c
749	$(DO_SHLIB_CC)
750
751$(BUILDDIR)/game/m_boss32.o :     $(GAME_DIR)/m_boss32.c
752	$(DO_SHLIB_CC)
753
754$(BUILDDIR)/game/m_brain.o :     $(GAME_DIR)/m_brain.c
755	$(DO_SHLIB_CC)
756
757$(BUILDDIR)/game/m_chick.o :     $(GAME_DIR)/m_chick.c
758	$(DO_SHLIB_CC)
759
760$(BUILDDIR)/game/m_flipper.o :   $(GAME_DIR)/m_flipper.c
761	$(DO_SHLIB_CC)
762
763$(BUILDDIR)/game/m_float.o :     $(GAME_DIR)/m_float.c
764	$(DO_SHLIB_CC)
765
766$(BUILDDIR)/game/m_flyer.o :     $(GAME_DIR)/m_flyer.c
767	$(DO_SHLIB_CC)
768
769$(BUILDDIR)/game/m_gladiator.o : $(GAME_DIR)/m_gladiator.c
770	$(DO_SHLIB_CC)
771
772$(BUILDDIR)/game/m_gunner.o :    $(GAME_DIR)/m_gunner.c
773	$(DO_SHLIB_CC)
774
775$(BUILDDIR)/game/m_hover.o :     $(GAME_DIR)/m_hover.c
776	$(DO_SHLIB_CC)
777
778$(BUILDDIR)/game/m_infantry.o :  $(GAME_DIR)/m_infantry.c
779	$(DO_SHLIB_CC)
780
781$(BUILDDIR)/game/m_insane.o :    $(GAME_DIR)/m_insane.c
782	$(DO_SHLIB_CC)
783
784$(BUILDDIR)/game/m_medic.o :     $(GAME_DIR)/m_medic.c
785	$(DO_SHLIB_CC)
786
787$(BUILDDIR)/game/m_move.o :      $(GAME_DIR)/m_move.c
788	$(DO_SHLIB_CC)
789
790$(BUILDDIR)/game/m_mutant.o :    $(GAME_DIR)/m_mutant.c
791	$(DO_SHLIB_CC)
792
793$(BUILDDIR)/game/m_parasite.o :  $(GAME_DIR)/m_parasite.c
794	$(DO_SHLIB_CC)
795
796$(BUILDDIR)/game/m_soldier.o :   $(GAME_DIR)/m_soldier.c
797	$(DO_SHLIB_CC)
798
799$(BUILDDIR)/game/m_supertank.o : $(GAME_DIR)/m_supertank.c
800	$(DO_SHLIB_CC)
801
802$(BUILDDIR)/game/m_tank.o :      $(GAME_DIR)/m_tank.c
803	$(DO_SHLIB_CC)
804
805$(BUILDDIR)/game/p_hud.o :       $(GAME_DIR)/p_hud.c
806	$(DO_SHLIB_CC)
807
808$(BUILDDIR)/game/p_trail.o :     $(GAME_DIR)/p_trail.c
809	$(DO_SHLIB_CC)
810
811$(BUILDDIR)/game/p_view.o :      $(GAME_DIR)/p_view.c
812	$(DO_SHLIB_CC)
813
814$(BUILDDIR)/game/p_weapon.o :    $(GAME_DIR)/p_weapon.c
815	$(DO_SHLIB_CC)
816
817$(BUILDDIR)/game/q_shared.o :    $(GAME_DIR)/q_shared.c
818	$(DO_SHLIB_CC)
819
820$(BUILDDIR)/game/m_flash.o :     $(GAME_DIR)/m_flash.c
821	$(DO_SHLIB_CC)
822
823#############################################################################
824# CTF
825#############################################################################
826
827CTF_OBJS = \
828	$(BUILDDIR)/ctf/g_ai.o \
829	$(BUILDDIR)/ctf/g_chase.o \
830	$(BUILDDIR)/ctf/g_cmds.o \
831	$(BUILDDIR)/ctf/g_combat.o \
832	$(BUILDDIR)/ctf/g_ctf.o \
833	$(BUILDDIR)/ctf/g_func.o \
834	$(BUILDDIR)/ctf/g_items.o \
835	$(BUILDDIR)/ctf/g_main.o \
836	$(BUILDDIR)/ctf/g_misc.o \
837	$(BUILDDIR)/ctf/g_monster.o \
838	$(BUILDDIR)/ctf/g_phys.o \
839	$(BUILDDIR)/ctf/g_save.o \
840	$(BUILDDIR)/ctf/g_spawn.o \
841	$(BUILDDIR)/ctf/g_svcmds.o \
842	$(BUILDDIR)/ctf/g_target.o \
843	$(BUILDDIR)/ctf/g_trigger.o \
844	$(BUILDDIR)/ctf/g_utils.o \
845	$(BUILDDIR)/ctf/g_weapon.o \
846	$(BUILDDIR)/ctf/m_move.o \
847	$(BUILDDIR)/ctf/p_client.o \
848	$(BUILDDIR)/ctf/p_hud.o \
849	$(BUILDDIR)/ctf/p_menu.o \
850	$(BUILDDIR)/ctf/p_trail.o \
851	$(BUILDDIR)/ctf/p_view.o \
852	$(BUILDDIR)/ctf/p_weapon.o \
853	$(BUILDDIR)/ctf/q_shared.o
854
855$(BUILDDIR)/ctf/game.$(SHLIBEXT) : $(CTF_OBJS)
856	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CTF_OBJS)
857
858$(BUILDDIR)/ctf/g_ai.o :       $(CTF_DIR)/g_ai.c
859	$(DO_SHLIB_CC)
860
861$(BUILDDIR)/ctf/g_chase.o :    $(CTF_DIR)/g_chase.c
862	$(DO_SHLIB_CC)
863
864$(BUILDDIR)/ctf/g_cmds.o :     $(CTF_DIR)/g_cmds.c
865	$(DO_SHLIB_CC)
866
867$(BUILDDIR)/ctf/g_combat.o :   $(CTF_DIR)/g_combat.c
868	$(DO_SHLIB_CC)
869
870$(BUILDDIR)/ctf/g_ctf.o :      $(CTF_DIR)/g_ctf.c
871	$(DO_SHLIB_CC)
872
873$(BUILDDIR)/ctf/g_func.o :     $(CTF_DIR)/g_func.c
874	$(DO_SHLIB_CC)
875
876$(BUILDDIR)/ctf/g_items.o :    $(CTF_DIR)/g_items.c
877	$(DO_SHLIB_CC)
878
879$(BUILDDIR)/ctf/g_main.o :     $(CTF_DIR)/g_main.c
880	$(DO_SHLIB_CC)
881
882$(BUILDDIR)/ctf/g_misc.o :     $(CTF_DIR)/g_misc.c
883	$(DO_SHLIB_CC)
884
885$(BUILDDIR)/ctf/g_monster.o :  $(CTF_DIR)/g_monster.c
886	$(DO_SHLIB_CC)
887
888$(BUILDDIR)/ctf/g_phys.o :     $(CTF_DIR)/g_phys.c
889	$(DO_SHLIB_CC)
890
891$(BUILDDIR)/ctf/g_save.o :     $(CTF_DIR)/g_save.c
892	$(DO_SHLIB_CC)
893
894$(BUILDDIR)/ctf/g_spawn.o :    $(CTF_DIR)/g_spawn.c
895	$(DO_SHLIB_CC)
896
897$(BUILDDIR)/ctf/g_svcmds.o :   $(CTF_DIR)/g_svcmds.c
898	$(DO_SHLIB_CC)
899
900$(BUILDDIR)/ctf/g_target.o :   $(CTF_DIR)/g_target.c
901	$(DO_SHLIB_CC)
902
903$(BUILDDIR)/ctf/g_trigger.o :  $(CTF_DIR)/g_trigger.c
904	$(DO_SHLIB_CC)
905
906$(BUILDDIR)/ctf/g_utils.o :    $(CTF_DIR)/g_utils.c
907	$(DO_SHLIB_CC)
908
909$(BUILDDIR)/ctf/g_weapon.o :   $(CTF_DIR)/g_weapon.c
910	$(DO_SHLIB_CC)
911
912$(BUILDDIR)/ctf/m_move.o :     $(CTF_DIR)/m_move.c
913	$(DO_SHLIB_CC)
914
915$(BUILDDIR)/ctf/p_client.o :   $(CTF_DIR)/p_client.c
916	$(DO_SHLIB_CC)
917
918$(BUILDDIR)/ctf/p_hud.o :      $(CTF_DIR)/p_hud.c
919	$(DO_SHLIB_CC)
920
921$(BUILDDIR)/ctf/p_menu.o :     $(CTF_DIR)/p_menu.c
922	$(DO_SHLIB_CC)
923
924$(BUILDDIR)/ctf/p_trail.o :    $(CTF_DIR)/p_trail.c
925	$(DO_SHLIB_CC)
926
927$(BUILDDIR)/ctf/p_view.o :     $(CTF_DIR)/p_view.c
928	$(DO_SHLIB_CC)
929
930$(BUILDDIR)/ctf/p_weapon.o :   $(CTF_DIR)/p_weapon.c
931	$(DO_SHLIB_CC)
932
933$(BUILDDIR)/ctf/q_shared.o :   $(CTF_DIR)/q_shared.c
934	$(DO_SHLIB_CC)
935
936#############################################################################
937# XATRIX
938#############################################################################
939
940XATRIX_OBJS = \
941	$(BUILDDIR)/xatrix/g_ai.o \
942	$(BUILDDIR)/xatrix/g_chase.o \
943	$(BUILDDIR)/xatrix/g_cmds.o \
944	$(BUILDDIR)/xatrix/g_combat.o \
945	$(BUILDDIR)/xatrix/g_func.o \
946	$(BUILDDIR)/xatrix/g_items.o \
947	$(BUILDDIR)/xatrix/g_main.o \
948	$(BUILDDIR)/xatrix/g_misc.o \
949	$(BUILDDIR)/xatrix/g_monster.o \
950	$(BUILDDIR)/xatrix/g_phys.o \
951	$(BUILDDIR)/xatrix/g_save.o \
952	$(BUILDDIR)/xatrix/g_spawn.o \
953	$(BUILDDIR)/xatrix/g_svcmds.o \
954	$(BUILDDIR)/xatrix/g_target.o \
955	$(BUILDDIR)/xatrix/g_trigger.o \
956	$(BUILDDIR)/xatrix/g_turret.o \
957	$(BUILDDIR)/xatrix/g_utils.o \
958	$(BUILDDIR)/xatrix/g_weapon.o \
959	$(BUILDDIR)/xatrix/m_actor.o \
960	$(BUILDDIR)/xatrix/m_berserk.o \
961	$(BUILDDIR)/xatrix/m_boss2.o \
962	$(BUILDDIR)/xatrix/m_boss3.o \
963	$(BUILDDIR)/xatrix/m_boss31.o \
964	$(BUILDDIR)/xatrix/m_boss32.o \
965	$(BUILDDIR)/xatrix/m_boss5.o \
966	$(BUILDDIR)/xatrix/m_brain.o \
967	$(BUILDDIR)/xatrix/m_chick.o \
968	$(BUILDDIR)/xatrix/m_fixbot.o \
969	$(BUILDDIR)/xatrix/m_flash.o \
970	$(BUILDDIR)/xatrix/m_flipper.o \
971	$(BUILDDIR)/xatrix/m_float.o \
972	$(BUILDDIR)/xatrix/m_flyer.o \
973	$(BUILDDIR)/xatrix/m_gekk.o \
974	$(BUILDDIR)/xatrix/m_gladb.o \
975	$(BUILDDIR)/xatrix/m_gladiator.o \
976	$(BUILDDIR)/xatrix/m_gunner.o \
977	$(BUILDDIR)/xatrix/m_hover.o \
978	$(BUILDDIR)/xatrix/m_infantry.o \
979	$(BUILDDIR)/xatrix/m_insane.o \
980	$(BUILDDIR)/xatrix/m_medic.o \
981	$(BUILDDIR)/xatrix/m_move.o \
982	$(BUILDDIR)/xatrix/m_mutant.o \
983	$(BUILDDIR)/xatrix/m_parasite.o \
984	$(BUILDDIR)/xatrix/m_soldier.o \
985	$(BUILDDIR)/xatrix/m_supertank.o \
986	$(BUILDDIR)/xatrix/m_tank.o \
987	$(BUILDDIR)/xatrix/p_client.o \
988	$(BUILDDIR)/xatrix/p_hud.o \
989	$(BUILDDIR)/xatrix/p_trail.o \
990	$(BUILDDIR)/xatrix/p_view.o \
991	$(BUILDDIR)/xatrix/p_weapon.o \
992	$(BUILDDIR)/xatrix/q_shared.o
993
994$(BUILDDIR)/xatrix/game.$(SHLIBEXT) : $(XATRIX_OBJS)
995	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(XATRIX_OBJS)
996
997$(BUILDDIR)/xatrix/g_ai.o :        $(XATRIX_DIR)/g_ai.c
998	$(DO_SHLIB_CC)
999
1000$(BUILDDIR)/xatrix/g_chase.o :     $(XATRIX_DIR)/g_chase.c
1001	$(DO_SHLIB_CC)
1002
1003$(BUILDDIR)/xatrix/g_cmds.o :      $(XATRIX_DIR)/g_cmds.c
1004	$(DO_SHLIB_CC)
1005
1006$(BUILDDIR)/xatrix/g_combat.o :    $(XATRIX_DIR)/g_combat.c
1007	$(DO_SHLIB_CC)
1008
1009$(BUILDDIR)/xatrix/g_func.o :      $(XATRIX_DIR)/g_func.c
1010	$(DO_SHLIB_CC)
1011
1012$(BUILDDIR)/xatrix/g_items.o :     $(XATRIX_DIR)/g_items.c
1013	$(DO_SHLIB_CC)
1014
1015$(BUILDDIR)/xatrix/g_main.o :      $(XATRIX_DIR)/g_main.c
1016	$(DO_SHLIB_CC)
1017
1018$(BUILDDIR)/xatrix/g_misc.o :      $(XATRIX_DIR)/g_misc.c
1019	$(DO_SHLIB_CC)
1020
1021$(BUILDDIR)/xatrix/g_monster.o :   $(XATRIX_DIR)/g_monster.c
1022	$(DO_SHLIB_CC)
1023
1024$(BUILDDIR)/xatrix/g_phys.o :      $(XATRIX_DIR)/g_phys.c
1025	$(DO_SHLIB_CC)
1026
1027$(BUILDDIR)/xatrix/g_save.o :      $(XATRIX_DIR)/g_save.c
1028	$(DO_SHLIB_CC)
1029
1030$(BUILDDIR)/xatrix/g_spawn.o :     $(XATRIX_DIR)/g_spawn.c
1031	$(DO_SHLIB_CC)
1032
1033$(BUILDDIR)/xatrix/g_svcmds.o :    $(XATRIX_DIR)/g_svcmds.c
1034	$(DO_SHLIB_CC)
1035
1036$(BUILDDIR)/xatrix/g_target.o :    $(XATRIX_DIR)/g_target.c
1037	$(DO_SHLIB_CC)
1038
1039$(BUILDDIR)/xatrix/g_trigger.o :   $(XATRIX_DIR)/g_trigger.c
1040	$(DO_SHLIB_CC)
1041
1042$(BUILDDIR)/xatrix/g_turret.o :    $(XATRIX_DIR)/g_turret.c
1043	$(DO_SHLIB_CC)
1044
1045$(BUILDDIR)/xatrix/g_utils.o :     $(XATRIX_DIR)/g_utils.c
1046	$(DO_SHLIB_CC)
1047
1048$(BUILDDIR)/xatrix/g_weapon.o :    $(XATRIX_DIR)/g_weapon.c
1049	$(DO_SHLIB_CC)
1050
1051$(BUILDDIR)/xatrix/m_actor.o :     $(XATRIX_DIR)/m_actor.c
1052	$(DO_SHLIB_CC)
1053
1054$(BUILDDIR)/xatrix/m_berserk.o :   $(XATRIX_DIR)/m_berserk.c
1055	$(DO_SHLIB_CC)
1056
1057$(BUILDDIR)/xatrix/m_boss2.o :     $(XATRIX_DIR)/m_boss2.c
1058	$(DO_SHLIB_CC)
1059
1060$(BUILDDIR)/xatrix/m_boss3.o :     $(XATRIX_DIR)/m_boss3.c
1061	$(DO_SHLIB_CC)
1062
1063$(BUILDDIR)/xatrix/m_boss31.o :    $(XATRIX_DIR)/m_boss31.c
1064	$(DO_SHLIB_CC)
1065
1066$(BUILDDIR)/xatrix/m_boss32.o :    $(XATRIX_DIR)/m_boss32.c
1067	$(DO_SHLIB_CC)
1068
1069$(BUILDDIR)/xatrix/m_boss5.o :     $(XATRIX_DIR)/m_boss5.c
1070	$(DO_SHLIB_CC)
1071
1072$(BUILDDIR)/xatrix/m_brain.o :     $(XATRIX_DIR)/m_brain.c
1073	$(DO_SHLIB_CC)
1074
1075$(BUILDDIR)/xatrix/m_chick.o :     $(XATRIX_DIR)/m_chick.c
1076	$(DO_SHLIB_CC)
1077
1078$(BUILDDIR)/xatrix/m_fixbot.o :    $(XATRIX_DIR)/m_fixbot.c
1079	$(DO_SHLIB_CC)
1080
1081$(BUILDDIR)/xatrix/m_flash.o :     $(XATRIX_DIR)/m_flash.c
1082	$(DO_SHLIB_CC)
1083
1084$(BUILDDIR)/xatrix/m_flipper.o :   $(XATRIX_DIR)/m_flipper.c
1085	$(DO_SHLIB_CC)
1086
1087$(BUILDDIR)/xatrix/m_float.o :     $(XATRIX_DIR)/m_float.c
1088	$(DO_SHLIB_CC)
1089
1090$(BUILDDIR)/xatrix/m_flyer.o :     $(XATRIX_DIR)/m_flyer.c
1091	$(DO_SHLIB_CC)
1092
1093$(BUILDDIR)/xatrix/m_gekk.o :      $(XATRIX_DIR)/m_gekk.c
1094	$(DO_SHLIB_CC)
1095
1096$(BUILDDIR)/xatrix/m_gladb.o :     $(XATRIX_DIR)/m_gladb.c
1097	$(DO_SHLIB_CC)
1098
1099$(BUILDDIR)/xatrix/m_gladiator.o : $(XATRIX_DIR)/m_gladiator.c
1100	$(DO_SHLIB_CC)
1101
1102$(BUILDDIR)/xatrix/m_gunner.o :    $(XATRIX_DIR)/m_gunner.c
1103	$(DO_SHLIB_CC)
1104
1105$(BUILDDIR)/xatrix/m_hover.o :     $(XATRIX_DIR)/m_hover.c
1106	$(DO_SHLIB_CC)
1107
1108$(BUILDDIR)/xatrix/m_infantry.o :  $(XATRIX_DIR)/m_infantry.c
1109	$(DO_SHLIB_CC)
1110
1111$(BUILDDIR)/xatrix/m_insane.o :    $(XATRIX_DIR)/m_insane.c
1112	$(DO_SHLIB_CC)
1113
1114$(BUILDDIR)/xatrix/m_medic.o :     $(XATRIX_DIR)/m_medic.c
1115	$(DO_SHLIB_CC)
1116
1117$(BUILDDIR)/xatrix/m_move.o :      $(XATRIX_DIR)/m_move.c
1118	$(DO_SHLIB_CC)
1119
1120$(BUILDDIR)/xatrix/m_mutant.o :    $(XATRIX_DIR)/m_mutant.c
1121	$(DO_SHLIB_CC)
1122
1123$(BUILDDIR)/xatrix/m_parasite.o :  $(XATRIX_DIR)/m_parasite.c
1124	$(DO_SHLIB_CC)
1125
1126$(BUILDDIR)/xatrix/m_soldier.o :   $(XATRIX_DIR)/m_soldier.c
1127	$(DO_SHLIB_CC)
1128
1129$(BUILDDIR)/xatrix/m_supertank.o : $(XATRIX_DIR)/m_supertank.c
1130	$(DO_SHLIB_CC)
1131
1132$(BUILDDIR)/xatrix/m_tank.o :      $(XATRIX_DIR)/m_tank.c
1133	$(DO_SHLIB_CC)
1134
1135$(BUILDDIR)/xatrix/p_client.o :    $(XATRIX_DIR)/p_client.c
1136	$(DO_SHLIB_CC)
1137
1138$(BUILDDIR)/xatrix/p_hud.o :       $(XATRIX_DIR)/p_hud.c
1139	$(DO_SHLIB_CC)
1140
1141$(BUILDDIR)/xatrix/p_trail.o :     $(XATRIX_DIR)/p_trail.c
1142	$(DO_SHLIB_CC)
1143
1144$(BUILDDIR)/xatrix/p_view.o :      $(XATRIX_DIR)/p_view.c
1145	$(DO_SHLIB_CC)
1146
1147$(BUILDDIR)/xatrix/p_weapon.o :    $(XATRIX_DIR)/p_weapon.c
1148	$(DO_SHLIB_CC)
1149
1150$(BUILDDIR)/xatrix/q_shared.o :    $(XATRIX_DIR)/q_shared.c
1151	$(DO_SHLIB_CC)
1152
1153#############################################################################
1154# ROGUE
1155#############################################################################
1156
1157ROGUE_OBJS = \
1158	$(BUILDDIR)/rogue/dm_ball.o \
1159	$(BUILDDIR)/rogue/dm_tag.o \
1160	$(BUILDDIR)/rogue/g_ai.o \
1161	$(BUILDDIR)/rogue/g_chase.o \
1162	$(BUILDDIR)/rogue/g_cmds.o \
1163	$(BUILDDIR)/rogue/g_combat.o \
1164	$(BUILDDIR)/rogue/g_func.o \
1165	$(BUILDDIR)/rogue/g_items.o \
1166	$(BUILDDIR)/rogue/g_main.o \
1167	$(BUILDDIR)/rogue/g_misc.o \
1168	$(BUILDDIR)/rogue/g_monster.o \
1169	$(BUILDDIR)/rogue/g_newai.o \
1170	$(BUILDDIR)/rogue/g_newdm.o \
1171	$(BUILDDIR)/rogue/g_newfnc.o \
1172	$(BUILDDIR)/rogue/g_newtarg.o \
1173	$(BUILDDIR)/rogue/g_newtrig.o \
1174	$(BUILDDIR)/rogue/g_newweap.o \
1175	$(BUILDDIR)/rogue/g_phys.o \
1176	$(BUILDDIR)/rogue/g_save.o \
1177	$(BUILDDIR)/rogue/g_spawn.o \
1178	$(BUILDDIR)/rogue/g_sphere.o \
1179	$(BUILDDIR)/rogue/g_svcmds.o \
1180	$(BUILDDIR)/rogue/g_target.o \
1181	$(BUILDDIR)/rogue/g_trigger.o \
1182	$(BUILDDIR)/rogue/g_turret.o \
1183	$(BUILDDIR)/rogue/g_utils.o \
1184	$(BUILDDIR)/rogue/g_weapon.o \
1185	$(BUILDDIR)/rogue/m_actor.o \
1186	$(BUILDDIR)/rogue/m_berserk.o \
1187	$(BUILDDIR)/rogue/m_boss2.o \
1188	$(BUILDDIR)/rogue/m_boss3.o \
1189	$(BUILDDIR)/rogue/m_boss31.o \
1190	$(BUILDDIR)/rogue/m_boss32.o \
1191	$(BUILDDIR)/rogue/m_brain.o \
1192	$(BUILDDIR)/rogue/m_carrier.o \
1193	$(BUILDDIR)/rogue/m_chick.o \
1194	$(BUILDDIR)/rogue/m_flash.o \
1195	$(BUILDDIR)/rogue/m_flipper.o \
1196	$(BUILDDIR)/rogue/m_float.o \
1197	$(BUILDDIR)/rogue/m_flyer.o \
1198	$(BUILDDIR)/rogue/m_gladiator.o \
1199	$(BUILDDIR)/rogue/m_gunner.o \
1200	$(BUILDDIR)/rogue/m_hover.o \
1201	$(BUILDDIR)/rogue/m_infantry.o \
1202	$(BUILDDIR)/rogue/m_insane.o \
1203	$(BUILDDIR)/rogue/m_medic.o \
1204	$(BUILDDIR)/rogue/m_move.o \
1205	$(BUILDDIR)/rogue/m_mutant.o \
1206	$(BUILDDIR)/rogue/m_parasite.o \
1207	$(BUILDDIR)/rogue/m_soldier.o \
1208	$(BUILDDIR)/rogue/m_stalker.o \
1209	$(BUILDDIR)/rogue/m_supertank.o \
1210	$(BUILDDIR)/rogue/m_tank.o \
1211	$(BUILDDIR)/rogue/m_turret.o \
1212	$(BUILDDIR)/rogue/m_widow.o \
1213	$(BUILDDIR)/rogue/m_widow2.o \
1214	$(BUILDDIR)/rogue/p_client.o \
1215	$(BUILDDIR)/rogue/p_hud.o \
1216	$(BUILDDIR)/rogue/p_trail.o \
1217	$(BUILDDIR)/rogue/p_view.o \
1218	$(BUILDDIR)/rogue/p_weapon.o \
1219	$(BUILDDIR)/rogue/q_shared.o
1220
1221
1222$(BUILDDIR)/rogue/game.$(SHLIBEXT) : $(ROGUE_OBJS)
1223	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(ROGUE_OBJS)
1224
1225$(BUILDDIR)/rogue/dm_ball.o :      $(ROGUE_DIR)/dm_ball.c
1226	$(DO_SHLIB_CC)
1227
1228$(BUILDDIR)/rogue/dm_tag.o :       $(ROGUE_DIR)/dm_tag.c
1229	$(DO_SHLIB_CC)
1230
1231$(BUILDDIR)/rogue/g_ai.o :         $(ROGUE_DIR)/g_ai.c
1232	$(DO_SHLIB_CC)
1233
1234$(BUILDDIR)/rogue/g_chase.o :      $(ROGUE_DIR)/g_chase.c
1235	$(DO_SHLIB_CC)
1236
1237$(BUILDDIR)/rogue/g_cmds.o :       $(ROGUE_DIR)/g_cmds.c
1238	$(DO_SHLIB_CC)
1239
1240$(BUILDDIR)/rogue/g_combat.o :     $(ROGUE_DIR)/g_combat.c
1241	$(DO_SHLIB_CC)
1242
1243$(BUILDDIR)/rogue/g_func.o :       $(ROGUE_DIR)/g_func.c
1244	$(DO_SHLIB_CC)
1245
1246$(BUILDDIR)/rogue/g_items.o :      $(ROGUE_DIR)/g_items.c
1247	$(DO_SHLIB_CC)
1248
1249$(BUILDDIR)/rogue/g_main.o :	$(ROGUE_DIR)/g_main.c
1250	$(DO_SHLIB_CC)
1251
1252$(BUILDDIR)/rogue/g_misc.o :	$(ROGUE_DIR)/g_misc.c
1253	$(DO_SHLIB_CC)
1254
1255$(BUILDDIR)/rogue/g_monster.o :    $(ROGUE_DIR)/g_monster.c
1256	$(DO_SHLIB_CC)
1257
1258$(BUILDDIR)/rogue/g_newai.o :      $(ROGUE_DIR)/g_newai.c
1259	$(DO_SHLIB_CC)
1260
1261$(BUILDDIR)/rogue/g_newdm.o :      $(ROGUE_DIR)/g_newdm.c
1262	$(DO_SHLIB_CC)
1263
1264$(BUILDDIR)/rogue/g_newfnc.o :     $(ROGUE_DIR)/g_newfnc.c
1265	$(DO_SHLIB_CC)
1266
1267$(BUILDDIR)/rogue/g_newtarg.o :    $(ROGUE_DIR)/g_newtarg.c
1268	$(DO_SHLIB_CC)
1269
1270$(BUILDDIR)/rogue/g_newtrig.o :    $(ROGUE_DIR)/g_newtrig.c
1271	$(DO_SHLIB_CC)
1272
1273$(BUILDDIR)/rogue/g_newweap.o :    $(ROGUE_DIR)/g_newweap.c
1274	$(DO_SHLIB_CC)
1275
1276$(BUILDDIR)/rogue/g_phys.o :	$(ROGUE_DIR)/g_phys.c
1277	$(DO_SHLIB_CC)
1278
1279$(BUILDDIR)/rogue/g_save.o :	$(ROGUE_DIR)/g_save.c
1280	$(DO_SHLIB_CC)
1281
1282$(BUILDDIR)/rogue/g_spawn.o :      $(ROGUE_DIR)/g_spawn.c
1283	$(DO_SHLIB_CC)
1284
1285$(BUILDDIR)/rogue/g_sphere.o :     $(ROGUE_DIR)/g_sphere.c
1286	$(DO_SHLIB_CC)
1287
1288$(BUILDDIR)/rogue/g_svcmds.o :     $(ROGUE_DIR)/g_svcmds.c
1289	$(DO_SHLIB_CC)
1290
1291$(BUILDDIR)/rogue/g_target.o :     $(ROGUE_DIR)/g_target.c
1292	$(DO_SHLIB_CC)
1293
1294$(BUILDDIR)/rogue/g_trigger.o :    $(ROGUE_DIR)/g_trigger.c
1295	$(DO_SHLIB_CC)
1296
1297$(BUILDDIR)/rogue/g_turret.o :     $(ROGUE_DIR)/g_turret.c
1298	$(DO_SHLIB_CC)
1299
1300$(BUILDDIR)/rogue/g_utils.o :      $(ROGUE_DIR)/g_utils.c
1301	$(DO_SHLIB_CC)
1302
1303$(BUILDDIR)/rogue/g_weapon.o :     $(ROGUE_DIR)/g_weapon.c
1304	$(DO_SHLIB_CC)
1305
1306$(BUILDDIR)/rogue/m_actor.o :      $(ROGUE_DIR)/m_actor.c
1307	$(DO_SHLIB_CC)
1308
1309$(BUILDDIR)/rogue/m_berserk.o :    $(ROGUE_DIR)/m_berserk.c
1310	$(DO_SHLIB_CC)
1311
1312$(BUILDDIR)/rogue/m_boss2.o :      $(ROGUE_DIR)/m_boss2.c
1313	$(DO_SHLIB_CC)
1314
1315$(BUILDDIR)/rogue/m_boss3.o :      $(ROGUE_DIR)/m_boss3.c
1316	$(DO_SHLIB_CC)
1317
1318$(BUILDDIR)/rogue/m_boss31.o :     $(ROGUE_DIR)/m_boss31.c
1319	$(DO_SHLIB_CC)
1320
1321$(BUILDDIR)/rogue/m_boss32.o :     $(ROGUE_DIR)/m_boss32.c
1322	$(DO_SHLIB_CC)
1323
1324$(BUILDDIR)/rogue/m_brain.o :      $(ROGUE_DIR)/m_brain.c
1325	$(DO_SHLIB_CC)
1326
1327$(BUILDDIR)/rogue/m_carrier.o :    $(ROGUE_DIR)/m_carrier.c
1328	$(DO_SHLIB_CC)
1329
1330$(BUILDDIR)/rogue/m_chick.o :      $(ROGUE_DIR)/m_chick.c
1331	$(DO_SHLIB_CC)
1332
1333$(BUILDDIR)/rogue/m_flash.o :      $(ROGUE_DIR)/m_flash.c
1334	$(DO_SHLIB_CC)
1335
1336$(BUILDDIR)/rogue/m_flipper.o :    $(ROGUE_DIR)/m_flipper.c
1337	$(DO_SHLIB_CC)
1338
1339$(BUILDDIR)/rogue/m_float.o :      $(ROGUE_DIR)/m_float.c
1340	$(DO_SHLIB_CC)
1341
1342$(BUILDDIR)/rogue/m_flyer.o :      $(ROGUE_DIR)/m_flyer.c
1343	$(DO_SHLIB_CC)
1344
1345$(BUILDDIR)/rogue/m_gladiator.o :  $(ROGUE_DIR)/m_gladiator.c
1346	$(DO_SHLIB_CC)
1347
1348$(BUILDDIR)/rogue/m_gunner.o :     $(ROGUE_DIR)/m_gunner.c
1349	$(DO_SHLIB_CC)
1350
1351$(BUILDDIR)/rogue/m_hover.o :      $(ROGUE_DIR)/m_hover.c
1352	$(DO_SHLIB_CC)
1353
1354$(BUILDDIR)/rogue/m_infantry.o :   $(ROGUE_DIR)/m_infantry.c
1355	$(DO_SHLIB_CC)
1356
1357$(BUILDDIR)/rogue/m_insane.o :     $(ROGUE_DIR)/m_insane.c
1358	$(DO_SHLIB_CC)
1359
1360$(BUILDDIR)/rogue/m_medic.o :      $(ROGUE_DIR)/m_medic.c
1361	$(DO_SHLIB_CC)
1362
1363$(BUILDDIR)/rogue/m_move.o :	$(ROGUE_DIR)/m_move.c
1364	$(DO_SHLIB_CC)
1365
1366$(BUILDDIR)/rogue/m_mutant.o :     $(ROGUE_DIR)/m_mutant.c
1367	$(DO_SHLIB_CC)
1368
1369$(BUILDDIR)/rogue/m_parasite.o :   $(ROGUE_DIR)/m_parasite.c
1370	$(DO_SHLIB_CC)
1371
1372$(BUILDDIR)/rogue/m_soldier.o :    $(ROGUE_DIR)/m_soldier.c
1373	$(DO_SHLIB_CC)
1374
1375$(BUILDDIR)/rogue/m_stalker.o :    $(ROGUE_DIR)/m_stalker.c
1376	$(DO_SHLIB_CC)
1377
1378$(BUILDDIR)/rogue/m_supertank.o :  $(ROGUE_DIR)/m_supertank.c
1379	$(DO_SHLIB_CC)
1380
1381$(BUILDDIR)/rogue/m_tank.o :	$(ROGUE_DIR)/m_tank.c
1382	$(DO_SHLIB_CC)
1383
1384$(BUILDDIR)/rogue/m_turret.o :     $(ROGUE_DIR)/m_turret.c
1385	$(DO_SHLIB_CC)
1386
1387$(BUILDDIR)/rogue/m_widow.o :      $(ROGUE_DIR)/m_widow.c
1388	$(DO_SHLIB_CC)
1389
1390$(BUILDDIR)/rogue/m_widow2.o :     $(ROGUE_DIR)/m_widow2.c
1391	$(DO_SHLIB_CC)
1392
1393$(BUILDDIR)/rogue/p_client.o :     $(ROGUE_DIR)/p_client.c
1394	$(DO_SHLIB_CC)
1395
1396$(BUILDDIR)/rogue/p_hud.o :	 $(ROGUE_DIR)/p_hud.c
1397	$(DO_SHLIB_CC)
1398
1399$(BUILDDIR)/rogue/p_trail.o :      $(ROGUE_DIR)/p_trail.c
1400	$(DO_SHLIB_CC)
1401
1402$(BUILDDIR)/rogue/p_view.o :	$(ROGUE_DIR)/p_view.c
1403	$(DO_SHLIB_CC)
1404
1405$(BUILDDIR)/rogue/p_weapon.o :     $(ROGUE_DIR)/p_weapon.c
1406	$(DO_SHLIB_CC)
1407
1408$(BUILDDIR)/rogue/q_shared.o :     $(ROGUE_DIR)/q_shared.c
1409	$(DO_SHLIB_CC)
1410
1411#############################################################################
1412# REF_SOFT
1413#############################################################################
1414
1415REF_SOFT_OBJS = \
1416	$(BUILDDIR)/ref_soft/r_aclip.o \
1417	$(BUILDDIR)/ref_soft/r_alias.o \
1418	$(BUILDDIR)/ref_soft/r_bsp.o \
1419	$(BUILDDIR)/ref_soft/r_draw.o \
1420	$(BUILDDIR)/ref_soft/r_edge.o \
1421	$(BUILDDIR)/ref_soft/r_image.o \
1422	$(BUILDDIR)/ref_soft/r_light.o \
1423	$(BUILDDIR)/ref_soft/r_main.o \
1424	$(BUILDDIR)/ref_soft/r_misc.o \
1425	$(BUILDDIR)/ref_soft/r_model.o \
1426	$(BUILDDIR)/ref_soft/r_part.o \
1427	$(BUILDDIR)/ref_soft/r_poly.o \
1428	$(BUILDDIR)/ref_soft/r_polyse.o \
1429	$(BUILDDIR)/ref_soft/r_rast.o \
1430	$(BUILDDIR)/ref_soft/r_scan.o \
1431	$(BUILDDIR)/ref_soft/r_sprite.o \
1432	$(BUILDDIR)/ref_soft/r_surf.o \
1433	\
1434	$(BUILDDIR)/ref_soft/q_shared.o \
1435	$(BUILDDIR)/ref_soft/q_shlinux.o \
1436	$(BUILDDIR)/ref_soft/glob.o
1437
1438ifeq ($(strip $(BUILD_JOYSTICK)),YES)
1439REF_SOFT_OBJS += $(BUILDDIR)/ref_soft/joystick.o
1440endif
1441
1442ifeq ($(ARCH),i386)
1443ifneq ($(strip $(NO_X86_ASM)),YES)
1444REF_SOFT_OBJS += \
1445	$(BUILDDIR)/ref_soft/r_aclipa.o \
1446	$(BUILDDIR)/ref_soft/r_draw16.o \
1447	$(BUILDDIR)/ref_soft/r_drawa.o \
1448	$(BUILDDIR)/ref_soft/r_edgea.o \
1449	$(BUILDDIR)/ref_soft/r_scana.o \
1450	$(BUILDDIR)/ref_soft/r_spr8.o \
1451	$(BUILDDIR)/ref_soft/r_surf8.o \
1452	$(BUILDDIR)/ref_soft/math.o \
1453	$(BUILDDIR)/ref_soft/d_polysa.o \
1454	$(BUILDDIR)/ref_soft/r_varsa.o \
1455	$(BUILDDIR)/ref_soft/sys_dosa.o
1456endif
1457endif
1458
1459REF_SOFT_SVGA_OBJS = \
1460	$(BUILDDIR)/ref_soft/rw_svgalib.o \
1461	$(BUILDDIR)/ref_soft/d_copy.o \
1462	$(BUILDDIR)/ref_soft/rw_in_svgalib.o
1463
1464REF_SOFT_X11_OBJS = \
1465	$(BUILDDIR)/ref_soft/rw_linux.o \
1466	$(BUILDDIR)/ref_soft/rw_x11.o
1467
1468REF_SOFT_SDL_OBJS = \
1469	$(BUILDDIR)/ref_soft/rw_linux.o \
1470	$(BUILDDIR)/ref_soft/rw_sdl.o
1471
1472REF_SOFT_AA_OBJS = \
1473	$(BUILDDIR)/ref_soft/rw_aa.o \
1474	$(BUILDDIR)/ref_soft/rw_in_aa.o
1475
1476$(BUILDDIR)/ref_soft.$(SHLIBEXT) : $(REF_SOFT_OBJS) $(REF_SOFT_SVGA_OBJS)
1477	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_SOFT_OBJS) \
1478		$(REF_SOFT_SVGA_OBJS) $(SVGALDFLAGS)
1479
1480$(BUILDDIR)/ref_softx.$(SHLIBEXT) : $(REF_SOFT_OBJS) $(REF_SOFT_X11_OBJS)
1481	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_SOFT_OBJS) \
1482		$(REF_SOFT_X11_OBJS) $(XLDFLAGS)
1483
1484$(BUILDDIR)/ref_softsdl.$(SHLIBEXT) : $(REF_SOFT_OBJS) $(REF_SOFT_SDL_OBJS)
1485	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_SOFT_OBJS) \
1486		$(REF_SOFT_SDL_OBJS) $(SDLLDFLAGS)
1487
1488$(BUILDDIR)/ref_softaa.$(SHLIBEXT) : $(REF_SOFT_OBJS) $(REF_SOFT_AA_OBJS)
1489	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_SOFT_OBJS) \
1490		$(REF_SOFT_AA_OBJS) $(AALDFLAGS)
1491
1492$(BUILDDIR)/ref_soft/r_aclip.o :      $(REF_SOFT_DIR)/r_aclip.c
1493	$(DO_SHLIB_CC)
1494
1495$(BUILDDIR)/ref_soft/r_alias.o :      $(REF_SOFT_DIR)/r_alias.c
1496	$(DO_SHLIB_CC)
1497
1498$(BUILDDIR)/ref_soft/r_bsp.o :	 $(REF_SOFT_DIR)/r_bsp.c
1499	$(DO_SHLIB_CC)
1500
1501$(BUILDDIR)/ref_soft/r_draw.o :	$(REF_SOFT_DIR)/r_draw.c
1502	$(DO_SHLIB_CC)
1503
1504$(BUILDDIR)/ref_soft/r_edge.o :	$(REF_SOFT_DIR)/r_edge.c
1505	$(DO_SHLIB_CC)
1506
1507$(BUILDDIR)/ref_soft/r_image.o :      $(REF_SOFT_DIR)/r_image.c
1508	$(DO_SHLIB_CC)
1509
1510$(BUILDDIR)/ref_soft/r_light.o :      $(REF_SOFT_DIR)/r_light.c
1511	$(DO_SHLIB_CC)
1512
1513$(BUILDDIR)/ref_soft/r_main.o :       $(REF_SOFT_DIR)/r_main.c
1514	$(DO_SHLIB_CC)
1515
1516$(BUILDDIR)/ref_soft/r_misc.o :       $(REF_SOFT_DIR)/r_misc.c
1517	$(DO_SHLIB_CC)
1518
1519$(BUILDDIR)/ref_soft/r_model.o :      $(REF_SOFT_DIR)/r_model.c
1520	$(DO_SHLIB_CC)
1521
1522$(BUILDDIR)/ref_soft/r_part.o :       $(REF_SOFT_DIR)/r_part.c
1523	$(DO_SHLIB_CC)
1524
1525$(BUILDDIR)/ref_soft/r_poly.o :       $(REF_SOFT_DIR)/r_poly.c
1526	$(DO_SHLIB_CC)
1527
1528$(BUILDDIR)/ref_soft/r_polyse.o :     $(REF_SOFT_DIR)/r_polyse.c
1529	$(DO_SHLIB_CC)
1530
1531$(BUILDDIR)/ref_soft/r_rast.o :       $(REF_SOFT_DIR)/r_rast.c
1532	$(DO_SHLIB_CC)
1533
1534$(BUILDDIR)/ref_soft/r_scan.o :       $(REF_SOFT_DIR)/r_scan.c
1535	$(DO_SHLIB_CC)
1536
1537$(BUILDDIR)/ref_soft/r_sprite.o :     $(REF_SOFT_DIR)/r_sprite.c
1538	$(DO_SHLIB_CC)
1539
1540$(BUILDDIR)/ref_soft/r_surf.o :       $(REF_SOFT_DIR)/r_surf.c
1541	$(DO_SHLIB_CC)
1542
1543$(BUILDDIR)/ref_soft/r_aclipa.o :     $(LINUX_DIR)/r_aclipa.s
1544	$(DO_SHLIB_AS)
1545
1546$(BUILDDIR)/ref_soft/r_draw16.o :     $(LINUX_DIR)/r_draw16.s
1547	$(DO_SHLIB_AS)
1548
1549$(BUILDDIR)/ref_soft/r_drawa.o :      $(LINUX_DIR)/r_drawa.s
1550	$(DO_SHLIB_AS)
1551
1552$(BUILDDIR)/ref_soft/r_edgea.o :      $(LINUX_DIR)/r_edgea.s
1553	$(DO_SHLIB_AS)
1554
1555$(BUILDDIR)/ref_soft/r_scana.o :      $(LINUX_DIR)/r_scana.s
1556	$(DO_SHLIB_AS)
1557
1558$(BUILDDIR)/ref_soft/r_spr8.o :       $(LINUX_DIR)/r_spr8.s
1559	$(DO_SHLIB_AS)
1560
1561$(BUILDDIR)/ref_soft/r_surf8.o :      $(LINUX_DIR)/r_surf8.s
1562	$(DO_SHLIB_AS)
1563
1564$(BUILDDIR)/ref_soft/math.o :         $(LINUX_DIR)/math.s
1565	$(DO_SHLIB_AS)
1566
1567$(BUILDDIR)/ref_soft/d_polysa.o :     $(LINUX_DIR)/d_polysa.s
1568	$(DO_SHLIB_AS)
1569
1570$(BUILDDIR)/ref_soft/r_varsa.o :      $(LINUX_DIR)/r_varsa.s
1571	$(DO_SHLIB_AS)
1572
1573$(BUILDDIR)/ref_soft/sys_dosa.o :     $(LINUX_DIR)/sys_dosa.s
1574	$(DO_SHLIB_AS)
1575
1576$(BUILDDIR)/ref_soft/q_shared.o :     $(GAME_DIR)/q_shared.c
1577	$(DO_SHLIB_CC)
1578
1579$(BUILDDIR)/ref_soft/q_shlinux.o :    $(LINUX_DIR)/q_shlinux.c
1580	$(DO_SHLIB_CC)
1581
1582$(BUILDDIR)/ref_soft/glob.o :         $(LINUX_DIR)/glob.c
1583	$(DO_SHLIB_CC)
1584
1585$(BUILDDIR)/ref_soft/d_copy.o :       $(LINUX_DIR)/d_copy.s
1586	$(DO_SHLIB_AS)
1587
1588$(BUILDDIR)/ref_soft/rw_svgalib.o :   $(LINUX_DIR)/rw_svgalib.c
1589	$(DO_SHLIB_CC) $(SVGACFLAGS)
1590
1591$(BUILDDIR)/ref_soft/rw_in_svgalib.o : $(LINUX_DIR)/rw_in_svgalib.c
1592	$(DO_SHLIB_CC) $(SVGACFLAGS)
1593
1594$(BUILDDIR)/ref_soft/rw_x11.o :       $(LINUX_DIR)/rw_x11.c
1595	$(DO_SHLIB_CC) $(XCFLAGS)
1596
1597$(BUILDDIR)/ref_soft/joystick.o :       $(LINUX_DIR)/joystick.c
1598	$(DO_SHLIB_CC) $(XCFLAGS)
1599
1600$(BUILDDIR)/ref_soft/rw_linux.o :       $(LINUX_DIR)/rw_linux.c
1601	$(DO_SHLIB_CC) $(XCFLAGS)
1602
1603$(BUILDDIR)/ref_soft/rw_sdl.o :       $(LINUX_DIR)/rw_sdl.c
1604	$(DO_SHLIB_CC) $(SDLCFLAGS)
1605
1606$(BUILDDIR)/ref_soft/rw_aa.o :       $(LINUX_DIR)/rw_aa.c
1607	$(DO_SHLIB_CC) $(AACFLAGS)
1608
1609$(BUILDDIR)/ref_soft/rw_in_aa.o : $(LINUX_DIR)/rw_in_aa.c
1610	$(DO_SHLIB_CC) $(AACFLAGS)
1611
1612#############################################################################
1613# REF_GL
1614#############################################################################
1615
1616REF_GL_OBJS = \
1617	$(BUILDDIR)/ref_gl/gl_draw.o \
1618	$(BUILDDIR)/ref_gl/gl_image.o \
1619	$(BUILDDIR)/ref_gl/gl_light.o \
1620	$(BUILDDIR)/ref_gl/gl_mesh.o \
1621	$(BUILDDIR)/ref_gl/gl_model.o \
1622	$(BUILDDIR)/ref_gl/gl_rmain.o \
1623	$(BUILDDIR)/ref_gl/gl_rmisc.o \
1624	$(BUILDDIR)/ref_gl/gl_rsurf.o \
1625	$(BUILDDIR)/ref_gl/gl_warp.o \
1626	\
1627	$(BUILDDIR)/ref_gl/qgl_linux.o \
1628	$(BUILDDIR)/ref_gl/q_shared.o \
1629	$(BUILDDIR)/ref_gl/q_shlinux.o \
1630	$(BUILDDIR)/ref_gl/glob.o
1631
1632REF_GLX_OBJS = \
1633	$(BUILDDIR)/ref_gl/gl_glx.o \
1634	$(BUILDDIR)/ref_gl/rw_linux.o \
1635	$(BUILDDIR)/ref_gl/joystick.o
1636#	$(BUILDDIR)/ref_gl/rw_x11.o
1637
1638REF_CANDY_GL_OBJS = $(REF_GL_OBJS)
1639
1640REF_CANDY_GLX_OBJS = $(REF_GLX_OBJS)
1641
1642REF_FXGL_OBJS = \
1643	$(BUILDDIR)/ref_gl/rw_in_svgalib.o \
1644	$(BUILDDIR)/ref_gl/gl_fxmesa.o
1645
1646REF_SDLGL_OBJS = \
1647	$(BUILDDIR)/ref_gl/rw_sdl.o \
1648	$(BUILDDIR)/ref_gl/rw_linux.o \
1649	$(BUILDDIR)/ref_gl/joystick.o
1650
1651$(BUILDDIR)/ref_glx.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_GLX_OBJS)
1652	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_GLX_OBJS) $(GLXLDFLAGS)
1653
1654$(BUILDDIR)/ref_gl.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_FXGL_OBJS)
1655	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_FXGL_OBJS) $(FXGLLDFLAGS)
1656
1657$(BUILDDIR)/ref_sdlgl.$(SHLIBEXT) : $(REF_GL_OBJS) $(REF_SDLGL_OBJS)
1658	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_GL_OBJS) $(REF_SDLGL_OBJS) $(SDLGLLDFLAGS)
1659
1660$(BUILDDIR)/ref_candyglx.$(SHLIBEXT):$(REF_CANDY_GL_OBJS) $(REF_CANDY_GLX_OBJS)
1661	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_CANDY_GL_OBJS) $(REF_CANDY_GLX_OBJS) $(GLXLDFLAGS)
1662
1663$(BUILDDIR)/ref_candysdlgl.$(SHLIBEXT) : $(REF_CANDY_GL_OBJS) $(REF_SDLGL_OBJS)
1664	$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(REF_CANDY_GL_OBJS) $(REF_SDLGL_OBJS) $(SDLGLLDFLAGS)
1665
1666$(BUILDDIR)/ref_gl/gl_draw.o :        $(REF_GL_DIR)/gl_draw.c
1667	$(DO_GL_SHLIB_CC)
1668
1669$(BUILDDIR)/ref_gl/gl_image.o :       $(REF_GL_DIR)/gl_image.c
1670	$(DO_GL_SHLIB_CC)
1671
1672$(BUILDDIR)/ref_gl/gl_light.o :       $(REF_GL_DIR)/gl_light.c
1673	$(DO_GL_SHLIB_CC)
1674
1675$(BUILDDIR)/ref_gl/gl_mesh.o :        $(REF_GL_DIR)/gl_mesh.c
1676	$(DO_GL_SHLIB_CC)
1677
1678$(BUILDDIR)/ref_gl/gl_model.o :       $(REF_GL_DIR)/gl_model.c
1679	$(DO_GL_SHLIB_CC)
1680
1681$(BUILDDIR)/ref_gl/gl_rmain.o :       $(REF_GL_DIR)/gl_rmain.c
1682	$(DO_GL_SHLIB_CC)
1683
1684$(BUILDDIR)/ref_gl/gl_rmisc.o :       $(REF_GL_DIR)/gl_rmisc.c
1685	$(DO_GL_SHLIB_CC)
1686
1687$(BUILDDIR)/ref_gl/gl_rsurf.o :       $(REF_GL_DIR)/gl_rsurf.c
1688	$(DO_GL_SHLIB_CC)
1689
1690$(BUILDDIR)/ref_gl/gl_warp.o :        $(REF_GL_DIR)/gl_warp.c
1691	$(DO_GL_SHLIB_CC)
1692
1693$(BUILDDIR)/ref_gl/qgl_linux.o :      $(LINUX_DIR)/qgl_linux.c
1694	$(DO_GL_SHLIB_CC)
1695
1696$(BUILDDIR)/ref_gl/q_shared.o :       $(GAME_DIR)/q_shared.c
1697	$(DO_GL_SHLIB_CC)
1698
1699$(BUILDDIR)/ref_gl/q_shlinux.o :      $(LINUX_DIR)/q_shlinux.c
1700	$(DO_GL_SHLIB_CC)
1701
1702$(BUILDDIR)/ref_gl/glob.o :           $(LINUX_DIR)/glob.c
1703	$(DO_GL_SHLIB_CC)
1704
1705$(BUILDDIR)/ref_gl/gl_glx.o :         $(LINUX_DIR)/gl_glx.c
1706	$(DO_GL_SHLIB_CC) $(GLXCFLAGS)
1707
1708$(BUILDDIR)/ref_gl/rw_linux.o :     $(LINUX_DIR)/rw_linux.c
1709	$(DO_GL_SHLIB_CC) $(XCFLAGS)
1710
1711$(BUILDDIR)/ref_gl/joystick.o :     $(LINUX_DIR)/joystick.c
1712	$(DO_GL_SHLIB_CC) $(XCFLAGS)
1713
1714$(BUILDDIR)/ref_gl/rw_x11.o :         $(LINUX_DIR)/rw_x11.c
1715	$(DO_GL_SHLIB_CC) $(GLXCFLAGS)
1716
1717$(BUILDDIR)/ref_gl/gl_fxmesa.o :      $(LINUX_DIR)/gl_fxmesa.c
1718	$(DO_GL_SHLIB_CC) $(FXGLCFLAGS)
1719
1720$(BUILDDIR)/ref_gl/rw_in_svgalib.o :  $(LINUX_DIR)/rw_in_svgalib.c
1721	$(DO_GL_SHLIB_CC)
1722
1723$(BUILDDIR)/ref_gl/rw_sdl.o :         $(LINUX_DIR)/rw_sdl.c
1724	$(DO_GL_SHLIB_CC) $(SDLGLCFLAGS)
1725
1726#############################################################################
1727# MISC
1728#############################################################################
1729
1730clean: clean-debug clean-release
1731
1732clean-debug:
1733	$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
1734
1735clean-release:
1736	$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
1737
1738clean2:
1739	rm -f \
1740	$(QUAKE2_OBJS) \
1741	$(QUAKE2_AS_OBJS) \
1742	$(GAME_OBJS) \
1743	$(CTF_OBJS) \
1744	$(ROGUE_OBJS) \
1745	$(XATRIX_OBJS) \
1746	$(REF_SOFT_OBJS) \
1747	$(REF_SOFT_SVGA_OBJS) \
1748	$(REF_SOFT_X11_OBJS) \
1749	$(REF_GL_OBJS)
1750
1751distclean:
1752	@-rm -rf $(BUILD_DEBUG_DIR) $(BUILD_RELEASE_DIR)
1753	@-rm -f `find . \( -not -type d \) -and \
1754		\( -name '*~' \) -type f -print`
1755