Loading .gitmodules +6 −6 Original line number Diff line number Diff line [submodule "htslib"] path = htslib url = https://github.com/lomereiter/htslib.git [submodule "undeaD"] path = undeaD url = https://github.com/dlang/undeaD [submodule "BioD"] path = BioD url = https://github.com/biod/BioD.git [submodule "lz4"] path = lz4 url = https://github.com/lz4/lz4.git [submodule "BioD"] path = BioD url = https://github.com/biod/BioD.git [submodule "undeaD"] path = undeaD url = https://github.com/biod/undeaD.git .travis.yml +1 −8 Original line number Diff line number Diff line Loading @@ -8,15 +8,8 @@ matrix: include: - os: linux compiler: gcc addons: apt: packages: # Our dev environment is a more recent GNU C++ # note that Debian liblz4-dev no longer supports LZ4 frames # - liblz4-dev - shunit2 - os: osx compiler: clang script: - make # - make test - disable tests because shunit2 we use is older No newline at end of file - make check INSTALL.md +22 −5 Original line number Diff line number Diff line Loading @@ -2,10 +2,27 @@ ## Sambamba dependencies * D compiler * gcc tool chain * BioD * htslib * undeaD * D compiler (ldc) * BioD (git submodule) * gcc tool chain (for htslib and lz4) * htslib (git submodule) * undeaD (git submodule) * libz * liblz4 ## Install Sambamba from source After checking out the source from github with git submodules is is possibleto install the build tools with GNU Guix guix package -i gcc gdb bash ld-wrapper ldc which python2 git Even better, with Guix, you can create a light-weight container in the source tree and run our development setup guix environment -C guix --ad-hoc gcc gdb bash ld-wrapper ldc which python git make clean make -j 4 make check this way all dependencies are isolated. Makefile +22 −7 Original line number Diff line number Diff line # This is a minimalistic make file to build sambamba with ldc2 as per instructions on # https://github.com/biod/sambamba#compiling-sambamba # # Targets (64-bit): # # Linux # OSX # # Typical usage: # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib debug|profile|release|static # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib debug|profile|release|static # # Static release with optimization (for releases): # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib pgo-static # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib pgo-static # # Debug version # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib debug # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib debug # D_COMPILER=ldc2 UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Darwin) SYS = OSX else SYS = LINUX LINK_OBJ = utils/ldc_version_info_.o endif DFLAGS = -wi -I. -IBioD -IundeaD/src -g DLIBS = $(LIBRARY_PATH)/libphobos2-ldc.a $(LIBRARY_PATH)/libdruntime-ldc.a DLIBS_DEBUG = $(LIBRARY_PATH)/libphobos2-ldc-debug.a $(LIBRARY_PATH)/libdruntime-ldc-debug.a LIBS = htslib/libhts.a lz4/lib/liblz4.a -L-L$(LIBRARY_PATH) -L-lrt -L-lpthread -L-lm LIBS = htslib/libhts.a lz4/lib/liblz4.a -L-L$(LIBRARY_PATH) -L-lpthread -L-lm LIBS_STATIC = $(LIBRARY_PATH)/libc.a $(DLIBS) htslib/libhts.a $(LIBRARY_PATH)/liblz4.a SRC = $(wildcard main.d utils/*.d thirdparty/*.d cram/*.d) $(wildcard undeaD/src/undead/*.d) $(wildcard BioD/bio/*/*.d BioD/bio/*/*/*.d BioD/bio2/*.d BioD/bio2/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) OBJ = $(SRC:.d=.o) utils/ldc_version_info_.o Loading Loading @@ -49,7 +64,7 @@ htslib-static: cd htslib && $(MAKE) ldc-version-info: ./gen_ldc_version_info.py $(shell which ldmd2) > utils/ldc_version_info_.d python3 ./gen_ldc_version_info.py $(shell which ldmd2) > utils/ldc_version_info_.d cat utils/ldc_version_info_.d utils/ldc_version_info_.o: ldc-version-info Loading Loading @@ -78,7 +93,7 @@ singleobj: # ---- Link step $(OUT): build-setup singleobj utils/ldc_version_info_.o $(info linking...) $(D_COMPILER) $(DFLAGS) -of=bin/sambamba bin/sambamba.o utils/ldc_version_info_.o $(LIBS) $(D_COMPILER) $(DFLAGS) -of=bin/sambamba bin/sambamba.o $(LINK_OBJ) $(LIBS) test: ./run_tests.sh Loading @@ -97,7 +112,7 @@ install: install -m 0755 bin/sambamba $(prefix)/bin clean: clean-d cd htslib ; make clean cd htslib ; $(MAKE) clean rm -f profile.data rm -f profile.raw Loading Makefile.guix +9 −6 Original line number Diff line number Diff line # GNU Guix makefile. GNU Guix is the package manager for GNU and we use it for # sambamba development and deployment. Normally use the standard Makefile # instead. # GNU Guix makefile. GNU Guix is the package manager for GNU and we # use it for sambamba development and deployment. Normally use the # standard Makefile instead because it compiles into a singleobj. # # To build sambamba on GNU Guix: # # make -f Makefile.guix # make -f Makefile.guix GUIX=~/opt/sambamba-dev-env # # run with # Loading @@ -18,7 +18,10 @@ # # The following two are modified by the Guix package: D_COMPILER=ldc2 LDC_LIB_PATH=$(HOME)/.guix-profile/lib ifndef GUIX GUIX=$(HOME)/.guix-profile endif LDC_LIB_PATH=$(GUIX)/lib UNDEAD_PATH=../undeaD/src BIOD_PATH=../BioD Loading @@ -31,7 +34,7 @@ RPATH = -L--rpath=$(dir $(realpath $(LDC_LIB_PATH)/libz.so)):$(dir $(realpath $ LIBS = htslib/libhts.a -L-L$(LDC_LIB_PATH) -L-lrt -L-lpthread -L-lm -L-lz -L-llz4 # LIBS = htslib/libhts.a -L-lrt -L-lpthread -L-lm -L-lz -L-llz4 LIBS_STATIC = $(DLIBS) htslib/libhts.a $(LDC_LIB_PATH)/liblz4.a SRC = $(wildcard utils/*.d thirdparty/*.d cram/*.d) $(wildcard $(UNDEAD_PATH)/undead/**/*.d) $(wildcard $(UNDEAD_PATH)/undead/*.d) $(wildcard $(BIOD_PATH)/bio/*/*.d $(BIOD_PATH)/bio/*/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) utils/ldc_version_info_.d SRC = $(wildcard main.d utils/*.d thirdparty/*.d cram/*.d) $(wildcard undeaD/src/undead/*.d undeaD/src/undead/*/*.d) $(wildcard BioD/bio/*/*.d BioD/bio/*/*/*.d BioD/bio2/*.d BioD/bio2/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) OBJ = $(SRC:.d=.o) OUT = bin/sambamba Loading Loading
.gitmodules +6 −6 Original line number Diff line number Diff line [submodule "htslib"] path = htslib url = https://github.com/lomereiter/htslib.git [submodule "undeaD"] path = undeaD url = https://github.com/dlang/undeaD [submodule "BioD"] path = BioD url = https://github.com/biod/BioD.git [submodule "lz4"] path = lz4 url = https://github.com/lz4/lz4.git [submodule "BioD"] path = BioD url = https://github.com/biod/BioD.git [submodule "undeaD"] path = undeaD url = https://github.com/biod/undeaD.git
.travis.yml +1 −8 Original line number Diff line number Diff line Loading @@ -8,15 +8,8 @@ matrix: include: - os: linux compiler: gcc addons: apt: packages: # Our dev environment is a more recent GNU C++ # note that Debian liblz4-dev no longer supports LZ4 frames # - liblz4-dev - shunit2 - os: osx compiler: clang script: - make # - make test - disable tests because shunit2 we use is older No newline at end of file - make check
INSTALL.md +22 −5 Original line number Diff line number Diff line Loading @@ -2,10 +2,27 @@ ## Sambamba dependencies * D compiler * gcc tool chain * BioD * htslib * undeaD * D compiler (ldc) * BioD (git submodule) * gcc tool chain (for htslib and lz4) * htslib (git submodule) * undeaD (git submodule) * libz * liblz4 ## Install Sambamba from source After checking out the source from github with git submodules is is possibleto install the build tools with GNU Guix guix package -i gcc gdb bash ld-wrapper ldc which python2 git Even better, with Guix, you can create a light-weight container in the source tree and run our development setup guix environment -C guix --ad-hoc gcc gdb bash ld-wrapper ldc which python git make clean make -j 4 make check this way all dependencies are isolated.
Makefile +22 −7 Original line number Diff line number Diff line # This is a minimalistic make file to build sambamba with ldc2 as per instructions on # https://github.com/biod/sambamba#compiling-sambamba # # Targets (64-bit): # # Linux # OSX # # Typical usage: # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib debug|profile|release|static # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib debug|profile|release|static # # Static release with optimization (for releases): # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib pgo-static # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib pgo-static # # Debug version # # make LIBRARY_PATH=~/opt/ldc2-1.7.0-linux-x86_64/lib debug # make LIBRARY_PATH=~/opt/ldc2-$ver-linux-x86_64/lib debug # D_COMPILER=ldc2 UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Darwin) SYS = OSX else SYS = LINUX LINK_OBJ = utils/ldc_version_info_.o endif DFLAGS = -wi -I. -IBioD -IundeaD/src -g DLIBS = $(LIBRARY_PATH)/libphobos2-ldc.a $(LIBRARY_PATH)/libdruntime-ldc.a DLIBS_DEBUG = $(LIBRARY_PATH)/libphobos2-ldc-debug.a $(LIBRARY_PATH)/libdruntime-ldc-debug.a LIBS = htslib/libhts.a lz4/lib/liblz4.a -L-L$(LIBRARY_PATH) -L-lrt -L-lpthread -L-lm LIBS = htslib/libhts.a lz4/lib/liblz4.a -L-L$(LIBRARY_PATH) -L-lpthread -L-lm LIBS_STATIC = $(LIBRARY_PATH)/libc.a $(DLIBS) htslib/libhts.a $(LIBRARY_PATH)/liblz4.a SRC = $(wildcard main.d utils/*.d thirdparty/*.d cram/*.d) $(wildcard undeaD/src/undead/*.d) $(wildcard BioD/bio/*/*.d BioD/bio/*/*/*.d BioD/bio2/*.d BioD/bio2/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) OBJ = $(SRC:.d=.o) utils/ldc_version_info_.o Loading Loading @@ -49,7 +64,7 @@ htslib-static: cd htslib && $(MAKE) ldc-version-info: ./gen_ldc_version_info.py $(shell which ldmd2) > utils/ldc_version_info_.d python3 ./gen_ldc_version_info.py $(shell which ldmd2) > utils/ldc_version_info_.d cat utils/ldc_version_info_.d utils/ldc_version_info_.o: ldc-version-info Loading Loading @@ -78,7 +93,7 @@ singleobj: # ---- Link step $(OUT): build-setup singleobj utils/ldc_version_info_.o $(info linking...) $(D_COMPILER) $(DFLAGS) -of=bin/sambamba bin/sambamba.o utils/ldc_version_info_.o $(LIBS) $(D_COMPILER) $(DFLAGS) -of=bin/sambamba bin/sambamba.o $(LINK_OBJ) $(LIBS) test: ./run_tests.sh Loading @@ -97,7 +112,7 @@ install: install -m 0755 bin/sambamba $(prefix)/bin clean: clean-d cd htslib ; make clean cd htslib ; $(MAKE) clean rm -f profile.data rm -f profile.raw Loading
Makefile.guix +9 −6 Original line number Diff line number Diff line # GNU Guix makefile. GNU Guix is the package manager for GNU and we use it for # sambamba development and deployment. Normally use the standard Makefile # instead. # GNU Guix makefile. GNU Guix is the package manager for GNU and we # use it for sambamba development and deployment. Normally use the # standard Makefile instead because it compiles into a singleobj. # # To build sambamba on GNU Guix: # # make -f Makefile.guix # make -f Makefile.guix GUIX=~/opt/sambamba-dev-env # # run with # Loading @@ -18,7 +18,10 @@ # # The following two are modified by the Guix package: D_COMPILER=ldc2 LDC_LIB_PATH=$(HOME)/.guix-profile/lib ifndef GUIX GUIX=$(HOME)/.guix-profile endif LDC_LIB_PATH=$(GUIX)/lib UNDEAD_PATH=../undeaD/src BIOD_PATH=../BioD Loading @@ -31,7 +34,7 @@ RPATH = -L--rpath=$(dir $(realpath $(LDC_LIB_PATH)/libz.so)):$(dir $(realpath $ LIBS = htslib/libhts.a -L-L$(LDC_LIB_PATH) -L-lrt -L-lpthread -L-lm -L-lz -L-llz4 # LIBS = htslib/libhts.a -L-lrt -L-lpthread -L-lm -L-lz -L-llz4 LIBS_STATIC = $(DLIBS) htslib/libhts.a $(LDC_LIB_PATH)/liblz4.a SRC = $(wildcard utils/*.d thirdparty/*.d cram/*.d) $(wildcard $(UNDEAD_PATH)/undead/**/*.d) $(wildcard $(UNDEAD_PATH)/undead/*.d) $(wildcard $(BIOD_PATH)/bio/*/*.d $(BIOD_PATH)/bio/*/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) utils/ldc_version_info_.d SRC = $(wildcard main.d utils/*.d thirdparty/*.d cram/*.d) $(wildcard undeaD/src/undead/*.d undeaD/src/undead/*/*.d) $(wildcard BioD/bio/*/*.d BioD/bio/*/*/*.d BioD/bio2/*.d BioD/bio2/*/*.d) $(wildcard sambamba/*.d sambamba/*/*.d sambamba/*/*/*.d) OBJ = $(SRC:.d=.o) OUT = bin/sambamba Loading