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