Makefile raw
 1CC         := clang
 2CFLAGS     := -std=c99 -Wall -Wextra -ggdb
 3LDFLAGS    := -lm
 4SYSTEM     := $(shell uname -s)
 5
 6SOURCES    := main.c ppm.c keyboard.c mouse.c
 7
 8GAME       := bin/pathfinder
 9HEXDUMP    := bin/hexdump
10PACKER     := bin/packer
11
12ifeq ($(SYSTEM), Linux)
13    LDFLAGS += -lGL -lglut
14endif
15
16ifeq ($(SYSTEM), Darwin)
17    LDFLAGS += -framework OpenGL -framework GLUT
18endif
19
20build: mkdirs info $(HEXDUMP) $(PACKER) $(GAME)
21
22info: # Print out information about the build
23	$(info CC         : $(CC))
24	$(info SYSTEM     : $(SYSTEM))
25	$(info CFLAGS     : $(CFLAGS))
26	$(info LDFLAGS    : $(LDFLAGS))
27
28$(GAME): $(SOURCES)
29	$(CC) $(CFLAGS) $(SOURCES) -o $(GAME) $(LDFLAGS)
30
31$(HEXDUMP): tools/hexdump.c
32	$(CC) -std=c99 -o $(HEXDUMP) tools/hexdump.c
33
34$(PACKER): tools/packer.c
35	$(CC) -std=c99 -o $(PACKER) tools/packer.c
36
37mkdirs:
38	mkdir -p bin
39
40clean:
41	rm -rf bin/
42
43.PHONY: mkdirs game clean info