summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:15:05 +0300
committerEfraim Flashner <efraim@flashner.co.il>2020-08-27 18:18:55 +0300
commit6d8dd5bad773a9bc4eaf0b3c13dd9c373c3546c3 (patch)
tree27cb328e22c4cd46b6b4a2b0f363329e12a6a181 /gnu/packages/patches
parent4bbcbe93cd7e65b8e6ceba8988365d3c1a05a867 (diff)
downloadguix-6d8dd5bad773a9bc4eaf0b3c13dd9c373c3546c3.tar.gz
gnu: vcflib: Use shared libraries.
* gnu/packages/bioinformatics.scm (vcflib)[source]: Add patch. Add
snippet to adjust files for new locations.
[inputs]: Add fastahack, smithwaterman, tabixpp, xz.
[native-inputs]: Add pkg-config. Remove the package-source of fastahack,
fsom, smithwaterman, tabixpp.
[arguments]: Remove make-flags. Add custom phase to add the output lib
directory to the rpath. Adjust custom 'unpack-submodule-sources for the
change in native-inputs. Adjust custom 'install phase to also install
libraries and headers.
* gnu/packages/patches/vcflib-use-shared-libraries.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/vcflib-use-shared-libraries.patch135
1 files changed, 135 insertions, 0 deletions
diff --git a/gnu/packages/patches/vcflib-use-shared-libraries.patch b/gnu/packages/patches/vcflib-use-shared-libraries.patch
new file mode 100644
index 0000000000..e198ec663c
--- /dev/null
+++ b/gnu/packages/patches/vcflib-use-shared-libraries.patch
@@ -0,0 +1,135 @@
+This patch is a combination of many of the patches from Debian:
+https://sources.debian.org/src/libvcflib/1.0.1+dfsg-3/debian/patches/
+
+---
+ Makefile | 63 +++++++++++---------------------------------------------
+ 1 file changed, 12 insertions(+), 51 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 6b13350..be85f22 100644
+--- a/Makefile
++++ b/Makefile
+@@ -114,43 +114,25 @@ BIN_SOURCES = src/vcfecho.cpp \
+ 			  src/vcfnull2ref.cpp \
+ 			  src/vcfinfosummarize.cpp
+ 
+-# when we can figure out how to build on mac
+-# src/vcfsom.cpp
+-
+ #BINS = $(BIN_SOURCES:.cpp=)
+ BINS = $(addprefix $(BIN_DIR)/,$(notdir $(BIN_SOURCES:.cpp=)))
+ SHORTBINS = $(notdir $(BIN_SOURCES:.cpp=))
+ 
+-TABIX = tabixpp/tabix.o
+-FASTAHACK = fastahack/Fasta.o
+-SMITHWATERMAN = smithwaterman/SmithWatermanGotoh.o
+-REPEATS = smithwaterman/Repeats.o
+-INDELALLELE = smithwaterman/IndelAllele.o
+-DISORDER = smithwaterman/disorder.o
+-LEFTALIGN = smithwaterman/LeftAlign.o
+-FSOM = fsom/fsom.o
+ FILEVERCMP = filevercmp/filevercmp.o
+ 
+-# Work out how to find htslib
+-# Use the one we ship in tabixpp unless told otherwise by the environment
+-HTS_LIB ?= $(VCF_LIB_LOCAL)/tabixpp/htslib/libhts.a
+-HTS_INCLUDES ?= -I$(VCF_LIB_LOCAL)/tabixpp/htslib
+-HTS_LDFLAGS ?= -L$(VCF_LIB_LOCAL)/tabixpp/htslib -lhts -lbz2 -lm -lz -llzma -pthread
+-
+-
+-INCLUDES = $(HTS_INCLUDES) -I$(INC_DIR) 
+-LDFLAGS = -L$(LIB_DIR) -lvcflib $(HTS_LDFLAGS) -lpthread -lz -lm -llzma -lbz2
++INCLUDES = -I$(INC_DIR) $(shell pkg-config --cflags htslib fastahack smithwaterman tabixpp)
++LDFLAGS = -L$(LIB_DIR) -lvcflib -lpthread -lz -lstdc++ -lm -llzma -lbz2 $(shell pkg-config --libs htslib fastahack smithwaterman tabixpp)
+ 
+ 
+ 
+-all: $(OBJECTS) $(BINS) scriptToBin
++all: $(OBJECTS) $(BINS) scriptToBin libvcflib.a
+ 
+ scriptToBin: $(BINS)
+ 	$(CP) scripts/* $(BIN_DIR)
+ 
+ GIT_VERSION += $(shell git describe --abbrev=4 --dirty --always)
+ 
+-CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x
++CXXFLAGS = -Ofast -D_FILE_OFFSET_BITS=64 -std=c++0x -fPIC
+ #CXXFLAGS = -O2
+ #CXXFLAGS = -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual
+ 
+@@ -168,7 +150,7 @@ profiling:
+ gprof:
+ 	$(MAKE) CXXFLAGS="$(CXXFLAGS) -pg" all
+ 
+-$(OBJECTS): $(SOURCES) $(HEADERS) $(TABIX) multichoose pre $(SMITHWATERMAN) $(FILEVERCMP) $(FASTAHACK)
++$(OBJECTS): $(SOURCES) $(HEADERS) multichoose pre $(FILEVERCMP)
+ 	$(CXX) -c -o $@ src/$(*F).cpp $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) && $(CP) src/*.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+ 
+ multichoose: pre
+@@ -177,39 +159,22 @@ multichoose: pre
+ intervaltree: pre
+ 	cd intervaltree && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+ 
+-$(TABIX): pre
+-	cd tabixpp && INCLUDES="$(HTS_INCLUDES)" LIBPATH="-L. $(HTS_LDFLAGS)" HTSLIB="$(HTS_LIB)" $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/
+-
+-$(SMITHWATERMAN): pre
+-	cd smithwaterman && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
+-
+-$(DISORDER): $(SMITHWATERMAN)
+-
+-$(REPEATS): $(SMITHWATERMAN)
+-
+-$(LEFTALIGN): $(SMITHWATERMAN)
+-
+-$(INDELALLELE): $(SMITHWATERMAN)
+-
+-$(FASTAHACK): pre
+-	cd fastahack && $(MAKE) && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) Fasta.o $(VCF_LIB_LOCAL)/$(OBJ_DIR)/
+-
+-#$(FSOM):
+-#	cd fsom && $(CXX) $(CXXFLAGS) -c fsom.c -lm
+-
+ $(FILEVERCMP): pre
+ 	cd filevercmp && make && $(CP) *.h* $(VCF_LIB_LOCAL)/$(INC_DIR)/ && $(CP) *.o $(VCF_LIB_LOCAL)/$(INC_DIR)/
+ 
+ $(SHORTBINS): pre
+ 	$(MAKE) $(BIN_DIR)/$@
+ 
+-$(BINS): $(BIN_SOURCES) libvcflib.a $(OBJECTS) $(SMITHWATERMAN) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) pre intervaltree
++$(BINS): $(BIN_SOURCES) libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP) pre intervaltree
+ 	$(CXX) src/$(notdir $@).cpp -o $@ $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -DVERSION=\"$(GIT_VERSION)\"
+ 
+-libvcflib.a: $(OBJECTS) $(SMITHWATERMAN) $(REPEATS) $(FASTAHACK) $(DISORDER) $(LEFTALIGN) $(INDELALLELE) $(SSW) $(FILEVERCMP) $(TABIX) pre
+-	ar rs libvcflib.a $(OBJECTS) smithwaterman/sw.o $(FASTAHACK) $(SSW) $(FILEVERCMP) $(TABIX)
++libvcflib.a: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
++	ar rs libvcflib.a $(OBJECTS) $(SSW) $(FILEVERCMP)
+ 	$(CP) libvcflib.a $(LIB_DIR)
+ 
++libvcflib.so: $(OBJECTS) $(SSW) $(FILEVERCMP) pre
++	$(CXX) -shared -o libvcflib.so $(OBJECTS) $(SSW) $(FILEVERCMP)
++	$(CP) libvcflib.so $(LIB_DIR)
+ 
+ test: $(BINS)
+ 	@prove -Itests/lib -w tests/*.t
+@@ -230,16 +195,12 @@ clean:
+ 	$(RM) $(BINS) $(OBJECTS)
+ 	$(RM) ssw_cpp.o ssw.o
+ 	$(RM) libvcflib.a
++	$(RM) libvcflib.so
+ 	$(RM) -r $(BIN_DIR)
+ 	$(RM) -r $(LIB_DIR)
+ 	$(RM) -r $(INC_DIR)
+ 	$(RM) -r $(OBJ_DIR)
+-	$(MAKE) clean -C tabixpp
+-	$(MAKE) clean -C smithwaterman
+-	$(MAKE) clean -C fastahack
+ 	$(MAKE) clean -C multichoose
+-	$(MAKE) clean -C fsom
+-	$(MAKE) clean -C libVCFH
+ 	$(MAKE) clean -C test
+ 	$(MAKE) clean -C filevercmp
+ 	$(MAKE) clean -C intervaltree
+-- 
+2.28.0
+