-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (52 loc) · 1.68 KB
/
Copy pathMakefile
File metadata and controls
70 lines (52 loc) · 1.68 KB
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
CC ?= cc
AR ?= ar
OPT ?= -O2
CFLAGS ?= -std=c99 -Wall -Wextra -Iinclude
BUILD_DIR = build
CUC_LIB = $(BUILD_DIR)/libcuc.a
CUC_OBJ = $(BUILD_DIR)/src/cuc.o
CDS_LIB = $(BUILD_DIR)/libcds.a
CDS_OBJ = $(BUILD_DIR)/src/cds.o
CTEST = $(BUILD_DIR)/tests/ctest
CUC_EXAMPLE = $(BUILD_DIR)/examples/cuc_example
CDS_EXAMPLE = $(BUILD_DIR)/examples/cds_example
CUC_SRC = src/cuc.c
CUC_HDR = include/cuc.h
CDS_SRC = src/cds.c
CDS_HDR = include/cds.h
LIBS = $(CUC_LIB) $(CDS_LIB)
EXAMPLES = $(CUC_EXAMPLE) $(CDS_EXAMPLE)
all: $(LIBS) $(CTEST) $(EXAMPLES)
lib: $(LIBS)
$(CUC_OBJ): $(CUC_SRC) $(CUC_HDR)
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(OPT) -Iinclude -c $(CUC_SRC) -o $@
$(CUC_LIB): $(CUC_OBJ)
mkdir -p $(dir $@)
$(AR) rcs $@ $(CUC_OBJ)
$(CDS_OBJ): $(CDS_SRC) $(CDS_HDR)
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(OPT) -Iinclude -c $(CDS_SRC) -o $@
$(CDS_LIB): $(CDS_OBJ)
mkdir -p $(dir $@)
$(AR) rcs $@ $(CDS_OBJ)
ctest: $(CTEST)
$(CTEST): tests/unit_tests.c tests/test_cuc.c tests/test_cds.c tests/cunit.h tests/test_runners.h \
$(CUC_SRC) $(CUC_HDR) $(CDS_SRC) $(CDS_HDR)
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(OPT) -Iinclude -Itests \
tests/unit_tests.c tests/test_cuc.c tests/test_cds.c $(CUC_SRC) $(CDS_SRC) -o $@
example: $(EXAMPLES)
$(CUC_EXAMPLE): examples/cuc_example.c $(CUC_SRC) $(CUC_HDR)
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(OPT) -Iinclude examples/cuc_example.c $(CUC_SRC) -o $@
$(CDS_EXAMPLE): examples/cds_example.c $(CDS_SRC) $(CDS_HDR)
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(OPT) -Iinclude examples/cds_example.c $(CDS_SRC) -o $@
run: $(CTEST)
$(CTEST)
coverage-html:
bash tools/coverage-html.sh
clean:
rm -rf $(BUILD_DIR)
.PHONY: all lib ctest example run coverage-html clean