]> icculus.org git repositories - divverent/darkplaces.git/blob - makefile
implemented cl_particles_quake cvar to use quake-style particle effects
[divverent/darkplaces.git] / makefile
1 #####  DP_MAKE_TARGET autodetection and arch specific variables ##### 
2
3 ifndef DP_MAKE_TARGET
4
5 # Win32
6 ifdef windir
7         DP_MAKE_TARGET=mingw
8 else
9
10 # UNIXes
11 DP_ARCH:=$(shell uname)
12 ifneq ($(filter %BSD,$(DP_ARCH)),)
13         DP_MAKE_TARGET=bsd
14 else
15 ifeq ($(DP_ARCH), Darwin)
16         DP_MAKE_TARGET=macosx
17 else
18 ifeq ($(DP_ARCH), SunOS)
19         DP_MAKE_TARGET=sunos
20 else
21         DP_MAKE_TARGET=linux
22
23 endif  # ifeq ($(DP_ARCH), SunOS)
24 endif  # ifeq ($(DP_ARCH), Darwin)
25 endif  # ifneq ($(filter %BSD,$(DP_ARCH)),)
26 endif  # ifdef windir
27 endif  # ifndef DP_MAKE_TARGET
28
29 # If we're not on compiling for Win32, we need additional information
30 ifneq ($(DP_MAKE_TARGET), mingw)
31         DP_ARCH:=$(shell uname)
32         DP_MACHINE:=$(shell uname -m)
33 endif
34
35
36 # Command used to delete files
37 ifdef windir
38         CMD_RM=del
39 else
40         CMD_RM=$(CMD_UNIXRM)
41 endif
42
43 # 64bits AMD CPUs use another lib directory
44 ifeq ($(DP_MACHINE),x86_64)
45         UNIX_X11LIBPATH:=/usr/X11R6/lib64
46 else
47         UNIX_X11LIBPATH:=/usr/X11R6/lib
48 endif
49
50
51 # Linux configuration
52 ifeq ($(DP_MAKE_TARGET), linux)
53         DEFAULT_SNDAPI=ALSA
54         OBJ_CD=$(OBJ_LINUXCD)
55
56         OBJ_CL=$(OBJ_GLX)
57
58         LDFLAGS_CL=$(LDFLAGS_LINUXCL)
59         LDFLAGS_SV=$(LDFLAGS_LINUXSV)
60         LDFLAGS_SDL=$(LDFLAGS_LINUXSDL)
61
62         EXE_CL=$(EXE_UNIXCL)
63         EXE_SV=$(EXE_UNIXSV)
64         EXE_SDL=$(EXE_UNIXSDL)
65 endif
66
67 # Mac OS X configuration
68 ifeq ($(DP_MAKE_TARGET), macosx)
69         DEFAULT_SNDAPI=COREAUDIO
70         OBJ_CD=$(OBJ_MACOSXCD)
71
72         OBJ_CL=$(OBJ_AGL)
73
74         LDFLAGS_CL=$(LDFLAGS_MACOSXCL)
75         LDFLAGS_SV=$(LDFLAGS_MACOSXSV)
76         LDFLAGS_SDL=$(LDFLAGS_MACOSXSDL)
77
78         EXE_CL=$(EXE_MACOSXCL)
79         EXE_SV=$(EXE_UNIXSV)
80         EXE_SDL=$(EXE_UNIXSDL)
81 endif
82
83 # SunOS configuration (Solaris)
84 ifeq ($(DP_MAKE_TARGET), sunos)
85         DEFAULT_SNDAPI=BSD
86         OBJ_CD=$(OBJ_SUNOSCD)
87
88         OBJ_CL=$(OBJ_GLX)
89
90         CFLAGS_EXTRA=$(CFLAGS_SUNOS)
91
92         LDFLAGS_CL=$(LDFLAGS_SUNOSCL)
93         LDFLAGS_SV=$(LDFLAGS_SUNOSSV)
94         LDFLAGS_SDL=$(LDFLAGS_SUNOSSDL)
95
96         EXE_CL=$(EXE_UNIXCL)
97         EXE_SV=$(EXE_UNIXSV)
98         EXE_SDL=$(EXE_UNIXSDL)
99 endif
100
101 # BSD configuration
102 ifeq ($(DP_MAKE_TARGET), bsd)
103 ifeq ($(DP_ARCH),FreeBSD)
104         DEFAULT_SNDAPI=OSS
105 else
106         DEFAULT_SNDAPI=BSD
107 endif
108         OBJ_CD=$(OBJ_BSDCD)
109
110         OBJ_CL=$(OBJ_GLX)
111
112         LDFLAGS_CL=$(LDFLAGS_BSDCL)
113         LDFLAGS_SV=$(LDFLAGS_BSDSV)
114         LDFLAGS_SDL=$(LDFLAGS_BSDSDL)
115
116         EXE_CL=$(EXE_UNIXCL)
117         EXE_SV=$(EXE_UNIXSV)
118         EXE_SDL=$(EXE_UNIXSDL)
119 endif
120
121 # Win32 configuration
122 ifeq ($(DP_MAKE_TARGET), mingw)
123         DEFAULT_SNDAPI=WIN
124         OBJ_CD=$(OBJ_WINCD)
125
126         OBJ_CL=$(OBJ_WGL)
127
128         LDFLAGS_CL=$(LDFLAGS_WINCL)
129         LDFLAGS_SV=$(LDFLAGS_WINSV)
130         LDFLAGS_SDL=$(LDFLAGS_WINSDL)
131
132         EXE_CL=$(EXE_WINCL)
133         EXE_SV=$(EXE_WINSV)
134         EXE_SDL=$(EXE_WINSDL)
135 endif
136
137
138 ##### Sound configuration #####
139
140 ifndef DP_SOUND_API
141         DP_SOUND_API=$(DEFAULT_SNDAPI)
142 endif
143
144 # NULL: no sound
145 ifeq ($(DP_SOUND_API), NULL)
146         OBJ_SOUND=$(OBJ_SND_NULL)
147         LIB_SOUND=$(LIB_SND_NULL)
148 endif
149
150 # OSS: Open Sound System
151 ifeq ($(DP_SOUND_API), OSS)
152         OBJ_SOUND=$(OBJ_SND_OSS)
153         LIB_SOUND=$(LIB_SND_OSS)
154 endif
155
156 # ALSA: Advanced Linux Sound Architecture
157 ifeq ($(DP_SOUND_API), ALSA)
158         OBJ_SOUND=$(OBJ_SND_ALSA)
159         LIB_SOUND=$(LIB_SND_ALSA)
160 endif
161
162 # COREAUDIO: Core Audio
163 ifeq ($(DP_SOUND_API), COREAUDIO)
164         OBJ_SOUND=$(OBJ_SND_COREAUDIO)
165         LIB_SOUND=$(LIB_SND_COREAUDIO)
166 endif
167
168 # BSD: BSD / Sun audio API
169 ifeq ($(DP_SOUND_API), BSD)
170         OBJ_SOUND=$(OBJ_SND_BSD)
171         LIB_SOUND=$(LIB_SND_BSD)
172 endif
173
174 # WIN: DirectX and Win32 WAVE output
175 ifeq ($(DP_SOUND_API), WIN)
176         OBJ_SOUND=$(OBJ_SND_WIN)
177         LIB_SOUND=$(LIB_SND_WIN)
178 endif
179
180
181 ##### GNU Make specific definitions #####
182
183 DO_LD=$(CC) -o $@ $^ $(LDFLAGS)
184
185
186 ##### Definitions shared by all makefiles #####
187 include makefile.inc
188
189
190 ##### Dependency files #####
191
192 -include *.d