blob: 79be005335ff2bff370f422756de1e7c8ea30bbb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
proj=tdo
# Compiler options
CC=gcc
CFLAGS=-std=c17 -Wall -Werror -g
# Directory paths
src:=src
bin:=bin
obj:=obj
# Files
srcs=$(filter-out $(src)/main.c, $(wildcard $(src)/*.c))
objs=$(patsubst $(src)/%.c, $(obj)/%.o, $(srcs))
# Directives
.PHONY: build
build: $(bin)/$(proj)
.PHONY: clean
clean:
-rm -r $(bin) $(obj)
.PHONY: info
info:
@echo srcs: $(srcs)
@echo objs: $(objs)
# Make object files
$(obj)/%.o: $(srcs) $(obj)
$(CC) $(CFLAGS) -o $@ -c $<
# Build executable including any object files
$(bin)/$(proj): $(bin) $(objs) $(src)/main.c
$(CC) $(CFLAGS) -o $@ $(filter-out $<,$^)
# Make directories
$(bin):
mkdir $@
$(obj):
mkdir $@
|