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