X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2FMakefile;h=ea1325d8ef0a2ad6738063e6b9a70b0fe584569a;hb=8c7cf0796617d786268af85fc5e5f1ad7846f3a1;hp=ebe3091f7b26ea5d538b82541250ad450f472d9c;hpb=070915c688903880c053bc444cc7f161fdebd91d;p=rocksndiamonds.git diff --git a/src/Makefile b/src/Makefile index ebe3091f..ea1325d8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,7 +1,12 @@ # ============================================================================= -# Rocks'n'Diamonds Makefile (src) +# Rocks'n'Diamonds - McDuffin Strikes Back! # ----------------------------------------------------------------------------- -# (c) 1995-2006 Holger Schemel +# (c) 1995-2014 by Artsoft Entertainment +# Holger Schemel +# info@artsoft.org +# http://www.artsoft.org/ +# ----------------------------------------------------------------------------- +# src/Makefile # ============================================================================= # ----------------------------------------------------------------------------- @@ -10,20 +15,9 @@ .EXPORT_ALL_VARIABLES: -ifndef PLATFORM # unknown platform -- try auto detection -ifdef COMSPEC -PLATFORM = msdos -else +ifndef PLATFORM # unknown platform -- default to Unix PLATFORM = unix endif -endif - -ifdef X11_PATH # path to X11 from top level Makefile -XINC_PATH = $(X11_PATH)/include -XLIB_PATH = $(X11_PATH)/lib -X11_INCL = -I$(XINC_PATH) -X11_LIBS = -L$(XLIB_PATH) -lX11 -endif AR = ar RANLIB = ranlib @@ -48,48 +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),os2) # native compiling to OS/2 -RANLIB = echo -PROGNAME = ../$(PROGBASE).exe -EXTRA_CFLAGS = -Zbin-files -D__ST_MT_ERRNO__ -Zmtd -fomit-frame-pointer -EXTRA_LDFLAGS = -lsocket -PLATFORM = unix -TARGET = x11 -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 -endif - -ifeq ($(PLATFORM),cross-msdos) # cross-compiling to MS-DOS -PROGBASE = rocks -PROGNAME = ../$(PROGBASE).exe -TARGET = allegro -endif - -ifeq ($(PLATFORM),msdos) # native compiling to MS-DOS -PROGBASE = rocks -PROGNAME = ../$(PROGBASE).exe -SYS_CFLAGS = -DTARGET_X11 -SYS_LDFLAGS = -s -lalleg -RM = del endif @@ -97,11 +66,26 @@ endif # configuring target # ----------------------------------------------------------------------------- -ifeq ($(TARGET),x11) # compiling for X11 target -SYS_CFLAGS = -DTARGET_X11 $(X11_INCL) -SYS_LDFLAGS = $(X11_LIBS) +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 @@ -126,11 +110,6 @@ SDL_LIBS = -lSDL2_image -lSDL2_mixer -lSDL2_net -lsmpeg2 -lmikmod SYS_LDFLAGS = $(SDL_LIBS) $(shell sdl2-config --static-libs) endif -ifeq ($(TARGET),allegro) # compiling for Allegro target -SYS_CFLAGS = -DTARGET_ALLEGRO -I$(CROSS_PATH_MSDOS)/include -SYS_LDFLAGS = -lalleg -endif - # ----------------------------------------------------------------------------- # configuring compile-time definitions @@ -262,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) @@ -293,16 +274,23 @@ 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) +# $(TIMESTAMP_FILE): $(SRCS) $(LIBGAME) $(GAME_EM) $(GAME_SP) +$(TIMESTAMP_FILE): $(SRCS) $(RNDLIBS) @date '+"%Y-%m-%d %H:%M"' \ | sed -e 's/^/#define COMPILE_DATE_STRING /' \ > $(TIMESTAMP_FILE) @@ -315,14 +303,18 @@ $(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 $(MAKE) -C $(GAME_SP_DIR) clean $(RM) $(OBJS) - $(RM) $(LIBGAME) - $(RM) $(GAME_EM) - $(RM) $(GAME_SP) + $(RM) $(RNDLIBS) +# $(RM) $(LIBGAME) +# $(RM) $(GAME_EM) +# $(RM) $(GAME_SP) clean-ico: $(RM) $(ICONBASE).ico @@ -334,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