From 120fe36da3055f5b869d0a72307c6013fae865f7 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Tue, 3 Mar 2015 20:43:09 +0100 Subject: [PATCH] improved Makefiles to auto-detect SDL target version --- Makefile | 14 +++----------- src/Makefile | 33 +++++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 03320a5f..d5a21886 100644 --- a/Makefile +++ b/Makefile @@ -59,15 +59,13 @@ CROSS_PATH_WIN32 = /usr/local/cross-tools/i386-mingw32msvc SRC_DIR = src MAKE_CMD = $(MAKE) -C $(SRC_DIR) -DEFAULT_TARGET = sdl2 - # ----------------------------------------------------------------------------- # build targets # ----------------------------------------------------------------------------- all: - @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET) + @$(MAKE_CMD) sdl: @$(MAKE_CMD) TARGET=sdl @@ -79,13 +77,7 @@ mac: @$(MAKE_CMD) PLATFORM=macosx mac-static: - @$(MAKE_CMD) PLATFORM=macosx TARGET=sdl-static - -mac2-static: - @$(MAKE_CMD) PLATFORM=macosx TARGET=sdl2-static - -os2: - @$(MAKE_CMD) PLATFORM=os2 + @$(MAKE_CMD) PLATFORM=macosx STATIC=true cross-win32: @PATH=$(CROSS_PATH_WIN32)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-win32 @@ -218,4 +210,4 @@ tags: $(MAKE_CMD) tags depend dep: - $(MAKE_CMD) TARGET=$(DEFAULT_TARGET) depend + $(MAKE_CMD) depend diff --git a/src/Makefile b/src/Makefile index 2a1afc90..ea1325d8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -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 -- 2.34.1