49fc953f39
Though Clang 3.9 and LLD 3.9 will not provide all the necessary bits to create fully working binaries for ARMv6, start off by putting symlinks to the tools in place. By the time LLVM trunk fully supports it, I'll add an option to this port to toggle between 3.9 and trunk.
81 lines
2.3 KiB
Makefile
81 lines
2.3 KiB
Makefile
# Created by: Ed Schouten <ed@FreeBSD.org>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= cloudabi-toolchain
|
|
PORTVERSION= 1.7
|
|
CATEGORIES= devel
|
|
MASTER_SITES= # None
|
|
DISTFILES= # None
|
|
|
|
MAINTAINER= ed@FreeBSD.org
|
|
COMMENT= C and C++ toolchain for CloudABI
|
|
|
|
LICENSE= MIT
|
|
|
|
RUN_DEPENDS= clang${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \
|
|
lld${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \
|
|
pkgconf:devel/pkgconf
|
|
|
|
LLVM_SUFFIX= 39
|
|
|
|
CLOUDABI_ARCHS= aarch64-unknown-cloudabi armv6-unknown-cloudabi-eabihf \
|
|
i686-unknown-cloudabi x86_64-unknown-cloudabi
|
|
|
|
LLVM_TOOLS= ar nm objdump ranlib size
|
|
SHELL_TOOLS= man pkg-config
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${OSVERSION} >= 1100100
|
|
# Depend on ELF tools provided by the base system. They work well with
|
|
# CloudABI executables.
|
|
BASE_TOOLS= addr2line c++filt objcopy readelf strings strip
|
|
CONFLICTS= cloudabi-binutils-*
|
|
.else
|
|
# The tools in the base system are too old to properly support CloudABI
|
|
# and aarch64. Depend on versions provided by GNU Binutils instead.
|
|
RUN_DEPENDS+= aarch64-unknown-cloudabi-readelf:devel/cloudabi-binutils-aarch64 \
|
|
x86_64-unknown-cloudabi-readelf:devel/cloudabi-binutils-x86_64
|
|
.endif
|
|
|
|
.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_SUFFIX}/${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_SUFFIX}
|
|
.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_SUFFIX}/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_SUFFIX}/bin/clang \
|
|
${STAGEDIR}${PREFIX}/bin/${arch}-cc
|
|
@${LN} -s ../llvm${LLVM_SUFFIX}/bin/clang++ \
|
|
${STAGEDIR}${PREFIX}/bin/${arch}-c++
|
|
@${LN} -s ../llvm${LLVM_SUFFIX}/bin/lld \
|
|
${STAGEDIR}${PREFIX}/bin/${arch}-ld
|
|
@${LN} -s ../${arch} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/${arch}
|
|
.endfor
|
|
|
|
.include <bsd.port.post.mk>
|