~ubuntu-branches/ubuntu/precise/openarena/precise

« back to all changes in this revision

Viewing changes to Makefile.orig

  • Committer: Bazaar Package Importer
  • Author(s): Ansgar Burchardt
  • Date: 2008-09-05 21:14:51 UTC
  • mfrom: (1.2.1 upstream) (2.1.5 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080905211451-243bmbl6l6gdav7l
* Remove non-free code/tools/lcc (Closes: #496346)
  + Remove hunk from patch 10_fix_build_and_binary_on_alpha
  + debian/rules: Add BUILD_GAME_QVM=0 to $(MAKE) call
    (thanks to Peter De Wachter)
* Remove code/libs containing binary libraries for Mac OS X and Win32
* debian/copyright: Explain which parts of upstream's sources were removed
* debian/rules: replace ${source:Upstream-Version} by 0.7.7
  because the variable also contains the `+dfsg1' part
* Add -fsigned-char to compiler options (Closes: #487970)
  (thanks to Peter De Wachter)
* Add myself to Uploaders
* debian/control: Remove article from beginning of short description,
  don't start short description with a capital letter
* debian/openarena.6: Escape minus signs
  + fixes lintian warnings: hyphen-used-as-minus-sign

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# ioq3 Makefile
 
3
#
 
4
# GNU Make required
 
5
#
 
6
 
 
7
COMPILE_PLATFORM=$(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]')
 
8
 
 
9
COMPILE_ARCH=$(shell uname -m | sed -e s/i.86/i386/)
 
10
 
 
11
ifeq ($(COMPILE_PLATFORM),sunos)
 
12
  # Solaris uname and GNU uname differ
 
13
  COMPILE_ARCH=$(shell uname -p | sed -e s/i.86/i386/)
 
14
endif
 
15
ifeq ($(COMPILE_PLATFORM),darwin)
 
16
  # Apple does some things a little differently...
 
17
  COMPILE_ARCH=$(shell uname -p | sed -e s/i.86/i386/)
 
18
endif
 
19
 
 
20
ifeq ($(COMPILE_PLATFORM),mingw32)
 
21
  ifeq ($(COMPILE_ARCH),i386)
 
22
    COMPILE_ARCH=x86
 
23
  endif
 
24
endif
 
25
 
 
26
ifndef BUILD_CLIENT
 
27
  BUILD_CLIENT     =
 
28
endif
 
29
ifndef BUILD_CLIENT_SMP
 
30
  BUILD_CLIENT_SMP =
 
31
endif
 
32
ifndef BUILD_SERVER
 
33
  BUILD_SERVER     =
 
34
endif
 
35
ifndef BUILD_GAME_SO
 
36
  BUILD_GAME_SO    =
 
37
endif
 
38
ifndef BUILD_GAME_QVM
 
39
  BUILD_GAME_QVM   =
 
40
endif
 
41
 
 
42
ifneq ($(PLATFORM),darwin)
 
43
  BUILD_CLIENT_SMP = 0
 
44
endif
 
45
 
 
46
#############################################################################
 
47
#
 
48
# If you require a different configuration from the defaults below, create a
 
49
# new file named "Makefile.local" in the same directory as this file and define
 
50
# your parameters there. This allows you to change configuration without
 
51
# causing problems with keeping up to date with the repository.
 
52
#
 
53
#############################################################################
 
54
-include Makefile.local
 
55
 
 
56
ifndef PLATFORM
 
57
PLATFORM=$(COMPILE_PLATFORM)
 
58
endif
 
59
export PLATFORM
 
60
 
 
61
ifeq ($(COMPILE_ARCH),powerpc)
 
62
  COMPILE_ARCH=ppc
 
63
endif
 
64
 
 
65
ifndef ARCH
 
66
ARCH=$(COMPILE_ARCH)
 
67
endif
 
68
export ARCH
 
69
 
 
70
ifneq ($(PLATFORM),$(COMPILE_PLATFORM))
 
71
  CROSS_COMPILING=1
 
72
else
 
73
  CROSS_COMPILING=0
 
74
 
 
75
  ifneq ($(ARCH),$(COMPILE_ARCH))
 
76
    CROSS_COMPILING=1
 
77
  endif
 
78
endif
 
79
export CROSS_COMPILING
 
80
 
 
81
ifndef COPYDIR
 
82
COPYDIR="/usr/local/games/quake3"
 
83
endif
 
84
 
 
85
ifndef MOUNT_DIR
 
86
MOUNT_DIR=code
 
87
endif
 
88
 
 
89
ifndef BUILD_DIR
 
90
BUILD_DIR=build
 
91
endif
 
92
 
 
93
ifndef GENERATE_DEPENDENCIES
 
94
GENERATE_DEPENDENCIES=1
 
95
endif
 
96
 
 
97
ifndef USE_OPENAL
 
98
USE_OPENAL=1
 
99
endif
 
100
 
 
101
ifndef USE_OPENAL_DLOPEN
 
102
USE_OPENAL_DLOPEN=0
 
103
endif
 
104
 
 
105
ifndef USE_CURL
 
106
USE_CURL=1
 
107
endif
 
108
 
 
109
ifndef USE_CURL_DLOPEN
 
110
  ifeq ($(PLATFORM),mingw32)
 
111
    USE_CURL_DLOPEN=0
 
112
  else
 
113
    USE_CURL_DLOPEN=1
 
114
  endif
 
115
endif
 
116
 
 
117
ifndef USE_CODEC_VORBIS
 
118
USE_CODEC_VORBIS=0
 
119
endif
 
120
 
 
121
ifndef USE_LOCAL_HEADERS
 
122
USE_LOCAL_HEADERS=1
 
123
endif
 
124
 
 
125
#############################################################################
 
126
 
 
127
BD=$(BUILD_DIR)/debug-$(PLATFORM)-$(ARCH)
 
128
BR=$(BUILD_DIR)/release-$(PLATFORM)-$(ARCH)
 
129
CDIR=$(MOUNT_DIR)/client
 
130
SDIR=$(MOUNT_DIR)/server
 
131
RDIR=$(MOUNT_DIR)/renderer
 
132
CMDIR=$(MOUNT_DIR)/qcommon
 
133
SDLDIR=$(MOUNT_DIR)/sdl
 
134
ASMDIR=$(MOUNT_DIR)/asm
 
135
SYSDIR=$(MOUNT_DIR)/sys
 
136
GDIR=$(MOUNT_DIR)/game
 
137
CGDIR=$(MOUNT_DIR)/cgame
 
138
BLIBDIR=$(MOUNT_DIR)/botlib
 
139
NDIR=$(MOUNT_DIR)/null
 
140
UIDIR=$(MOUNT_DIR)/ui
 
141
Q3UIDIR=$(MOUNT_DIR)/q3_ui
 
142
JPDIR=$(MOUNT_DIR)/jpeg-6
 
143
Q3ASMDIR=$(MOUNT_DIR)/tools/asm
 
144
LBURGDIR=$(MOUNT_DIR)/tools/lcc/lburg
 
145
Q3CPPDIR=$(MOUNT_DIR)/tools/lcc/cpp
 
146
Q3LCCETCDIR=$(MOUNT_DIR)/tools/lcc/etc
 
147
Q3LCCSRCDIR=$(MOUNT_DIR)/tools/lcc/src
 
148
LOKISETUPDIR=misc/setup
 
149
SDLHDIR=$(MOUNT_DIR)/SDL12
 
150
LIBSDIR=$(MOUNT_DIR)/libs
 
151
TEMPDIR=/tmp
 
152
 
 
153
# extract version info
 
154
VERSION=$(shell grep "\#define *PRODUCT_VERSION" $(CMDIR)/q_shared.h | \
 
155
  sed -e 's/[^"]*"\(.*\)"/\1/')
 
156
 
 
157
USE_SVN=
 
158
ifeq ($(wildcard .svn),.svn)
 
159
  SVN_REV=$(shell LANG=C svnversion .)
 
160
  ifneq ($(SVN_REV),)
 
161
    SVN_VERSION=$(VERSION)_SVN$(SVN_REV)
 
162
    USE_SVN=1
 
163
  endif
 
164
endif
 
165
ifneq ($(USE_SVN),1)
 
166
    SVN_VERSION=$(VERSION)
 
167
endif
 
168
 
 
169
 
 
170
#############################################################################
 
171
# SETUP AND BUILD -- LINUX
 
172
#############################################################################
 
173
 
 
174
## Defaults
 
175
LIB=lib
 
176
 
 
177
INSTALL=install
 
178
MKDIR=mkdir
 
179
 
 
180
ifeq ($(PLATFORM),linux)
 
181
 
 
182
  ifeq ($(ARCH),alpha)
 
183
    ARCH=axp
 
184
  else
 
185
  ifeq ($(ARCH),x86_64)
 
186
    LIB=lib64
 
187
  else
 
188
  ifeq ($(ARCH),ppc64)
 
189
    LIB=lib64
 
190
  else
 
191
  ifeq ($(ARCH),s390x)
 
192
    LIB=lib64
 
193
  endif
 
194
  endif
 
195
  endif
 
196
  endif
 
197
 
 
198
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
 
199
    -pipe -DUSE_ICON $(shell sdl-config --cflags)
 
200
 
 
201
  ifeq ($(USE_OPENAL),1)
 
202
    BASE_CFLAGS += -DUSE_OPENAL
 
203
    ifeq ($(USE_OPENAL_DLOPEN),1)
 
204
      BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
 
205
    endif
 
206
  endif
 
207
 
 
208
  ifeq ($(USE_CURL),1)
 
209
    BASE_CFLAGS += -DUSE_CURL
 
210
    ifeq ($(USE_CURL_DLOPEN),1)
 
211
      BASE_CFLAGS += -DUSE_CURL_DLOPEN
 
212
    endif
 
213
  endif
 
214
 
 
215
  ifeq ($(USE_CODEC_VORBIS),1)
 
216
    BASE_CFLAGS += -DUSE_CODEC_VORBIS
 
217
  endif
 
218
 
 
219
  OPTIMIZE = -O3 -ffast-math -funroll-loops -fomit-frame-pointer
 
220
 
 
221
  ifeq ($(ARCH),x86_64)
 
222
    OPTIMIZE = -O3 -fomit-frame-pointer -ffast-math -funroll-loops \
 
223
      -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
 
224
      -fstrength-reduce
 
225
    # experimental x86_64 jit compiler! you need GNU as
 
226
    HAVE_VM_COMPILED = true
 
227
  else
 
228
  ifeq ($(ARCH),i386)
 
229
    OPTIMIZE = -O3 -march=i586 -fomit-frame-pointer -ffast-math \
 
230
      -funroll-loops -falign-loops=2 -falign-jumps=2 \
 
231
      -falign-functions=2 -fstrength-reduce
 
232
    HAVE_VM_COMPILED=true
 
233
  else
 
234
  ifeq ($(ARCH),ppc)
 
235
    BASE_CFLAGS += -maltivec
 
236
    HAVE_VM_COMPILED=false
 
237
  endif
 
238
  endif
 
239
  endif
 
240
 
 
241
  ifneq ($(HAVE_VM_COMPILED),true)
 
242
    BASE_CFLAGS += -DNO_VM_COMPILED
 
243
  endif
 
244
 
 
245
  SHLIBEXT=so
 
246
  SHLIBCFLAGS=-fPIC
 
247
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
248
 
 
249
  THREAD_LDFLAGS=-lpthread
 
250
  LDFLAGS=-ldl -lm
 
251
 
 
252
  CLIENT_LDFLAGS=$(shell sdl-config --libs) -lGL
 
253
 
 
254
  ifeq ($(USE_OPENAL),1)
 
255
    ifneq ($(USE_OPENAL_DLOPEN),1)
 
256
      CLIENT_LDFLAGS += -lopenal
 
257
    endif
 
258
  endif
 
259
 
 
260
  ifeq ($(USE_CURL),1)
 
261
    ifneq ($(USE_CURL_DLOPEN),1)
 
262
      CLIENT_LDFLAGS += -lcurl
 
263
    endif
 
264
  endif
 
265
 
 
266
  ifeq ($(USE_CODEC_VORBIS),1)
 
267
    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
 
268
  endif
 
269
 
 
270
  ifeq ($(ARCH),i386)
 
271
    # linux32 make ...
 
272
    BASE_CFLAGS += -m32
 
273
    LDFLAGS+=-m32
 
274
  else
 
275
  ifeq ($(ARCH),ppc64)
 
276
    BASE_CFLAGS += -m64
 
277
    LDFLAGS += -m64
 
278
  endif
 
279
  endif
 
280
 
 
281
  DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0
 
282
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
 
283
 
 
284
else # ifeq Linux
 
285
 
 
286
#############################################################################
 
287
# SETUP AND BUILD -- MAC OS X
 
288
#############################################################################
 
289
 
 
290
ifeq ($(PLATFORM),darwin)
 
291
  HAVE_VM_COMPILED=true
 
292
  CLIENT_LDFLAGS=
 
293
  OPTIMIZE=
 
294
  
 
295
  # building the QVMs on MacOSX is broken, atm.
 
296
  BUILD_GAME_QVM=0
 
297
  
 
298
  BASE_CFLAGS = -Wall -Wimplicit -Wstrict-prototypes
 
299
 
 
300
  ifeq ($(ARCH),ppc)
 
301
    OPTIMIZE += -faltivec -O3
 
302
  endif
 
303
  ifeq ($(ARCH),i386)
 
304
    OPTIMIZE += -march=prescott -mfpmath=sse
 
305
    # x86 vm will crash without -mstackrealign since MMX instructions will be
 
306
    # used no matter what and they corrupt the frame pointer in VM calls
 
307
    BASE_CFLAGS += -mstackrealign
 
308
  endif
 
309
 
 
310
  BASE_CFLAGS += -fno-strict-aliasing -DMACOS_X -fno-common -pipe
 
311
 
 
312
  ifeq ($(USE_OPENAL),1)
 
313
    BASE_CFLAGS += -DUSE_OPENAL
 
314
    ifneq ($(USE_OPENAL_DLOPEN),1)
 
315
      CLIENT_LDFLAGS += -framework OpenAL
 
316
    else
 
317
      BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
 
318
    endif
 
319
  endif
 
320
 
 
321
  ifeq ($(USE_CURL),1)
 
322
    BASE_CFLAGS += -DUSE_CURL
 
323
    ifneq ($(USE_CURL_DLOPEN),1)
 
324
      CLIENT_LDFLAGS += -lcurl
 
325
    else
 
326
      BASE_CFLAGS += -DUSE_CURL_DLOPEN
 
327
    endif
 
328
  endif
 
329
 
 
330
  ifeq ($(USE_CODEC_VORBIS),1)
 
331
    BASE_CFLAGS += -DUSE_CODEC_VORBIS
 
332
    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
 
333
  endif
 
334
 
 
335
  BASE_CFLAGS += -D_THREAD_SAFE=1
 
336
 
 
337
  ifeq ($(USE_LOCAL_HEADERS),1)
 
338
    BASE_CFLAGS += -I$(SDLHDIR)/include
 
339
  endif
 
340
 
 
341
  # We copy sdlmain before ranlib'ing it so that subversion doesn't think
 
342
  #  the file has been modified by each build.
 
343
  LIBSDLMAIN=$(B)/libSDLmain.a
 
344
  LIBSDLMAINSRC=$(LIBSDIR)/macosx/libSDLmain.a
 
345
  CLIENT_LDFLAGS += -framework Cocoa -framework IOKit -framework OpenGL \
 
346
    $(LIBSDIR)/macosx/libSDL-1.2.0.dylib
 
347
 
 
348
  OPTIMIZE += -ffast-math -falign-loops=16
 
349
 
 
350
  ifneq ($(HAVE_VM_COMPILED),true)
 
351
    BASE_CFLAGS += -DNO_VM_COMPILED
 
352
  endif
 
353
 
 
354
  DEBUG_CFLAGS = $(BASE_CFLAGS) -g -O0
 
355
 
 
356
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
 
357
 
 
358
  SHLIBEXT=dylib
 
359
  SHLIBCFLAGS=-fPIC -fno-common
 
360
  SHLIBLDFLAGS=-dynamiclib $(LDFLAGS)
 
361
 
 
362
  NOTSHLIBCFLAGS=-mdynamic-no-pic
 
363
 
 
364
  TOOLS_CFLAGS += -DMACOS_X
 
365
 
 
366
else # ifeq darwin
 
367
 
 
368
 
 
369
#############################################################################
 
370
# SETUP AND BUILD -- MINGW32
 
371
#############################################################################
 
372
 
 
373
ifeq ($(PLATFORM),mingw32)
 
374
 
 
375
ifndef WINDRES
 
376
WINDRES=windres
 
377
endif
 
378
 
 
379
  ARCH=x86
 
380
 
 
381
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
 
382
    -DUSE_ICON
 
383
 
 
384
  ifeq ($(USE_LOCAL_HEADERS),1)
 
385
    BASE_CFLAGS += -I$(SDLHDIR)/include
 
386
  endif
 
387
 
 
388
  ifeq ($(USE_OPENAL),1)
 
389
    BASE_CFLAGS += -DUSE_OPENAL=1 -DUSE_OPENAL_DLOPEN
 
390
  endif
 
391
 
 
392
  ifeq ($(USE_CURL),1)
 
393
    BASE_CFLAGS += -DUSE_CURL
 
394
    ifneq ($(USE_CURL_DLOPEN),1)
 
395
      BASE_CFLAGS += -DCURL_STATICLIB
 
396
    endif
 
397
  endif
 
398
 
 
399
  ifeq ($(USE_CODEC_VORBIS),1)
 
400
    BASE_CFLAGS += -DUSE_CODEC_VORBIS
 
401
  endif
 
402
 
 
403
  OPTIMIZE = -O3 -march=i586 -fno-omit-frame-pointer -ffast-math \
 
404
    -falign-loops=2 -funroll-loops -falign-jumps=2 -falign-functions=2 \
 
405
    -fstrength-reduce
 
406
 
 
407
  HAVE_VM_COMPILED = true
 
408
 
 
409
  SHLIBEXT=dll
 
410
  SHLIBCFLAGS=
 
411
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
412
 
 
413
  BINEXT=.exe
 
414
 
 
415
  LDFLAGS= -lwsock32 -lwinmm
 
416
  CLIENT_LDFLAGS = -mwindows -lgdi32 -lole32 -lopengl32
 
417
 
 
418
  ifeq ($(USE_CURL),1)
 
419
    ifneq ($(USE_CURL_DLOPEN),1)
 
420
      CLIENT_LDFLAGS += $(LIBSDIR)/win32/libcurl.a
 
421
    endif
 
422
  endif
 
423
 
 
424
  ifeq ($(USE_CODEC_VORBIS),1)
 
425
    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
 
426
  endif
 
427
 
 
428
  ifeq ($(ARCH),x86)
 
429
    # build 32bit
 
430
    BASE_CFLAGS += -m32
 
431
    LDFLAGS+=-m32
 
432
  endif
 
433
 
 
434
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g -O0
 
435
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
 
436
 
 
437
  # libmingw32 must be linked before libSDLmain
 
438
  CLIENT_LDFLAGS += -lmingw32 \
 
439
                    $(LIBSDIR)/win32/libSDLmain.a \
 
440
                    $(LIBSDIR)/win32/libSDL.dll.a
 
441
 
 
442
  BUILD_CLIENT_SMP = 0
 
443
 
 
444
else # ifeq mingw32
 
445
 
 
446
#############################################################################
 
447
# SETUP AND BUILD -- FREEBSD
 
448
#############################################################################
 
449
 
 
450
ifeq ($(PLATFORM),freebsd)
 
451
 
 
452
  ifneq (,$(findstring alpha,$(shell uname -m)))
 
453
    ARCH=axp
 
454
  else #default to i386
 
455
    ARCH=i386
 
456
  endif #alpha test
 
457
 
 
458
 
 
459
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
 
460
    -DUSE_ICON $(shell sdl-config --cflags)
 
461
 
 
462
  ifeq ($(USE_OPENAL),1)
 
463
    BASE_CFLAGS += -DUSE_OPENAL
 
464
    ifeq ($(USE_OPENAL_DLOPEN),1)
 
465
      BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
 
466
    endif
 
467
  endif
 
468
 
 
469
  ifeq ($(USE_CODEC_VORBIS),1)
 
470
    BASE_CFLAGS += -DUSE_CODEC_VORBIS
 
471
  endif
 
472
 
 
473
  ifeq ($(ARCH),axp)
 
474
    BASE_CFLAGS += -DNO_VM_COMPILED
 
475
    RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -ffast-math -funroll-loops \
 
476
      -fomit-frame-pointer -fexpensive-optimizations
 
477
  else
 
478
  ifeq ($(ARCH),i386)
 
479
    RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 -mtune=pentiumpro \
 
480
      -march=pentium -fomit-frame-pointer -pipe -ffast-math \
 
481
      -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
 
482
      -funroll-loops -fstrength-reduce
 
483
    HAVE_VM_COMPILED=true
 
484
  else
 
485
    BASE_CFLAGS += -DNO_VM_COMPILED
 
486
  endif
 
487
  endif
 
488
 
 
489
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g
 
490
 
 
491
  SHLIBEXT=so
 
492
  SHLIBCFLAGS=-fPIC
 
493
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
494
 
 
495
  THREAD_LDFLAGS=-lpthread
 
496
  # don't need -ldl (FreeBSD)
 
497
  LDFLAGS=-lm
 
498
 
 
499
  CLIENT_LDFLAGS =
 
500
 
 
501
  CLIENT_LDFLAGS += $(shell sdl-config --libs) -lGL
 
502
 
 
503
  ifeq ($(USE_OPENAL),1)
 
504
    ifneq ($(USE_OPENAL_DLOPEN),1)
 
505
      CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lopenal
 
506
    endif
 
507
  endif
 
508
 
 
509
  ifeq ($(USE_CODEC_VORBIS),1)
 
510
    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
 
511
  endif
 
512
 
 
513
 
 
514
else # ifeq freebsd
 
515
 
 
516
#############################################################################
 
517
# SETUP AND BUILD -- OPENBSD
 
518
#############################################################################
 
519
 
 
520
ifeq ($(PLATFORM),openbsd)
 
521
 
 
522
  #default to i386, no tests done on anything else
 
523
  ARCH=i386
 
524
 
 
525
 
 
526
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
 
527
    -DUSE_ICON $(shell sdl-config --cflags)
 
528
 
 
529
  ifeq ($(USE_OPENAL),1)
 
530
    BASE_CFLAGS += -DUSE_OPENAL
 
531
    ifeq ($(USE_OPENAL_DLOPEN),1)
 
532
      BASE_CFLAGS += -DUSE_OPENAL_DLOPEN
 
533
    endif
 
534
  endif
 
535
 
 
536
  ifeq ($(USE_CODEC_VORBIS),1)
 
537
    BASE_CFLAGS += -DUSE_CODEC_VORBIS
 
538
  endif
 
539
 
 
540
  BASE_CFLAGS += -DNO_VM_COMPILED -I/usr/X11R6/include -I/usr/local/include
 
541
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3 \
 
542
    -march=pentium -fomit-frame-pointer -pipe -ffast-math \
 
543
    -falign-loops=2 -falign-jumps=2 -falign-functions=2 \
 
544
    -funroll-loops -fstrength-reduce
 
545
  HAVE_VM_COMPILED=false
 
546
 
 
547
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g
 
548
 
 
549
  SHLIBEXT=so
 
550
  SHLIBCFLAGS=-fPIC
 
551
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
552
 
 
553
  THREAD_LDFLAGS=-lpthread
 
554
  LDFLAGS=-lm
 
555
 
 
556
  CLIENT_LDFLAGS =
 
557
 
 
558
  CLIENT_LDFLAGS += $(shell sdl-config --libs) -lGL
 
559
 
 
560
  ifeq ($(USE_OPENAL),1)
 
561
    ifneq ($(USE_OPENAL_DLOPEN),1)
 
562
      CLIENT_LDFLAGS += $(THREAD_LDFLAGS) -lopenal
 
563
    endif
 
564
  endif
 
565
 
 
566
  ifeq ($(USE_CODEC_VORBIS),1)
 
567
    CLIENT_LDFLAGS += -lvorbisfile -lvorbis -logg
 
568
  endif
 
569
 
 
570
 
 
571
else # ifeq openbsd
 
572
 
 
573
#############################################################################
 
574
# SETUP AND BUILD -- NETBSD
 
575
#############################################################################
 
576
 
 
577
ifeq ($(PLATFORM),netbsd)
 
578
 
 
579
  ifeq ($(shell uname -m),i386)
 
580
    ARCH=i386
 
581
  endif
 
582
 
 
583
  LDFLAGS=-lm
 
584
  SHLIBEXT=so
 
585
  SHLIBCFLAGS=-fPIC
 
586
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
587
  THREAD_LDFLAGS=-lpthread
 
588
 
 
589
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
 
590
 
 
591
  ifneq ($(ARCH),i386)
 
592
    BASE_CFLAGS += -DNO_VM_COMPILED
 
593
  endif
 
594
 
 
595
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g
 
596
 
 
597
  BUILD_CLIENT = 0
 
598
  BUILD_GAME_QVM = 0
 
599
 
 
600
else # ifeq netbsd
 
601
 
 
602
#############################################################################
 
603
# SETUP AND BUILD -- IRIX
 
604
#############################################################################
 
605
 
 
606
ifeq ($(PLATFORM),irix64)
 
607
 
 
608
  ARCH=mips  #default to MIPS
 
609
 
 
610
  CC = c99
 
611
  MKDIR = mkdir -p
 
612
 
 
613
  BASE_CFLAGS=-Dstricmp=strcasecmp -Xcpluscomm -woff 1185 \
 
614
    -I. $(shell sdl-config --cflags) -I$(ROOT)/usr/include -DNO_VM_COMPILED
 
615
  RELEASE_CFLAGS=$(BASE_CFLAGS) -O3
 
616
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g
 
617
 
 
618
  SHLIBEXT=so
 
619
  SHLIBCFLAGS=
 
620
  SHLIBLDFLAGS=-shared
 
621
 
 
622
  LDFLAGS=-ldl -lm -lgen
 
623
  # FIXME: The X libraries probably aren't necessary?
 
624
  CLIENT_LDFLAGS=-L/usr/X11/$(LIB) $(shell sdl-config --libs) -lGL \
 
625
    -lX11 -lXext -lm
 
626
 
 
627
else # ifeq IRIX
 
628
 
 
629
#############################################################################
 
630
# SETUP AND BUILD -- SunOS
 
631
#############################################################################
 
632
 
 
633
ifeq ($(PLATFORM),sunos)
 
634
 
 
635
  CC=gcc
 
636
  INSTALL=ginstall
 
637
  MKDIR=gmkdir
 
638
  COPYDIR="/usr/local/share/games/quake3"
 
639
 
 
640
  ifneq (,$(findstring i86pc,$(shell uname -m)))
 
641
    ARCH=i386
 
642
  else #default to sparc
 
643
    ARCH=sparc
 
644
  endif
 
645
 
 
646
  ifneq ($(ARCH),i386)
 
647
    ifneq ($(ARCH),sparc)
 
648
      $(error arch $(ARCH) is currently not supported)
 
649
    endif
 
650
  endif
 
651
 
 
652
 
 
653
  BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
 
654
    -pipe -DUSE_ICON $(shell sdl-config --cflags)
 
655
 
 
656
  OPTIMIZE = -O3 -ffast-math -funroll-loops
 
657
 
 
658
  ifeq ($(ARCH),sparc)
 
659
    OPTIMIZE = -O3 -ffast-math \
 
660
      -fstrength-reduce -falign-functions=2 \
 
661
      -mtune=ultrasparc3 -mv8plus -mno-faster-structs \
 
662
      -funroll-loops #-mv8plus
 
663
  else
 
664
  ifeq ($(ARCH),i386)
 
665
    OPTIMIZE = -O3 -march=i586 -fomit-frame-pointer -ffast-math \
 
666
      -funroll-loops -falign-loops=2 -falign-jumps=2 \
 
667
      -falign-functions=2 -fstrength-reduce
 
668
    HAVE_VM_COMPILED=true
 
669
    BASE_CFLAGS += -m32
 
670
    LDFLAGS += -m32
 
671
    BASE_CFLAGS += -I/usr/X11/include/NVIDIA
 
672
    CLIENT_LDFLAGS += -L/usr/X11/lib/NVIDIA -R/usr/X11/lib/NVIDIA
 
673
  endif
 
674
  endif
 
675
 
 
676
  ifneq ($(HAVE_VM_COMPILED),true)
 
677
    BASE_CFLAGS += -DNO_VM_COMPILED
 
678
  endif
 
679
 
 
680
  DEBUG_CFLAGS = $(BASE_CFLAGS) -ggdb -O0
 
681
 
 
682
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
 
683
 
 
684
  SHLIBEXT=so
 
685
  SHLIBCFLAGS=-fPIC
 
686
  SHLIBLDFLAGS=-shared $(LDFLAGS)
 
687
 
 
688
  THREAD_LDFLAGS=-lpthread
 
689
  LDFLAGS=-lsocket -lnsl -ldl -lm
 
690
 
 
691
  BOTCFLAGS=-O0
 
692
 
 
693
  CLIENT_LDFLAGS +=$(shell sdl-config --libs) -lGL
 
694
 
 
695
else # ifeq sunos
 
696
 
 
697
#############################################################################
 
698
# SETUP AND BUILD -- GENERIC
 
699
#############################################################################
 
700
  BASE_CFLAGS=-DNO_VM_COMPILED
 
701
  DEBUG_CFLAGS=$(BASE_CFLAGS) -g
 
702
  RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O3
 
703
 
 
704
  SHLIBEXT=so
 
705
  SHLIBCFLAGS=-fPIC
 
706
  SHLIBLDFLAGS=-shared
 
707
 
 
708
endif #Linux
 
709
endif #darwin
 
710
endif #mingw32
 
711
endif #FreeBSD
 
712
endif #OpenBSD
 
713
endif #NetBSD
 
714
endif #IRIX
 
715
endif #SunOS
 
716
 
 
717
TARGETS =
 
718
 
 
719
ifneq ($(BUILD_SERVER),0)
 
720
  TARGETS += $(B)/ioq3ded.$(ARCH)$(BINEXT)
 
721
endif
 
722
 
 
723
ifneq ($(BUILD_CLIENT),0)
 
724
  TARGETS += $(B)/ioquake3.$(ARCH)$(BINEXT)
 
725
  ifneq ($(BUILD_CLIENT_SMP),0)
 
726
    TARGETS += $(B)/ioquake3-smp.$(ARCH)$(BINEXT)
 
727
  endif
 
728
endif
 
729
 
 
730
ifneq ($(BUILD_GAME_SO),0)
 
731
  TARGETS += \
 
732
    $(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \
 
733
    $(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \
 
734
    $(B)/baseq3/ui$(ARCH).$(SHLIBEXT)     \
 
735
    $(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \
 
736
    $(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \
 
737
    $(B)/missionpack/ui$(ARCH).$(SHLIBEXT)
 
738
endif
 
739
 
 
740
ifneq ($(BUILD_GAME_QVM),0)
 
741
  ifneq ($(CROSS_COMPILING),1)
 
742
    TARGETS += \
 
743
      $(B)/baseq3/vm/cgame.qvm \
 
744
      $(B)/baseq3/vm/qagame.qvm \
 
745
      $(B)/baseq3/vm/ui.qvm \
 
746
      $(B)/missionpack/vm/qagame.qvm \
 
747
      $(B)/missionpack/vm/cgame.qvm \
 
748
      $(B)/missionpack/vm/ui.qvm
 
749
  endif
 
750
endif
 
751
 
 
752
ifdef DEFAULT_BASEDIR
 
753
  BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\"
 
754
endif
 
755
 
 
756
ifeq ($(USE_LOCAL_HEADERS),1)
 
757
  BASE_CFLAGS += -DUSE_LOCAL_HEADERS
 
758
endif
 
759
 
 
760
ifeq ($(GENERATE_DEPENDENCIES),1)
 
761
  DEPEND_CFLAGS = -MMD
 
762
else
 
763
  DEPEND_CFLAGS =
 
764
endif
 
765
 
 
766
ifeq ($(USE_SVN),1)
 
767
  BASE_CFLAGS += -DSVN_VERSION=\\\"$(SVN_VERSION)\\\"
 
768
endif
 
769
 
 
770
ifeq ($(V),1)
 
771
echo_cmd=@:
 
772
Q=
 
773
else
 
774
echo_cmd=@echo
 
775
Q=@
 
776
endif
 
777
 
 
778
define DO_CC
 
779
$(echo_cmd) "CC $<"
 
780
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -o $@ -c $<
 
781
endef
 
782
 
 
783
define DO_SMP_CC
 
784
$(echo_cmd) "SMP_CC $<"
 
785
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) -DSMP -o $@ -c $<
 
786
endef
 
787
 
 
788
define DO_BOT_CC
 
789
$(echo_cmd) "BOT_CC $<"
 
790
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) -DBOTLIB -o $@ -c $<
 
791
endef
 
792
 
 
793
ifeq ($(GENERATE_DEPENDENCIES),1)
 
794
  DO_QVM_DEP=cat $(@:%.o=%.d) | sed -e 's/\.o/\.asm/g' >> $(@:%.o=%.d)
 
795
endif
 
796
 
 
797
define DO_SHLIB_CC
 
798
$(echo_cmd) "SHLIB_CC $<"
 
799
$(Q)$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
800
$(Q)$(DO_QVM_DEP)
 
801
endef
 
802
 
 
803
define DO_GAME_CC
 
804
$(echo_cmd) "GAME_CC $<"
 
805
$(Q)$(CC) -DQAGAME $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
806
$(Q)$(DO_QVM_DEP)
 
807
endef
 
808
 
 
809
define DO_CGAME_CC
 
810
$(echo_cmd) "CGAME_CC $<"
 
811
$(Q)$(CC) -DCGAME $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
812
$(Q)$(DO_QVM_DEP)
 
813
endef
 
814
 
 
815
define DO_UI_CC
 
816
$(echo_cmd) "UI_CC $<"
 
817
$(Q)$(CC) -DUI $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
818
$(Q)$(DO_QVM_DEP)
 
819
endef
 
820
 
 
821
define DO_SHLIB_CC_MISSIONPACK
 
822
$(echo_cmd) "SHLIB_CC_MISSIONPACK $<"
 
823
$(Q)$(CC) -DMISSIONPACK $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
824
$(Q)$(DO_QVM_DEP)
 
825
endef
 
826
 
 
827
define DO_GAME_CC_MISSIONPACK
 
828
$(echo_cmd) "GAME_CC_MISSIONPACK $<"
 
829
$(Q)$(CC) -DMISSIONPACK -DQAGAME $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
830
$(Q)$(DO_QVM_DEP)
 
831
endef
 
832
 
 
833
define DO_CGAME_CC_MISSIONPACK
 
834
$(echo_cmd) "CGAME_CC_MISSIONPACK $<"
 
835
$(Q)$(CC) -DMISSIONPACK -DCGAME $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
836
$(Q)$(DO_QVM_DEP)
 
837
endef
 
838
 
 
839
define DO_UI_CC_MISSIONPACK
 
840
$(echo_cmd) "UI_CC_MISSIONPACK $<"
 
841
$(Q)$(CC) -DMISSIONPACK -DUI $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
 
842
$(Q)$(DO_QVM_DEP)
 
843
endef
 
844
 
 
845
define DO_AS
 
846
$(echo_cmd) "AS $<"
 
847
$(Q)$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
 
848
endef
 
849
 
 
850
define DO_DED_CC
 
851
$(echo_cmd) "DED_CC $<"
 
852
$(Q)$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) -o $@ -c $<
 
853
endef
 
854
 
 
855
define DO_WINDRES
 
856
$(echo_cmd) "WINDRES $<"
 
857
$(Q)$(WINDRES) -i $< -o $@
 
858
endef
 
859
 
 
860
 
 
861
#############################################################################
 
862
# MAIN TARGETS
 
863
#############################################################################
 
864
 
 
865
default: release
 
866
all: debug release
 
867
 
 
868
debug:
 
869
        @$(MAKE) targets B=$(BD) CFLAGS="$(CFLAGS) $(DEPEND_CFLAGS) \
 
870
                $(DEBUG_CFLAGS)" V=$(V)
 
871
 
 
872
release:
 
873
        @$(MAKE) targets B=$(BR) CFLAGS="$(CFLAGS) $(DEPEND_CFLAGS) \
 
874
                $(RELEASE_CFLAGS)" V=$(V)
 
875
 
 
876
# Create the build directories, check libraries and print out
 
877
# an informational message, then start building
 
878
targets: makedirs
 
879
        @echo ""
 
880
        @echo "Building ioquake3 in $(B):"
 
881
        @echo "  PLATFORM: $(PLATFORM)"
 
882
        @echo "  ARCH: $(ARCH)"
 
883
        @echo "  COMPILE_PLATFORM: $(COMPILE_PLATFORM)"
 
884
        @echo "  COMPILE_ARCH: $(COMPILE_ARCH)"
 
885
        @echo "  CC: $(CC)"
 
886
        @echo ""
 
887
        @echo "  CFLAGS:"
 
888
        @for i in $(CFLAGS); \
 
889
        do \
 
890
                echo "    $$i"; \
 
891
        done
 
892
        @echo ""
 
893
        @echo "  LDFLAGS:"
 
894
        @for i in $(LDFLAGS); \
 
895
        do \
 
896
                echo "    $$i"; \
 
897
        done
 
898
        @echo ""
 
899
        @echo "  Output:"
 
900
        @for i in $(TARGETS); \
 
901
        do \
 
902
                echo "    $$i"; \
 
903
        done
 
904
        @echo ""
 
905
        @$(MAKE) $(TARGETS) V=$(V)
 
906
 
 
907
makedirs:
 
908
        @if [ ! -d $(BUILD_DIR) ];then $(MKDIR) $(BUILD_DIR);fi
 
909
        @if [ ! -d $(B) ];then $(MKDIR) $(B);fi
 
910
        @if [ ! -d $(B)/client ];then $(MKDIR) $(B)/client;fi
 
911
        @if [ ! -d $(B)/clientsmp ];then $(MKDIR) $(B)/clientsmp;fi
 
912
        @if [ ! -d $(B)/ded ];then $(MKDIR) $(B)/ded;fi
 
913
        @if [ ! -d $(B)/baseq3 ];then $(MKDIR) $(B)/baseq3;fi
 
914
        @if [ ! -d $(B)/baseq3/cgame ];then $(MKDIR) $(B)/baseq3/cgame;fi
 
915
        @if [ ! -d $(B)/baseq3/game ];then $(MKDIR) $(B)/baseq3/game;fi
 
916
        @if [ ! -d $(B)/baseq3/ui ];then $(MKDIR) $(B)/baseq3/ui;fi
 
917
        @if [ ! -d $(B)/baseq3/qcommon ];then $(MKDIR) $(B)/baseq3/qcommon;fi
 
918
        @if [ ! -d $(B)/baseq3/vm ];then $(MKDIR) $(B)/baseq3/vm;fi
 
919
        @if [ ! -d $(B)/missionpack ];then $(MKDIR) $(B)/missionpack;fi
 
920
        @if [ ! -d $(B)/missionpack/cgame ];then $(MKDIR) $(B)/missionpack/cgame;fi
 
921
        @if [ ! -d $(B)/missionpack/game ];then $(MKDIR) $(B)/missionpack/game;fi
 
922
        @if [ ! -d $(B)/missionpack/ui ];then $(MKDIR) $(B)/missionpack/ui;fi
 
923
        @if [ ! -d $(B)/missionpack/qcommon ];then $(MKDIR) $(B)/missionpack/qcommon;fi
 
924
        @if [ ! -d $(B)/missionpack/vm ];then $(MKDIR) $(B)/missionpack/vm;fi
 
925
        @if [ ! -d $(B)/tools ];then $(MKDIR) $(B)/tools;fi
 
926
        @if [ ! -d $(B)/tools/asm ];then $(MKDIR) $(B)/tools/asm;fi
 
927
        @if [ ! -d $(B)/tools/etc ];then $(MKDIR) $(B)/tools/etc;fi
 
928
        @if [ ! -d $(B)/tools/rcc ];then $(MKDIR) $(B)/tools/rcc;fi
 
929
        @if [ ! -d $(B)/tools/cpp ];then $(MKDIR) $(B)/tools/cpp;fi
 
930
        @if [ ! -d $(B)/tools/lburg ];then $(MKDIR) $(B)/tools/lburg;fi
 
931
 
 
932
#############################################################################
 
933
# QVM BUILD TOOLS
 
934
#############################################################################
 
935
 
 
936
TOOLS_OPTIMIZE = -g -O2 -Wall -fno-strict-aliasing
 
937
TOOLS_CFLAGS = $(TOOLS_OPTIMIZE) \
 
938
               -DTEMPDIR=\"$(TEMPDIR)\" -DSYSTEM=\"\" \
 
939
               -I$(Q3LCCSRCDIR) \
 
940
               -I$(LBURGDIR)
 
941
TOOLS_LDFLAGS =
 
942
 
 
943
ifeq ($(GENERATE_DEPENDENCIES),1)
 
944
        TOOLS_CFLAGS += -MMD
 
945
endif
 
946
 
 
947
define DO_TOOLS_CC
 
948
$(echo_cmd) "TOOLS_CC $<"
 
949
$(Q)$(CC) $(TOOLS_CFLAGS) -o $@ -c $<
 
950
endef
 
951
 
 
952
define DO_TOOLS_CC_DAGCHECK
 
953
$(echo_cmd) "TOOLS_CC_DAGCHECK $<"
 
954
$(Q)$(CC) $(TOOLS_CFLAGS) -Wno-unused -o $@ -c $<
 
955
endef
 
956
 
 
957
LBURG       = $(B)/tools/lburg/lburg$(BINEXT)
 
958
DAGCHECK_C  = $(B)/tools/rcc/dagcheck.c
 
959
Q3RCC       = $(B)/tools/q3rcc$(BINEXT)
 
960
Q3CPP       = $(B)/tools/q3cpp$(BINEXT)
 
961
Q3LCC       = $(B)/tools/q3lcc$(BINEXT)
 
962
Q3ASM       = $(B)/tools/q3asm$(BINEXT)
 
963
 
 
964
LBURGOBJ= \
 
965
        $(B)/tools/lburg/lburg.o \
 
966
        $(B)/tools/lburg/gram.o
 
967
 
 
968
$(B)/tools/lburg/%.o: $(LBURGDIR)/%.c
 
969
        $(DO_TOOLS_CC)
 
970
 
 
971
$(LBURG): $(LBURGOBJ)
 
972
        $(echo_cmd) "LD $@"
 
973
        $(Q)$(CC) $(TOOLS_LDFLAGS) -o $@ $^
 
974
 
 
975
Q3RCCOBJ = \
 
976
  $(B)/tools/rcc/alloc.o \
 
977
  $(B)/tools/rcc/bind.o \
 
978
  $(B)/tools/rcc/bytecode.o \
 
979
  $(B)/tools/rcc/dag.o \
 
980
  $(B)/tools/rcc/dagcheck.o \
 
981
  $(B)/tools/rcc/decl.o \
 
982
  $(B)/tools/rcc/enode.o \
 
983
  $(B)/tools/rcc/error.o \
 
984
  $(B)/tools/rcc/event.o \
 
985
  $(B)/tools/rcc/expr.o \
 
986
  $(B)/tools/rcc/gen.o \
 
987
  $(B)/tools/rcc/init.o \
 
988
  $(B)/tools/rcc/inits.o \
 
989
  $(B)/tools/rcc/input.o \
 
990
  $(B)/tools/rcc/lex.o \
 
991
  $(B)/tools/rcc/list.o \
 
992
  $(B)/tools/rcc/main.o \
 
993
  $(B)/tools/rcc/null.o \
 
994
  $(B)/tools/rcc/output.o \
 
995
  $(B)/tools/rcc/prof.o \
 
996
  $(B)/tools/rcc/profio.o \
 
997
  $(B)/tools/rcc/simp.o \
 
998
  $(B)/tools/rcc/stmt.o \
 
999
  $(B)/tools/rcc/string.o \
 
1000
  $(B)/tools/rcc/sym.o \
 
1001
  $(B)/tools/rcc/symbolic.o \
 
1002
  $(B)/tools/rcc/trace.o \
 
1003
  $(B)/tools/rcc/tree.o \
 
1004
  $(B)/tools/rcc/types.o
 
1005
 
 
1006
$(DAGCHECK_C): $(LBURG) $(Q3LCCSRCDIR)/dagcheck.md
 
1007
        $(echo_cmd) "LBURG $(Q3LCCSRCDIR)/dagcheck.md"
 
1008
        $(Q)$(LBURG) $(Q3LCCSRCDIR)/dagcheck.md $@
 
1009
 
 
1010
$(B)/tools/rcc/dagcheck.o: $(DAGCHECK_C)
 
1011
        $(DO_TOOLS_CC_DAGCHECK)
 
1012
 
 
1013
$(B)/tools/rcc/%.o: $(Q3LCCSRCDIR)/%.c
 
1014
        $(DO_TOOLS_CC)
 
1015
 
 
1016
$(Q3RCC): $(Q3RCCOBJ)
 
1017
        $(echo_cmd) "LD $@"
 
1018
        $(Q)$(CC) $(TOOLS_LDFLAGS) -o $@ $^
 
1019
 
 
1020
Q3CPPOBJ = \
 
1021
        $(B)/tools/cpp/cpp.o \
 
1022
        $(B)/tools/cpp/lex.o \
 
1023
        $(B)/tools/cpp/nlist.o \
 
1024
        $(B)/tools/cpp/tokens.o \
 
1025
        $(B)/tools/cpp/macro.o \
 
1026
        $(B)/tools/cpp/eval.o \
 
1027
        $(B)/tools/cpp/include.o \
 
1028
        $(B)/tools/cpp/hideset.o \
 
1029
        $(B)/tools/cpp/getopt.o \
 
1030
        $(B)/tools/cpp/unix.o
 
1031
 
 
1032
$(B)/tools/cpp/%.o: $(Q3CPPDIR)/%.c
 
1033
        $(DO_TOOLS_CC)
 
1034
 
 
1035
$(Q3CPP): $(Q3CPPOBJ)
 
1036
        $(echo_cmd) "LD $@"
 
1037
        $(Q)$(CC) $(TOOLS_LDFLAGS) -o $@ $^
 
1038
 
 
1039
Q3LCCOBJ = \
 
1040
        $(B)/tools/etc/lcc.o \
 
1041
        $(B)/tools/etc/bytecode.o
 
1042
 
 
1043
$(B)/tools/etc/%.o: $(Q3LCCETCDIR)/%.c
 
1044
        $(DO_TOOLS_CC)
 
1045
 
 
1046
$(Q3LCC): $(Q3LCCOBJ) $(Q3RCC) $(Q3CPP)
 
1047
        $(echo_cmd) "LD $@"
 
1048
        $(Q)$(CC) $(TOOLS_LDFLAGS) -o $@ $(Q3LCCOBJ)
 
1049
 
 
1050
define DO_Q3LCC
 
1051
$(echo_cmd) "Q3LCC $<"
 
1052
$(Q)$(Q3LCC) -o $@ $<
 
1053
endef
 
1054
 
 
1055
define DO_CGAME_Q3LCC
 
1056
$(echo_cmd) "CGAME_Q3LCC $<"
 
1057
$(Q)$(Q3LCC) -DCGAME -o $@ $<
 
1058
endef
 
1059
 
 
1060
define DO_GAME_Q3LCC
 
1061
$(echo_cmd) "GAME_Q3LCC $<"
 
1062
$(Q)$(Q3LCC) -DQAGAME -o $@ $<
 
1063
endef
 
1064
 
 
1065
define DO_UI_Q3LCC
 
1066
$(echo_cmd) "UI_Q3LCC $<"
 
1067
$(Q)$(Q3LCC) -DUI -o $@ $<
 
1068
endef
 
1069
 
 
1070
define DO_Q3LCC_MISSIONPACK
 
1071
$(echo_cmd) "Q3LCC_MISSIONPACK $<"
 
1072
$(Q)$(Q3LCC) -DMISSIONPACK -o $@ $<
 
1073
endef
 
1074
 
 
1075
define DO_CGAME_Q3LCC_MISSIONPACK
 
1076
$(echo_cmd) "CGAME_Q3LCC_MISSIONPACK $<"
 
1077
$(Q)$(Q3LCC) -DMISSIONPACK -DCGAME -o $@ $<
 
1078
endef
 
1079
 
 
1080
define DO_GAME_Q3LCC_MISSIONPACK
 
1081
$(echo_cmd) "GAME_Q3LCC_MISSIONPACK $<"
 
1082
$(Q)$(Q3LCC) -DMISSIONPACK -DQAGAME -o $@ $<
 
1083
endef
 
1084
 
 
1085
define DO_UI_Q3LCC_MISSIONPACK
 
1086
$(echo_cmd) "UI_Q3LCC_MISSIONPACK $<"
 
1087
$(Q)$(Q3LCC) -DMISSIONPACK -DUI -o $@ $<
 
1088
endef
 
1089
 
 
1090
 
 
1091
Q3ASMOBJ = \
 
1092
  $(B)/tools/asm/q3asm.o \
 
1093
  $(B)/tools/asm/cmdlib.o
 
1094
 
 
1095
$(B)/tools/asm/%.o: $(Q3ASMDIR)/%.c
 
1096
        $(DO_TOOLS_CC)
 
1097
 
 
1098
$(Q3ASM): $(Q3ASMOBJ)
 
1099
        $(echo_cmd) "LD $@"
 
1100
        $(Q)$(CC) $(TOOLS_LDFLAGS) -o $@ $^
 
1101
 
 
1102
 
 
1103
#############################################################################
 
1104
# CLIENT/SERVER
 
1105
#############################################################################
 
1106
 
 
1107
Q3OBJ = \
 
1108
  $(B)/client/cl_cgame.o \
 
1109
  $(B)/client/cl_cin.o \
 
1110
  $(B)/client/cl_console.o \
 
1111
  $(B)/client/cl_input.o \
 
1112
  $(B)/client/cl_keys.o \
 
1113
  $(B)/client/cl_main.o \
 
1114
  $(B)/client/cl_net_chan.o \
 
1115
  $(B)/client/cl_parse.o \
 
1116
  $(B)/client/cl_scrn.o \
 
1117
  $(B)/client/cl_ui.o \
 
1118
  $(B)/client/cl_avi.o \
 
1119
  \
 
1120
  $(B)/client/cm_load.o \
 
1121
  $(B)/client/cm_patch.o \
 
1122
  $(B)/client/cm_polylib.o \
 
1123
  $(B)/client/cm_test.o \
 
1124
  $(B)/client/cm_trace.o \
 
1125
  \
 
1126
  $(B)/client/cmd.o \
 
1127
  $(B)/client/common.o \
 
1128
  $(B)/client/cvar.o \
 
1129
  $(B)/client/files.o \
 
1130
  $(B)/client/md4.o \
 
1131
  $(B)/client/md5.o \
 
1132
  $(B)/client/msg.o \
 
1133
  $(B)/client/net_chan.o \
 
1134
  $(B)/client/net_ip.o \
 
1135
  $(B)/client/huffman.o \
 
1136
  \
 
1137
  $(B)/client/snd_adpcm.o \
 
1138
  $(B)/client/snd_dma.o \
 
1139
  $(B)/client/snd_mem.o \
 
1140
  $(B)/client/snd_mix.o \
 
1141
  $(B)/client/snd_wavelet.o \
 
1142
  \
 
1143
  $(B)/client/snd_main.o \
 
1144
  $(B)/client/snd_codec.o \
 
1145
  $(B)/client/snd_codec_wav.o \
 
1146
  $(B)/client/snd_codec_ogg.o \
 
1147
  \
 
1148
  $(B)/client/qal.o \
 
1149
  $(B)/client/snd_openal.o \
 
1150
  \
 
1151
  $(B)/client/cl_curl.o \
 
1152
  \
 
1153
  $(B)/client/sv_bot.o \
 
1154
  $(B)/client/sv_ccmds.o \
 
1155
  $(B)/client/sv_client.o \
 
1156
  $(B)/client/sv_game.o \
 
1157
  $(B)/client/sv_init.o \
 
1158
  $(B)/client/sv_main.o \
 
1159
  $(B)/client/sv_net_chan.o \
 
1160
  $(B)/client/sv_snapshot.o \
 
1161
  $(B)/client/sv_world.o \
 
1162
  \
 
1163
  $(B)/client/q_math.o \
 
1164
  $(B)/client/q_shared.o \
 
1165
  \
 
1166
  $(B)/client/unzip.o \
 
1167
  $(B)/client/puff.o \
 
1168
  $(B)/client/vm.o \
 
1169
  $(B)/client/vm_interpreted.o \
 
1170
  \
 
1171
  $(B)/client/be_aas_bspq3.o \
 
1172
  $(B)/client/be_aas_cluster.o \
 
1173
  $(B)/client/be_aas_debug.o \
 
1174
  $(B)/client/be_aas_entity.o \
 
1175
  $(B)/client/be_aas_file.o \
 
1176
  $(B)/client/be_aas_main.o \
 
1177
  $(B)/client/be_aas_move.o \
 
1178
  $(B)/client/be_aas_optimize.o \
 
1179
  $(B)/client/be_aas_reach.o \
 
1180
  $(B)/client/be_aas_route.o \
 
1181
  $(B)/client/be_aas_routealt.o \
 
1182
  $(B)/client/be_aas_sample.o \
 
1183
  $(B)/client/be_ai_char.o \
 
1184
  $(B)/client/be_ai_chat.o \
 
1185
  $(B)/client/be_ai_gen.o \
 
1186
  $(B)/client/be_ai_goal.o \
 
1187
  $(B)/client/be_ai_move.o \
 
1188
  $(B)/client/be_ai_weap.o \
 
1189
  $(B)/client/be_ai_weight.o \
 
1190
  $(B)/client/be_ea.o \
 
1191
  $(B)/client/be_interface.o \
 
1192
  $(B)/client/l_crc.o \
 
1193
  $(B)/client/l_libvar.o \
 
1194
  $(B)/client/l_log.o \
 
1195
  $(B)/client/l_memory.o \
 
1196
  $(B)/client/l_precomp.o \
 
1197
  $(B)/client/l_script.o \
 
1198
  $(B)/client/l_struct.o \
 
1199
  \
 
1200
  $(B)/client/jcapimin.o \
 
1201
  $(B)/client/jcapistd.o \
 
1202
  $(B)/client/jchuff.o   \
 
1203
  $(B)/client/jcinit.o \
 
1204
  $(B)/client/jccoefct.o  \
 
1205
  $(B)/client/jccolor.o \
 
1206
  $(B)/client/jfdctflt.o \
 
1207
  $(B)/client/jcdctmgr.o \
 
1208
  $(B)/client/jcphuff.o \
 
1209
  $(B)/client/jcmainct.o \
 
1210
  $(B)/client/jcmarker.o \
 
1211
  $(B)/client/jcmaster.o \
 
1212
  $(B)/client/jcomapi.o \
 
1213
  $(B)/client/jcparam.o \
 
1214
  $(B)/client/jcprepct.o \
 
1215
  $(B)/client/jcsample.o \
 
1216
  $(B)/client/jdapimin.o \
 
1217
  $(B)/client/jdapistd.o \
 
1218
  $(B)/client/jdatasrc.o \
 
1219
  $(B)/client/jdcoefct.o \
 
1220
  $(B)/client/jdcolor.o \
 
1221
  $(B)/client/jddctmgr.o \
 
1222
  $(B)/client/jdhuff.o \
 
1223
  $(B)/client/jdinput.o \
 
1224
  $(B)/client/jdmainct.o \
 
1225
  $(B)/client/jdmarker.o \
 
1226
  $(B)/client/jdmaster.o \
 
1227
  $(B)/client/jdpostct.o \
 
1228
  $(B)/client/jdsample.o \
 
1229
  $(B)/client/jdtrans.o \
 
1230
  $(B)/client/jerror.o \
 
1231
  $(B)/client/jidctflt.o \
 
1232
  $(B)/client/jmemmgr.o \
 
1233
  $(B)/client/jmemnobs.o \
 
1234
  $(B)/client/jutils.o \
 
1235
  \
 
1236
  $(B)/client/tr_animation.o \
 
1237
  $(B)/client/tr_backend.o \
 
1238
  $(B)/client/tr_bsp.o \
 
1239
  $(B)/client/tr_cmds.o \
 
1240
  $(B)/client/tr_curve.o \
 
1241
  $(B)/client/tr_flares.o \
 
1242
  $(B)/client/tr_font.o \
 
1243
  $(B)/client/tr_image.o \
 
1244
  $(B)/client/tr_image_png.o \
 
1245
  $(B)/client/tr_image_jpg.o \
 
1246
  $(B)/client/tr_image_bmp.o \
 
1247
  $(B)/client/tr_image_tga.o \
 
1248
  $(B)/client/tr_image_pcx.o \
 
1249
  $(B)/client/tr_init.o \
 
1250
  $(B)/client/tr_light.o \
 
1251
  $(B)/client/tr_main.o \
 
1252
  $(B)/client/tr_marks.o \
 
1253
  $(B)/client/tr_mesh.o \
 
1254
  $(B)/client/tr_model.o \
 
1255
  $(B)/client/tr_noise.o \
 
1256
  $(B)/client/tr_scene.o \
 
1257
  $(B)/client/tr_shade.o \
 
1258
  $(B)/client/tr_shade_calc.o \
 
1259
  $(B)/client/tr_shader.o \
 
1260
  $(B)/client/tr_shadows.o \
 
1261
  $(B)/client/tr_sky.o \
 
1262
  $(B)/client/tr_surface.o \
 
1263
  $(B)/client/tr_world.o \
 
1264
  \
 
1265
  $(B)/client/sdl_gamma.o \
 
1266
  $(B)/client/sdl_input.o \
 
1267
  $(B)/client/sdl_snd.o \
 
1268
  \
 
1269
  $(B)/client/con_passive.o \
 
1270
  $(B)/client/con_log.o \
 
1271
  $(B)/client/sys_main.o
 
1272
 
 
1273
ifeq ($(ARCH),i386)
 
1274
  Q3OBJ += \
 
1275
    $(B)/client/snd_mixa.o \
 
1276
    $(B)/client/matha.o \
 
1277
    $(B)/client/ftola.o \
 
1278
    $(B)/client/snapvectora.o
 
1279
endif
 
1280
ifeq ($(ARCH),x86)
 
1281
  Q3OBJ += \
 
1282
    $(B)/client/snd_mixa.o \
 
1283
    $(B)/client/matha.o \
 
1284
    $(B)/client/ftola.o \
 
1285
    $(B)/client/snapvectora.o
 
1286
endif
 
1287
 
 
1288
ifeq ($(HAVE_VM_COMPILED),true)
 
1289
  ifeq ($(ARCH),i386)
 
1290
    Q3OBJ += $(B)/client/vm_x86.o
 
1291
  endif
 
1292
  ifeq ($(ARCH),x86)
 
1293
    Q3OBJ += $(B)/client/vm_x86.o
 
1294
  endif
 
1295
  ifeq ($(ARCH),x86_64)
 
1296
    Q3OBJ += $(B)/client/vm_x86_64.o $(B)/client/vm_x86_64_assembler.o
 
1297
  endif
 
1298
  ifeq ($(ARCH),ppc)
 
1299
    Q3OBJ += $(B)/client/vm_ppc.o
 
1300
  endif
 
1301
endif
 
1302
 
 
1303
ifeq ($(PLATFORM),mingw32)
 
1304
  Q3OBJ += \
 
1305
    $(B)/client/win_resource.o \
 
1306
    $(B)/client/sys_win32.o
 
1307
else
 
1308
  Q3OBJ += \
 
1309
    $(B)/client/sys_unix.o
 
1310
endif
 
1311
 
 
1312
Q3POBJ += \
 
1313
  $(B)/client/sdl_glimp.o
 
1314
 
 
1315
Q3POBJ_SMP += \
 
1316
  $(B)/clientsmp/sdl_glimp.o
 
1317
 
 
1318
$(B)/ioquake3.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ) $(LIBSDLMAIN)
 
1319
        $(echo_cmd) "LD $@"
 
1320
        $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(CLIENT_LDFLAGS) \
 
1321
                $(LDFLAGS) $(LIBSDLMAIN)
 
1322
 
 
1323
$(B)/ioquake3-smp.$(ARCH)$(BINEXT): $(Q3OBJ) $(Q3POBJ_SMP) $(LIBSDLMAIN)
 
1324
        $(echo_cmd) "LD $@"
 
1325
        $(Q)$(CC) -o $@ $(Q3OBJ) $(Q3POBJ_SMP) $(CLIENT_LDFLAGS) \
 
1326
                $(THREAD_LDFLAGS) $(LDFLAGS) $(LIBSDLMAIN)
 
1327
 
 
1328
ifneq ($(strip $(LIBSDLMAIN)),)
 
1329
ifneq ($(strip $(LIBSDLMAINSRC)),)
 
1330
$(LIBSDLMAIN) : $(LIBSDLMAINSRC)
 
1331
        cp $< $@
 
1332
        ranlib $@
 
1333
endif
 
1334
endif
 
1335
 
 
1336
 
 
1337
 
 
1338
#############################################################################
 
1339
# DEDICATED SERVER
 
1340
#############################################################################
 
1341
 
 
1342
Q3DOBJ = \
 
1343
  $(B)/ded/sv_bot.o \
 
1344
  $(B)/ded/sv_client.o \
 
1345
  $(B)/ded/sv_ccmds.o \
 
1346
  $(B)/ded/sv_game.o \
 
1347
  $(B)/ded/sv_init.o \
 
1348
  $(B)/ded/sv_main.o \
 
1349
  $(B)/ded/sv_net_chan.o \
 
1350
  $(B)/ded/sv_snapshot.o \
 
1351
  $(B)/ded/sv_world.o \
 
1352
  \
 
1353
  $(B)/ded/cm_load.o \
 
1354
  $(B)/ded/cm_patch.o \
 
1355
  $(B)/ded/cm_polylib.o \
 
1356
  $(B)/ded/cm_test.o \
 
1357
  $(B)/ded/cm_trace.o \
 
1358
  $(B)/ded/cmd.o \
 
1359
  $(B)/ded/common.o \
 
1360
  $(B)/ded/cvar.o \
 
1361
  $(B)/ded/files.o \
 
1362
  $(B)/ded/md4.o \
 
1363
  $(B)/ded/msg.o \
 
1364
  $(B)/ded/net_chan.o \
 
1365
  $(B)/ded/net_ip.o \
 
1366
  $(B)/ded/huffman.o \
 
1367
  \
 
1368
  $(B)/ded/q_math.o \
 
1369
  $(B)/ded/q_shared.o \
 
1370
  \
 
1371
  $(B)/ded/unzip.o \
 
1372
  $(B)/ded/vm.o \
 
1373
  $(B)/ded/vm_interpreted.o \
 
1374
  \
 
1375
  $(B)/ded/be_aas_bspq3.o \
 
1376
  $(B)/ded/be_aas_cluster.o \
 
1377
  $(B)/ded/be_aas_debug.o \
 
1378
  $(B)/ded/be_aas_entity.o \
 
1379
  $(B)/ded/be_aas_file.o \
 
1380
  $(B)/ded/be_aas_main.o \
 
1381
  $(B)/ded/be_aas_move.o \
 
1382
  $(B)/ded/be_aas_optimize.o \
 
1383
  $(B)/ded/be_aas_reach.o \
 
1384
  $(B)/ded/be_aas_route.o \
 
1385
  $(B)/ded/be_aas_routealt.o \
 
1386
  $(B)/ded/be_aas_sample.o \
 
1387
  $(B)/ded/be_ai_char.o \
 
1388
  $(B)/ded/be_ai_chat.o \
 
1389
  $(B)/ded/be_ai_gen.o \
 
1390
  $(B)/ded/be_ai_goal.o \
 
1391
  $(B)/ded/be_ai_move.o \
 
1392
  $(B)/ded/be_ai_weap.o \
 
1393
  $(B)/ded/be_ai_weight.o \
 
1394
  $(B)/ded/be_ea.o \
 
1395
  $(B)/ded/be_interface.o \
 
1396
  $(B)/ded/l_crc.o \
 
1397
  $(B)/ded/l_libvar.o \
 
1398
  $(B)/ded/l_log.o \
 
1399
  $(B)/ded/l_memory.o \
 
1400
  $(B)/ded/l_precomp.o \
 
1401
  $(B)/ded/l_script.o \
 
1402
  $(B)/ded/l_struct.o \
 
1403
  \
 
1404
  $(B)/ded/null_client.o \
 
1405
  $(B)/ded/null_input.o \
 
1406
  $(B)/ded/null_snddma.o \
 
1407
  \
 
1408
  $(B)/ded/con_log.o \
 
1409
  $(B)/ded/sys_main.o
 
1410
 
 
1411
ifeq ($(ARCH),i386)
 
1412
  Q3DOBJ += \
 
1413
      $(B)/ded/ftola.o \
 
1414
      $(B)/ded/snapvectora.o \
 
1415
      $(B)/ded/matha.o
 
1416
endif
 
1417
ifeq ($(ARCH),x86)
 
1418
  Q3DOBJ += \
 
1419
      $(B)/ded/ftola.o \
 
1420
      $(B)/ded/snapvectora.o \
 
1421
      $(B)/ded/matha.o
 
1422
endif
 
1423
 
 
1424
ifeq ($(HAVE_VM_COMPILED),true)
 
1425
  ifeq ($(ARCH),i386)
 
1426
    Q3DOBJ += $(B)/ded/vm_x86.o
 
1427
  endif
 
1428
  ifeq ($(ARCH),x86)
 
1429
    Q3DOBJ += $(B)/ded/vm_x86.o
 
1430
  endif
 
1431
  ifeq ($(ARCH),x86_64)
 
1432
    Q3DOBJ += $(B)/ded/vm_x86_64.o $(B)/client/vm_x86_64_assembler.o
 
1433
  endif
 
1434
  ifeq ($(ARCH),ppc)
 
1435
    Q3DOBJ += $(B)/ded/vm_ppc.o
 
1436
  endif
 
1437
endif
 
1438
 
 
1439
ifeq ($(PLATFORM),mingw32)
 
1440
  Q3DOBJ += \
 
1441
    $(B)/ded/win_resource.o \
 
1442
    $(B)/ded/sys_win32.o \
 
1443
    $(B)/ded/con_win32.o
 
1444
else
 
1445
  Q3DOBJ += \
 
1446
    $(B)/ded/sys_unix.o \
 
1447
    $(B)/ded/con_tty.o
 
1448
endif
 
1449
 
 
1450
$(B)/ioq3ded.$(ARCH)$(BINEXT): $(Q3DOBJ)
 
1451
        $(echo_cmd) "LD $@"
 
1452
        $(Q)$(CC) -o $@ $(Q3DOBJ) $(LDFLAGS)
 
1453
 
 
1454
 
 
1455
 
 
1456
#############################################################################
 
1457
## BASEQ3 CGAME
 
1458
#############################################################################
 
1459
 
 
1460
Q3CGOBJ_ = \
 
1461
  $(B)/baseq3/cgame/cg_main.o \
 
1462
  $(B)/baseq3/cgame/bg_misc.o \
 
1463
  $(B)/baseq3/cgame/bg_pmove.o \
 
1464
  $(B)/baseq3/cgame/bg_slidemove.o \
 
1465
  $(B)/baseq3/cgame/bg_lib.o \
 
1466
  $(B)/baseq3/cgame/cg_consolecmds.o \
 
1467
  $(B)/baseq3/cgame/cg_draw.o \
 
1468
  $(B)/baseq3/cgame/cg_drawtools.o \
 
1469
  $(B)/baseq3/cgame/cg_effects.o \
 
1470
  $(B)/baseq3/cgame/cg_ents.o \
 
1471
  $(B)/baseq3/cgame/cg_event.o \
 
1472
  $(B)/baseq3/cgame/cg_info.o \
 
1473
  $(B)/baseq3/cgame/cg_localents.o \
 
1474
  $(B)/baseq3/cgame/cg_marks.o \
 
1475
  $(B)/baseq3/cgame/cg_players.o \
 
1476
  $(B)/baseq3/cgame/cg_playerstate.o \
 
1477
  $(B)/baseq3/cgame/cg_predict.o \
 
1478
  $(B)/baseq3/cgame/cg_scoreboard.o \
 
1479
  $(B)/baseq3/cgame/cg_servercmds.o \
 
1480
  $(B)/baseq3/cgame/cg_snapshot.o \
 
1481
  $(B)/baseq3/cgame/cg_view.o \
 
1482
  $(B)/baseq3/cgame/cg_weapons.o \
 
1483
  \
 
1484
  $(B)/baseq3/qcommon/q_math.o \
 
1485
  $(B)/baseq3/qcommon/q_shared.o
 
1486
 
 
1487
Q3CGOBJ = $(Q3CGOBJ_) $(B)/baseq3/cgame/cg_syscalls.o
 
1488
Q3CGVMOBJ = $(Q3CGOBJ_:%.o=%.asm)
 
1489
 
 
1490
$(B)/baseq3/cgame$(ARCH).$(SHLIBEXT): $(Q3CGOBJ)
 
1491
        $(echo_cmd) "LD $@"
 
1492
        $(Q)$(CC) $(SHLIBLDFLAGS) -o $@ $(Q3CGOBJ)
 
1493
 
 
1494
$(B)/baseq3/vm/cgame.qvm: $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM)
 
1495
        $(echo_cmd) "Q3ASM $@"
 
1496
        $(Q)$(Q3ASM) -o $@ $(Q3CGVMOBJ) $(CGDIR)/cg_syscalls.asm
 
1497
 
 
1498
#############################################################################
 
1499
## MISSIONPACK CGAME
 
1500
#############################################################################
 
1501
 
 
1502
MPCGOBJ_ = \
 
1503
  $(B)/missionpack/cgame/cg_main.o \
 
1504
  $(B)/missionpack/cgame/bg_misc.o \
 
1505
  $(B)/missionpack/cgame/bg_pmove.o \
 
1506
  $(B)/missionpack/cgame/bg_slidemove.o \
 
1507
  $(B)/missionpack/cgame/bg_lib.o \
 
1508
  $(B)/missionpack/cgame/cg_consolecmds.o \
 
1509
  $(B)/missionpack/cgame/cg_newdraw.o \
 
1510
  $(B)/missionpack/cgame/cg_draw.o \
 
1511
  $(B)/missionpack/cgame/cg_drawtools.o \
 
1512
  $(B)/missionpack/cgame/cg_effects.o \
 
1513
  $(B)/missionpack/cgame/cg_ents.o \
 
1514
  $(B)/missionpack/cgame/cg_event.o \
 
1515
  $(B)/missionpack/cgame/cg_info.o \
 
1516
  $(B)/missionpack/cgame/cg_localents.o \
 
1517
  $(B)/missionpack/cgame/cg_marks.o \
 
1518
  $(B)/missionpack/cgame/cg_players.o \
 
1519
  $(B)/missionpack/cgame/cg_playerstate.o \
 
1520
  $(B)/missionpack/cgame/cg_predict.o \
 
1521
  $(B)/missionpack/cgame/cg_scoreboard.o \
 
1522
  $(B)/missionpack/cgame/cg_servercmds.o \
 
1523
  $(B)/missionpack/cgame/cg_snapshot.o \
 
1524
  $(B)/missionpack/cgame/cg_view.o \
 
1525
  $(B)/missionpack/cgame/cg_weapons.o \
 
1526
  $(B)/missionpack/ui/ui_shared.o \
 
1527
  \
 
1528
  $(B)/missionpack/qcommon/q_math.o \
 
1529
  $(B)/missionpack/qcommon/q_shared.o
 
1530
 
 
1531
MPCGOBJ = $(MPCGOBJ_) $(B)/missionpack/cgame/cg_syscalls.o
 
1532
MPCGVMOBJ = $(MPCGOBJ_:%.o=%.asm)
 
1533
 
 
1534
$(B)/missionpack/cgame$(ARCH).$(SHLIBEXT): $(MPCGOBJ)
 
1535
        $(echo_cmd) "LD $@"
 
1536
        $(Q)$(CC) $(SHLIBLDFLAGS) -o $@ $(MPCGOBJ)
 
1537
 
 
1538
$(B)/missionpack/vm/cgame.qvm: $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm $(Q3ASM)
 
1539
        $(echo_cmd) "Q3ASM $@"
 
1540
        $(Q)$(Q3ASM) -o $@ $(MPCGVMOBJ) $(CGDIR)/cg_syscalls.asm
 
1541
 
 
1542
 
 
1543
 
 
1544
#############################################################################
 
1545
## BASEQ3 GAME
 
1546
#############################################################################
 
1547
 
 
1548
Q3GOBJ_ = \
 
1549
  $(B)/baseq3/game/g_main.o \
 
1550
  $(B)/baseq3/game/ai_chat.o \
 
1551
  $(B)/baseq3/game/ai_cmd.o \
 
1552
  $(B)/baseq3/game/ai_dmnet.o \
 
1553
  $(B)/baseq3/game/ai_dmq3.o \
 
1554
  $(B)/baseq3/game/ai_main.o \
 
1555
  $(B)/baseq3/game/ai_team.o \
 
1556
  $(B)/baseq3/game/ai_vcmd.o \
 
1557
  $(B)/baseq3/game/bg_misc.o \
 
1558
  $(B)/baseq3/game/bg_pmove.o \
 
1559
  $(B)/baseq3/game/bg_slidemove.o \
 
1560
  $(B)/baseq3/game/bg_lib.o \
 
1561
  $(B)/baseq3/game/g_active.o \
 
1562
  $(B)/baseq3/game/g_arenas.o \
 
1563
  $(B)/baseq3/game/g_bot.o \
 
1564
  $(B)/baseq3/game/g_client.o \
 
1565
  $(B)/baseq3/game/g_cmds.o \
 
1566
  $(B)/baseq3/game/g_combat.o \
 
1567
  $(B)/baseq3/game/g_items.o \
 
1568
  $(B)/baseq3/game/g_mem.o \
 
1569
  $(B)/baseq3/game/g_misc.o \
 
1570
  $(B)/baseq3/game/g_missile.o \
 
1571
  $(B)/baseq3/game/g_mover.o \
 
1572
  $(B)/baseq3/game/g_session.o \
 
1573
  $(B)/baseq3/game/g_spawn.o \
 
1574
  $(B)/baseq3/game/g_svcmds.o \
 
1575
  $(B)/baseq3/game/g_target.o \
 
1576
  $(B)/baseq3/game/g_team.o \
 
1577
  $(B)/baseq3/game/g_trigger.o \
 
1578
  $(B)/baseq3/game/g_utils.o \
 
1579
  $(B)/baseq3/game/g_weapon.o \
 
1580
  \
 
1581
  $(B)/baseq3/qcommon/q_math.o \
 
1582
  $(B)/baseq3/qcommon/q_shared.o
 
1583
 
 
1584
Q3GOBJ = $(Q3GOBJ_) $(B)/baseq3/game/g_syscalls.o
 
1585
Q3GVMOBJ = $(Q3GOBJ_:%.o=%.asm)
 
1586
 
 
1587
$(B)/baseq3/qagame$(ARCH).$(SHLIBEXT): $(Q3GOBJ)
 
1588
        $(echo_cmd) "LD $@"
 
1589
        $(Q)$(CC) $(SHLIBLDFLAGS) -o $@ $(Q3GOBJ)
 
1590
 
 
1591
$(B)/baseq3/vm/qagame.qvm: $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM)
 
1592
        $(echo_cmd) "Q3ASM $@"
 
1593
        $(Q)$(Q3ASM) -o $@ $(Q3GVMOBJ) $(GDIR)/g_syscalls.asm
 
1594
 
 
1595
#############################################################################
 
1596
## MISSIONPACK GAME
 
1597
#############################################################################
 
1598
 
 
1599
MPGOBJ_ = \
 
1600
  $(B)/missionpack/game/g_main.o \
 
1601
  $(B)/missionpack/game/ai_chat.o \
 
1602
  $(B)/missionpack/game/ai_cmd.o \
 
1603
  $(B)/missionpack/game/ai_dmnet.o \
 
1604
  $(B)/missionpack/game/ai_dmq3.o \
 
1605
  $(B)/missionpack/game/ai_main.o \
 
1606
  $(B)/missionpack/game/ai_team.o \
 
1607
  $(B)/missionpack/game/ai_vcmd.o \
 
1608
  $(B)/missionpack/game/bg_misc.o \
 
1609
  $(B)/missionpack/game/bg_pmove.o \
 
1610
  $(B)/missionpack/game/bg_slidemove.o \
 
1611
  $(B)/missionpack/game/bg_lib.o \
 
1612
  $(B)/missionpack/game/g_active.o \
 
1613
  $(B)/missionpack/game/g_arenas.o \
 
1614
  $(B)/missionpack/game/g_bot.o \
 
1615
  $(B)/missionpack/game/g_client.o \
 
1616
  $(B)/missionpack/game/g_cmds.o \
 
1617
  $(B)/missionpack/game/g_combat.o \
 
1618
  $(B)/missionpack/game/g_items.o \
 
1619
  $(B)/missionpack/game/g_mem.o \
 
1620
  $(B)/missionpack/game/g_misc.o \
 
1621
  $(B)/missionpack/game/g_missile.o \
 
1622
  $(B)/missionpack/game/g_mover.o \
 
1623
  $(B)/missionpack/game/g_session.o \
 
1624
  $(B)/missionpack/game/g_spawn.o \
 
1625
  $(B)/missionpack/game/g_svcmds.o \
 
1626
  $(B)/missionpack/game/g_target.o \
 
1627
  $(B)/missionpack/game/g_team.o \
 
1628
  $(B)/missionpack/game/g_trigger.o \
 
1629
  $(B)/missionpack/game/g_utils.o \
 
1630
  $(B)/missionpack/game/g_weapon.o \
 
1631
  \
 
1632
  $(B)/missionpack/qcommon/q_math.o \
 
1633
  $(B)/missionpack/qcommon/q_shared.o
 
1634
 
 
1635
MPGOBJ = $(MPGOBJ_) $(B)/missionpack/game/g_syscalls.o
 
1636
MPGVMOBJ = $(MPGOBJ_:%.o=%.asm)
 
1637
 
 
1638
$(B)/missionpack/qagame$(ARCH).$(SHLIBEXT): $(MPGOBJ)
 
1639
        $(echo_cmd) "LD $@"
 
1640
        $(Q)$(CC) $(SHLIBLDFLAGS) -o $@ $(MPGOBJ)
 
1641
 
 
1642
$(B)/missionpack/vm/qagame.qvm: $(MPGVMOBJ) $(GDIR)/g_syscalls.asm $(Q3ASM)
 
1643
        $(echo_cmd) "Q3ASM $@"
 
1644
        $(Q)$(Q3ASM) -o $@ $(MPGVMOBJ) $(GDIR)/g_syscalls.asm
 
1645
 
 
1646
 
 
1647
 
 
1648
#############################################################################
 
1649
## BASEQ3 UI
 
1650
#############################################################################
 
1651
 
 
1652
Q3UIOBJ_ = \
 
1653
  $(B)/baseq3/ui/ui_main.o \
 
1654
  $(B)/baseq3/ui/bg_misc.o \
 
1655
  $(B)/baseq3/ui/bg_lib.o \
 
1656
  $(B)/baseq3/ui/ui_addbots.o \
 
1657
  $(B)/baseq3/ui/ui_atoms.o \
 
1658
  $(B)/baseq3/ui/ui_cdkey.o \
 
1659
  $(B)/baseq3/ui/ui_cinematics.o \
 
1660
  $(B)/baseq3/ui/ui_confirm.o \
 
1661
  $(B)/baseq3/ui/ui_connect.o \
 
1662
  $(B)/baseq3/ui/ui_controls2.o \
 
1663
  $(B)/baseq3/ui/ui_credits.o \
 
1664
  $(B)/baseq3/ui/ui_demo2.o \
 
1665
  $(B)/baseq3/ui/ui_display.o \
 
1666
  $(B)/baseq3/ui/ui_gameinfo.o \
 
1667
  $(B)/baseq3/ui/ui_ingame.o \
 
1668
  $(B)/baseq3/ui/ui_loadconfig.o \
 
1669
  $(B)/baseq3/ui/ui_menu.o \
 
1670
  $(B)/baseq3/ui/ui_mfield.o \
 
1671
  $(B)/baseq3/ui/ui_mods.o \
 
1672
  $(B)/baseq3/ui/ui_network.o \
 
1673
  $(B)/baseq3/ui/ui_options.o \
 
1674
  $(B)/baseq3/ui/ui_playermodel.o \
 
1675
  $(B)/baseq3/ui/ui_players.o \
 
1676
  $(B)/baseq3/ui/ui_playersettings.o \
 
1677
  $(B)/baseq3/ui/ui_preferences.o \
 
1678
  $(B)/baseq3/ui/ui_qmenu.o \
 
1679
  $(B)/baseq3/ui/ui_removebots.o \
 
1680
  $(B)/baseq3/ui/ui_saveconfig.o \
 
1681
  $(B)/baseq3/ui/ui_serverinfo.o \
 
1682
  $(B)/baseq3/ui/ui_servers2.o \
 
1683
  $(B)/baseq3/ui/ui_setup.o \
 
1684
  $(B)/baseq3/ui/ui_sound.o \
 
1685
  $(B)/baseq3/ui/ui_sparena.o \
 
1686
  $(B)/baseq3/ui/ui_specifyserver.o \
 
1687
  $(B)/baseq3/ui/ui_splevel.o \
 
1688
  $(B)/baseq3/ui/ui_sppostgame.o \
 
1689
  $(B)/baseq3/ui/ui_spskill.o \
 
1690
  $(B)/baseq3/ui/ui_startserver.o \
 
1691
  $(B)/baseq3/ui/ui_team.o \
 
1692
  $(B)/baseq3/ui/ui_teamorders.o \
 
1693
  $(B)/baseq3/ui/ui_video.o \
 
1694
  \
 
1695
  $(B)/baseq3/qcommon/q_math.o \
 
1696
  $(B)/baseq3/qcommon/q_shared.o
 
1697
 
 
1698
Q3UIOBJ = $(Q3UIOBJ_) $(B)/missionpack/ui/ui_syscalls.o
 
1699
Q3UIVMOBJ = $(Q3UIOBJ_:%.o=%.asm)
 
1700
 
 
1701
$(B)/baseq3/ui$(ARCH).$(SHLIBEXT): $(Q3UIOBJ)
 
1702
        $(echo_cmd) "LD $@"
 
1703
        $(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(Q3UIOBJ)
 
1704
 
 
1705
$(B)/baseq3/vm/ui.qvm: $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM)
 
1706
        $(echo_cmd) "Q3ASM $@"
 
1707
        $(Q)$(Q3ASM) -o $@ $(Q3UIVMOBJ) $(UIDIR)/ui_syscalls.asm
 
1708
 
 
1709
#############################################################################
 
1710
## MISSIONPACK UI
 
1711
#############################################################################
 
1712
 
 
1713
MPUIOBJ_ = \
 
1714
  $(B)/missionpack/ui/ui_main.o \
 
1715
  $(B)/missionpack/ui/ui_atoms.o \
 
1716
  $(B)/missionpack/ui/ui_gameinfo.o \
 
1717
  $(B)/missionpack/ui/ui_players.o \
 
1718
  $(B)/missionpack/ui/ui_shared.o \
 
1719
  \
 
1720
  $(B)/missionpack/ui/bg_misc.o \
 
1721
  $(B)/missionpack/ui/bg_lib.o \
 
1722
  \
 
1723
  $(B)/missionpack/qcommon/q_math.o \
 
1724
  $(B)/missionpack/qcommon/q_shared.o
 
1725
 
 
1726
MPUIOBJ = $(MPUIOBJ_) $(B)/missionpack/ui/ui_syscalls.o
 
1727
MPUIVMOBJ = $(MPUIOBJ_:%.o=%.asm)
 
1728
 
 
1729
$(B)/missionpack/ui$(ARCH).$(SHLIBEXT): $(MPUIOBJ)
 
1730
        $(echo_cmd) "LD $@"
 
1731
        $(Q)$(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(MPUIOBJ)
 
1732
 
 
1733
$(B)/missionpack/vm/ui.qvm: $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm $(Q3ASM)
 
1734
        $(echo_cmd) "Q3ASM $@"
 
1735
        $(Q)$(Q3ASM) -o $@ $(MPUIVMOBJ) $(UIDIR)/ui_syscalls.asm
 
1736
 
 
1737
 
 
1738
 
 
1739
#############################################################################
 
1740
## CLIENT/SERVER RULES
 
1741
#############################################################################
 
1742
 
 
1743
$(B)/client/%.o: $(ASMDIR)/%.s
 
1744
        $(DO_AS)
 
1745
 
 
1746
$(B)/client/%.o: $(CDIR)/%.c
 
1747
        $(DO_CC)
 
1748
 
 
1749
$(B)/client/%.o: $(SDIR)/%.c
 
1750
        $(DO_CC)
 
1751
 
 
1752
$(B)/client/%.o: $(CMDIR)/%.c
 
1753
        $(DO_CC)
 
1754
 
 
1755
$(B)/client/%.o: $(BLIBDIR)/%.c
 
1756
        $(DO_BOT_CC)
 
1757
 
 
1758
$(B)/client/%.o: $(JPDIR)/%.c
 
1759
        $(DO_CC)
 
1760
 
 
1761
$(B)/client/%.o: $(RDIR)/%.c
 
1762
        $(DO_CC)
 
1763
 
 
1764
$(B)/client/%.o: $(SDLDIR)/%.c
 
1765
        $(DO_CC)
 
1766
 
 
1767
$(B)/clientsmp/%.o: $(SDLDIR)/%.c
 
1768
        $(DO_SMP_CC)
 
1769
 
 
1770
$(B)/client/%.o: $(SYSDIR)/%.c
 
1771
        $(DO_CC)
 
1772
 
 
1773
$(B)/client/%.o: $(SYSDIR)/%.rc
 
1774
        $(DO_WINDRES)
 
1775
 
 
1776
 
 
1777
$(B)/ded/%.o: $(ASMDIR)/%.s
 
1778
        $(DO_AS)
 
1779
 
 
1780
$(B)/ded/%.o: $(SDIR)/%.c
 
1781
        $(DO_DED_CC)
 
1782
 
 
1783
$(B)/ded/%.o: $(CMDIR)/%.c
 
1784
        $(DO_DED_CC)
 
1785
 
 
1786
$(B)/ded/%.o: $(BLIBDIR)/%.c
 
1787
        $(DO_BOT_CC)
 
1788
 
 
1789
$(B)/ded/%.o: $(SYSDIR)/%.c
 
1790
        $(DO_DED_CC)
 
1791
 
 
1792
$(B)/ded/%.o: $(SYSDIR)/%.rc
 
1793
        $(DO_WINDRES)
 
1794
 
 
1795
$(B)/ded/%.o: $(NDIR)/%.c
 
1796
        $(DO_DED_CC)
 
1797
 
 
1798
# Extra dependencies to ensure the SVN version is incorporated
 
1799
ifeq ($(USE_SVN),1)
 
1800
  $(B)/client/cl_console.o : .svn/entries
 
1801
  $(B)/client/common.o : .svn/entries
 
1802
  $(B)/ded/common.o : .svn/entries
 
1803
endif
 
1804
 
 
1805
 
 
1806
#############################################################################
 
1807
## GAME MODULE RULES
 
1808
#############################################################################
 
1809
 
 
1810
$(B)/baseq3/cgame/bg_%.o: $(GDIR)/bg_%.c
 
1811
        $(DO_CGAME_CC)
 
1812
 
 
1813
$(B)/baseq3/cgame/%.o: $(CGDIR)/%.c
 
1814
        $(DO_CGAME_CC)
 
1815
 
 
1816
$(B)/baseq3/cgame/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
 
1817
        $(DO_CGAME_Q3LCC)
 
1818
 
 
1819
$(B)/baseq3/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC)
 
1820
        $(DO_CGAME_Q3LCC)
 
1821
 
 
1822
$(B)/missionpack/cgame/bg_%.o: $(GDIR)/bg_%.c
 
1823
        $(DO_CGAME_CC_MISSIONPACK)
 
1824
 
 
1825
$(B)/missionpack/cgame/%.o: $(CGDIR)/%.c
 
1826
        $(DO_CGAME_CC_MISSIONPACK)
 
1827
 
 
1828
$(B)/missionpack/cgame/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
 
1829
        $(DO_CGAME_Q3LCC_MISSIONPACK)
 
1830
 
 
1831
$(B)/missionpack/cgame/%.asm: $(CGDIR)/%.c $(Q3LCC)
 
1832
        $(DO_CGAME_Q3LCC_MISSIONPACK)
 
1833
 
 
1834
 
 
1835
$(B)/baseq3/game/%.o: $(GDIR)/%.c
 
1836
        $(DO_GAME_CC)
 
1837
 
 
1838
$(B)/baseq3/game/%.asm: $(GDIR)/%.c $(Q3LCC)
 
1839
        $(DO_GAME_Q3LCC)
 
1840
 
 
1841
$(B)/missionpack/game/%.o: $(GDIR)/%.c
 
1842
        $(DO_GAME_CC_MISSIONPACK)
 
1843
 
 
1844
$(B)/missionpack/game/%.asm: $(GDIR)/%.c $(Q3LCC)
 
1845
        $(DO_GAME_Q3LCC_MISSIONPACK)
 
1846
 
 
1847
 
 
1848
$(B)/baseq3/ui/bg_%.o: $(GDIR)/bg_%.c
 
1849
        $(DO_UI_CC)
 
1850
 
 
1851
$(B)/baseq3/ui/%.o: $(Q3UIDIR)/%.c
 
1852
        $(DO_UI_CC)
 
1853
 
 
1854
$(B)/baseq3/ui/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
 
1855
        $(DO_UI_Q3LCC)
 
1856
 
 
1857
$(B)/baseq3/ui/%.asm: $(Q3UIDIR)/%.c $(Q3LCC)
 
1858
        $(DO_UI_Q3LCC)
 
1859
 
 
1860
$(B)/missionpack/ui/bg_%.o: $(GDIR)/bg_%.c
 
1861
        $(DO_UI_CC_MISSIONPACK)
 
1862
 
 
1863
$(B)/missionpack/ui/%.o: $(UIDIR)/%.c
 
1864
        $(DO_UI_CC_MISSIONPACK)
 
1865
 
 
1866
$(B)/missionpack/ui/bg_%.asm: $(GDIR)/bg_%.c $(Q3LCC)
 
1867
        $(DO_UI_Q3LCC_MISSIONPACK)
 
1868
 
 
1869
$(B)/missionpack/ui/%.asm: $(UIDIR)/%.c $(Q3LCC)
 
1870
        $(DO_UI_Q3LCC_MISSIONPACK)
 
1871
 
 
1872
 
 
1873
$(B)/baseq3/qcommon/%.o: $(CMDIR)/%.c
 
1874
        $(DO_SHLIB_CC)
 
1875
 
 
1876
$(B)/baseq3/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC)
 
1877
        $(DO_Q3LCC)
 
1878
 
 
1879
$(B)/missionpack/qcommon/%.o: $(CMDIR)/%.c
 
1880
        $(DO_SHLIB_CC_MISSIONPACK)
 
1881
 
 
1882
$(B)/missionpack/qcommon/%.asm: $(CMDIR)/%.c $(Q3LCC)
 
1883
        $(DO_Q3LCC_MISSIONPACK)
 
1884
 
 
1885
 
 
1886
#############################################################################
 
1887
# MISC
 
1888
#############################################################################
 
1889
 
 
1890
OBJ = $(Q3OBJ) $(Q3POBJ) $(Q3POBJ_SMP) $(Q3DOBJ) \
 
1891
  $(MPGOBJ) $(Q3GOBJ) $(Q3CGOBJ) $(MPCGOBJ) $(Q3UIOBJ) $(MPUIOBJ) \
 
1892
  $(MPGVMOBJ) $(Q3GVMOBJ) $(Q3CGVMOBJ) $(MPCGVMOBJ) $(Q3UIVMOBJ) $(MPUIVMOBJ)
 
1893
TOOLSOBJ = $(LBURGOBJ) $(Q3CPPOBJ) $(Q3RCCOBJ) $(Q3LCCOBJ) $(Q3ASMOBJ)
 
1894
 
 
1895
 
 
1896
copyfiles: release
 
1897
        @if [ ! -d $(COPYDIR)/baseq3 ]; then echo "You need to set COPYDIR to where your Quake3 data is!"; fi
 
1898
        -$(MKDIR) -p -m 0755 $(COPYDIR)/baseq3
 
1899
        -$(MKDIR) -p -m 0755 $(COPYDIR)/missionpack
 
1900
 
 
1901
ifneq ($(BUILD_CLIENT),0)
 
1902
        $(INSTALL) -s -m 0755 $(BR)/ioquake3.$(ARCH)$(BINEXT) $(COPYDIR)/ioquake3.$(ARCH)$(BINEXT)
 
1903
endif
 
1904
 
 
1905
# Don't copy the SMP until it's working together with SDL.
 
1906
#ifneq ($(BUILD_CLIENT_SMP),0)
 
1907
#       $(INSTALL) -s -m 0755 $(BR)/ioquake3-smp.$(ARCH)$(BINEXT) $(COPYDIR)/ioquake3-smp.$(ARCH)$(BINEXT)
 
1908
#endif
 
1909
 
 
1910
ifneq ($(BUILD_SERVER),0)
 
1911
        @if [ -f $(BR)/ioq3ded.$(ARCH)$(BINEXT) ]; then \
 
1912
                $(INSTALL) -s -m 0755 $(BR)/ioq3ded.$(ARCH)$(BINEXT) $(COPYDIR)/ioq3ded.$(ARCH)$(BINEXT); \
 
1913
        fi
 
1914
endif
 
1915
 
 
1916
ifneq ($(BUILD_GAME_SO),0)
 
1917
        $(INSTALL) -s -m 0755 $(BR)/baseq3/cgame$(ARCH).$(SHLIBEXT) \
 
1918
                                        $(COPYDIR)/baseq3/.
 
1919
        $(INSTALL) -s -m 0755 $(BR)/baseq3/qagame$(ARCH).$(SHLIBEXT) \
 
1920
                                        $(COPYDIR)/baseq3/.
 
1921
        $(INSTALL) -s -m 0755 $(BR)/baseq3/ui$(ARCH).$(SHLIBEXT) \
 
1922
                                        $(COPYDIR)/baseq3/.
 
1923
        -$(MKDIR) -p -m 0755 $(COPYDIR)/missionpack
 
1924
        $(INSTALL) -s -m 0755 $(BR)/missionpack/cgame$(ARCH).$(SHLIBEXT) \
 
1925
                                        $(COPYDIR)/missionpack/.
 
1926
        $(INSTALL) -s -m 0755 $(BR)/missionpack/qagame$(ARCH).$(SHLIBEXT) \
 
1927
                                        $(COPYDIR)/missionpack/.
 
1928
        $(INSTALL) -s -m 0755 $(BR)/missionpack/ui$(ARCH).$(SHLIBEXT) \
 
1929
                                        $(COPYDIR)/missionpack/.
 
1930
endif
 
1931
 
 
1932
clean: clean-debug clean-release
 
1933
        @$(MAKE) -C $(LOKISETUPDIR) clean
 
1934
 
 
1935
clean-debug:
 
1936
        @$(MAKE) clean2 B=$(BD)
 
1937
 
 
1938
clean-release:
 
1939
        @$(MAKE) clean2 B=$(BR)
 
1940
 
 
1941
clean2:
 
1942
        @echo "CLEAN $(B)"
 
1943
        @rm -f $(OBJ)
 
1944
        @rm -f $(OBJ_D_FILES)
 
1945
        @rm -f $(TARGETS)
 
1946
 
 
1947
toolsclean: toolsclean-debug toolsclean-release
 
1948
 
 
1949
toolsclean-debug:
 
1950
        @$(MAKE) toolsclean2 B=$(BD)
 
1951
 
 
1952
toolsclean-release:
 
1953
        @$(MAKE) toolsclean2 B=$(BR)
 
1954
 
 
1955
toolsclean2:
 
1956
        @echo "TOOLS_CLEAN $(B)"
 
1957
        @rm -f $(TOOLSOBJ)
 
1958
        @rm -f $(TOOLSOBJ_D_FILES)
 
1959
        @rm -f $(LBURG) $(DAGCHECK_C) $(Q3RCC) $(Q3CPP) $(Q3LCC) $(Q3ASM)
 
1960
 
 
1961
distclean: clean toolsclean
 
1962
        @rm -rf $(BUILD_DIR)
 
1963
 
 
1964
installer: release
 
1965
        @$(MAKE) VERSION=$(VERSION) -C $(LOKISETUPDIR) V=$(V)
 
1966
 
 
1967
dist:
 
1968
        rm -rf ioquake3-$(SVN_VERSION)
 
1969
        svn export . ioquake3-$(SVN_VERSION)
 
1970
        tar --owner=root --group=root --force-local -cjf ioquake3-$(SVN_VERSION).tar.bz2 ioquake3-$(SVN_VERSION)
 
1971
        rm -rf ioquake3-$(SVN_VERSION)
 
1972
 
 
1973
#############################################################################
 
1974
# DEPENDENCIES
 
1975
#############################################################################
 
1976
 
 
1977
OBJ_D_FILES=$(filter %.d,$(OBJ:%.o=%.d))
 
1978
TOOLSOBJ_D_FILES=$(filter %.d,$(TOOLSOBJ:%.o=%.d))
 
1979
-include $(OBJ_D_FILES) $(TOOLSOBJ_D_FILES)
 
1980
 
 
1981
.PHONY: all clean clean2 clean-debug clean-release copyfiles \
 
1982
        debug default dist distclean installer makedirs \
 
1983
        release targets \
 
1984
        toolsclean toolsclean2 toolsclean-debug toolsclean-release