fixed wrong linking order of libraries in Makefile
[rocksndiamonds.git] / src / Makefile
index b7289d01ddc7a8492dd83ef6729d2956120c35df..6e74c8e141318305044f53842fc572a3ddebad99 100644 (file)
@@ -156,6 +156,14 @@ endif
 CFLAGS = $(OPTIONS) $(ANALYZE) $(SYS_CFLAGS)  $(EXTRA_CFLAGS) $(CONFIG)
 LDFLAGS =           $(ANALYZE) $(SYS_LDFLAGS) $(EXTRA_LDFLAGS)
 
+# !!! DEPENDENCY TO GLIB SHOULD BE REMOVED AGAIN !!!
+GLIB_CFLAGS  := $(shell pkg-config --cflags glib-2.0)
+GLIB_LDFLAGS := $(shell pkg-config --libs   glib-2.0)
+
+CFLAGS  := $(CFLAGS)  $(GLIB_CFLAGS)
+LDFLAGS := $(LDFLAGS) $(GLIB_LDFLAGS)
+# !!! DEPENDENCY TO GLIB SHOULD BE REMOVED AGAIN !!!
+
 
 SRCS = main.c          \
        conf_gfx.c      \
@@ -235,6 +243,9 @@ SOURCE_HASH_STRING ?= $(shell test -d ../.git && test `git ls-files -m | wc -l`
 LIBGAME_DIR = libgame
 LIBGAME = $(LIBGAME_DIR)/libgame.a
 
+GAME_BD_DIR = game_bd
+GAME_BD = $(GAME_BD_DIR)/game_bd.a
+
 GAME_EM_DIR = game_em
 GAME_EM = $(GAME_EM_DIR)/game_em.a
 
@@ -244,7 +255,7 @@ GAME_SP = $(GAME_SP_DIR)/game_sp.a
 GAME_MM_DIR = game_mm
 GAME_MM = $(GAME_MM_DIR)/game_mm.a
 
-RNDLIBS = $(LIBGAME) $(GAME_EM) $(GAME_SP) $(GAME_MM)
+RNDLIBS = $(GAME_BD) $(GAME_EM) $(GAME_SP) $(GAME_MM) $(LIBGAME)
 AUTOCONF = conf_gfx.h conf_snd.h conf_mus.h
 
 ICONBASE = windows_icon
@@ -262,7 +273,7 @@ GRAPHICS_DIR = ../graphics
 # build targets
 # -----------------------------------------------------------------------------
 
-all: $(AUTOCONF) libgame_dir game_em_dir game_sp_dir game_mm_dir $(PROGNAME) graphics_dir
+all: $(AUTOCONF) libgame_dir game_bd_dir game_em_dir game_sp_dir game_mm_dir $(PROGNAME) graphics_dir
 
 $(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(COMMIT_HASH_FILE) $(OBJS) $(ICON)
        $(CC) $(OBJS) $(ICON) $(RNDLIBS) $(LDFLAGS) -o $(PROGNAME)
@@ -278,6 +289,11 @@ libgame_dir:
 $(LIBGAME):
        @$(MAKE) -C $(LIBGAME_DIR)
 
+game_bd_dir:
+       @$(MAKE) -C $(GAME_BD_DIR)
+$(GAME_BD):
+       @$(MAKE) -C $(GAME_BD_DIR)
+
 game_em_dir:
        @$(MAKE) -C $(GAME_EM_DIR)
 $(GAME_EM):
@@ -342,6 +358,7 @@ graphics_dir:
 
 clean-obj:
        $(MAKE) -C $(LIBGAME_DIR) clean
+       $(MAKE) -C $(GAME_BD_DIR) clean
        $(MAKE) -C $(GAME_EM_DIR) clean
        $(MAKE) -C $(GAME_SP_DIR) clean
        $(MAKE) -C $(GAME_MM_DIR) clean
@@ -386,15 +403,24 @@ valgrind:
 # -----------------------------------------------------------------------------
 
 tags:
-       $(ETAGS) *.[ch] $(LIBGAME_DIR)/*.[ch] $(GAME_EM_DIR)/*.[ch] $(GAME_SP_DIR)/*.[ch] $(GAME_MM_DIR)/*.[ch]
+       $(ETAGS) *.[ch] $(LIBGAME_DIR)/*.[ch] $(GAME_BD_DIR)/*.[ch] $(GAME_EM_DIR)/*.[ch] $(GAME_SP_DIR)/*.[ch] $(GAME_MM_DIR)/*.[ch]
 
 depend:
        $(MAKE) -C $(LIBGAME_DIR) depend
+       $(MAKE) -C $(GAME_BD_DIR) depend
        $(MAKE) -C $(GAME_EM_DIR) depend
        $(MAKE) -C $(GAME_SP_DIR) depend
        $(MAKE) -C $(GAME_MM_DIR) depend
        for i in $(SRCS); do $(CPP) $(CFLAGS) -M $$i; done > .depend
 
+depend-clean:
+       $(MAKE) -C $(LIBGAME_DIR) depend-clean
+       $(MAKE) -C $(GAME_BD_DIR) depend-clean
+       $(MAKE) -C $(GAME_EM_DIR) depend-clean
+       $(MAKE) -C $(GAME_SP_DIR) depend-clean
+       $(MAKE) -C $(GAME_MM_DIR) depend-clean
+       $(RM) .depend
+
 ifeq (.depend,$(wildcard .depend))
 include .depend
 endif