aboutsummaryrefslogtreecommitdiff
path: root/devel/boost-libs/Makefile
blob: 305b59a453b170ed8ed06e8e647ce327d2b9d9d0 (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
PORTNAME=	boost-libs
PORTREVISION?=	0

COMMENT=	Free portable C++ libraries (without Boost.Python)
WWW=		https://www.boost.org/

LICENSE=	BSL
LICENSE_FILE=	${WRKSRC}/LICENSE_1_0.txt

BROKEN_sparc64=	https://github.com/boostorg/context/commit/f2ef6326b6ed

BUILD_DEPENDS+=	bjam:devel/boost-jam

# Note about LLVM_FROM_PORTS option:
# Build of this port fails with assertion failure of compiler due to
# bug of LLVM/Clang in base system. The failure happens when all of
# following conditions are satisfied.
# * OSVERSION is included in either of following ranges.
#   1. 1500000 <= OSVERSION < 1500017
#   2. 1400000 <= OSVERSION < 1400509 (no longer relevant)
#   3. 1300000 <= OSVERSION < 1303502 (no longer relevant)
# * Base system is built with WITH_LLVM_ASSERTIONS variable set.
# So if your base system fulfills them you need to use LLVM ports to
# build this port.
# By default WITH_LLVM_ASSERTIONS variable is set with -CURRENT but
# not with -STABLE and -RELEASE. So whereas most -CURRENT users face
# the build failure, few -STABLE and -RELEASE user faces it.
# Therefore by default this port uses LLVM from ports only if base
# system is -CURRENT and OSVERSION is included in above ranges. It
# make it possible for most -STABLE and -RELEASE users to avoid to
# build LLVM ports unnecessarily. But if someone uses -STABLE or
# -RELEASE built with WITH_LLVM_ASSERTIONS set, then he can't build
# this port successfully on such system. So provide LLVM_FROM_PORTS
# option as a last resort for him.
OPTIONS_DEFINE=		DEBUG LLVM_FROM_PORTS OPTIMIZED_CFLAGS
OPTIONS_MULTI=		LOCALE
OPTIONS_MULTI_LOCALE=	ICONV ICU
OPTIONS_DEFAULT=	ICONV ICU
ICONV_DESC=		Boost.Locale with iconv encoding support
ICU_DESC=		Boost.Regex/Locale with ICU unicode support
LLVM_FROM_PORTS_DESC=	Use LLVM from ports to build

ICONV_USES=		iconv
ICONV_MAKE_ARGS=	-sICONV_PATH=${ICONV_PREFIX}
ICONV_MAKE_ARGS_OFF=	boost.locale.iconv=off
ICU_LIB_DEPENDS=	libicuuc.so:devel/icu
ICU_MAKE_ARGS=		-sICU_PATH=${LOCALBASE}
ICU_MAKE_ARGS_OFF=	boost.locale.icu=off

.include "${.CURDIR}/../boost-all/common.mk"

.include "${.CURDIR}/../boost-all/compiled.mk"

MAKE_ARGS+=	--without-python
MAKE_ARGS+=	${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}}
MAKE_ARGS_gcc=	xdll-path=${_GCC_RUNTIME}
ALL_TARGET=	stage

.include <bsd.port.options.mk>

do-install:
	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
		${MAKE_ARGS:NDESTDIR=*:S,^--prefix=,&${STAGEDIR},} ${INSTALL_TARGET}
	@${FIND} ${STAGEDIR}${PREFIX}/lib/cmake -type f -exec \
		${REINPLACE_CMD} -i '' -e 's,${STAGEDIR},,' {} +
# For some reasons BJAM forget about the links
	@cd ${WRKSRC}/stage/ && ${FIND} lib -type l | ${PAX} -rw -p p ${STAGEDIR}${PREFIX}

# display pkg-message
post-install:
	@${TOUCH} ${PKGMESSAGE}

	@${CAT} ${PKG_MESSAGE_FILE_THREADS} >> ${PKGMESSAGE}
	@${ECHO_CMD} >> ${PKGMESSAGE}

	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so

	@${REINPLACE_CMD} \
		-e "s|%%LOCALBASE%%|${LOCALBASE}|g" \
		-e "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g" \
		-e "s|%%PYTHON_LIBDIR%%|${PYTHON_LIBDIR}|g" \
		-e "s|%%PYTHON_VERSION%%|${PYTHON_VERSION}|g" ${PKGMESSAGE}

.include <bsd.port.mk>