summaryrefslogtreecommitdiff
path: root/lang/cling/Makefile
blob: 7c30e7208c666ff96d8f16acb1db7f1485131b47 (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
# Created by: Mahdi Mokhtari <mokhi64@gmail.com>

PORTNAME=		cling
DISTVERSION=		0.5-2018-08-13
PORTREVISION=		7
CATEGORIES=		lang devel
MASTER_SITES=		https://root.cern.ch/download/cling/
DISTNAME=		${PORTNAME}_${DISTVERSION:C/^[0-9]\.[0-9]-//}_sources

MAINTAINER=		ports@FreeBSD.org
COMMENT=		Interactive C++ Interpreter Based on LLVM and Clang Libs

LICENSE=		LLVM NCSA
LICENSE_COMB=		multi
LICENSE_NAME_LLVM=	LLVM Release License
LICENSE_FILE_LLVM=	${WRKSRC}/LICENSE.TXT
LICENSE_FILE_NCSA=	${WRKSRC}/tools/cling/LICENSE.TXT
LICENSE_PERMS_LLVM=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

BROKEN_armv6=		fails to compile: AArch64TargetMachine.cpp: relocation truncated to fit: R_ARM_CALL against symbol '__aeabi_uldivmod'
BROKEN_armv7=		fails to compile: AArch64TargetMachine.cpp: relocation truncated to fit: R_ARM_CALL against symbol '__aeabi_uldivmod'
BROKEN_riscv64=		fails to build: CMake Error at cmake/config-ix.cmake:407: Unknown architecture riscv64
BROKEN_FreeBSD_12_powerpc64=	fails to build: src/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h:722:26: could not convert '((llvm::orc::remote::OrcRemoteTargetClient<ChannelT>*)this)->callB<llvm::orc::remote::OrcRemoteTargetRPCAPI::ReadMem>(Src, Size)'

LIB_DEPENDS=	libgtest.so:devel/googletest \
		libz3.so:math/z3

WRKSRC=		${WRKDIR}/src

LLVM_RELEASE=	5.0.0
LLVM_SUFFIX=	50_cern-root
LLVM_PREFIX=	${PREFIX}/llvm${LLVM_SUFFIX}

USES=		cmake compiler:c++11-lib compiler:c11 gnome libedit ncurses \
		python:build shebangfix tar:bzip2
USE_GNOME=	libxml2
USE_LDCONFIG=	${LLVM_PREFIX}/lib

SHEBANG_FILES=	tools/clang/tools/clang-format/clang-format-diff.py \
		tools/clang/tools/clang-format/git-clang-format \
		tools/clang/tools/scan-view/bin/scan-view

CMAKE_ON=	BUILD_SHARED_LIBS
CMAKE_OFF=	LLVM_BUILD_EXAMPLES LLVM_INCLUDE_TESTS LLVM_INCLUDE_GO_TESTS

SUB_LIST+=	LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
PLIST_SUB+=		LLVM_SUFFIX=${LLVM_SUFFIX} LLVM_RELEASE=${LLVM_RELEASE}

CMAKE_BUILD_TYPE=	Release
CMAKE_INSTALL_PREFIX=	${LLVM_PREFIX}

CMAKE_ARGS+=	-DINSTALL_LAYOUT=FREEBSD

post-patch:
	@${REINPLACE_CMD} -e 's|%%LLVM_PREFIX%%|${LLVM_PREFIX}|g' \
	    ${PATCH_WRKSRC}/tools/cling/tools/driver/cling.cpp
	@${REINPLACE_CMD} -e 's|%%LLVM_PREFIX%%|${LLVM_PREFIX}|g' \
	    ${PATCH_WRKSRC}/tools/cling/lib/Interpreter/CIFactory.cpp

post-install:
	for e in $$(cd ${STAGEDIR}${PREFIX}/llvm50_cern-root/bin && ls *); do \
		${RLN} ${STAGEDIR}${PREFIX}/llvm50_cern-root/bin/$${e} ${STAGEDIR}${PREFIX}/bin/$${e}; \
	done
	${MKDIR} ${STAGEDIR}${PREFIX}/lib/cmake
	for m in cling llvm llvm-c clang; do \
		${RLN} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/include/$${m} ${STAGEDIR}${PREFIX}/include/$${m}; \
	done
	for m in cling llvm clang; do \
		${RLN} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/lib/cmake/$${m} ${STAGEDIR}${PREFIX}/lib/cmake/$${m}; \
	done
	for l in $$(cd ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/lib && ls *.so* *.a); do \
		${RLN} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/lib/$${l} ${STAGEDIR}${PREFIX}/lib/$${l}; \
	done

.include <bsd.port.mk>