freebsd-ports/devel/cloudabi-toolchain/Makefile
Ed Schouten 49fc953f39 Add basic bits to the cloudabi-toolchain port to support ARMv6.
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.
2016-09-02 09:53:55 +00:00

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>