-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakeFile
More file actions
55 lines (44 loc) · 1.54 KB
/
Copy pathMakeFile
File metadata and controls
55 lines (44 loc) · 1.54 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
MODULES = src/malloc.c
OUT = exec/exec
CC = gcc
CFLAGS = -O2 -Iinclude -Wall -Wextra -Werror
HOMEBREW_PREFIX := $(shell brew --prefix 2>/dev/null)
ifeq ($(HOMEBREW_PREFIX),)
$(error Install Criterion: brew install criterion)
endif
CRITERION_CFLAGS = -I$(HOMEBREW_PREFIX)/include
CRITERION_LIBS = -L$(HOMEBREW_PREFIX)/lib -lcriterion
MALLOC_OBJ = exec/malloc.o
MALLOC_TEST_OBJ = exec/malloc_test.o
TEST_OUT = exec/test_exec
TEST_SOURCES = $(wildcard tests/unit/*.c tests/integrated/*.c)
BENCH_OUT = exec/bench_exec
BENCH_SOURCES = $(wildcard tests/bench/*.c)
.PHONY: build build_and_run_ex test bench
$(MALLOC_OBJ): $(MODULES)
mkdir -p exec
$(CC) $(CFLAGS) -c -o $(MALLOC_OBJ) $(MODULES)
$(MALLOC_TEST_OBJ): $(MODULES)
mkdir -p exec
$(CC) $(CFLAGS) -DMALLOC_ERR_LOG -c -o $(MALLOC_TEST_OBJ) $(MODULES)
build: $(MALLOC_OBJ)
mkdir -p exec
$(CC) $(CFLAGS) -o $(OUT) example/normal_allocation.c $(MALLOC_OBJ)
build_and_run_ex: build
./$(OUT)
test: $(MALLOC_TEST_OBJ)
mkdir -p exec
$(CC) $(CFLAGS) $(CRITERION_CFLAGS) -o $(TEST_OUT) $(TEST_SOURCES) $(MALLOC_TEST_OBJ) $(CRITERION_LIBS)
./$(TEST_OUT)
bench: $(MALLOC_OBJ)
mkdir -p exec
$(CC) $(CFLAGS) $(CRITERION_CFLAGS) -o $(BENCH_OUT) $(BENCH_SOURCES) $(MALLOC_OBJ) $(CRITERION_LIBS)
./$(OUT)
test: $(MALLOC_TEST_OBJ)
mkdir -p exec
$(CC) $(CFLAGS) $(CRITERION_CFLAGS) -o $(TEST_OUT) $(TEST_SOURCES) $(MALLOC_TEST_OBJ) $(CRITERION_LIBS)
./$(TEST_OUT)
bench: $(MALLOC_OBJ)
mkdir -p exec
$(CC) $(CFLAGS) $(CRITERION_CFLAGS) -o $(BENCH_OUT) $(BENCH_SOURCES) $(MALLOC_OBJ) $(CRITERION_LIBS)
./$(BENCH_OUT)