* 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.
		
			
				
	
	
		
			135 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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
 | 
						|
 |