Improvement to build system
| Author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-05-11 20:56:39 +0200 |
| Committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-05-11 20:56:39 +0200 |
| Commit | 21c0ec8362d939b6335aa0d437a0803df86dc3fd (patch) |
|
-rw-r--r-- |
.gitignore | 3 | |
-rw-r--r-- |
Makefile | 30 |
2 files changed, 30 insertions, 3 deletions
| diff --git a/.gitignore b/.gitignore | |||
| 1 | main |
1 | # Build artefacts |
| 2 | bin/ |
||
| diff --git a/Makefile b/Makefile | |||
| ... | |||
| 5 | 5 | ||
| 6 | SOURCES := main.c ppm.c keyboard.c mouse.c |
6 | SOURCES := main.c ppm.c keyboard.c mouse.c |
| 7 | 7 | ||
| 8 | GAME := bin/game |
||
| 9 | HEXDUMP := bin/hexdump |
||
| 10 | PACKER := bin/packer |
||
| 11 | |||
| 8 | ifeq ($(SYSTEM), Linux) |
12 | ifeq ($(SYSTEM), Linux) |
| 9 | LDFLAGS += -lGL -lglut |
13 | LDFLAGS += -lGL -lglut |
| 10 | endif |
14 | endif |
| ... | |||
| 13 | LDFLAGS += -framework OpenGL -framework GLUT |
17 | LDFLAGS += -framework OpenGL -framework GLUT |
| 14 | endif |
18 | endif |
| 15 | 19 | ||
| 16 | main: $(SOURCES) |
20 | build: mkdirs info $(HEXDUMP) $(PACKER) $(GAME) |
| 17 | clang $(CFLAGS) $(SOURCES) -o main $(LDFLAGS) |
21 | |
| 22 | info: # 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 | |||
| 37 | mkdirs: |
||
| 38 | mkdir -p bin |
||
| 39 | |||
| 40 | clean: |
||
| 41 | rm -rf bin/ |
||
| 42 | |||
| 43 | .PHONY: mkdirs game clean info |
||