Fixed a problem with Makefile.mingw where make wasn't rebuilding targets
[neverball] / Makefile
index 8f130ad..fbb726e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,13 @@
 
+#-------------------------------------------------------------------------------
+
+#VERSION=1.5.0
+VERSION= $(shell sh scripts/version.sh)
+
+ifeq ($(VERSION),)
+    $(error Failed to obtain version for this build.)
+endif
+
 #------------------------------------------------------------------------------
 
 # Maybe you need one of these.  Maybe you don't.
 OGL_LIBS= -lGL -lm
 #OGL_LIBS= -lm                                                # Think Different
 
-#------------------------------------------------------------------------------
-# Configuration constants
-#------------------------------------------------------------------------------
-
-CFLAGS= -Wall -O3 -ansi -pedantic $(shell sdl-config --cflags)
+CFLAGS= -Wall -g -O3 -ansi -pedantic $(shell sdl-config --cflags)
 #CFLAGS= -Wall -g -O1 -ansi -pedantic $(shell sdl-config --cflags)
 #CFLAGS= -Wall -pg -ansi $(shell sdl-config --cflags)
 
+CPPFLAGS := -DVERSION=\"$(VERSION)\" -Ishare $(CPPFLAGS)
+
 SDL_LIBS= $(shell sdl-config --libs)
-FT2_LIBS= $(shell freetype-config --libs)
+PNG_LIBS= $(shell libpng-config --libs)
 
-MAPC_TARG= mapc
-BALL_TARG= neverball
-PUTT_TARG= neverputt
+MAPC_TARG= mapc$(EXT)
+BALL_TARG= neverball$(EXT)
+PUTT_TARG= neverputt$(EXT)
+
+MAPC_EXEC= ./$(MAPC_TARG)
 
 LOCALEDIR= locale
 LOCALEDOM= neverball
@@ -33,22 +42,25 @@ POTFILE= po/neverball.pot
 
 MAPC_OBJS= \
        share/vec3.o   \
-       share/image.o  \
+       share/base_image.o  \
        share/solid.o  \
        share/binary.o \
-       share/config.o \
+       share/base_config.o \
        share/mapc.o
 BALL_OBJS= \
        share/i18n.o    \
        share/st_lang.o \
        share/st_resol.o \
        share/vec3.o    \
+       share/base_image.o   \
        share/image.o   \
        share/solid.o   \
+       share/solid_gl.o\
        share/part.o    \
        share/back.o    \
        share/geom.o    \
        share/gui.o     \
+       share/base_config.o  \
        share/config.o  \
        share/binary.o  \
        share/state.o   \
@@ -56,14 +68,14 @@ BALL_OBJS= \
        ball/hud.o      \
        ball/game.o     \
        ball/level.o    \
+       ball/levels.o   \
        ball/set.o      \
        ball/demo.o     \
        ball/util.o     \
        ball/st_conf.o  \
        ball/st_demo.o  \
        ball/st_save.o  \
-       ball/st_fail.o  \
-       ball/st_goal.o  \
+       ball/st_play_end.o  \
        ball/st_done.o  \
        ball/st_level.o \
        ball/st_over.o  \
@@ -71,17 +83,23 @@ BALL_OBJS= \
        ball/st_set.o   \
        ball/st_start.o \
        ball/st_title.o \
+       ball/st_help.o  \
+       ball/st_name.o  \
+       ball/st_shared.o  \
        ball/main.o
 PUTT_OBJS= \
        share/i18n.o    \
        share/st_lang.o \
        share/st_resol.o \
        share/vec3.o   \
+       share/base_image.o  \
        share/image.o  \
        share/solid.o  \
+       share/solid_gl.o  \
        share/part.o   \
        share/geom.o   \
        share/back.o   \
+       share/base_config.o  \
        share/config.o \
        share/binary.o \
        share/audio.o  \
@@ -99,7 +117,8 @@ BALL_DEPS= $(BALL_OBJS:.o=.d)
 PUTT_DEPS= $(PUTT_OBJS:.o=.d)
 MAPC_DEPS= $(MAPC_OBJS:.o=.d)
 
-LIBS= $(X11_PATH) $(SDL_LIBS) -lSDL_image -lSDL_ttf -lSDL_mixer $(FT2_LIBS) $(OGL_LIBS)
+BASE_LIBS= $(SDL_LIBS) -lSDL_image
+LIBS= $(X11_PATH) $(BASE_LIBS) $(PNG_LIBS) -lSDL_ttf -lSDL_mixer $(OGL_LIBS)
 
 MESSAGEPART= /LC_MESSAGES/$(LOCALEDOM).mo
 MESSAGES= $(LINGUAS:%=$(LOCALEDIR)/%$(MESSAGEPART))
@@ -115,13 +134,13 @@ LINGUAS= $(POS:po/%.po=%)
 #------------------------------------------------------------------------------
 
 %.d : %.c
-       $(CC) $(CFLAGS) -Ishare -MM -MF $@ $<
+       $(CC) $(CFLAGS) $(CPPFLAGS) -MM -MF $@ -MT '$*.o $@' $<
 
 %.o : %.c
-       $(CC) $(CFLAGS) -Ishare -o $@ -c $<
+       $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 
 %.sol : %.map $(MAPC_TARG)
-       ./$(MAPC_TARG) $< data
+       $(MAPC_EXEC) $< data
 
 $(LOCALEDIR)/%$(MESSAGEPART) : po/%.po
        mkdir -p `dirname $@`
@@ -140,7 +159,7 @@ $(PUTT_TARG) : $(PUTT_OBJS)
        $(CC) $(CFLAGS) -o $(PUTT_TARG) $(PUTT_OBJS) $(LIBS)
 
 $(MAPC_TARG) : $(MAPC_OBJS)
-       $(CC) $(CFLAGS) -o $(MAPC_TARG) $(MAPC_OBJS) $(LIBS)
+       $(CC) $(CFLAGS) -o $(MAPC_TARG) $(MAPC_OBJS) $(BASE_LIBS)
 
 sols : $(SOLS)
 
@@ -158,6 +177,12 @@ clean : clean-src
 test : all
        ./neverball
 
+tools :
+       cd tools && $(MAKE)
+
+mingw-%:
+       $(MAKE) -f Makefile.mingw $*
+
 #------------------------------------------------------------------------------
 # PO update rules
 #------------------------------------------------------------------------------
@@ -167,10 +192,16 @@ po/%.po : $(POTFILE)
        touch $@
        
 po-update-extract :
-       bash extractpo.sh $(POTFILE) $(LOCALEDOM)
+       sh scripts/extractpo.sh $(POTFILE) $(LOCALEDOM)
 
 po-update-merge : $(POS)
 
 po-update : po-update-extract po-update-merge
 
 #------------------------------------------------------------------------------
+
+.PHONY : all sols locales clean-src clean test \
+       po-update-extract po-update-merge po-update \
+       tools
+
+-include $(BALL_DEPS) $(PUTT_DEPS) $(MAPC_DEPS)