CC := gcc-4.2 CFLAGS := -std=c99 -O2 -gfull -Wall -Wextra -Wnewline-eof -Werror FRAMEWORKS := CoreServices GLUT OpenGL QuickTime FRAMEWORKFLAGS := $(patsubst %,-framework %,$(FRAMEWORKS)) LDFLAGS := $(SDKFLAGS) $(FRAMEWORKFLAGS) SOURCES := $(wildcard Source/*.c) OBJECTS := $(patsubst Source/%.c,Build/%.o,$(SOURCES)) APPNAME := Particles BUNDLE := $(APPNAME).app CONTENTS := $(BUNDLE)/Contents INFO_PLIST := $(CONTENTS)/Info.plist PKGINFO := $(CONTENTS)/PkgInfo EXE := $(CONTENTS)/MacOS/$(APPNAME) $(shell mkdir -p $(CONTENTS)/MacOS) $(shell mkdir -p $(CONTENTS)/Resources) all: $(INFO_PLIST) $(PKGINFO) $(EXE) $(NIB) @echo \\033[34mCopying Resources\\033[0m @rsync -r --del --exclude '.*' Resources $(CONTENTS)/ $(INFO_PLIST): Info.plist Makefile @echo \\033[34mCopying $<\\033[0m @cp $< $@ $(PKGINFO): Makefile @echo \\033[34mCreating PkgInfo File\\033[0m @echo 'APPL????' > $@ $(EXE): $(OBJECTS) Makefile @echo \\033[34mLinking $@\\033[0m @$(CC) $(LDFLAGS) $(OBJECTS) -o $@ Build/%.o: Source/%.c Makefile @mkdir -p Build @echo \\033[34mCompiling $<\\033[0m @$(CC) $(CFLAGS) -c $< -o $@ Build/%.d: Source/%.c Makefile @mkdir -p Build @$(CC) $(CFLAGS) -MM $< | perl -pe 's|((.*)\.o.*)|Build/$$2.d Build/$$1|' > $@ clean: rm -rf $(BUNDLE) Build .PHONY: all clean .DEFAULT_GOAL := all Makefile:; %.c:; %.h:; %.plist:; -include $(OBJECTS:.o=.d)