1 ##### DP_MAKE_TARGET autodetection and arch specific variables #####
11 DP_ARCH:=$(shell uname)
12 ifneq ($(filter %BSD,$(DP_ARCH)),)
15 ifeq ($(DP_ARCH), Darwin)
18 ifeq ($(DP_ARCH), SunOS)
23 endif # ifeq ($(DP_ARCH), SunOS)
24 endif # ifeq ($(DP_ARCH), Darwin)
25 endif # ifneq ($(filter %BSD,$(DP_ARCH)),)
27 endif # ifndef DP_MAKE_TARGET
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)
36 # Command used to delete files
43 # 64bits AMD CPUs use another lib directory
44 ifeq ($(DP_MACHINE),x86_64)
45 UNIX_X11LIBPATH:=/usr/X11R6/lib64
47 UNIX_X11LIBPATH:=/usr/X11R6/lib
52 ifeq ($(DP_MAKE_TARGET), linux)
60 LDFLAGS_CL=$(LDFLAGS_LINUXCL)
61 LDFLAGS_SV=$(LDFLAGS_LINUXSV)
62 LDFLAGS_SDL=$(LDFLAGS_LINUXSDL)
64 SDLCONFIG_CFLAGS=$(SDLCONFIG_UNIXCFLAGS)
65 SDLCONFIG_LIBS=$(SDLCONFIG_UNIXLIBS)
66 SDLCONFIG_STATICLIBS=$(SDLCONFIG_UNIXSTATICLIBS)
70 EXE_SDL=$(EXE_UNIXSDL)
71 EXE_CLNEXUIZ=$(EXE_UNIXCLNEXUIZ)
72 EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
73 EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
76 # Mac OS X configuration
77 ifeq ($(DP_MAKE_TARGET), macosx)
78 DEFAULT_SNDAPI=COREAUDIO
79 OBJ_CD=$(OBJ_MACOSXCD)
85 LDFLAGS_CL=$(LDFLAGS_MACOSXCL)
86 LDFLAGS_SV=$(LDFLAGS_MACOSXSV)
87 LDFLAGS_SDL=$(LDFLAGS_MACOSXSDL)
89 SDLCONFIG_CFLAGS=$(SDLCONFIG_MACOSXCFLAGS)
90 SDLCONFIG_LIBS=$(SDLCONFIG_MACOSXLIBS)
91 SDLCONFIG_STATICLIBS=$(SDLCONFIG_MACOSXSTATICLIBS)
93 EXE_CL=$(EXE_MACOSXCL)
95 EXE_SDL=$(EXE_UNIXSDL)
96 EXE_CLNEXUIZ=$(EXE_MACOSXCLNEXUIZ)
97 EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
98 EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
100 ifeq ($(word 2, $(filter -arch, $(CC))), -arch)
105 # SunOS configuration (Solaris)
106 ifeq ($(DP_MAKE_TARGET), sunos)
108 OBJ_CD=$(OBJ_SUNOSCD)
114 CFLAGS_EXTRA=$(CFLAGS_SUNOS)
116 LDFLAGS_CL=$(LDFLAGS_SUNOSCL)
117 LDFLAGS_SV=$(LDFLAGS_SUNOSSV)
118 LDFLAGS_SDL=$(LDFLAGS_SUNOSSDL)
120 SDLCONFIG_CFLAGS=$(SDLCONFIG_UNIXCFLAGS)
121 SDLCONFIG_LIBS=$(SDLCONFIG_UNIXLIBS)
122 SDLCONFIG_STATICLIBS=$(SDLCONFIG_UNIXSTATICLIBS)
126 EXE_SDL=$(EXE_UNIXSDL)
127 EXE_CLNEXUIZ=$(EXE_UNIXCLNEXUIZ)
128 EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
129 EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
133 ifeq ($(DP_MAKE_TARGET), bsd)
134 ifeq ($(DP_ARCH),FreeBSD)
145 LDFLAGS_CL=$(LDFLAGS_BSDCL)
146 LDFLAGS_SV=$(LDFLAGS_BSDSV)
147 LDFLAGS_SDL=$(LDFLAGS_BSDSDL)
149 SDLCONFIG_CFLAGS=$(SDLCONFIG_UNIXCFLAGS)
150 SDLCONFIG_LIBS=$(SDLCONFIG_UNIXLIBS)
151 SDLCONFIG_STATICLIBS=$(SDLCONFIG_UNIXSTATICLIBS)
155 EXE_SDL=$(EXE_UNIXSDL)
156 EXE_CLNEXUIZ=$(EXE_UNIXCLNEXUIZ)
157 EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
158 EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
161 # Win32 configuration
162 ifeq ($(WIN32RELEASE), 1)
163 # TARGET=i686-pc-mingw32
165 # WINDRES=$(TARGET)-windres
166 CPUOPTIMIZATIONS=-march=i686 -fno-math-errno -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fno-trapping-math -DUSE_WSPIAPI_H
167 LDFLAGS_WINCOMMON=-Wl,--large-address-aware
172 ifeq ($(WIN64RELEASE), 1)
173 # TARGET=x86_64-pc-mingw32
175 # WINDRES=$(TARGET)-windres
179 CFLAGS_D3D=-DSUPPORTD3D -DSUPPORTDIRECTX
180 CFLAGS_WARNINGS=-Wall
184 CFLAGS_WARNINGS=-Wall -Wold-style-definition -Wstrict-prototypes -Wsign-compare -Wdeclaration-after-statement
189 ifeq ($(DP_MAKE_TARGET), mingw)
194 OBJ_ICON=darkplaces.o
195 OBJ_ICON_NEXUIZ=nexuiz.o
197 LDFLAGS_CL=$(LDFLAGS_WINCL)
198 LDFLAGS_SV=$(LDFLAGS_WINSV)
199 LDFLAGS_SDL=$(LDFLAGS_WINSDL)
201 SDLCONFIG_CFLAGS=$(SDLCONFIG_UNIXCFLAGS)
202 SDLCONFIG_LIBS=$(SDLCONFIG_UNIXLIBS)
203 SDLCONFIG_STATICLIBS=$(SDLCONFIG_UNIXSTATICLIBS)
207 EXE_SDL=$(EXE_WINSDL)
208 EXE_CLNEXUIZ=$(EXE_WINCLNEXUIZ)
209 EXE_SVNEXUIZ=$(EXE_WINSVNEXUIZ)
210 EXE_SDLNEXUIZ=$(EXE_WINSDLNEXUIZ)
213 ##### Sound configuration #####
216 DP_SOUND_API=$(DEFAULT_SNDAPI)
220 ifeq ($(DP_SOUND_API), NULL)
221 OBJ_SOUND=$(OBJ_SND_NULL)
222 LIB_SOUND=$(LIB_SND_NULL)
225 # OSS: Open Sound System
226 ifeq ($(DP_SOUND_API), OSS)
227 OBJ_SOUND=$(OBJ_SND_OSS)
228 LIB_SOUND=$(LIB_SND_OSS)
231 # ALSA: Advanced Linux Sound Architecture
232 ifeq ($(DP_SOUND_API), ALSA)
233 OBJ_SOUND=$(OBJ_SND_ALSA)
234 LIB_SOUND=$(LIB_SND_ALSA)
237 # COREAUDIO: Core Audio
238 ifeq ($(DP_SOUND_API), COREAUDIO)
239 OBJ_SOUND=$(OBJ_SND_COREAUDIO)
240 LIB_SOUND=$(LIB_SND_COREAUDIO)
243 # BSD: BSD / Sun audio API
244 ifeq ($(DP_SOUND_API), BSD)
245 OBJ_SOUND=$(OBJ_SND_BSD)
246 LIB_SOUND=$(LIB_SND_BSD)
249 # WIN: DirectX and Win32 WAVE output
250 ifeq ($(DP_SOUND_API), WIN)
251 OBJ_SOUND=$(OBJ_SND_WIN)
252 LIB_SOUND=$(LIB_SND_WIN)
255 ifeq ($(DP_SOUND_API),3DRAS)
256 OBJ_SOUND=$(OBJ_SND_3DRAS)
257 LIB_SOUND=$(LIB_SND_3DRAS)
260 ##### Extra CFLAGS #####
264 CFLAGS_FS=-DDP_FS_BASEDIR='\"$(DP_FS_BASEDIR)\"'
270 ifneq ($(DP_MAKE_TARGET), mingw)
271 ifdef DP_PRELOAD_DEPENDENCIES
272 # DP_PRELOAD_DEPENDENCIES: when set, link against the libraries needed using -l
273 # dynamically so they won't get loaded at runtime using dlopen
274 LDFLAGS_CL+=$(LDFLAGS_UNIXCL_PRELOAD)
275 LDFLAGS_SV+=$(LDFLAGS_UNIXSV_PRELOAD)
276 LDFLAGS_SDL+=$(LDFLAGS_UNIXSDL_PRELOAD)
277 CFLAGS_PRELOAD=$(CFLAGS_UNIX_PRELOAD)
281 ifdef DP_LINK_TO_LIBJPEG
282 LDFLAGS_LIBJPEG?=-ljpeg
283 LDFLAGS_CL+=$(LDFLAGS_LIBJPEG)
284 LDFLAGS_SV+=$(LDFLAGS_LIBJPEG)
285 LDFLAGS_SDL+=$(LDFLAGS_LIBJPEG)
286 CFLAGS_PRELOAD+=$(CFLAGS_LIBJPEG) -DLINK_TO_LIBJPEG
289 ##### GNU Make specific definitions #####
291 DO_LD=$(CC) -o $@ $^ $(LDFLAGS)
294 ##### Definitions shared by all makefiles #####
298 ##### Dependency files #####