File: makefile

package info (click to toggle)
pbdagcon 0.3%2Bgit20180411.c14c422%2Bdfsg-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,004 kB
  • sloc: ansic: 8,522; cpp: 7,747; python: 668; makefile: 197; sh: 130
file content (115 lines) | stat: -rw-r--r-- 3,173 bytes parent folder | download | duplicates (2)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
.PHONY: all check test_target_hit test_alngraph test_alignment test_simple_aligner
all:

THISDIR:=$(dir $(lastword ${MAKEFILE_LIST}))
-include ${CURDIR}/../../defines.mk
SRCDIR := ${THISDIR}

INCDIRS := . \
	${SRCDIR} \
	${SRCDIR}/../../src/cpp \
	${DAZZ_DB_INCLUDE} \
	${DALIGNER_INCLUDE} \
	${LIBBLASR_INCLUDE} \
	${LIBPBDATA_INCLUDE} \
	${LIBPBIHDF_INCLUDE} \
	${PBBAM_INCLUDE} \
	${HDF5_INCLUDE} \
	${BOOST_INCLUDE} \
	${GTEST_INCLUDE} \
	third-party

LIBDIRS := \
	${LIBBLASR_LIB} \
	${LIBPBDATA_LIB} \
	${LIBPBIHDF_LIB} \
	${PBBAM_LIB} \
	${HDF5_LIB} \
	${GCC_LIB} \
	${ZLIB_LIB}

PTHREAD_LIBFLAGS:=-lpthread
LDLIBS+= \
	${LIBBLASR_LIBFLAGS} \
	${LIBPBDATA_LIBFLAGS} \
	${LIBPBIHDF_LIBFLAGS} \
	${PBBAM_LIBFLAGS} \
	${HDF5_LIBFLAGS} \
	${HTSLIB_LIBS} \
	${ZLIB_LIBFLAGS} \
	${PTHREAD_LIBFLAGS} \
	${DL_LIBFLAGS}
CPPFLAGS+=$(patsubst %,-I%,${INCDIRS}) $(HTSLIB_CFLAGS)
LDFLAGS+=$(patsubst %,-L %,${LIBDIRS})

# For fused-src, gtest-all.cc includes gtest/*.
# For non-fused, gtest-all.cc includes src/gtest-*.
# So we add -I ${GTEST_SRC}/.. for the latter case.
GTEST_CPPFLAGS += -isystem $(GTEST_INCLUDE) -isystem ${GTEST_SRC}/..
GTEST_CXXFLAGS += -g -Wall -Wextra -pthread

CXXFLAGS += -O3

GTEST_OBJECTS := gtest-all.o gtest_main.o
DAZCON_OBJECTS := DB.o QV.o align.o Alignment.o \
			      DazAlnProvider.o

PBDAGCON_OBJECTS := AlnGraphBoost.o Alignment.o \
					SimpleAligner.o
pbdagcon_testexes :=    test-alngraph \
                        test-alignment \
                        test-simple_aligner \
                        ${null}
dazcon_testexes :=    test-target_hit \
                      test-target \
                      ${null}
# Remove the test from the broken_testexes variable, once fixed.
broken_testexes := test-target \
                   ${null}
testexes := ${pbdagcon_testexes} ${dazcon_testexes}
# Remove broken tests exes from the testexes list
testexes   := $(filter-out ${broken_testexes},${testexes})

empty:=
space:=${empty} ${empty}
ldp+=$(subst ${space},:,${LIBDIRS}):${LD_LIBRARY_PATH}
#export LD_LIBRARY_PATH

vpath %.c ${THISDIR}/../../src/cpp
vpath %.cpp ${THISDIR}/../../src/cpp
vpath %.cc ${GTEST_SRC}
vpath align.c ${DALIGNER_SRC}
vpath DB.c ${DAZZ_DB_SRC}
vpath QV.c ${DAZZ_DB_SRC}

#VALGRIND?=/mnt/software/v/valgrind/3.10.1/bin/valgrind --leak-check=full
BUILDMSG = "=== Building $@ ==="

${GTEST_OBJECTS}: CXXFLAGS+=${GTEST_CXXFLAGS}
${GTEST_OBJECTS}: CPPFLAGS+=${GTEST_CPPFLAGS}

all: check
check: gtest-run
gtest-run: $(testexes:%=%-gtestrun)
gtest-build: ${testexes}
xml:
	mkdir xml

%-gtestrun: % | xml
	LD_LIBRARY_PATH=${ldp} PBDAGCON_TEST_DATA_DIR=${THISDIR} ${VALGRIND} ./$< --gtest_output=xml:xml/${<F}.xml
test-%:
	${CXX} -o $@ $^ ${LDFLAGS} ${LDLIBS}

# dazcon  test executables:
test-target_hit: ${GTEST_OBJECTS} ${DAZCON_OBJECTS} TargetHitTest.o
test-target: ${GTEST_OBJECTS} ${DAZCON_OBJECTS} TargetTest.o

# pbdagcon test executables:
test-alngraph: ${GTEST_OBJECTS} ${PBDAGCON_OBJECTS} AlnGraphBoostTest.o
test-alignment: ${GTEST_OBJECTS} ${PBDAGCON_OBJECTS} AlignmentTest.o
test-simple_aligner: ${GTEST_OBJECTS} ${PBDAGCON_OBJECTS} SimpleAlignerTest.o

clean:
	${RM} ${SRCDIR}/*.o
	${RM} *.o
	${RM} test_*