gnu: vcflib: Use shared libraries.
[jackhill/guix/guix.git] / gnu / packages / patches / vcflib-use-shared-libraries.patch
1 This patch is a combination of many of the patches from Debian:
2 https://sources.debian.org/src/libvcflib/1.0.1+dfsg-3/debian/patches/
3
4 ---
5 Makefile | 63 +++++++++++---------------------------------------------
6 1 file changed, 12 insertions(+), 51 deletions(-)
7
8 diff --git a/Makefile b/Makefile
9 index 6b13350..be85f22 100644
10 --- a/Makefile
11 +++ b/Makefile
12 @@ -114,43 +114,25 @@ BIN_SOURCES = src/vcfecho.cpp \
13 src/vcfnull2ref.cpp \
14 src/vcfinfosummarize.cpp
15
16 -# when we can figure out how to build on mac
17 -# src/vcfsom.cpp
18 -
19 #BINS = $(BIN_SOURCES:.cpp=)
20 BINS = $(addprefix $(BIN_DIR)/,$(notdir $(BIN_SOURCES:.cpp=)))
21 SHORTBINS = $(notdir $(BIN_SOURCES:.cpp=))
22
23 -TABIX = tabixpp/tabix.o
24 -FASTAHACK = fastahack/Fasta.o
25 -SMITHWATERMAN = smithwaterman/SmithWatermanGotoh.o
26 -REPEATS = smithwaterman/Repeats.o
27 -INDELALLELE = smithwaterman/IndelAllele.o
28 -DISORDER = smithwaterman/disorder.o
29 -LEFTALIGN = smithwaterman/LeftAlign.o
30 -FSOM = fsom/fsom.o
31 FILEVERCMP = filevercmp/filevercmp.o
32
33 -# Work out how to find htslib
34 -# Use the one we ship in tabixpp unless told otherwise by the environment
35 -HTS_LIB ?= $(VCF_LIB_LOCAL)/tabixpp/htslib/libhts.a
36 -HTS_INCLUDES ?= -I$(VCF_LIB_LOCAL)/tabixpp/htslib
37 -HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma -pthread
38 -
39 -
40 -INCLUDES = $(HTS_INCLUDES) -I$(INC_DIR)
41 -LDFLAGS = -L$(LIB_DIR) -lvcflib $(HTS_LDFLAGS) -lpthread -lz -lm -llzma -lbz2
42 +INCLUDES = -I$(INC_DIR) $(shell pkg-config --cflags htslib fastahack smithwaterman tabixpp)
43 +LDFLAGS = -L$(LIB_DIR) -lvcflib -lpthread -lz -lstdc++ -lm -llzma -lbz2 $(shell pkg-config --libs htslib fastahack smithwaterman tabixpp)
44
45
46
47 -all: $(OBJECTS) $(BINS) scriptToBin
48 +all: $(OBJECTS) $(BINS) scriptToBin libvcflib.a
49
50 scriptToBin: $(BINS)
51 $(CP) scripts/* $(BIN_DIR)
52
53 GIT_VERSION += $(shell git describe --abbrev=4 --dirty --always)
54
55 -CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x
56 +CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x -fPIC
57 #CXXFLAGS = -O2
58 #CXXFLAGS = -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual
59
60 @@ -168,7 +150,7 @@ profiling:
61 gprof:
62 $(MAKE) CXXFLAGS="$(CXXFLAGS) -pg" all
63
64 -$(OBJECTS): $(SOURCES) $(HEADERS) $(TABIX) multichoose pre $(SMITHWATERMAN) $(FILEVERCMP) $(FASTAHACK)
65 +$(OBJECTS): $(SOURCES) $(HEADERS) multichoose pre $(FILEVERCMP)
66 $(CXX) -c -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
67
68 multichoose: pre
69 @@ -177,39 +159,22 @@ multichoose: pre
70 intervaltree: pre
71 cd intervaltree && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
72
73 -$(TABIX): pre
74 - cd tabixpp && INCLUDES="$(HTS_INCLUDES)" LIBPATH="-L. $(HTS_LDFLAGS)" HTSLIB="$(HTS_LIB)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
75 -
76 -$(SMITHWATERMAN): pre
77 - cd smithwaterman && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
78 -
79 -$(DISORDER): $(SMITHWATERMAN)
80 -
81 -$(REPEATS): $(SMITHWATERMAN)
82 -
83 -$(LEFTALIGN): $(SMITHWATERMAN)
84 -
85 -$(INDELALLELE): $(SMITHWATERMAN)
86 -
87 -$(FASTAHACK): pre
88 - cd fastahack && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) Fasta.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
89 -
90 -#$(FSOM):
91 -# cd fsom && $(CXX) $(CXXFLAGS) -c fsom.c -lm
92 -
93 $(FILEVERCMP): pre
94 cd filevercmp && make && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/
95
96 $(SHORTBINS): pre
97 $(MAKE) $(BIN_DIR)/$@
98
99 -$(BINS): $(BIN_SOURCES) libvcflib.a $(OBJECTS) $(SMITHWATERMAN) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) pre intervaltree
100 +$(BINS): $(BIN_SOURCES) libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP) pre intervaltree
101 $(CXX) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\"
102
103 -libvcflib.a: $(OBJECTS) $(SMITHWATERMAN) $(REPEATS) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) $(TABIX) pre
104 - ar rs libvcflib.a $(OBJECTS) smithwaterman/sw.o $(FASTAHACK) $(SSW) $(FILEVERCMP) $(TABIX)
105 +libvcflib.a: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
106 + ar rs libvcflib.a $(OBJECTS) $(SSW) $(FILEVERCMP)
107 $(CP) libvcflib.a $(LIB_DIR)
108
109 +libvcflib.so: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
110 + $(CXX) -shared -o libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP)
111 + $(CP) libvcflib.so $(LIB_DIR)
112
113 test: $(BINS)
114 @prove -Itests/lib -w tests/*.t
115 @@ -230,16 +195,12 @@ clean:
116 $(RM) $(BINS) $(OBJECTS)
117 $(RM) ssw_cpp.o ssw.o
118 $(RM) libvcflib.a
119 + $(RM) libvcflib.so
120 $(RM) -r $(BIN_DIR)
121 $(RM) -r $(LIB_DIR)
122 $(RM) -r $(INC_DIR)
123 $(RM) -r $(OBJ_DIR)
124 - $(MAKE) clean -C tabixpp
125 - $(MAKE) clean -C smithwaterman
126 - $(MAKE) clean -C fastahack
127 $(MAKE) clean -C multichoose
128 - $(MAKE) clean -C fsom
129 - $(MAKE) clean -C libVCFH
130 $(MAKE) clean -C test
131 $(MAKE) clean -C filevercmp
132 $(MAKE) clean -C intervaltree
133 --
134 2.28.0
135