-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
47 lines (28 loc) · 1003 Bytes
/
makefile
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
43
44
45
46
47
SrcDir = src
CompilationUnits = $(shell find $(SrcDir) -name '*.c')
Default-OutputFile = default
Block-OutputFile = block
Build = gcc
Standard = -std=c99 -pedantic
Warnings = -Wall -Wextra -Werror
Optimize = -O2 -flto
BuildFlags = $(Standard) \
$(Warnings) \
$(Optimize) \
-I $(SrcDir) \
-o $(1)
DebugFlags = -g
ReleaseFlags = -DNDEBUG
BlockFlag = -DBLOCK
all: release-default release-block
build-default: $(SrcDir)
@$(Build) $(call BuildFlags,$(Default-OutputFile)) $(DebugFlags) $(CompilationUnits)
build-block: $(SrcDir)
@$(Build) $(call BuildFlags,$(Block-OutputFile)) $(DebugFlags) $(BlockFlag) $(CompilationUnits)
release-default: $(SrcDir)
@$(Build) $(call BuildFlags,$(Default-OutputFile)) $(ReleaseFlags) $(CompilationUnits)
release-block: $(SrcDir)
@$(Build) $(call BuildFlags,$(Block-OutputFile)) $(ReleaseFlags) $(BlockFlag) $(CompilationUnits)
clean:
rm $(Default-OutputFile)
rm $(Heur-OutputFile)