PORTNAME=	ncbi-blast+
DISTVERSION=	2.16.0
CATEGORIES=	biology perl5 python
MASTER_SITES=	https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ \
		https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${PORTVERSION}/
DISTNAME=	ncbi-blast-${PORTVERSION}+-src

MAINTAINER=	jwb@FreeBSD.org
COMMENT=	NCBI implementation of Basic Local Alignment Search Tool
WWW=		https://blast.ncbi.nlm.nih.gov/

LICENSE=	PD
LICENSE_FILE=	${WRKSRC}/scripts/projects/blast/LICENSE

ONLY_FOR_ARCHS=		aarch64 amd64 powerpc64 powerpc64le riscv64
ONLY_FOR_ARCHS_REASON=	Requires 64-bit processor

LIB_DEPENDS=	libdw.so:devel/elfutils \
		libgcrypt.so:security/libgcrypt \
		libgmp.so:math/gmp \
		libgnutls.so:security/gnutls \
		libgpg-error.so:security/libgpg-error \
		libgrpc.so:devel/grpc \
		libhogweed.so:security/nettle \
		libidn2.so:dns/libidn2 \
		liblmdb.so:databases/lmdb \
		liblzo2.so:archivers/lzo2 \
		libnettle.so:security/nettle \
		libnghttp2.so:www/libnghttp2 \
		libp11-kit.so:security/p11-kit \
		libpcre.so:devel/pcre \
		libsqlite3.so:databases/sqlite3 \
		libtasn1.so:security/libtasn1 \
		libtspi.so:security/trousers \
		libuv.so:devel/libuv \
		libzstd.so:archivers/zstd
RUN_DEPENDS=	p5-List-MoreUtils>=0:lang/p5-List-MoreUtils \
		p5-JSON>=0:converters/p5-JSON

USES=		compiler:c++14-lang gmake localbase:ldflags perl5 python shebangfix
USE_LDCONFIG=	${PREFIX}/lib/ncbi-tools++

SHEBANG_FILES=	src/app/blast/cleanup-blastdb-volumes.py \
		src/app/blast/get_species_taxids.sh \
		src/app/blast/legacy_blast.pl \
		src/app/blast/update_blastdb.pl \
		src/app/winmasker/windowmasker_2.2.22_adapter.py
GNU_CONFIGURE=	yes

# configure chooses /usr/local/bin/ar with no flags
# FreeBSD boost port flagged by configure as untested version
# --libdir=${PREFIX}/lib/ncbi-tools++ doesn't respect DESTDIR, so do
# a postinstall mv.
CONFIGURE_ARGS=	AR="ar cr" --without-boost --libdir=${PREFIX}/lib/ncbi-tools++

CONFLICTS_INSTALL=	ncbi-cxx-toolkit

WRKSRC_SUBDIR=	c++

.if !exists(/usr/include/omp.h)
CONFIGURE_ARGS+=	--without-openmp
.endif

.include <bsd.port.pre.mk>

.if ${CHOSEN_COMPILER_TYPE} == gcc
# In case of problems: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220822
LDFLAGS+=	-latomic # Only exists in gcc libs
.endif

post-install:
	@${RM} ${STAGEDIR}${PREFIX}/include/ncbi-tools++/*/*/.cvsignore.extra
	@${RM} -rf ${STAGEDIR}${PREFIX}/lib/X11
	@${RM} ${STAGEDIR}${PREFIX}/include/ncbi-tools++/common/config/ncbiconf_msvc_site.h.in
	@${RM} ${STAGEDIR}${PREFIX}/include/ncbi-tools++/common/ncbi_build_ver.h.in
	@${RM} ${STAGEDIR}${PREFIX}/include/ncbi-tools++/common/ncbi_revision.h.in
	@${RMDIR} ${STAGEDIR}${PREFIX}/lib/debug
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ncbi-tools++/*.so

.include <bsd.port.post.mk>
