blob: b379a3070dfc2a4b75b0a8658fc7301bc0b7e210 (
plain) (
blame)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
CFLAGS += -Wall -Wextra -Wformat -Wformat=2 -Wconversion -Wimplicit-fallthrough -Werror=format-security \
-Wbidi-chars=any -Werror=implicit -Werror=incompatible-pointer-types -Werror=int-conversion \
-fno-delete-null-pointer-checks -fstack-clash-protection -fstack-protector-strong -fstrict-flex-arrays=3
DEBUG_CFLAGS = -DDEBUGBUILD -g -Werror -fsanitize=address -O0
PROD_CFLAGS = -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -FPIE -pie -Wl,-z,noexecstack -Wl,--as-needed -Wl,--no-copy-dt-needed-entries
CFLAGS += -I include
all: \
out/custom_uniq \
out/mem_internal_check \
out/remove_existing_lines \
out/sort_example \
out/split_for_sort \
out/tree_based_check
debug: \
out/debug/custom_uniq \
out/debug/mem_internal_check \
out/debug/remove_existing_lines \
out/debug/sort_example \
out/debug/split_for_sort \
out/debug/tree_based_check
clean: out
rm -rfv out
out:
mkdir -p out
out/debug: out
mkdir -p out/debug
# Lazy, not splitting compiler & linker calls
out/custom_uniq: out src/custom_uniq.c include/trace_macros.h
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/custom_uniq.c
out/debug/custom_uniq: out/debug src/custom_uniq.c include/trace_macros.h
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/custom_uniq.c
out/mem_internal_check: out src/mem_internal_check.c \
include/trace_macros.h include/hex_conversion.h include/time_utils.h
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/mem_internal_check.c
out/debug/mem_internal_check: out/debug src/mem_internal_check.c \
include/trace_macros.h include/hex_conversion.h include/time_utils.h
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/mem_internal_check.c
out/remove_existing_lines: out src/remove_existing_lines.c \
include/trace_macros.h include/time_utils.h
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/remove_existing_lines.c
out/debug/remove_existing_lines: out/debug src/mem_internal_check.c \
include/trace_macros.h include/hex_conversion.h
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/remove_existing_lines.c
out/sort_example: out src/sort_example.c
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/sort_example.c
out/debug/sort_example: out src/sort_example.c
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/sort_example.c
out/split_for_sort: out src/split_for_sort.c include/trace_macros.h
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/split_for_sort.c
out/debug/split_for_sort: out/debug src/split_for_sort.c include/trace_macros.h
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/split_for_sort.c
out/tree_based_check: out src/tree_based_check.c \
include/trace_macros.h include/hex_conversion.h
${CC} -o $@ ${CFLAGS} ${PROD_CFLAGS} src/tree_based_check.c
out/debug/tree_based_check: out/debug src/tree_based_check.c \
include/trace_macros.h include/hex_conversion.h
${CC} -o $@ ${CFLAGS} ${DEBUG_CFLAGS} src/tree_based_check.c
|