CC = gcc

#moved includes and pkg-config here so that object compile
#CFLAGS = -ansi -pedantic -Wall -O3 -I../include/ -I$(HOME)/include `pkg-config --cflags --libs glib-2.0`
#CFLAGS = -pedantic -Wall -O3 -I../include/ -I$(HOME)/include `pkg-config --cflags --libs glib-2.0`

CFLAGS = -O3 -I../include/ -I$(HOME)/include `pkg-config --cflags glib-2.0`

GLIBS = `pkg-config --libs glib-2.0`

DEBUGFLAGS = -ggdb -DDEBUG -O0

#determine the current architecture
ifndef _ARCH
_ARCH := $(shell uname -s)
endif

#PKGS = `pkg-config --cflags --libs glib-2.0`
#INCLUDES = -I../include/ -I$(HOME)/include

#Linux
ifeq ($(_ARCH), Linux)
LIBS = -L$(HOME)/lib -L../src -lSDL -ljpeg -lpng -lGL -lGLU -lglut -lCL -lCLU -lCLIO -lpthread -lfmod -lz #-lopenal
endif

#Darwin (MacOSX)
ifeq ($(_ARCH), Darwin)
LIBS = -I/Library/Frameworks/SDL.framework/Headers -L$(HOME)/lib -L../src -ljpeg -lpng -lCL -lCLU -lCLIO -lpthread -lfmod -framework Cocoa -framework Carbon -framework OpenGL -framework GLUT -framework Quicktime -framework SDL SDLMain.m
endif

DEPS = 	zf_menu_loop.o zf_game_loop.o \
	zf_list.o zf_animation_system.o zf_collision_system.o zf_render_system.o \
	zf_trigger_system.o zf_particle_system.o \
	zf_explosion.o zf_shield.o zf_debris.o zf_hive.o zf_leech.o zf_wasp.o\
	zf_hex_flux_field.o zf_flux_ring.o zf_battery_ring.o zf_tier_ring.o zf_drones.o \
	zf_drones_pickup.o zf_turret.o zf_droid.o zf_eel_segment.o zf_enemy_missile.o zf_droid_missile.o \
	zf_missile.o zf_laser.o zf_tritor.o zf_decoy.o zf_bomb.o \
	zf_weapon_control.o zf_skybox.o zf_camera.o zf_heightmap.o zf_flux.o zf_landscape_objs.o zf_water.o\
	zf_ship.o zf_hud.o zf_cross_hair.o zf_audio.o zf_text.o zf_score_indicator.o zf_level.o \
	zf_boss_1_target.o zf_boss_1.o zf_boss_bomb.o

default: $(DEPS) zyberflux.c
	$(CC) $(CFLAGS) $(DEPS) zyberflux.c -o zyberflux $(PKGS) $(LIBS) $(GLIBS)

explosion: $(DEPS) explosion.c
	$(CC) $(CFLAGS) $(DEBUGFLAGS) $(DEPS) explosion.c -o explosion $(PKGS) $(LIBS) $(GLIBS)

audiotest: $(DEPS) audiotest.c
	$(CC) $(CFLAGS) $(DEBUGFLAGS) $(DEPS) audiotest.c -o audiotest $(PKGS) $(LIBS) $(GLIBS)

heightmaptest: $(DEPS) heightmaptest.c
	$(CC) $(CFLAGS) $(DEBUGFLAGS) $(DEPS) heightmaptest.c -o heightmaptest $(PKGS) $(LIBS) $(GLIBS)

leveltest: $(DEPS) leveltest.c
	$(CC) $(CFLAGS) -I/usr/include/libxml2 $(DEBUGFLAGS) $(DEPS) leveltest.c -o leveltest $(PKGS) $(LIBS) $(GLIBS) -lxml2

debug:	CFLAGS += $(DEBUGFLAGS)
debug:	$(DEPS) zyberflux.c
	$(CC) $(CFLAGS) $(DEPS) zyberflux.c -o zyberflux $(PKGS) $(LIBS) $(GLIBS)

clean:
	rm -f *~ $(DEPS) zyberflux
