aboutsummaryrefslogtreecommitdiff
path: root/finance/quantlib/Makefile
blob: ab6cd1f67f8515aa661b1bc793a0bbf4fba581fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
PORTNAME=	quantlib
PORTVERSION=	1.32
PORTREVISION=	1
CATEGORIES=	finance math devel
MASTER_SITES=	http://github.com/lballabio/QuantLib/releases/download/v${PORTVERSION}/
DISTNAME=	QuantLib-${PORTVERSION}

MAINTAINER=	mi@aldan.algebra.com
COMMENT=	C++ library for quantitative finance
WWW=		https://www.quantlib.org/

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE.TXT

LIB_DEPENDS=	libboost_system.so:devel/boost-libs

USES=		compiler:c++17-lang libtool
USE_LDCONFIG=	yes
GNU_CONFIGURE=	yes
CONFIGURE_ENV+=	EMACS=no
MAKE_ENV+=	AM_MAKEFLAGS=${_MAKE_JOBS}
TEST_TARGET=	check-examples check
TEST_ARGS+=	-j1	# Tests use OpenMP - do not parallelize them
TEST_ENV+=	OMP_NUM_THREADS=${MAKE_JOBS_NUMBER}
OPTIONS_SUB=	please

OPTIONS_DEFAULT=OPENMP EXAMPLES BENCHMARK

OPTIONS_DEFINE=	TRACING INDEXED_COUPONS
OPTIONS_DEFINE+=EXTRA_SAFETY_CHECKS SESSIONS INTRADAY
OPTIONS_DEFINE+=THREAD_SAFE_OBSERVER_PATTERN
OPTIONS_DEFINE+=THREAD_SAFE_SINGLETON_INIT
OPTIONS_DEFINE+=${OPTIONS_DEFAULT}

BENCHMARK_DESC=		Install benchmark (it is always built)
EXTRA_SAFETY_CHECKS_DESC=Trade performance for run-time checks
INDEXED_COUPONS_DESC=	Use indexed rather than par coupons
INTRADAY_DESC=		Time precision of msecs, instead of days
TRACING_DESC=		Trade performance for more detailed errors
SESSIONS_DESC=		See help

EXAMPLES_CONFIGURE_WITH=lispdir=${EXAMPLESDIR}
CONFIGURE_ARGS+=	--disable-unity-build
CONFIGURE_ARGS+=	--enable-parallel-unit-test-runner
CONFIGURE_ARGS+=	--with-boost-include=${LOCALBASE}/include
CONFIGURE_ARGS+=	--with-boost-lib=${LOCALBASE}/lib
CONFIGURE_ARGS+=	--enable-std-any
CONFIGURE_ARGS+=	--enable-std-classes # Prefer C++11 to Boost
CONFIGURE_ARGS+=	--enable-std-optional
CONFIGURE_ARGS+=	--enable-test-suite

.for o in ${OPTIONS_DEFINE}
$o_CONFIGURE_ENABLE=	${o:S/_/-/g:tl}
.endfor

CXXFLAGS+=	-std=c++17
CXXFLAGS_i386=	-DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS

.include <bsd.port.mk>