CC := clang CFLAGS := -std=c99 -Wall -Wextra -ggdb LDFLAGS := -lm SYSTEM := $(shell uname -s) SOURCES := main.c ppm.c keyboard.c mouse.c GAME := bin/pathfinder HEXDUMP := bin/hexdump PACKER := bin/packer ifeq ($(SYSTEM), Linux) LDFLAGS += -lGL -lglut endif ifeq ($(SYSTEM), Darwin) LDFLAGS += -framework OpenGL -framework GLUT endif build: mkdirs info $(HEXDUMP) $(PACKER) $(GAME) info: # Print out information about the build $(info CC : $(CC)) $(info SYSTEM : $(SYSTEM)) $(info CFLAGS : $(CFLAGS)) $(info LDFLAGS : $(LDFLAGS)) $(GAME): $(SOURCES) $(CC) $(CFLAGS) $(SOURCES) -o $(GAME) $(LDFLAGS) $(HEXDUMP): tools/hexdump.c $(CC) -std=c99 -o $(HEXDUMP) tools/hexdump.c $(PACKER): tools/packer.c $(CC) -std=c99 -o $(PACKER) tools/packer.c mkdirs: mkdir -p bin clean: rm -rf bin/ .PHONY: mkdirs game clean info