added new level option to only redraw off-screen player relocation
[rocksndiamonds.git] / src / Makefile
index 3da2742424a2086d6eb2e208782a2cc1b7058c94..ea1325d8ef0a2ad6738063e6b9a70b0fe584569a 100644 (file)
@@ -42,26 +42,23 @@ PROGNAME = ../$(PROGBASE)
 # configuring platform
 # -----------------------------------------------------------------------------
 
-ifeq ($(PLATFORM),solaris)             # native compiling to Solaris
+ifeq ($(PLATFORM),solaris)             # compiling on Solaris
 EXTRA_LDFLAGS = -lnsl -lsocket -R$(XLIB_PATH)
-PLATFORM = unix
+override PLATFORM = unix
 endif
 
-ifeq ($(PLATFORM),macosx)              # native compiling to Mac OS X
+ifeq ($(PLATFORM),macosx)              # compiling on Mac OS X
 EXTRA_LDFLAGS = -lstdc++
-PLATFORM = unix
-TARGET = sdl
+override PLATFORM = unix
 endif
 
-ifeq ($(PLATFORM),unix)                        # native compiling to Unix (generic)
+ifeq ($(PLATFORM),unix)                        # compiling on Unix/Linux (generic)
 PROFILING_FLAGS = -pg
 endif
 
 ifeq ($(PLATFORM),cross-win32)         # cross-compiling to Windows
 PROGNAME = ../$(PROGBASE).exe
 EXTRA_LDFLAGS = -lshfolder -lwsock32
-# TARGET = sdl
-TARGET = sdl2
 endif
 
 
@@ -69,6 +66,26 @@ endif
 # configuring target
 # -----------------------------------------------------------------------------
 
+ifndef TARGET                          # auto-detect compiling for SDL or SDL2
+  SDL_VERSION := $(shell sdl2-config --version 2> /dev/null)
+  ifdef SDL_VERSION
+    TARGET = sdl2
+  else
+    SDL_VERSION := $(shell sdl-config --version 2> /dev/null)
+    ifdef SDL_VERSION
+      TARGET = sdl
+    else
+      $(error SDL/SDL2 library not found)
+    endif
+  endif
+endif
+
+ifeq ($(STATIC),true)                  # check for static linking
+override TARGET := $(TARGET)-static
+endif
+
+# $(info Using SDL version $(SDL_VERSION) [TARGET == $(TARGET)])
+
 ifeq ($(TARGET),sdl)                   # compiling for SDL target
 SYS_CFLAGS = -DTARGET_SDL $(shell sdl-config --cflags)
 SDL_LIBS = -lSDL_image -lSDL_mixer -lSDL_net -lsmpeg
@@ -224,12 +241,14 @@ endif
 ICON = $(ICONBASE).o
 endif
 
+GRAPHICS_DIR = ../graphics
+
 
 # -----------------------------------------------------------------------------
 # build targets
 # -----------------------------------------------------------------------------
 
-all: $(AUTOCONF) libgame_dir game_em_dir game_sp_dir $(PROGNAME)
+all: $(AUTOCONF) libgame_dir game_em_dir game_sp_dir $(PROGNAME) graphics_dir
 
 $(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(OBJS) $(ICON)
        $(CC) $(PROFILING) $(OBJS) $(ICON) $(RNDLIBS) $(LDFLAGS) -o $(PROGNAME)
@@ -255,13 +274,19 @@ auto-conf:
                $(CNFS_CMD) $$i > $$i;          \
        done
 
-conf_gfx.h: conf_gfx.c
+auto-conf-clean:
+       @for i in $(CNFS); do                   \
+               echo "$(RM) $$i";               \
+               $(RM) $$i;                      \
+       done
+
+conf_gfx.h: conf_gfx.c $(CNFS_CMD)
        @$(MAKE) auto-conf
 
-conf_snd.h: conf_snd.c
+conf_snd.h: conf_snd.c $(CNFS_CMD)
        @$(MAKE) auto-conf
 
-conf_mus.h: conf_mus.c
+conf_mus.h: conf_mus.c $(CNFS_CMD)
        @$(MAKE) auto-conf
 
 # $(TIMESTAMP_FILE): $(SRCS) $(LIBGAME) $(GAME_EM) $(GAME_SP)
@@ -278,6 +303,9 @@ $(ICON):
 .c.o:
        $(CC) $(PROFILING) $(CFLAGS) -c $*.c
 
+graphics_dir:
+       @$(MAKE) -C $(GRAPHICS_DIR)
+
 clean-obj:
        $(MAKE) -C $(LIBGAME_DIR) clean
        $(MAKE) -C $(GAME_EM_DIR) clean
@@ -298,6 +326,9 @@ clean-bin:
 
 clean: clean-obj clean-ico clean-bin
 
+clean-git: clean auto-conf-clean
+       @$(MAKE) -C $(GRAPHICS_DIR) clean
+
 
 # -----------------------------------------------------------------------------
 # run and test targets