-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
33 lines (24 loc) · 1.13 KB
/
Makefile
File metadata and controls
33 lines (24 loc) · 1.13 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
#!make -f
CXX=g++
CXXFLAGS=-std=c++11 -Werror -Wsign-conversion
VALGRIND_FLAGS=-v --leak-check=full --show-leak-kinds=all --error-exitcode=99
COMMON_SOURCES=Graph.cpp Algorithms.cpp
DEMO_SOURCES=Demo.cpp $(COMMON_SOURCES)
TEST_SOURCES=TestCounter.cpp Test.cpp $(COMMON_SOURCES)
DEMO_OBJECTS=$(subst .cpp,.o,$(DEMO_SOURCES))
TEST_OBJECTS=$(subst .cpp,.o,$(TEST_SOURCES))
run: demo
./$^
demo: $(DEMO_OBJECTS)
$(CXX) $(CXXFLAGS) $^ -o demo
test: $(TEST_OBJECTS)
$(CXX) $(CXXFLAGS) $^ -o test
tidy:
clang-tidy $(DEMO_SOURCES) $(TEST_SOURCES) -checks=bugprone-*,clang-analyzer-*,cppcoreguidelines-*,performance-*,portability-*,readability-*,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory,-misc-no-recursion,-bugprone-easily-swappable-parameters,-readability-identifier-length,-cppcoreguidelines-avoid-magic-numbers --warnings-as-errors=-* --
valgrind: demo test
valgrind --tool=memcheck $(VALGRIND_FLAGS) ./demo 2>&1 | { egrep "lost| at " || true; }
valgrind --tool=memcheck $(VALGRIND_FLAGS) ./test 2>&1 | { egrep "lost| at " || true; }
%.o: %.cpp
$(CXX) $(CXXFLAGS) --compile $< -o $@
clean:
rm -f *.o demo test