FRAMEWORK := -framework AGL -framework Cocoa -framework OpenGL GLFW_FLAG := -m32 -O2 -Iglfw/include -Iglfw/lib -Iglfw/lib/cocoa $(CFLAGS) SRC_DIR := glfw/lib/cocoa GLFW_DIR := glfw/lib BUILD_DIR := build OBJ_C_SRC := $(wildcard $(SRC_DIR)/*.m) C_SRC := $(wildcard $(SRC_DIR)/*.c) GLFW_SRC := $(wildcard $(GLFW_DIR)/*.c) OBJS := $(addprefix $(BUILD_DIR)/, $(OBJ_C_SRC:.m=.o) $(C_SRC:.c=.o)) all: $(BUILD_DIR)/libglfw.a # The .dylib was creating more problems than it solved. #$(BUILD_DIR)/libglfw.dylib: $(OBJS) # $(CC) -dynamiclib $(GLFW_FLAG) -o $@ $(OBJS) $(GLFW_SRC) $(FRAMEWORK) $(BUILD_DIR)/libglfw.a: $(OBJS) ar -r -s $@ $(OBJS) $(BUILD_DIR)/$(SRC_DIR)/.build-tag: mkdir -p $(BUILD_DIR)/$(SRC_DIR) touch $@ $(OBJS): $(BUILD_DIR)/$(SRC_DIR)/.build-tag $(BUILD_DIR)/%.o : %.c $(CC) -c $(GLFW_FLAG) $< -o $@ $(BUILD_DIR)/%.o : %.m $(CC) -c $(GLFW_FLAG) $< -o $@ .PHONY: clean clean: $(RM) -rf $(BUILD_DIR)