summaryrefslogtreecommitdiff
blob: 8e504fa429e00998fed34b09282d3a145ed42723 (plain)
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
116
117
118
119
120
121
122
123
* unbundle htslib
* honour all user flags
* use pkg-config for linking

--- a/source/Makefile
+++ b/source/Makefile
@@ -8,24 +8,12 @@
 LDFLAGSextra ?=
 CXXFLAGSextra ?=
 
-# user may define the compiler
-CXX ?= g++
-
 # pre-defined flags
-LDFLAGS_shared := -pthread -Lhtslib -Bstatic -lhts -Bdynamic -lz -lrt
-LDFLAGS_static := -static -static-libgcc -pthread -Lhtslib -lhts -lz
-LDFLAGS_Mac :=-pthread -lz htslib/libhts.a
-LDFLAGS_Mac_static :=-pthread -lz -static-libgcc htslib/libhts.a
-LDFLAGS_gdb := $(LDFLAGS_shared)
-
 COMPTIMEPLACE := -D'COMPILATION_TIME_PLACE="$(shell echo `date` $(HOSTNAME):`pwd`)"'
 
-CXXFLAGS_common := -pipe -std=c++11 -Wall -Wextra -fopenmp $(COMPTIMEPLACE)
-CXXFLAGS_main := -O3 $(CXXFLAGS_common)
-CXXFLAGS_gdb :=  -O0 -g $(CXXFLAGS_common)
-
-CFLAGS := -O3 -pipe -Wall -Wextra $(CFLAGS)
-
+CFLAGS_common = -Wall -Wextra -pthread `$(PKG_CONFIG) --cflags htslib` `$(PKG_CONFIG) --cflags zlib`
+CXXFLAGS_common = $(CFLAGS_common) -std=c++11 -fopenmp $(COMPTIMEPLACE)
+LIBS_common = -pthread `$(PKG_CONFIG) --libs htslib` `$(PKG_CONFIG) --libs zlib` -lrt
 
 ##########################################################################################################
 
@@ -54,10 +42,10 @@
 
 
 %.o : %.cpp
-	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $<
+	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXFLAGS_common) $<
 
 %.o : %.c
-	$(CXX) -c $(CPPFLAGS) $(CFLAGS) $<
+	$(CXX) -c $(CPPFLAGS) $(CFLAGS) $(CFLAGS_common) $<
 
 all: STAR
 
@@ -84,7 +72,7 @@
 ifneq ($(MAKECMDGOALS),CLEAN)
 ifneq ($(MAKECMDGOALS),STARforMac)
 ifneq ($(MAKECMDGOALS),STARforMacGDB)
-Depend.list: $(SOURCES) parametersDefault.xxd htslib
+Depend.list: $(SOURCES) parametersDefault.xxd
 	echo $(SOURCES)
 	/bin/rm -f ./Depend.list
 	$(CXX) $(CXXFLAGS_common) -MM $^ >> Depend.list
@@ -95,57 +83,34 @@
 endif
 endif
 
-htslib : htslib/libhts.a
-
-htslib/libhts.a :
-	$(MAKE) -C htslib lib-static
-
 parametersDefault.xxd: parametersDefault
 	xxd -i parametersDefault > parametersDefault.xxd
 
-STAR : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) $(CXXFLAGS)
-STAR : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS)
 STAR : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STAR $(OBJECTS) $(LIBS) $(LIBS_common)
 
-POSIXSHARED : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -DPOSIX_SHARED_MEM $(CXXFLAGS)
-POSIXSHARED : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS)
 POSIXSHARED : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STAR $(OBJECTS) $(LIBS) $(LIBS_common)
 
-STARstatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) $(CXXFLAGS)
-STARstatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_static) $(LDFLAGS)
 STARstatic : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STAR $(OBJECTS) $(LIBS) $(LIBS_common)
 
-STARlong : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS)
-STARlong : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_shared) $(LDFLAGS)
 STARlong : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STARlong $(OBJECTS) $(LIBS) $(LIBS_common)
 
-STARlongStatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS)
-STARlongStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_static) $(LDFLAGS)
 STARlongStatic : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STARlong $(OBJECTS) $(LIBS) $(LIBS_common)
 
-gdb : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_gdb) $(CXXFLAGS)
-gdb : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_gdb) $(LDFLAGS)
 gdb : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STAR $(OBJECTS) $(LIBS) $(LIBS_common)
 
-gdb-long : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_gdb) -D'COMPILE_FOR_LONG_READS' $(CXXFLAGS)
-gdb-long : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_gdb) $(LDFLAGS)
 gdb-long : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STARlong $(OBJECTS) $(LIBS) $(LIBS_common)
 
-STARforMacStatic : CXXFLAGS := $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' $(CXXFLAGS)
-STARforMacStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_Mac_static) $(LDFLAGS)
 STARforMacStatic : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STAR $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STAR $(OBJECTS) $(LIBS) $(LIBS_common)
 
-STARlongForMacStatic : CXXFLAGS := -D'COMPILE_FOR_LONG_READS' $(CXXFLAGSextra) $(CXXFLAGS_main) -D'COMPILE_FOR_MAC' $(CXXFLAGS)
-STARlongForMacStatic : LDFLAGS := $(LDFLAGSextra) $(LDFLAGS_Mac_static) $(LDFLAGS)
 STARlongForMacStatic : Depend.list parametersDefault.xxd $(OBJECTS)
-	$(CXX) -o STARlong $(CXXFLAGS) $(OBJECTS) $(LDFLAGS)
+	$(CXX) $(CXXFLAGS) $(CXXFLAGS_common) $(LDFLAGS) -o STARlong $(OBJECTS) $(LIBS) $(LIBS_common)