# Rise of the Tribes RTS makefile

.PRECIOUS: %.o

.PHONY: game all clean distclean veryclean compress depend

CC = gcc
CFLAGS = -Wall -O2 -fomit-frame-pointer -ffast-math -funroll-loops -s -mcpu=pentium
CFLAGS = -Wall -O -g
INCLUDE = -I include

ifdef DEBUGMODE
   CFLAGS = -W -Wall -O -g -DDEBUGMODE
endif

ifdef DONT_USE_EXTENSIONS
   CFLAGS += -DDONT_USE_CD
endif

ifdef PROFILEMODE
   CFLAGS += -pg
endif

#For Make to detect MingW automatically, the variable MINGDIR must be set
#Likewise, for DJGPP the variable DJGPP must be set
ifdef MINGDIR
   LFLAGS = -Wl,--subsystem,windows
   CFLAGS += -mcpu=i686
   LIBS = -lalleg -lm -lwinmm
   OBJDIR = obj/mingw
   EXEF = rise95.exe
   RESOURCE = $(OBJDIR)/rise.res
else
   ifdef DJGPP
      CFLAGS += -mcpu=i686
      LIBS = -lalleg -lm
      OBJDIR = obj/djgpp
      EXEF = rise.exe
   else
      ifdef CPU
         CFLAGS += -mcpu=$(CPU)
      endif
      ifdef STATICLINK
         LIBS = `allegro-config --libs --static` -lm
      else
         ifdef SHAREDLINK
            LIBS = `allegro-config --libs --shared` -lm
         else
            LIBS = `allegro-config --libs` -lm
         endif
      endif
      OBJDIR = obj/unix
      EXEF = rise
      CFLAGS += -pipe
   endif
endif

GOBJS = $(OBJDIR)/rise.o $(OBJDIR)/unit.o $(OBJDIR)/udraw.o $(OBJDIR)/game.o\
        $(OBJDIR)/map.o $(OBJDIR)/gamegfx.o $(OBJDIR)/dialog.o\
        $(OBJDIR)/playgame.o $(OBJDIR)/global.o $(OBJDIR)/ugfx.o\
        $(OBJDIR)/gfx.o $(OBJDIR)/sound.o\
        $(OBJDIR)/cd.o $(OBJDIR)/unitprog.o $(OBJDIR)/opcodes.o\
        $(OBJDIR)/script.o $(OBJDIR)/ugrp.o $(OBJDIR)/path.o\
        $(OBJDIR)/icpanel.o $(OBJDIR)/alintro.o $(OBJDIR)/gmeparse.o\
        $(OBJDIR)/gmemusic.o $(OBJDIR)/upkeep.o $(OBJDIR)/unitmap.o\
        $(OBJDIR)/gamedraw.o $(OBJDIR)/maptile.o $(OBJDIR)/gamemsg.o\
        $(OBJDIR)/mapdraw.o $(OBJDIR)/cheats.o\
        $(OBJDIR)/gif.o $(OBJDIR)/jpeg.o\
        $(RESOURCE)

EXOBJS = $(OBJDIR)/gif.o $(OBJDIR)/jpeg.o

game: $(EXEF)

all: game

compress: all
	strip $(EXEF)
	upx --best $(EXEF)

clean:
	rm -f $(OBJDIR)/*.o $(EXEF)

distclean:
	rm -f obj/unix/*.o obj/djgpp/*.o obj/mingw/*.o rise rise.exe rise95.exe

veryclean: distclean
	rm -f makefile.dep

depend:
	@echo "Generating dependencies..."
	@rm -f makefile.dep
	@sh ./depend.sh include src > makefile.dep
	@echo "Done!"
	@exit

makefile.dep:

$(EXEF): $(GOBJS)
	$(CC) $(CFLAGS) $(LFLAGS) $(GOBJS) -o $@ $(LIBS)

$(RESOURCE): src/riseres.rc gfx/rise.ico
	windres -O coff -o $@ -i $<

include makefile.dep
