• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# QuakeWorld Makefile for Linux 2.0
3#
4# Apr '98 by Zoid <zoid@idsoftware.com>
5#
6# GNU Make required
7#
8# ELF only
9#
10
11# RPM release number
12RPM_RELEASE=1
13
14VERSION=2.30$(GLIBC)
15
16ifneq (,$(findstring libc6,$(shell if [ -e /lib/libc.so.6* ];then echo libc6;fi)))
17GLIBC=-glibc
18else
19GLIBC=
20endif
21
22ifneq (,$(findstring alpha,$(shell uname -m)))
23ARCH=axp
24RPMARCH=alpha
25else
26ARCH=i386
27RPMARCH=i386
28endif
29
30MAINDIR=/grog/Projects/QW
31
32BUILD_DEBUG_DIR=debug$(ARCH)$(GLIBC)
33BUILD_RELEASE_DIR=release$(ARCH)$(GLIBC)
34CLIENT_DIR=$(MAINDIR)/client
35SERVER_DIR=$(MAINDIR)/server
36
37MESA_DIR=/usr/local/src/Mesa-3.0
38
39CC=gcc
40BASE_CFLAGS=-Wall -Dstricmp=strcasecmp -I$(CLIENT_DIR) -I$(SERVER_DIR)
41DEBUG_CFLAGS=$(BASE_CFLAGS) -g
42ifeq ($(ARCH),axp)
43RELEASE_CFLAGS=$(BASE_CFLAGS) -ffast-math -funroll-loops \
44	-fomit-frame-pointer -fexpensive-optimizations
45else
46RELEASE_CFLAGS=$(BASE_CFLAGS) -m486 -O6 -ffast-math -funroll-loops \
47	-fomit-frame-pointer -fexpensive-optimizations -malign-loops=2 \
48	-malign-jumps=2 -malign-functions=2
49endif
50GLCFLAGS=-DGLQUAKE -I/usr/local/src/Mesa-3.0/include -I/usr/include/glide
51
52LDFLAGS=-lm
53SVGALDFLAGS=-lvga
54XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext
55GL_SVGA_LDFLAGS=-L/usr/X11/lib -L/usr/local/src/Mesa-3.0/lib -lm -lMesaGL -lglide2x -lX11 -lXext -lvga
56GL_X11_LDFLAGS=-L/usr/X11/lib -L/usr/local/src/Mesa-3.0/lib -lm -lGL -lX11 -lXext
57
58DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
59DO_O_CC=$(CC) -O $(CFLAGS) -o $@ -c $<
60DO_GL_CC=$(CC) $(CFLAGS) $(GLCFLAGS) -o $@ -c $<
61DO_SERVER_CC=$(CC) -DSERVERONLY $(CFLAGS) -o $@ -c $<
62
63DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
64DO_GL_AS=$(CC) $(CFLAGS) $(GLCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
65
66#############################################################################
67# SETUP AND BUILD
68#############################################################################
69
70ifeq ($(ARCH),axp)
71TARGETS=$(BUILDDIR)/qwsv
72#$(BUILDDIR)/qwcl.x11
73else
74TARGETS=$(BUILDDIR)/qwsv $(BUILDDIR)/qwcl $(BUILDDIR)/qwcl.x11 $(BUILDDIR)/glqwcl $(BUILDDIR)/glqwcl.glx
75endif
76
77build_debug:
78	@-mkdir $(BUILD_DEBUG_DIR) \
79		$(BUILD_DEBUG_DIR)/client \
80		$(BUILD_DEBUG_DIR)/glclient \
81		$(BUILD_DEBUG_DIR)/server
82	$(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
83
84build_release:
85	@-mkdir $(BUILD_RELEASE_DIR) \
86		$(BUILD_RELEASE_DIR)/client \
87		$(BUILD_RELEASE_DIR)/glclient \
88		$(BUILD_RELEASE_DIR)/server
89	$(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)"
90
91all: build_debug build_release
92
93targets: $(TARGETS)
94
95#############################################################################
96# SERVER
97#############################################################################
98
99QWSV_OBJS = \
100	 $(BUILDDIR)/server/pr_cmds.o \
101	 $(BUILDDIR)/server/pr_edict.o \
102	 $(BUILDDIR)/server/pr_exec.o \
103	 $(BUILDDIR)/server/sv_init.o \
104	 $(BUILDDIR)/server/sv_main.o \
105	 $(BUILDDIR)/server/sv_nchan.o \
106	 $(BUILDDIR)/server/sv_ents.o \
107	 $(BUILDDIR)/server/sv_send.o \
108	 $(BUILDDIR)/server/sv_move.o \
109	 $(BUILDDIR)/server/sv_phys.o \
110	 $(BUILDDIR)/server/sv_user.o \
111	 $(BUILDDIR)/server/sv_ccmds.o \
112	 $(BUILDDIR)/server/world.o \
113	 $(BUILDDIR)/server/sys_unix.o \
114	 $(BUILDDIR)/server/model.o \
115	 $(BUILDDIR)/server/cmd.o \
116	 $(BUILDDIR)/server/common.o \
117	 $(BUILDDIR)/server/crc.o \
118	 $(BUILDDIR)/server/cvar.o \
119	 $(BUILDDIR)/server/mathlib.o \
120	 $(BUILDDIR)/server/md4.o \
121	 $(BUILDDIR)/server/zone.o \
122	 $(BUILDDIR)/server/pmove.o \
123	 $(BUILDDIR)/server/pmovetst.o \
124	 $(BUILDDIR)/server/net_chan.o \
125	 $(BUILDDIR)/server/net_udp.o
126
127$(BUILDDIR)/qwsv : $(QWSV_OBJS)
128	$(CC) $(CFLAGS) -o $@ $(QWSV_OBJS) $(LDFLAGS)
129
130$(BUILDDIR)/server/pr_cmds.o :   $(SERVER_DIR)/pr_cmds.c
131	$(DO_SERVER_CC)
132
133$(BUILDDIR)/server/pr_edict.o :  $(SERVER_DIR)/pr_edict.c
134	$(DO_SERVER_CC)
135
136$(BUILDDIR)/server/pr_exec.o :   $(SERVER_DIR)/pr_exec.c
137	$(DO_SERVER_CC)
138
139$(BUILDDIR)/server/sv_init.o :   $(SERVER_DIR)/sv_init.c
140	$(DO_SERVER_CC)
141
142$(BUILDDIR)/server/sv_main.o :   $(SERVER_DIR)/sv_main.c
143	$(DO_SERVER_CC)
144
145$(BUILDDIR)/server/sv_nchan.o :  $(SERVER_DIR)/sv_nchan.c
146	$(DO_SERVER_CC)
147
148$(BUILDDIR)/server/sv_ents.o :   $(SERVER_DIR)/sv_ents.c
149	$(DO_SERVER_CC)
150
151$(BUILDDIR)/server/sv_send.o :   $(SERVER_DIR)/sv_send.c
152	$(DO_SERVER_CC)
153
154$(BUILDDIR)/server/sv_move.o :   $(SERVER_DIR)/sv_move.c
155	$(DO_SERVER_CC)
156
157$(BUILDDIR)/server/sv_phys.o :   $(SERVER_DIR)/sv_phys.c
158	$(DO_SERVER_CC)
159
160$(BUILDDIR)/server/sv_user.o :   $(SERVER_DIR)/sv_user.c
161	$(DO_SERVER_CC)
162
163$(BUILDDIR)/server/sv_ccmds.o :  $(SERVER_DIR)/sv_ccmds.c
164	$(DO_SERVER_CC)
165
166$(BUILDDIR)/server/world.o :     $(SERVER_DIR)/world.c
167	$(DO_SERVER_CC)
168
169$(BUILDDIR)/server/sys_unix.o :  $(SERVER_DIR)/sys_unix.c
170	$(DO_SERVER_CC)
171
172$(BUILDDIR)/server/model.o :     $(SERVER_DIR)/model.c
173	$(DO_SERVER_CC)
174
175$(BUILDDIR)/server/cmd.o :       $(CLIENT_DIR)/cmd.c
176	$(DO_SERVER_CC)
177
178$(BUILDDIR)/server/common.o :    $(CLIENT_DIR)/common.c
179	$(DO_SERVER_CC)
180
181$(BUILDDIR)/server/crc.o :       $(CLIENT_DIR)/crc.c
182	$(DO_SERVER_CC)
183
184$(BUILDDIR)/server/cvar.o :      $(CLIENT_DIR)/cvar.c
185	$(DO_SERVER_CC)
186
187$(BUILDDIR)/server/mathlib.o :   $(CLIENT_DIR)/mathlib.c
188	$(DO_SERVER_CC)
189
190$(BUILDDIR)/server/md4.o :       $(CLIENT_DIR)/md4.c
191	$(DO_SERVER_CC)
192
193$(BUILDDIR)/server/zone.o :      $(CLIENT_DIR)/zone.c
194	$(DO_SERVER_CC)
195
196$(BUILDDIR)/server/pmove.o :     $(CLIENT_DIR)/pmove.c
197	$(DO_SERVER_CC)
198
199$(BUILDDIR)/server/pmovetst.o :  $(CLIENT_DIR)/pmovetst.c
200	$(DO_SERVER_CC)
201
202$(BUILDDIR)/server/net_chan.o :  $(CLIENT_DIR)/net_chan.c
203	$(DO_SERVER_CC)
204
205$(BUILDDIR)/server/net_udp.o :   $(CLIENT_DIR)/net_udp.c
206	$(DO_SERVER_CC)
207
208#############################################################################
209# CLIENT
210#############################################################################
211
212QWCL_OBJS = \
213	$(BUILDDIR)/client/cl_demo.o \
214	$(BUILDDIR)/client/cl_ents.o \
215	$(BUILDDIR)/client/cl_input.o \
216	$(BUILDDIR)/client/cl_main.o \
217	$(BUILDDIR)/client/cl_parse.o \
218	$(BUILDDIR)/client/cl_pred.o \
219	$(BUILDDIR)/client/cl_tent.o \
220	$(BUILDDIR)/client/cl_cam.o \
221	$(BUILDDIR)/client/cmd.o \
222	$(BUILDDIR)/client/common.o \
223	$(BUILDDIR)/client/console.o \
224	$(BUILDDIR)/client/crc.o \
225	$(BUILDDIR)/client/cvar.o \
226	$(BUILDDIR)/client/d_edge.o \
227	$(BUILDDIR)/client/d_fill.o \
228	$(BUILDDIR)/client/d_init.o \
229	$(BUILDDIR)/client/d_modech.o \
230	$(BUILDDIR)/client/d_part.o \
231	$(BUILDDIR)/client/d_polyse.o \
232	$(BUILDDIR)/client/d_scan.o \
233	$(BUILDDIR)/client/d_sky.o \
234	$(BUILDDIR)/client/d_sprite.o \
235	$(BUILDDIR)/client/d_surf.o \
236	$(BUILDDIR)/client/d_vars.o \
237	$(BUILDDIR)/client/d_zpoint.o \
238	$(BUILDDIR)/client/draw.o \
239	$(BUILDDIR)/client/keys.o \
240	$(BUILDDIR)/client/mathlib.o \
241	$(BUILDDIR)/client/md4.o \
242	$(BUILDDIR)/client/menu.o \
243	$(BUILDDIR)/client/model.o \
244	$(BUILDDIR)/client/net_chan.o \
245	$(BUILDDIR)/client/net_udp.o \
246	$(BUILDDIR)/client/nonintel.o \
247	$(BUILDDIR)/client/pmove.o \
248	$(BUILDDIR)/client/pmovetst.o \
249	$(BUILDDIR)/client/r_aclip.o \
250	$(BUILDDIR)/client/r_alias.o \
251	$(BUILDDIR)/client/r_bsp.o \
252	$(BUILDDIR)/client/r_draw.o \
253	$(BUILDDIR)/client/r_edge.o \
254	$(BUILDDIR)/client/r_efrag.o \
255	$(BUILDDIR)/client/r_light.o \
256	$(BUILDDIR)/client/r_main.o \
257	$(BUILDDIR)/client/r_misc.o \
258	$(BUILDDIR)/client/r_part.o \
259	$(BUILDDIR)/client/r_sky.o \
260	$(BUILDDIR)/client/r_sprite.o \
261	$(BUILDDIR)/client/r_surf.o \
262	$(BUILDDIR)/client/r_vars.o \
263	$(BUILDDIR)/client/sbar.o \
264	$(BUILDDIR)/client/screen.o \
265	$(BUILDDIR)/client/skin.o \
266	$(BUILDDIR)/client/snd_dma.o \
267	$(BUILDDIR)/client/snd_mem.o \
268	$(BUILDDIR)/client/snd_mix.o \
269	$(BUILDDIR)/client/view.o \
270	$(BUILDDIR)/client/wad.o \
271	$(BUILDDIR)/client/zone.o \
272	$(BUILDDIR)/client/cd_linux.o \
273	$(BUILDDIR)/client/sys_linux.o \
274	$(BUILDDIR)/client/snd_linux.o \
275
276ifeq ($(ARCH),i386)
277	QWCL_AS_OBJS = \
278	$(BUILDDIR)/client/d_copy.o \
279	$(BUILDDIR)/client/d_draw.o \
280	$(BUILDDIR)/client/d_draw16.o \
281	$(BUILDDIR)/client/d_parta.o \
282	$(BUILDDIR)/client/d_polysa.o \
283	$(BUILDDIR)/client/d_scana.o \
284	$(BUILDDIR)/client/d_spr8.o \
285	$(BUILDDIR)/client/d_varsa.o \
286	$(BUILDDIR)/client/math.o \
287	$(BUILDDIR)/client/r_aclipa.o \
288	$(BUILDDIR)/client/r_aliasa.o \
289	$(BUILDDIR)/client/r_drawa.o \
290	$(BUILDDIR)/client/r_edgea.o \
291	$(BUILDDIR)/client/r_varsa.o \
292	$(BUILDDIR)/client/snd_mixa.o \
293	$(BUILDDIR)/client/surf16.o \
294	$(BUILDDIR)/client/surf8.o \
295	$(BUILDDIR)/client/sys_dosa.o
296else
297	QWCL_AS_OBJS=
298endif
299
300QWCL_SVGA_OBJS = $(BUILDDIR)/client/vid_svgalib.o
301QWCL_X11_OBJS = $(BUILDDIR)/client/vid_x.o
302
303$(BUILDDIR)/qwcl : $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_SVGA_OBJS)
304	$(CC) $(CFLAGS) -o $@ $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_SVGA_OBJS) \
305		$(LDFLAGS) $(SVGALDFLAGS)
306
307$(BUILDDIR)/qwcl.x11 : $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_X11_OBJS)
308	$(CC) $(CFLAGS) -o $@ $(QWCL_OBJS) $(QWCL_AS_OBJS) $(QWCL_X11_OBJS) \
309		$(LDFLAGS) $(XLDFLAGS)
310
311$(BUILDDIR)/client/cl_demo.o :        $(CLIENT_DIR)/cl_demo.c
312	$(DO_CC)
313
314$(BUILDDIR)/client/cl_ents.o :        $(CLIENT_DIR)/cl_ents.c
315	$(DO_CC)
316
317$(BUILDDIR)/client/cl_input.o :       $(CLIENT_DIR)/cl_input.c
318	$(DO_CC)
319
320$(BUILDDIR)/client/cl_main.o :        $(CLIENT_DIR)/cl_main.c
321	$(DO_CC)
322
323$(BUILDDIR)/client/cl_parse.o :       $(CLIENT_DIR)/cl_parse.c
324	$(DO_CC)
325
326$(BUILDDIR)/client/cl_pred.o :        $(CLIENT_DIR)/cl_pred.c
327	$(DO_CC)
328
329$(BUILDDIR)/client/cl_tent.o :        $(CLIENT_DIR)/cl_tent.c
330	$(DO_CC)
331
332$(BUILDDIR)/client/cl_cam.o :         $(CLIENT_DIR)/cl_cam.c
333	$(DO_CC)
334
335$(BUILDDIR)/client/cmd.o :            $(CLIENT_DIR)/cmd.c
336	$(DO_CC)
337
338$(BUILDDIR)/client/common.o :         $(CLIENT_DIR)/common.c
339	$(DO_CC)
340
341$(BUILDDIR)/client/console.o :        $(CLIENT_DIR)/console.c
342	$(DO_CC)
343
344$(BUILDDIR)/client/crc.o :            $(CLIENT_DIR)/crc.c
345	$(DO_CC)
346
347$(BUILDDIR)/client/cvar.o :           $(CLIENT_DIR)/cvar.c
348	$(DO_CC)
349
350$(BUILDDIR)/client/d_edge.o :         $(CLIENT_DIR)/d_edge.c
351	$(DO_CC)
352
353$(BUILDDIR)/client/d_fill.o :         $(CLIENT_DIR)/d_fill.c
354	$(DO_CC)
355
356$(BUILDDIR)/client/d_init.o :         $(CLIENT_DIR)/d_init.c
357	$(DO_CC)
358
359$(BUILDDIR)/client/d_modech.o :       $(CLIENT_DIR)/d_modech.c
360	$(DO_CC)
361
362$(BUILDDIR)/client/d_part.o :         $(CLIENT_DIR)/d_part.c
363	$(DO_CC)
364
365$(BUILDDIR)/client/d_polyse.o :       $(CLIENT_DIR)/d_polyse.c
366	$(DO_CC)
367
368$(BUILDDIR)/client/d_scan.o :         $(CLIENT_DIR)/d_scan.c
369	$(DO_CC)
370
371$(BUILDDIR)/client/d_sky.o :          $(CLIENT_DIR)/d_sky.c
372	$(DO_CC)
373
374$(BUILDDIR)/client/d_sprite.o :       $(CLIENT_DIR)/d_sprite.c
375	$(DO_CC)
376
377$(BUILDDIR)/client/d_surf.o :         $(CLIENT_DIR)/d_surf.c
378	$(DO_CC)
379
380$(BUILDDIR)/client/d_vars.o :         $(CLIENT_DIR)/d_vars.c
381	$(DO_CC)
382
383$(BUILDDIR)/client/d_zpoint.o :       $(CLIENT_DIR)/d_zpoint.c
384	$(DO_CC)
385
386$(BUILDDIR)/client/draw.o :           $(CLIENT_DIR)/draw.c
387	$(DO_CC)
388
389$(BUILDDIR)/client/keys.o :           $(CLIENT_DIR)/keys.c
390	$(DO_CC)
391
392$(BUILDDIR)/client/mathlib.o :        $(CLIENT_DIR)/mathlib.c
393	$(DO_CC)
394
395$(BUILDDIR)/client/md4.o :            $(CLIENT_DIR)/md4.c
396	$(DO_CC)
397
398$(BUILDDIR)/client/menu.o :           $(CLIENT_DIR)/menu.c
399	$(DO_CC)
400
401$(BUILDDIR)/client/model.o :          $(CLIENT_DIR)/model.c
402	$(DO_CC)
403
404$(BUILDDIR)/client/net_chan.o :       $(CLIENT_DIR)/net_chan.c
405	$(DO_CC)
406
407$(BUILDDIR)/client/net_udp.o :        $(CLIENT_DIR)/net_udp.c
408	$(DO_CC)
409
410$(BUILDDIR)/client/nonintel.o :       $(CLIENT_DIR)/nonintel.c
411	$(DO_CC)
412
413$(BUILDDIR)/client/pmove.o :          $(CLIENT_DIR)/pmove.c
414	$(DO_CC)
415
416$(BUILDDIR)/client/pmovetst.o :       $(CLIENT_DIR)/pmovetst.c
417	$(DO_CC)
418
419$(BUILDDIR)/client/r_aclip.o :        $(CLIENT_DIR)/r_aclip.c
420	$(DO_CC)
421
422$(BUILDDIR)/client/r_alias.o :        $(CLIENT_DIR)/r_alias.c
423	$(DO_CC)
424
425$(BUILDDIR)/client/r_bsp.o :          $(CLIENT_DIR)/r_bsp.c
426	$(DO_CC)
427
428$(BUILDDIR)/client/r_draw.o :         $(CLIENT_DIR)/r_draw.c
429	$(DO_CC)
430
431$(BUILDDIR)/client/r_edge.o :         $(CLIENT_DIR)/r_edge.c
432	$(DO_CC)
433
434$(BUILDDIR)/client/r_efrag.o :        $(CLIENT_DIR)/r_efrag.c
435	$(DO_CC)
436
437$(BUILDDIR)/client/r_light.o :        $(CLIENT_DIR)/r_light.c
438	$(DO_CC)
439
440$(BUILDDIR)/client/r_main.o :         $(CLIENT_DIR)/r_main.c
441	$(DO_CC)
442
443$(BUILDDIR)/client/r_misc.o :         $(CLIENT_DIR)/r_misc.c
444	$(DO_CC)
445
446$(BUILDDIR)/client/r_part.o :         $(CLIENT_DIR)/r_part.c
447	$(DO_CC)
448
449$(BUILDDIR)/client/r_sky.o :          $(CLIENT_DIR)/r_sky.c
450	$(DO_CC)
451
452$(BUILDDIR)/client/r_sprite.o :       $(CLIENT_DIR)/r_sprite.c
453	$(DO_CC)
454
455$(BUILDDIR)/client/r_surf.o :         $(CLIENT_DIR)/r_surf.c
456	$(DO_CC)
457
458$(BUILDDIR)/client/r_vars.o :         $(CLIENT_DIR)/r_vars.c
459	$(DO_CC)
460
461$(BUILDDIR)/client/sbar.o :           $(CLIENT_DIR)/sbar.c
462	$(DO_CC)
463
464$(BUILDDIR)/client/screen.o :         $(CLIENT_DIR)/screen.c
465	$(DO_CC)
466
467$(BUILDDIR)/client/skin.o :           $(CLIENT_DIR)/skin.c
468	$(DO_CC)
469
470$(BUILDDIR)/client/snd_dma.o :        $(CLIENT_DIR)/snd_dma.c
471	$(DO_CC)
472
473$(BUILDDIR)/client/snd_mem.o :        $(CLIENT_DIR)/snd_mem.c
474	$(DO_CC)
475
476$(BUILDDIR)/client/snd_mix.o :        $(CLIENT_DIR)/snd_mix.c
477	$(DO_CC)
478
479$(BUILDDIR)/client/view.o :           $(CLIENT_DIR)/view.c
480	$(DO_CC)
481
482$(BUILDDIR)/client/wad.o :            $(CLIENT_DIR)/wad.c
483	$(DO_CC)
484
485$(BUILDDIR)/client/zone.o :           $(CLIENT_DIR)/zone.c
486	$(DO_CC)
487
488$(BUILDDIR)/client/cd_linux.o :       $(CLIENT_DIR)/cd_linux.c
489	$(DO_CC)
490
491$(BUILDDIR)/client/sys_linux.o :      $(CLIENT_DIR)/sys_linux.c
492	$(DO_CC)
493
494$(BUILDDIR)/client/snd_linux.o :      $(CLIENT_DIR)/snd_linux.c
495	$(DO_CC)
496
497$(BUILDDIR)/client/d_copy.o :         $(CLIENT_DIR)/d_copy.s
498	$(DO_AS)
499
500$(BUILDDIR)/client/d_draw.o :         $(CLIENT_DIR)/d_draw.s
501	$(DO_AS)
502
503$(BUILDDIR)/client/d_draw16.o :       $(CLIENT_DIR)/d_draw16.s
504	$(DO_AS)
505
506$(BUILDDIR)/client/d_parta.o :        $(CLIENT_DIR)/d_parta.s
507	$(DO_AS)
508
509$(BUILDDIR)/client/d_polysa.o :       $(CLIENT_DIR)/d_polysa.s
510	$(DO_AS)
511
512$(BUILDDIR)/client/d_scana.o :        $(CLIENT_DIR)/d_scana.s
513	$(DO_AS)
514
515$(BUILDDIR)/client/d_spr8.o :         $(CLIENT_DIR)/d_spr8.s
516	$(DO_AS)
517
518$(BUILDDIR)/client/d_varsa.o :        $(CLIENT_DIR)/d_varsa.s
519	$(DO_AS)
520
521$(BUILDDIR)/client/math.o :           $(CLIENT_DIR)/math.s
522	$(DO_AS)
523
524$(BUILDDIR)/client/r_aclipa.o :       $(CLIENT_DIR)/r_aclipa.s
525	$(DO_AS)
526
527$(BUILDDIR)/client/r_aliasa.o :       $(CLIENT_DIR)/r_aliasa.s
528	$(DO_AS)
529
530$(BUILDDIR)/client/r_drawa.o :        $(CLIENT_DIR)/r_drawa.s
531	$(DO_AS)
532
533$(BUILDDIR)/client/r_edgea.o :        $(CLIENT_DIR)/r_edgea.s
534	$(DO_AS)
535
536$(BUILDDIR)/client/r_varsa.o :        $(CLIENT_DIR)/r_varsa.s
537	$(DO_AS)
538
539$(BUILDDIR)/client/snd_mixa.o :       $(CLIENT_DIR)/snd_mixa.s
540	$(DO_AS)
541
542$(BUILDDIR)/client/surf16.o :         $(CLIENT_DIR)/surf16.s
543	$(DO_AS)
544
545$(BUILDDIR)/client/surf8.o :          $(CLIENT_DIR)/surf8.s
546	$(DO_AS)
547
548$(BUILDDIR)/client/sys_dosa.o :       $(CLIENT_DIR)/sys_dosa.s
549	$(DO_AS)
550
551$(BUILDDIR)/client/vid_svgalib.o : $(CLIENT_DIR)/vid_svgalib.c
552	$(DO_O_CC)
553
554$(BUILDDIR)/client/vid_x.o : $(CLIENT_DIR)/vid_x.c
555	$(DO_CC)
556
557#############################################################################
558# GL CLIENT
559#############################################################################
560
561GLQWCL_OBJS = \
562	$(BUILDDIR)/glclient/cl_demo.o \
563	$(BUILDDIR)/glclient/cl_ents.o \
564	$(BUILDDIR)/glclient/cl_input.o \
565	$(BUILDDIR)/glclient/cl_main.o \
566	$(BUILDDIR)/glclient/cl_parse.o \
567	$(BUILDDIR)/glclient/cl_pred.o \
568	$(BUILDDIR)/glclient/cl_tent.o \
569	$(BUILDDIR)/glclient/cl_cam.o \
570	$(BUILDDIR)/glclient/cmd.o \
571	$(BUILDDIR)/glclient/common.o \
572	$(BUILDDIR)/glclient/console.o \
573	$(BUILDDIR)/glclient/crc.o \
574	$(BUILDDIR)/glclient/cvar.o \
575	$(BUILDDIR)/glclient/keys.o \
576	$(BUILDDIR)/glclient/mathlib.o \
577	$(BUILDDIR)/glclient/md4.o \
578	$(BUILDDIR)/glclient/menu.o \
579	$(BUILDDIR)/glclient/net_chan.o \
580	$(BUILDDIR)/glclient/net_udp.o \
581	$(BUILDDIR)/glclient/nonintel.o \
582	$(BUILDDIR)/glclient/pmove.o \
583	$(BUILDDIR)/glclient/pmovetst.o \
584	$(BUILDDIR)/glclient/r_part.o \
585	$(BUILDDIR)/glclient/sbar.o \
586	$(BUILDDIR)/glclient/skin.o \
587	$(BUILDDIR)/glclient/snd_dma.o \
588	$(BUILDDIR)/glclient/snd_mem.o \
589	$(BUILDDIR)/glclient/snd_mix.o \
590	$(BUILDDIR)/glclient/view.o \
591	$(BUILDDIR)/glclient/wad.o \
592	$(BUILDDIR)/glclient/zone.o \
593	$(BUILDDIR)/glclient/cd_linux.o \
594	$(BUILDDIR)/glclient/sys_linux.o \
595	$(BUILDDIR)/glclient/snd_linux.o \
596	\
597	$(BUILDDIR)/glclient/gl_draw.o \
598	$(BUILDDIR)/glclient/gl_mesh.o \
599	$(BUILDDIR)/glclient/gl_model.o \
600	$(BUILDDIR)/glclient/gl_ngraph.o \
601	$(BUILDDIR)/glclient/gl_refrag.o \
602	$(BUILDDIR)/glclient/gl_rlight.o \
603	$(BUILDDIR)/glclient/gl_rmain.o \
604	$(BUILDDIR)/glclient/gl_rmisc.o \
605	$(BUILDDIR)/glclient/gl_rsurf.o \
606	$(BUILDDIR)/glclient/gl_screen.o \
607	$(BUILDDIR)/glclient/gl_warp.o \
608	\
609	$(BUILDDIR)/glclient/math.o \
610	$(BUILDDIR)/glclient/snd_mixa.o \
611	$(BUILDDIR)/glclient/sys_dosa.o
612
613GLQWCL_SVGA_OBJS = $(BUILDDIR)/glclient/gl_vidlinux.o
614GLQWCL_X11_OBJS = $(BUILDDIR)/glclient/gl_vidlinuxglx.o
615
616$(BUILDDIR)/glqwcl : $(GLQWCL_OBJS) $(GLQWCL_SVGA_OBJS)
617	$(CC) $(CFLAGS) -o $@ $(GLQWCL_OBJS) $(GLQWCL_SVGA_OBJS) $(LDFLAGS) $(GL_SVGA_LDFLAGS)
618
619$(BUILDDIR)/glqwcl.glx : $(GLQWCL_OBJS) $(GLQWCL_X11_OBJS)
620	$(CC) $(CFLAGS) -o $@ $(GLQWCL_OBJS) $(GLQWCL_X11_OBJS) $(LDFLAGS) $(GL_X11_LDFLAGS)
621
622$(BUILDDIR)/glclient/cl_demo.o :       $(CLIENT_DIR)/cl_demo.c
623	$(DO_GL_CC)
624
625$(BUILDDIR)/glclient/cl_ents.o :       $(CLIENT_DIR)/cl_ents.c
626	$(DO_GL_CC)
627
628$(BUILDDIR)/glclient/cl_input.o :      $(CLIENT_DIR)/cl_input.c
629	$(DO_GL_CC)
630
631$(BUILDDIR)/glclient/cl_main.o :       $(CLIENT_DIR)/cl_main.c
632	$(DO_GL_CC)
633
634$(BUILDDIR)/glclient/cl_parse.o :      $(CLIENT_DIR)/cl_parse.c
635	$(DO_GL_CC)
636
637$(BUILDDIR)/glclient/cl_pred.o :       $(CLIENT_DIR)/cl_pred.c
638	$(DO_GL_CC)
639
640$(BUILDDIR)/glclient/cl_tent.o :       $(CLIENT_DIR)/cl_tent.c
641	$(DO_GL_CC)
642
643$(BUILDDIR)/glclient/cl_cam.o :        $(CLIENT_DIR)/cl_cam.c
644	$(DO_GL_CC)
645
646$(BUILDDIR)/glclient/cmd.o :           $(CLIENT_DIR)/cmd.c
647	$(DO_GL_CC)
648
649$(BUILDDIR)/glclient/common.o :        $(CLIENT_DIR)/common.c
650	$(DO_GL_CC)
651
652$(BUILDDIR)/glclient/console.o :       $(CLIENT_DIR)/console.c
653	$(DO_GL_CC)
654
655$(BUILDDIR)/glclient/crc.o :           $(CLIENT_DIR)/crc.c
656	$(DO_GL_CC)
657
658$(BUILDDIR)/glclient/cvar.o :          $(CLIENT_DIR)/cvar.c
659	$(DO_GL_CC)
660
661$(BUILDDIR)/glclient/keys.o :          $(CLIENT_DIR)/keys.c
662	$(DO_GL_CC)
663
664$(BUILDDIR)/glclient/mathlib.o :       $(CLIENT_DIR)/mathlib.c
665	$(DO_GL_CC)
666
667$(BUILDDIR)/glclient/md4.o :           $(CLIENT_DIR)/md4.c
668	$(DO_GL_CC)
669
670$(BUILDDIR)/glclient/menu.o :          $(CLIENT_DIR)/menu.c
671	$(DO_GL_CC)
672
673$(BUILDDIR)/glclient/net_chan.o :      $(CLIENT_DIR)/net_chan.c
674	$(DO_GL_CC)
675
676$(BUILDDIR)/glclient/net_udp.o :       $(CLIENT_DIR)/net_udp.c
677	$(DO_GL_CC)
678
679$(BUILDDIR)/glclient/nonintel.o :      $(CLIENT_DIR)/nonintel.c
680	$(DO_GL_CC)
681
682$(BUILDDIR)/glclient/pmove.o :         $(CLIENT_DIR)/pmove.c
683	$(DO_GL_CC)
684
685$(BUILDDIR)/glclient/pmovetst.o :      $(CLIENT_DIR)/pmovetst.c
686	$(DO_GL_CC)
687
688$(BUILDDIR)/glclient/r_part.o :        $(CLIENT_DIR)/r_part.c
689	$(DO_GL_CC)
690
691$(BUILDDIR)/glclient/sbar.o :          $(CLIENT_DIR)/sbar.c
692	$(DO_GL_CC)
693
694$(BUILDDIR)/glclient/screen.o :        $(CLIENT_DIR)/screen.c
695	$(DO_GL_CC)
696
697$(BUILDDIR)/glclient/skin.o :          $(CLIENT_DIR)/skin.c
698	$(DO_GL_CC)
699
700$(BUILDDIR)/glclient/snd_dma.o :       $(CLIENT_DIR)/snd_dma.c
701	$(DO_GL_CC)
702
703$(BUILDDIR)/glclient/snd_mem.o :       $(CLIENT_DIR)/snd_mem.c
704	$(DO_GL_CC)
705
706$(BUILDDIR)/glclient/snd_mix.o :       $(CLIENT_DIR)/snd_mix.c
707	$(DO_GL_CC)
708
709$(BUILDDIR)/glclient/view.o :          $(CLIENT_DIR)/view.c
710	$(DO_GL_CC)
711
712$(BUILDDIR)/glclient/wad.o :           $(CLIENT_DIR)/wad.c
713	$(DO_GL_CC)
714
715$(BUILDDIR)/glclient/zone.o :          $(CLIENT_DIR)/zone.c
716	$(DO_GL_CC)
717
718$(BUILDDIR)/glclient/cd_linux.o :      $(CLIENT_DIR)/cd_linux.c
719	$(DO_GL_CC)
720
721$(BUILDDIR)/glclient/sys_linux.o :     $(CLIENT_DIR)/sys_linux.c
722	$(DO_GL_CC)
723
724$(BUILDDIR)/glclient/snd_linux.o :     $(CLIENT_DIR)/snd_linux.c
725	$(DO_GL_CC)
726
727$(BUILDDIR)/glclient/gl_draw.o :       $(CLIENT_DIR)/gl_draw.c
728	$(DO_GL_CC)
729
730$(BUILDDIR)/glclient/gl_mesh.o :       $(CLIENT_DIR)/gl_mesh.c
731	$(DO_GL_CC)
732
733$(BUILDDIR)/glclient/gl_model.o :      $(CLIENT_DIR)/gl_model.c
734	$(DO_GL_CC)
735
736$(BUILDDIR)/glclient/gl_ngraph.o :     $(CLIENT_DIR)/gl_ngraph.c
737	$(DO_GL_CC)
738
739$(BUILDDIR)/glclient/gl_refrag.o :     $(CLIENT_DIR)/gl_refrag.c
740	$(DO_GL_CC)
741
742$(BUILDDIR)/glclient/gl_rlight.o :     $(CLIENT_DIR)/gl_rlight.c
743	$(DO_GL_CC)
744
745$(BUILDDIR)/glclient/gl_rmain.o :      $(CLIENT_DIR)/gl_rmain.c
746	$(DO_GL_CC)
747
748$(BUILDDIR)/glclient/gl_rmisc.o :      $(CLIENT_DIR)/gl_rmisc.c
749	$(DO_GL_CC)
750
751$(BUILDDIR)/glclient/gl_rsurf.o :      $(CLIENT_DIR)/gl_rsurf.c
752	$(DO_GL_CC)
753
754$(BUILDDIR)/glclient/gl_screen.o :     $(CLIENT_DIR)/gl_screen.c
755	$(DO_GL_CC)
756
757$(BUILDDIR)/glclient/gl_vidlinux.o :   $(CLIENT_DIR)/gl_vidlinux.c
758	$(DO_GL_CC)
759
760$(BUILDDIR)/glclient/gl_vidlinuxglx.o :   $(CLIENT_DIR)/gl_vidlinuxglx.c
761	$(DO_GL_CC)
762
763$(BUILDDIR)/glclient/gl_warp.o :       $(CLIENT_DIR)/gl_warp.c
764	$(DO_GL_CC)
765
766$(BUILDDIR)/glclient/math.o :          $(CLIENT_DIR)/math.s
767	$(DO_GL_AS)
768
769$(BUILDDIR)/glclient/snd_mixa.o :      $(CLIENT_DIR)/snd_mixa.s
770	$(DO_GL_AS)
771
772$(BUILDDIR)/glclient/sys_dosa.o :      $(CLIENT_DIR)/sys_dosa.s
773	$(DO_GL_AS)
774
775#############################################################################
776# RPM
777#############################################################################
778
779# Make RPMs.  You need to be root to make this work
780RPMROOT=/usr/src/redhat
781RPM = rpm
782RPMFLAGS = -bb
783INSTALLDIR = /usr/local/games/quake
784
785ifeq ($(ARCH),axp)
786rpm: rpm-qwsv
787tar: tar-qwsv
788else
789rpm: rpm-qwcl rpm-qwsv
790tar: tar-qwcl tar-qwsv
791endif
792
793QWCL_RPMDIR=/var/tmp/qwcl-$(VERSION)
794TDFXGL_DIR=/home/zoid/3dfxgl
795
796QWPROGS = \
797	$(MAINDIR)/progs/buttons.qc \
798	$(MAINDIR)/progs/client.qc \
799	$(MAINDIR)/progs/combat.qc \
800	$(MAINDIR)/progs/defs.qc \
801	$(MAINDIR)/progs/doors.qc \
802	$(MAINDIR)/progs/items.qc \
803	$(MAINDIR)/progs/misc.qc \
804	$(MAINDIR)/progs/models.qc \
805	$(MAINDIR)/progs/plats.qc \
806	$(MAINDIR)/progs/player.qc \
807	$(MAINDIR)/progs/progdefs.h \
808	$(MAINDIR)/progs/progs.src \
809	$(MAINDIR)/progs/qwprogs.dat \
810	$(MAINDIR)/progs/server.qc \
811	$(MAINDIR)/progs/spectate.qc \
812	$(MAINDIR)/progs/sprites.qc \
813	$(MAINDIR)/progs/subs.qc \
814	$(MAINDIR)/progs/triggers.qc \
815	$(MAINDIR)/progs/weapons.qc \
816	$(MAINDIR)/progs/world.qc
817
818rpm-qwcl: qwcl.spec \
819		$(BUILD_RELEASE_DIR)/qwcl \
820		$(BUILD_RELEASE_DIR)/glqwcl \
821		$(BUILD_RELEASE_DIR)/glqwcl.glx \
822		$(BUILD_RELEASE_DIR)/qwcl.x11
823	touch $(RPMROOT)/SOURCES/qwcl-$(VERSION).tar.gz
824	if [ ! -d archives ];then mkdir archives;fi
825	$(MAKE) copyfiles-qwcl DESTDIR=$(QWCL_RPMDIR)/$(INSTALLDIR)
826	cp qwcl.spec $(RPMROOT)/SPECS/qwcl.spec
827	cp $(MAINDIR)/quake.gif $(RPMROOT)/SOURCES/quake.gif
828	cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) qwcl.spec
829	cp $(RPMROOT)/RPMS/$(RPMARCH)/qwcl-$(VERSION)-$(RPM_RELEASE).$(RPMARCH).rpm archives/.
830	rm -rf $(QWCL_RPMDIR)
831
832tar-qwcl: $(BUILD_RELEASE_DIR)/qwcl \
833		$(BUILD_RELEASE_DIR)/glqwcl \
834		$(BUILD_RELEASE_DIR)/glqwcl.glx \
835		$(BUILD_RELEASE_DIR)/qwcl.x11
836	if [ ! -d archives ];then mkdir archives;fi
837	$(MAKE) copyfiles-qwcl DESTDIR=$(QWCL_RPMDIR)/$(INSTALLDIR)
838	cd $(QWCL_RPMDIR)/$(INSTALLDIR); tar czvf qwcl-$(VERSION)-$(RPMARCH)-unknown-linux2.0.tar.gz *
839	mv $(QWCL_RPMDIR)/$(INSTALLDIR)/*.tar.gz archives/.
840	rm -rf $(QWCL_RPMDIR)
841
842copyfiles-qwcl:
843	-mkdirhier $(DESTDIR)
844	-mkdirhier $(DESTDIR)/qw
845	-mkdirhier $(DESTDIR)/qw/skins
846	cp $(BUILD_RELEASE_DIR)/qwcl $(DESTDIR)/.
847	strip $(DESTDIR)/qwcl
848	chmod 4755 $(DESTDIR)/qwcl
849	cp $(BUILD_RELEASE_DIR)/qwcl.x11 $(DESTDIR)/.
850	strip $(DESTDIR)/qwcl.x11
851	chmod 755 $(DESTDIR)/qwcl.x11
852	cp $(BUILD_RELEASE_DIR)/glqwcl $(DESTDIR)/.
853	strip $(DESTDIR)/glqwcl
854	chmod 4755 $(DESTDIR)/glqwcl
855	cp $(BUILD_RELEASE_DIR)/glqwcl.glx $(DESTDIR)/.
856	strip $(DESTDIR)/glqwcl.glx
857	chmod 4755 $(DESTDIR)/glqwcl.glx
858	cp $(TDFXGL_DIR)/release$(ARCH)/lib3dfxgl.so $(DESTDIR)/.
859	chmod 755 $(DESTDIR)/lib3dfxgl.so
860	cp $(MAINDIR)/glqwcl.3dfxgl $(DESTDIR)/.
861	chmod 755 $(DESTDIR)/glqwcl.3dfxgl
862	cp $(MAINDIR)/docs/README.qwcl $(DESTDIR)/.
863	chmod 644 $(DESTDIR)/README.qwcl
864	cp $(MAINDIR)/fixskins.sh $(DESTDIR)/qw/skins/.
865	chmod 755 $(DESTDIR)/qw/skins/fixskins.sh
866	cp $(MESA_DIR)/lib/libMesaGL.so.2.6 $(DESTDIR)
867	chmod 755 $(DESTDIR)/libMesaGL.so.2.6
868	cd $(DESTDIR); ln -sf libMesaGL.so.2.6 libMesaGL.so.2
869	cd $(DESTDIR); ln -sf libMesaGL.so.2 libMesaGL.so
870	cd $(DESTDIR); ln -sf libMesaGL.so libGL.so
871
872qwcl.spec : $(MAINDIR)/qwcl.spec.sh $(BUILD_RELEASE_DIR)/qwcl
873	sh $< $(VERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@
874
875QWSV_RPMDIR=/var/tmp/qwsv-$(VERSION)
876rpm-qwsv: qwsv.spec $(BUILD_RELEASE_DIR)/qwsv $(QWPROGS)
877	touch $(RPMROOT)/SOURCES/qwsv-$(VERSION).tar.gz
878	if [ ! -d archives ];then mkdir archives;fi
879	$(MAKE) copyfiles-qwsv DESTDIR=$(QWSV_RPMDIR)/$(INSTALLDIR)
880	cp qwsv.spec $(RPMROOT)/SPECS/qwsv.spec
881	cp $(MAINDIR)/quake.gif $(RPMROOT)/SOURCES/quake.gif
882	cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) qwsv.spec
883	cp $(RPMROOT)/RPMS/$(RPMARCH)/qwsv-$(VERSION)-$(RPM_RELEASE).$(RPMARCH).rpm archives/.
884	rm -rf $(QWSV_RPMDIR)
885
886tar-qwsv: $(BUILD_RELEASE_DIR)/qwsv $(QWPROGS)
887	if [ ! -d archives ];then mkdir archives;fi
888	$(MAKE) copyfiles-qwsv DESTDIR=$(QWSV_RPMDIR)/$(INSTALLDIR)
889	cd $(QWSV_RPMDIR)/$(INSTALLDIR); tar czvf qwsv-$(VERSION)-$(RPMARCH)-unknown-linux2.0.tar.gz *
890	mv $(QWSV_RPMDIR)/$(INSTALLDIR)/*.tar.gz archives/.
891	rm -rf $(QWSV_RPMDIR)
892
893copyfiles-qwsv:
894	-mkdirhier $(DESTDIR)
895	-mkdirhier $(DESTDIR)/qw
896	-mkdirhier $(DESTDIR)/qw/skins
897	cp $(BUILD_RELEASE_DIR)/qwsv $(DESTDIR)/.
898	strip $(DESTDIR)/qwsv
899	chmod 755 $(DESTDIR)/qwsv
900	cp $(MAINDIR)/docs/README.qwsv $(DESTDIR)/.
901	chmod 644 $(DESTDIR)/README.qwsv
902	cp $(QWPROGS) $(DESTDIR)/qw/.
903	cd $(DESTDIR)/qw; chmod 644 *
904	chmod 755 $(DESTDIR)/qw/skins
905	cp $(MAINDIR)/fixskins.sh $(DESTDIR)/qw/skins/.
906	chmod 755 $(DESTDIR)/qw/skins/fixskins.sh
907
908qwsv.spec : $(MAINDIR)/qwsv.spec.sh $(BUILD_RELEASE_DIR)/qwsv
909	sh $< $(VERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@
910
911#############################################################################
912# MISC
913#############################################################################
914
915clean: clean-debug clean-release
916
917clean-debug:
918	$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
919
920clean-release:
921	$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
922
923clean2:
924	-rm -f $(QWSV_OBJS) \
925		$(QWCL_OBJS) \
926		$(QWCL_AS_OBJS) \
927		$(QWCL_SVGA_OBJS) \
928		$(QWCL_X11_OBJS) \
929		$(GLQWCL_OBJS) \
930
931