aboutsummaryrefslogtreecommitdiff
path: root/devel/cloudabi-toolchain/Makefile
blob: 5a3f5aa72e36f15b5824db0987b9cadfe16c6e46 (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
# Created by: Ed Schouten <ed@FreeBSD.org>

PORTNAME=	cloudabi-toolchain
PORTVERSION=	1.11
PORTREVISION=	2
CATEGORIES=	devel
MASTER_SITES=	# None
DISTFILES=	# None

MAINTAINER=	ed@FreeBSD.org
COMMENT=	C and C++ toolchain for CloudABI

LICENSE=	MIT

RUN_DEPENDS=	clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} \
		lld${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} \
		pkgconf:devel/pkgconf

CONFLICTS=	cloudabi-binutils-*

CLOUDABI_ARCHS=	aarch64-unknown-cloudabi armv6-unknown-cloudabi-eabihf \
		armv7-unknown-cloudabi-eabihf i686-unknown-cloudabi \
		x86_64-unknown-cloudabi

BASE_TOOLS=	addr2line c++filt objcopy readelf strings strip
LLVM_TOOLS=	ar nm objdump ranlib size
SHELL_TOOLS=	man pkg-config

.include <bsd.port.pre.mk>

.for arch in ${CLOUDABI_ARCHS}
. for tool in ${BASE_TOOLS} ${LLVM_TOOLS} ${SHELL_TOOLS}
PLIST_FILES+=	bin/${arch}-${tool}
. endfor
PLIST_FILES+=	bin/${arch}-cc bin/${arch}-c++ bin/${arch}-ld \
		llvm${LLVM_DEFAULT}/${arch}
.endfor

do-build:
.for arch in ${CLOUDABI_ARCHS}
. for tool in ${SHELL_TOOLS}
	@${SED} -e 's:%%PREFIX%%:${PREFIX}:g' -e 's:%%ARCH%%:${arch}:g' \
		${FILESDIR}/${tool}.in > ${WRKDIR}/${arch}-${tool}
. endfor
.endfor

do-install:
	@${MKDIR} ${STAGEDIR}${PREFIX}/llvm${LLVM_DEFAULT}
.for arch in ${CLOUDABI_ARCHS}
. for tool in ${BASE_TOOLS}
	@${LN} -s /usr/bin/${tool} \
		${STAGEDIR}${PREFIX}/bin/${arch}-${tool}
. endfor
. for tool in ${LLVM_TOOLS}
	@${LN} -s ../llvm${LLVM_DEFAULT}/bin/llvm-${tool} \
		${STAGEDIR}${PREFIX}/bin/${arch}-${tool}
. endfor
. for tool in ${SHELL_TOOLS}
	${INSTALL_SCRIPT} ${WRKDIR}/${arch}-${tool} \
		${STAGEDIR}${PREFIX}/bin/${arch}-${tool}
. endfor
	@${LN} -s ../llvm${LLVM_DEFAULT}/bin/clang \
		${STAGEDIR}${PREFIX}/bin/${arch}-cc
	@${LN} -s ../llvm${LLVM_DEFAULT}/bin/clang++ \
		${STAGEDIR}${PREFIX}/bin/${arch}-c++
	@${LN} -s ../llvm${LLVM_DEFAULT}/bin/lld \
		${STAGEDIR}${PREFIX}/bin/${arch}-ld
	@${LN} -s ../${arch} ${STAGEDIR}${PREFIX}/llvm${LLVM_DEFAULT}/${arch}
.endfor

.include <bsd.port.post.mk>