.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