.PHONY: all
all: mainapp

UNAME = ${shell uname}
ifeq (${UNAME},Linux)
HOST_PLATFORM = linux
else ifeq (${UNAME},Darwin)
HOST_PLATFORM = macosx
else
HOST_PLATFORM = windows
endif

TARGET_NAME = CollisionSample
CCFLAGS = -Wall -Wextra -Wno-unused-parameter -Werror -g -std=gnu99

CC_macosx = /usr/bin/gcc-4.2 -arch ppc -arch i386 -arch x86_64
SDKROOT_macosx = /Developer/SDKs/MacOSX10.5.sdk
CCFLAGS_macosx = -isysroot ${SDKROOT_macosx} -mmacosx-version-min=10.5
LINKFLAGS_macosx = -isysroot ${SDKROOT_macosx} -mmacosx-version-min=10.5 -framework OpenGL -framework GLUT

CC_linux = /usr/bin/gcc
CCFLAGS_linux = 
LINKFLAGS_linux = -lm -lrt -lglut -lGLU

CC_windows = C:/MinGW/bin/gcc.exe
CCFLAGS_windows = -DFREEGLUT_STATIC
LINKFLAGS_windows = -lfreeglut_static -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -mconsole
EXECUTABLE_SUFFIX_windows = .exe



CollisionSystem.o: CollisionSystem.c
	${CC_${HOST_PLATFORM}} ${CCFLAGS} ${CCFLAGS_${HOST_PLATFORM}} -c -o $@ $^

FixedIntervalRunLoop.o: FixedIntervalRunLoop.c
	${CC_${HOST_PLATFORM}} ${CCFLAGS} ${CCFLAGS_${HOST_PLATFORM}} -c -o $@ $^

main.o: main.c
	${CC_${HOST_PLATFORM}} ${CCFLAGS} ${CCFLAGS_${HOST_PLATFORM}} -c -o $@ $^

${TARGET_NAME}${EXECUTABLE_SUFFIX_${HOST_PLATFORM}}: main.o CollisionSystem.o FixedIntervalRunLoop.o
	${CC_${HOST_PLATFORM}} -o $@ $^ ${LINKFLAGS_${HOST_PLATFORM}}

.PHONY: mainapp
mainapp: ${TARGET_NAME}${EXECUTABLE_SUFFIX_${HOST_PLATFORM}}

ifeq (${HOST_PLATFORM},macosx)
.PHONY: create_app_bundle
create_app_bundle: ${TARGET_NAME}
	mkdir -p ${TARGET_NAME}.app/Contents/MacOS
	mkdir -p ${TARGET_NAME}.app/Contents/Resources
	cp ${TARGET_NAME} ${TARGET_NAME}.app/Contents/MacOS
	cp Info.plist ${TARGET_NAME}.app/Contents
	cp CollisionSample.icns ${TARGET_NAME}.app/Contents/Resources
	echo "APPL????" > ${TARGET_NAME}.app/Contents/PkgInfo
endif

.PHONY: clean
clean:
	-rm -f main.o CollisionSystem.o FixedIntervalRunLoop.o
	-rm -f CollisionSample${EXECUTABLE_SUFFIX_${HOST_PLATFORM}}
ifeq (${HOST_PLATFORM},macosx)
	-rm -rf CollisionSample.app
endif
