]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - makefile
Make d0_rijndael library optional again.
[xonotic/darkplaces.git] / makefile
index 7a8a4cfb9ca05a986c69e8c5ac4eb15dab907519..3e543f62e5390a71f5524a0833661df428047c63 100644 (file)
--- a/makefile
+++ b/makefile
@@ -32,12 +32,18 @@ ifneq ($(DP_MAKE_TARGET), mingw)
        DP_MACHINE:=$(shell uname -m)
 endif
 
+# Makefile name
+MAKEFILE=makefile
 
-# Command used to delete files
+# Commands
 ifdef windir
        CMD_RM=del
+       CMD_CP=copy /y
+       CMD_MKDIR=mkdir
 else
        CMD_RM=$(CMD_UNIXRM)
+       CMD_CP=$(CMD_UNIXCP)
+       CMD_MKDIR=$(CMD_UNIXMKDIR)
 endif
 
 # 64bits AMD CPUs use another lib directory
@@ -54,6 +60,29 @@ TARGETS_RELEASE=sv-release cl-release sdl-release
 TARGETS_RELEASE_PROFILE=sv-release-profile cl-release-profile sdl-release-profile
 TARGETS_NEXUIZ=sv-nexuiz cl-nexuiz sdl-nexuiz
 
+###### Optional features #####
+DP_CDDA?=enabled
+ifeq ($(DP_CDDA), enabled)
+       OBJ_SDLCD=$(OBJ_CD_COMMON) cd_sdl.o
+       OBJ_LINUXCD=$(OBJ_CD_COMMON) cd_linux.o
+       OBJ_BSDCD=$(OBJ_CD_COMMON) cd_bsd.o
+       OBJ_WINCD=$(OBJ_CD_COMMON) cd_win.o
+else
+       OBJ_SDLCD=$(OBJ_CD_COMMON) $(OBJ_NOCD)
+       OBJ_LINUXCD=$(OBJ_CD_COMMON) $(OBJ_NOCD)
+       OBJ_BSDCD=$(OBJ_CD_COMMON) $(OBJ_NOCD)
+       OBJ_WINCD=$(OBJ_CD_COMMON) $(OBJ_NOCD)
+endif
+
+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)
        DEFAULT_SNDAPI=ALSA
@@ -78,9 +107,11 @@ ifeq ($(DP_MAKE_TARGET), linux)
        EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
        EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
 
-       # libjpeg dependency (set these to "" if you want to use dynamic loading instead)
-       CFLAGS_LIBJPEG=-DLINK_TO_LIBJPEG
-       LIB_JPEG=-ljpeg
+       DP_LINK_ZLIB?=shared
+       DP_LINK_JPEG?=shared
+       DP_LINK_ODE?=dlopen
+       DP_LINK_CRYPTO?=dlopen
+       DP_LINK_CRYPTO_RIJNDAEL?=dlopen
 endif
 
 # Mac OS X configuration
@@ -111,10 +142,11 @@ ifeq ($(DP_MAKE_TARGET), macosx)
                CFLAGS_MAKEDEP=
        endif
 
-       # libjpeg dependency (set these to "" if you want to use dynamic loading instead)
-       # we don't currently link to libjpeg on Mac because the OS does not have an easy way to load libjpeg and we provide our own in the .app
-       CFLAGS_LIBJPEG=
-       LIB_JPEG=
+       DP_LINK_ZLIB?=shared
+       DP_LINK_JPEG?=shared
+       DP_LINK_ODE?=dlopen
+       DP_LINK_CRYPTO?=dlopen
+       DP_LINK_CRYPTO_RIJNDAEL?=dlopen
 
        # on OS X, we don't build the CL by default because it uses deprecated
        # and not-implemented-in-64bit Carbon
@@ -151,9 +183,11 @@ ifeq ($(DP_MAKE_TARGET), sunos)
        EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
        EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
 
-       # libjpeg dependency (set these to "" if you want to use dynamic loading instead)
-       CFLAGS_LIBJPEG=-DLINK_TO_LIBJPEG
-       LIB_JPEG=-ljpeg
+       DP_LINK_ZLIB?=shared
+       DP_LINK_JPEG?=shared
+       DP_LINK_ODE?=dlopen
+       DP_LINK_CRYPTO?=dlopen
+       DP_LINK_CRYPTO_RIJNDAEL?=dlopen
 endif
 
 # BSD configuration
@@ -184,9 +218,11 @@ endif
        EXE_SVNEXUIZ=$(EXE_UNIXSVNEXUIZ)
        EXE_SDLNEXUIZ=$(EXE_UNIXSDLNEXUIZ)
 
-       # libjpeg dependency (set these to "" if you want to use dynamic loading instead)
-       CFLAGS_LIBJPEG=-DLINK_TO_LIBJPEG
-       LIB_JPEG=-ljpeg
+       DP_LINK_ZLIB?=shared
+       DP_LINK_JPEG?=shared
+       DP_LINK_ODE?=dlopen
+       DP_LINK_CRYPTO?=dlopen
+       DP_LINK_CRYPTO_RIJNDAEL?=dlopen
 endif
 
 # Win32 configuration
@@ -241,10 +277,62 @@ ifeq ($(DP_MAKE_TARGET), mingw)
        EXE_SVNEXUIZ=$(EXE_WINSVNEXUIZ)
        EXE_SDLNEXUIZ=$(EXE_WINSDLNEXUIZ)
 
-       # libjpeg dependency (set these to "" if you want to use dynamic loading instead)
+       DP_LINK_ZLIB?=dlopen
+       DP_LINK_JPEG?=shared
+       DP_LINK_ODE?=dlopen
+       DP_LINK_CRYPTO?=dlopen
+       DP_LINK_CRYPTO_RIJNDAEL?=dlopen
+endif
+
+# set these to "" if you want to use dynamic loading instead
+# zlib
+ifeq ($(DP_LINK_ZLIB), shared)
+       CFLAGS_LIBZ=-DLINK_TO_ZLIB
+       LIB_Z=-lz
+endif
+ifeq ($(DP_LINK_ZLIB), dlopen)
+       CFLAGS_LIBZ=
+       LIB_Z=
+endif
+
+# jpeg
+ifeq ($(DP_LINK_JPEG), shared)
        CFLAGS_LIBJPEG=-DLINK_TO_LIBJPEG
        LIB_JPEG=-ljpeg
 endif
+ifeq ($(DP_LINK_JPEG), dlopen)
+       CFLAGS_LIBJPEG=
+       LIB_JPEG=
+endif
+
+# ode
+ifeq ($(DP_LINK_ODE), shared)
+       ODE_CONFIG?=ode-config
+       LIB_ODE=`$(ODE_CONFIG) --libs`
+       CFLAGS_ODE=`$(ODE_CONFIG) --cflags` -DUSEODE -DLINK_TO_LIBODE
+endif
+ifeq ($(DP_LINK_ODE), dlopen)
+       LIB_ODE=
+       CFLAGS_ODE=-DUSEODE
+endif
+
+# d0_blind_id
+ifeq ($(DP_LINK_CRYPTO), shared)
+       LIB_CRYPTO=-ld0_blind_id
+       CFLAGS_CRYPTO=-DLINK_TO_CRYPTO
+endif
+ifeq ($(DP_LINK_CRYPTO), dlopen)
+       LIB_CRYPTO=
+       CFLAGS_CRYPTO=
+endif
+ifeq ($(DP_LINK_CRYPTO_RIJNDAEL), shared)
+       LIB_CRYPTO_RIJNDAEL=-ld0_rijndael
+       CFLAGS_CRYPTO_RIJNDAEL=-DLINK_TO_CRYPTO_RIJNDAEL
+endif
+ifeq ($(DP_LINK_CRYPTO_RIJNDAEL), shared)
+       LIB_CRYPTO_RIJNDAEL=
+       CFLAGS_CRYPTO_RIJNDAEL=
+endif
 
 ##### Sound configuration #####
 
@@ -297,7 +385,7 @@ endif
 
 CFLAGS_MAKEDEP?=-MMD
 ifdef DP_FS_BASEDIR
-       CFLAGS_FS=-DDP_FS_BASEDIR='\"$(DP_FS_BASEDIR)\"'
+       CFLAGS_FS=-DDP_FS_BASEDIR=\"$(DP_FS_BASEDIR)\"
 else
        CFLAGS_FS=
 endif
@@ -316,7 +404,7 @@ endif
 
 ##### GNU Make specific definitions #####
 
-DO_LD=$(CC) -o $@ $^ $(LDFLAGS)
+DO_LD=$(CC) -o ../../../$@ $^ $(LDFLAGS)
 
 
 ##### Definitions shared by all makefiles #####
@@ -326,3 +414,10 @@ include makefile.inc
 ##### Dependency files #####
 
 -include *.d
+
+# hack to deal with no-longer-needed .h files
+%.h:
+       @echo
+       @echo "NOTE: file $@ mentioned in dependencies missing, continuing..."
+       @echo "HINT: consider 'make clean'"
+       @echo