1SRCS = $(wildcard *.cc)
2TARGETS = $(patsubst %.cc,%,$(SRCS))
3CHECKS = $(patsubst %,%.check,$(TARGETS))
4CPPFLAGS = -I.. -D__STDC_FORMAT_MACROS
5CXXFLAGS = -g -Wall -Wextra -Wno-missing-field-initializers -Wshadow
6ifdef USE_OPENMP
7CPPFLAGS += -DUSE_OPENMP
8CXXFLAGS += -fopenmp
9endif
10
11FRACTALTREE_BASE_DIR = ../ft-index
12FRACTALTREE_INSTALL_DIR = $(FRACTALTREE_BASE_DIR)/install.debug
13VALGRIND = valgrind -q --leak-check=full --show-reachable=yes --suppressions=$(FRACTALTREE_BASE_DIR)/ft/valgrind.suppressions --soname-synonyms=somalloc=*tokuportability*
14
15ifeq ($(GCOV),1)
16CXXFLAGS += -fprofile-arcs -ftest-coverage
17else
18CXXFLAGS += -O3
19endif
20
21all: $(TARGETS)
22
23clean:
24	rm -rf $(TARGETS) *.gcov *.gcno *.gcda *.testdir *.dSYM
25
26%.check: %
27	LD_LIBRARY_PATH=$(FRACTALTREE_INSTALL_DIR)/lib $(VALGRIND) ./$<
28
29card.check: $(patsubst %.cc,%.check,$(wildcard card*.cc))
30	true
31
32ifndef USE_OPENMP
33# unravel vlq_test_uint64 8 times
34vlq_test_uint64_%.check:
35	LD_LIBRARY_PATH=$(FRACTALTREE_INSTALL_DIR)/lib $(VALGRIND) ./vlq_test_uint64 $(patsubst vlq_test_uint64_%.check,%,$@) 8
36vlq_test_uint64.check: $(foreach i,0 1 2 3 4 5 6 7,vlq_test_uint64_$(i).check)
37	true
38endif
39
40vlq.check: $(patsubst %.cc,%.check,$(wildcard vlq*.cc))
41	true
42
43max_test.check: max_test
44	$(VALGRIND) ./$< 1 2
45
46check: $(CHECKS)
47	true
48
49%: %.cc
50	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -g -o $@ $<
51
52card_%: card_%.cc
53	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -g -o $@ $< -I.. -I$(FRACTALTREE_INSTALL_DIR)/include -L$(FRACTALTREE_INSTALL_DIR)/lib -ltokufractaltree -ltokuportability
54