CC = gcc
CXX = g++

CFLAGS = -Wall -Wshadow -Wimplicit -Wno-multichar -Wreorder -Wnon-virtual-dtor

RELEASE_CFLAGS = -O2 -DNDEBUG
DEBUG_CFLAGS = -g -D_DEBUG -DCHEAP_LEAK_DETECTION -DTRACK_FPS 

#CFLAGS += $(RELEASE_CFLAGS)
CFLAGS += $(DEBUG_CFLAGS)
CFLAGS += $(shell sdl-config --cflags)
CFLAGS += -I. -Isrc/lincity -Isrc -IDevelopment:include/libxml2
CFLAGS += -DSYSTEM_SDL
#CFLAGS += NEW_ANIMATE_HANDLING 

CXXFLAGS = $(CFLAGS)

LDFLAGS = -lSDL_mixer -lvorbisfile -lvorbis -logg -lmikmod 
LDFLAGS += -lSDL_image -ljpeg -lpng -lz
LDFLAGS += $(shell sdl-config --libs) 
LDFLAGS += -lstdc++
# -lintl -liconv -lxml2

OBJ = \
	src/agent.o \
	src/agentmanager.o \
	src/app.o \
	src/core/gamesession.o \
	src/core/missionbriefing.o \
	src/core/research.o \
	src/core/researchmanager.o \
	src/freesynd.o \
	src/gfx/dirtylist.o \
	src/gfx/fliplayer.o \
	src/gfx/font.o \
	src/gfx/fontmanager.o \
	src/gfx/screen.o \
	src/gfx/sprite.o \
	src/gfx/spritemanager.o \
	src/gfx/tile.o \
	src/gfx/tilemanager.o \
	src/map.o \
	src/mapobject.o \
	src/mapmanager.o \
	src/menus/minimaprenderer.o \
	src/menus/briefmenu.o \
	src/menus/confmenu.o \
	src/menus/debriefmenu.o \
	src/menus/flimenu.o \
	src/menus/gameplaymenu.o \
	src/menus/loadingmenu.o \
	src/menus/loadsavemenu.o \
	src/menus/logoutmenu.o \
	src/menus/mainmenu.o \
	src/menus/mapmenu.o \
	src/menus/menu.o \
	src/menus/menumanager.o \
	src/menus/researchmenu.o \
	src/menus/selectmenu.o \
	src/menus/widget.o \
	src/mission.o \
	src/missionmanager.o \
	src/mod.o \
	src/modmanager.o \
	src/ped.o \
	src/pedmanager.o \
	src/pedpathfinding.o \
	src/sound/audio.o \
	src/sound/musicmanager.o \
	src/sound/sdlmixermusic.o \
	src/sound/sdlmixersound.o \
	src/sound/soundmanager.o \
	src/sound/xmidi.o \
	src/system_sdl.o \
	src/utils/configfile.o \
	src/utils/ccrc32.o \
	src/utils/dernc.o \
	src/utils/file.o \
	src/utils/log.o \
	src/utils/portablefile.o \
	src/utils/seqmodel.o \
	src/vehicle.o \
	src/vehiclemanager.o \
	src/weapon.o \
	src/weaponmanager.o

freesynd: $(OBJ)
	$(CC) -o $@ $(OBJ) $(LDFLAGS) 

clean:
	rm -f $(OBJ)