-CMD_RM=rm -f
-endif
-
-# Objects
-CLIENTOBJECTS= cgame.o cgamevm.o chase.o cl_collision.o cl_demo.o cl_input.o \
- cl_main.o cl_parse.o cl_particles.o cl_screen.o cl_video.o \
- console.o dpvsimpledecode.o fractalnoise.o gl_backend.o \
- gl_draw.o gl_models.o gl_rmain.o gl_rsurf.o gl_textures.o \
- jpeg.o keys.o menu.o meshqueue.o r_crosshairs.o r_explosion.o \
- r_lerpanim.o r_light.o r_modules.o r_sky.o \
- r_sprites.o sbar.o ui.o vid_shared.o view.o wavefile.o \
- r_shadow.o
-SERVEROBJECTS= pr_cmds.o pr_edict.o pr_exec.o sv_light.o sv_main.o sv_move.o \
- sv_phys.o sv_user.o
-SHAREDOBJECTS= cmd.o collision.o common.o crc.o cvar.o \
- filematch.o host.o host_cmd.o image.o mathlib.o matrixlib.o \
- model_alias.o model_brush.o model_shared.o model_sprite.o \
- net_bsd.o net_dgrm.o net_loop.o net_main.o net_master.o \
- net_udp.o palette.o portals.o protocol.o fs.o \
- sys_shared.o world.o wad.o zone.o
-COMMONOBJECTS= $(CLIENTOBJECTS) $(SERVEROBJECTS) $(SHAREDOBJECTS)
-
-# note that builddate.c is very intentionally not compiled to a .o before
-# being linked, because it should be recompiled every time an executable is
-# built to give the executable a proper date string
-OBJ_GLX= builddate.c sys_linux.o vid_glx.o $(OBJ_LINUXCD) $(OBJ_LINUXSOUND) $(COMMONOBJECTS)
-OBJ_DED= builddate.c sys_linux.o vid_null.o cd_null.o snd_null.o $(COMMONOBJECTS)
-OBJ_WGL_EXE= builddate.c sys_win.o vid_wgl.o conproc.o cd_win.o snd_win.o snd_dma.o snd_mix.o snd_mem.o $(COMMONOBJECTS)
-OBJ_DED_EXE= builddate.c sys_linux.o vid_null.o cd_null.o snd_null.o $(COMMONOBJECTS)
-
-
-# Compilation
-CFLAGS_COMMON=-MD -Wall -Werr
-CFLAGS_DEBUG=-ggdb
-CFLAGS_PROFILE=-g -pg -ggdb
-CFLAGS_RELEASE=
-
-OPTIM_DEBUG=
-OPTIM_RELEASE= -O9 -fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS)
-
-DO_CC=$(CC) $(CFLAGS) -c $< -o $@
-
-
-# Link
-# LordHavoc note: I have been informed that system libraries must come last
-# on the linker line, and that -lm must always be last
-LDFLAGS_GLX=-ldl -lm
-LDFLAGS_DED=-ldl -lm
-LDFLAGS_WGL_EXE=-mwindows -lwinmm -lwsock32 -luser32 -lgdi32 -ldxguid -ldinput -lcomctl32
-LDFLAGS_DED_EXE=-mconsole -lwinmm -lwsock32
-LDFLAGS_DEBUG=-g -ggdb
-LDFLAGS_PROFILE=-g -pg
-LDFLAGS_RELEASE=
-
-EXE_GLX=darkplaces-glx
-EXE_DED=darkplaces-dedicated
-EXE_WGL_EXE=darkplaces.exe
-EXE_DED_EXE=darkplaces-dedicated.exe
-
-DO_LD=$(CC) -o $@ $^ $(LDFLAGS)
-
-
-##### Commands #####
-
-.PHONY : clean help \
- debug profile release \
- glx-debug glx-profile glx-release \
- ded-debug ded-profile ded-release \
- exedebug exeprofile exerelease \
- exewgl-debug exewgl-profile exewgl-release \
- exeded-debug exeded-profile exeded-release \
-
-help:
- @echo
- @echo "===== Choose one ====="
- @echo "* $(MAKE) clean : delete the binaries, and .o and .d files"
- @echo "* $(MAKE) help : this help"
- @echo "* $(MAKE) debug : make GLX and dedicated binaries (debug versions)"
- @echo "* $(MAKE) profile : make GLX and dedicated binaries (profile versions)"
- @echo "* $(MAKE) release : make GLX and dedicated binaries (release versions)"
- @echo "* $(MAKE) glx-debug : make GLX client (debug version)"
- @echo "* $(MAKE) glx-profile : make GLX client (profile version)"
- @echo "* $(MAKE) glx-release : make GLX client (release version)"
- @echo "* $(MAKE) ded-debug : make dedicated server (debug version)"
- @echo "* $(MAKE) ded-profile : make dedicated server (profile version)"
- @echo "* $(MAKE) ded-release : make dedicated server (release version)"
- @echo "* $(MAKE) exedebug : make WGL and dedicated binaries (debug versions)"
- @echo "* $(MAKE) exeprofile : make WGL and dedicated binaries (profile versions)"
- @echo "* $(MAKE) exerelease : make WGL and dedicated binaries (release versions)"
- @echo "* $(MAKE) exewgl-debug : make WGL client (debug version)"
- @echo "* $(MAKE) exewgl-profile : make WGL client (profile version)"
- @echo "* $(MAKE) exewgl-release : make WGL client (release version)"
- @echo "* $(MAKE) exeded-debug : make dedicated server (debug version)"
- @echo "* $(MAKE) exeded-profile : make dedicated server (profile version)"
- @echo "* $(MAKE) exeded-release : make dedicated server (release version)"
- @echo
+ CMD_RM=$(CMD_UNIXRM)
+ CMD_CP=$(CMD_UNIXCP)
+ CMD_MKDIR=$(CMD_UNIXMKDIR)
+endif
+
+# 64bits AMD CPUs use another lib directory
+ifeq ($(DP_MACHINE),x86_64)
+ UNIX_X11LIBPATH:=/usr/X11R6/lib64
+else
+ UNIX_X11LIBPATH:=/usr/X11R6/lib
+endif
+
+# default targets
+TARGETS_DEBUG=sv-debug sdl-debug
+TARGETS_PROFILE=sv-profile sdl-profile
+TARGETS_RELEASE=sv-release sdl-release
+TARGETS_RELEASE_PROFILE=sv-release-profile sdl-release-profile
+TARGETS_NEXUIZ=sv-nexuiz sdl-nexuiz
+
+###### Optional features #####
+DP_VIDEO_CAPTURE?=enabled
+ifeq ($(DP_VIDEO_CAPTURE), enabled)
+ CFLAGS_VIDEO_CAPTURE=-DCONFIG_VIDEO_CAPTURE
+ OBJ_VIDEO_CAPTURE=cap_avi.o cap_ogg.o
+else
+ CFLAGS_VIDEO_CAPTURE=
+ OBJ_VIDEO_CAPTURE=
+endif
+
+# Linux configuration
+ifeq ($(DP_MAKE_TARGET), linux)
+ OBJ_ICON=
+ OBJ_ICON_NEXUIZ=
+
+ LDFLAGS_SV=$(LDFLAGS_LINUXSV)
+ LDFLAGS_SDL=$(LDFLAGS_LINUXSDL)
+
+ SDLCONFIG_CFLAGS=$(SDLCONFIG_UNIXCFLAGS) $(SDLCONFIG_UNIXCFLAGS_X11)
+ SDLCONFIG_LIBS=$(SDLCONFIG_UNIXLIBS) $(SDLCONFIG_UNIXLIBS_X11)
+ SDLCONFIG_STATICLIBS=$(SDLCONFIG_UNIXSTATICLIBS) $(SDLCONFIG_UNIXSTATICLIBS_X11)
+
+ EXE_SV=$(EXE_UNIXSV)
+ EXE_SDL=$(EXE_UNIXSDL)
+ EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
+ EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
+
+ DP_LINK_SDL?=shared
+ DP_LINK_ZLIB?=shared
+ DP_LINK_JPEG?=shared
+ DP_LINK_ODE?=
+ DP_LINK_CRYPTO?=dlopen
+ DP_LINK_CRYPTO_RIJNDAEL?=dlopen
+ DP_LINK_XMP?=dlopen
+endif