Index: biology/Makefile =================================================================== --- biology/Makefile +++ biology/Makefile @@ -115,6 +115,7 @@ SUBDIR += stacks SUBDIR += tRNAscan-SE SUBDIR += t_coffee + SUBDIR += tabixpp SUBDIR += tinker SUBDIR += treepuzzle SUBDIR += trimadap Index: biology/tabixpp/Makefile =================================================================== --- /dev/null +++ biology/tabixpp/Makefile @@ -0,0 +1,37 @@ +# $FreeBSD$ + +PORTNAME= tabixpp +DISTVERSIONPREFIX= v +DISTVERSION= 1.0.0-10 +DISTVERSIONSUFFIX= -g6bbe690 +CATEGORIES= biology + +MAINTAINER= jwb@FreeBSD.org +COMMENT= C++ wrapper to tabix indexer + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libhts.so:biology/htslib + +USES= localbase:ldflags +USE_LDCONFIG= yes +USE_GITHUB= yes +GH_ACCOUNT= ekg + +# Disable bundled htslib +MAKE_ENV= HTS_HEADERS='' HTS_LIB='' +INSTALL_TARGET= install-strip +PLIST_FILES= bin/tabix++ \ + include/tabix.hpp \ + lib/libtabix.a \ + lib/libtabix.so \ + lib/libtabix.so.1 + +post-patch: + ${CP} ${FILESDIR}/Makefile ${WRKSRC} + +post-install: + (cd ${STAGEDIR}${PREFIX}/lib && ${LN} -s libtabix.so.1 libtabix.so) + +.include Index: biology/tabixpp/distinfo =================================================================== --- /dev/null +++ biology/tabixpp/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1522943679 +SHA256 (ekg-tabixpp-v1.0.0-10-g6bbe690_GH0.tar.gz) = 3a83517f77da15bfd48e6fbaa860560e0f1927254c9f1c332759fe086f65154a +SIZE (ekg-tabixpp-v1.0.0-10-g6bbe690_GH0.tar.gz) = 3694 Index: biology/tabixpp/files/Makefile =================================================================== --- /dev/null +++ biology/tabixpp/files/Makefile @@ -0,0 +1,86 @@ + +# Use ?= to allow overriding from the env or command-line, e.g. +# +# make CXXFLAGS="-O3 -fPIC" install +# +# Package managers will override many of these variables automatically, so +# this is aimed at making it easy to create packages (Debian packages, +# FreeBSD ports, MacPorts, pkgsrc, etc.) + +CC ?= cc +CXX ?= c++ +CXXFLAGS ?= -g -Wall -O2 #-m64 #-arch ppc +CXXFLAGS += -fPIC +INCLUDES ?= -Ihtslib +HTS_HEADERS ?= htslib/htslib/bgzf.h htslib/htslib/tbx.h +HTS_LIB ?= htslib/libhts.a +LDFLAGS ?= -Lhtslib +LDFLAGS += -L. + +DESTDIR ?= stage +PREFIX ?= /usr/local +STRIP ?= strip +INSTALL ?= install -c +MKDIR ?= mkdir -p +AR ?= ar + +DFLAGS = -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE +BIN = tabix++ +LIB = libtabix.a +SOVERSION = 1 +SLIB = libtabix.so.$(SOVERSION) +OBJS = tabix.o +SUBDIRS = . + +.SUFFIXES:.c .o + +.c.o: + $(CC) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@ + +all-recur lib-recur clean-recur cleanlocal-recur install-recur: + @target=`echo $@ | sed s/-recur//`; \ + wdir=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + cd $$subdir; \ + $(MAKE) CC="$(CC)" DFLAGS="$(DFLAGS)" CXXFLAGS="$(CXXFLAGS)" \ + INCLUDES="$(INCLUDES)" LDFLAGS="$(LDFLAGS)" $$target \ + || exit 1; \ + cd $$wdir; \ + done; + +all: $(BIN) $(LIB) $(SLIB) + +tabix.o: $(HTS_HEADERS) tabix.cpp tabix.hpp + $(CXX) $(CXXFLAGS) -c tabix.cpp $(INCLUDES) + +htslib/libhts.a: + cd htslib && $(MAKE) lib-static + +$(LIB): $(OBJS) + $(AR) rs $(LIB) $(OBJS) + +$(SLIB): $(OBJS) + $(CXX) -shared -Wl,-soname,$(SLIB) -o $(SLIB) $(OBJS) + +tabix++: $(OBJS) main.cpp $(HTS_LIB) + $(CXX) $(CXXFLAGS) -o $@ main.cpp $(OBJS) $(INCLUDES) $(LDFLAGS) \ + -lhts -lpthread -lm -lz + +install: all + $(MKDIR) $(DESTDIR)$(PREFIX)/bin + $(MKDIR) $(DESTDIR)$(PREFIX)/include + $(MKDIR) $(DESTDIR)$(PREFIX)/lib + $(INSTALL) $(BIN) $(DESTDIR)$(PREFIX)/bin + $(INSTALL) *.hpp $(DESTDIR)$(PREFIX)/include + $(INSTALL) $(LIB) $(SLIB) $(DESTDIR)$(PREFIX)/lib + +install-strip: install + $(STRIP) $(DESTDIR)$(PREFIX)/bin/$(BIN) $(DESTDIR)$(PREFIX)/lib/$(SLIB) + +cleanlocal: + rm -rf $(BIN) $(LIB) $(SLIB) $(OBJS) $(DESTDIR) + rm -fr gmon.out *.o a.out *.dSYM $(BIN) *~ *.a tabix.aux tabix.log \ + tabix.pdf *.class libtabix.*.dylib + cd htslib && $(MAKE) clean + +clean: cleanlocal-recur Index: biology/tabixpp/pkg-descr =================================================================== --- /dev/null +++ biology/tabixpp/pkg-descr @@ -0,0 +1,5 @@ +This is a C++ wrapper around tabix project which abstracts some of the details +of opening and jumping in tabix-indexed files. Tabix is a generic indexer for +TAB-delimited genome position files. + +WWW: https://github.com/ekg/tabixpp