#CrimsonDC 0.5.2 Neoblast & Indiket
#IberDC TEAM!

#Very important! This game in C++ uses dynamic_casts! We need -frtti!
#Flags avaiable: HAVE_DIRENT_H, HAVE_UNISTD_H, DISABLE_SOUND, DISABLE_NETWORK, HAVE_LIBZ

INC=-I. -Iinclude -DHAVE_DIRENT_H -DDISABLE_NETWORK -DHAVE_LIBZ -DHAVE_UNISTD_H -DDREAMCAST
OPT= -O3 -fstrict-aliasing -fexpensive-optimizations -foptimize-register-move  -freduce-all-givs  -ffast-math -frename-registers -frerun-cse-after-loop -frerun-loop-opt -fschedule-insns -fno-sched-interblock -fsched-spec-load -fsingle-precision-constant -fstrength-reduce -fstrict-aliasing -ffast-math -fno-common -fno-builtin -frtti -fno-exceptions -fargument-noalias-global -Wall -g -fomit-frame-pointer

KOS_CFLAGS += $(INC) -ml -m4-single-only -D_arch_dreamcast -D_arch_sub_pristine  \
$(OPT) \
-I$(KOS_BASE)/addons/include/SDL \
-I$(KOS_BASE)/addons/include/GL \
-I$(KOS_BASE)/addons/include

KOS_CPPFLAGS+= ${KOS_CFLAGS} $(INC)


TARGET = crimson.elf

.PHONY: all all-before all-after clean clean-custom

all: all-before $(TARGET) all-after

include dreamcast.mak
 

OBJS = ai.o  building.o button.o combat.o container.o event.o extwindow.o fileio.o filewindow.o font.o game.o gamewindow.o hexsup.o history.o initwindow.o lang.o list.o listselect.o lset.o main.o map.o mapview.o mapwidget.o mapwindow.o misc.o mission.o network.o options.o path.o platform.o player.o rect.o SDL_zlib.o slider.o sound.o strutil.o surface.o textbox.o unit.o unitwindow.o view.o widget.o window.o	


include $(KOS_BASE)/Makefile.rules

clean:
	-rm -f $(TARGET) $(OBJS) crimson.bin romdisk.*

rm-elf:
	-rm -f $(TARGET) romdisk.*

$(TARGET): $(OBJS) $(PROBJS) romdisk.o
	$(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET) $(KOS_START) \
		$(OBJS)  $(PROBJS) romdisk.o  $(OBJEXTRA) -L$(KOS_BASE)/lib -lgcc -lSDL_mixer_126 -lSDL_image_124 -lSDL_ttf -lfreetype -lSDL_129 -lpng_128 -lz_123 -lm -lstdc++ $(KOS_LIBS)
