MAKEFLAGS := $(shell echo -j$$(((1 + 3 * `sysctl -n hw.ncpu`) / 2))) CC := /Developer/usr/bin/llvm-gcc-4.2 CXX := /Developer/usr/bin/llvm-g++-4.2 APP := Quarterstick BUNDLE := $(APP).app CONTENTS := $(BUNDLE)/Contents INFO_PLIST := $(CONTENTS)/Info.plist PKGINFO := $(CONTENTS)/PkgInfo MACOS := $(CONTENTS)/MacOS EXE := $(MACOS)/$(APP) LIBRARIES := $(CONTENTS)/Libraries DYLIBS := $(patsubst %,$(LIBRARIES)/lib%.dylib,SDL) WFLAGS := -Wall -Wextra -Wnewline-eof -Werror DEFINES := $(patsubst %,-D%,GL_GLEXT_PROTOTYPES) CFLAGS := $(WFLAGS) $(DEFINES) -fvisibility=hidden -gfull -O4 $(shell sdl-config --cflags) LDFLAGS := $(CFLAGS) $(shell sdl-config --libs) -framework OpenGL SOURCE := $(wildcard Source/*.cc) OBJECTS := $(patsubst Source/%,Build/%.o,$(SOURCE)) all: $(INFO_PLIST) $(PKGINFO) $(EXE) $(DYLIBS) Makefile rsync -r --del --exclude-from rsync-exclude.txt Resources $(CONTENTS) $(INFO_PLIST): Info.plist Makefile mkdir -p $(@D) cp $< $@ $(PKGINFO): Makefile mkdir -p $(@D) echo 'APPL????' > $@ $(LIBRARIES)/%.dylib: /opt/local/lib/%.dylib Makefile mkdir -p $(@D) cp $< $@ chmod a-x $@ # haaaack cp /opt/local/share/doc/libsdl-1.2.13/COPYING $(@D)/COPYING-libSDL.txt Build/%.cc.d: Source/%.cc Makefile mkdir -p $(@D) $(CC) $(CFLAGS) -MM -MF $@ -MP -MT '$@ $(@:.d=.o)' -c $< Build/%.cc.o: Source/%.cc Makefile mkdir -p $(@D) $(CC) $(CFLAGS) -c $< -o $@ $(EXE): $(OBJECTS) Makefile mkdir -p $(@D) $(CXX) $(LDFLAGS) $(OBJECTS) -o $@ -Wl,-headerpad_max_install_names install_name_tool -change $(shell otool -D /opt/local/lib/libSDL.dylib | tail -n 1) @executable_path/../Libraries/libSDL.dylib $@ clean: rm -rf $(BUNDLE) Build ifneq ($(MAKECMDGOALS),clean) -include $(OBJECTS:.o=.d) endif .PHONY: all clean Makefile:; %.cc:; %.hh:; %.h:; %.plist:; %.dylib:;