# Trichromic makefile

CC = g++
LD = g++

ifndef WINDOWS
ifdef MINGDIR
WINDOWS = 1
endif
endif

DEBUG = 1

ifdef WINDOWS
CFLAGS = -Wall -c -D_REENTRANT -DDY_WINDOWS_VERSION -I$(MINGDIR)\include\freetype2
LDFLAGS = -llua5.1 -lopenlayer -lfreetype -lldpng -lpng -lz -lagl -lalleg -luser32 -lgdi32 -lglu32 -lopengl32 -lfmodex -ldconn -lzlib1 -lws2_32 -lpthread -mwindows
PROG = trichromic
RM = del /q
else
CFLAGS = -Wall -c -pthread `openlayer-config --cflags` -Weffc++ -I/usr/include/lua5.1
LDFLAGS = `openlayer-config --libs` -lfmodex -lz -ldconn
PROG = trichromic_bin
RM = rm -f
STATICLUA = /usr/lib/liblua5.1.a
endif

ifdef DEBUG
CFLAGS += -g -DDEBUG
endif

OBJS = obj/ai.o obj/ai_action_attack.o obj/ai_action_other.o obj/ai_action_transport.o obj/ai_build_units.o \
	obj/ai_path.o obj/ai_types.o obj/attackables.o obj/battle.o obj/battleshot.o obj/button.o obj/draw.o \
	obj/draw_stats.o obj/empire.o obj/fileselect.o obj/gamesaves.o obj/gameoptions.o obj/ingamemenu.o \
	obj/logic.o obj/listbox.o obj/mainmenu.o obj/map.o obj/mapedit.o obj/maplist.o obj/minimap.o obj/mouse.o \
	obj/moveselect.o obj/netlobby.o obj/netplay.o obj/networkclient.o obj/networkhost.o obj/networking.o \
	obj/particle.o obj/player.o obj/ranges.o obj/scrolling.o obj/sidebar.o \
	obj/sound.o obj/textline.o obj/units.o obj/unloadables.o obj/victory.o

ifdef WINDOWS
OBJS += obj/icon.o
else
OBJS += obj/allegro_icon.o
endif

$(PROG): $(OBJS)
	$(LD) $(OBJS) $(LDFLAGS) $(STATICLUA) -o $(PROG)


obj/%.o: src/%.cpp
	$(CC) $(CFLAGS) $< -o $@


all:	$(PROG)


clean:
ifdef WINDOWS
	$(RM) $(PROG).exe $(subst /,\,$(OBJS))
else
	$(RM) $(PROG) $(OBJS)
endif

obj/icon.o : src/icon.rc
	windres -i src/icon.rc -o obj/icon.o
