freebsd-ports/lang/clang-cheri/Makefile

134 lines
3.3 KiB
Makefile

# $FreeBSD$
PORTNAME= clang-cheri
PORTVERSION= 3.4.20140528
CATEGORIES= lang devel
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= brooks
MAINTAINER= brooks@FreeBSD.org
COMMENT= C, Objective-C, and C++ compiler with CHERI CPU support
USES= cmake:outsource compiler:c++11-lib ninja perl5 shebangfix
USE_BZIP2= yes
USE_PYTHON= yes
BUILD_DEPENDS= swig1.3:${PORTSDIR}/devel/swig13
TRIPLE= cheri-unknown-freebsd
SYSROOT= ${PREFIX}/sysroots/${TRIPLE}
LLVM_PREFIX= ${SYSROOT}/tools
TOOL_PREFIX= ${TRIPLE}-
CMAKE_INSTALL_PREFIX= ${LLVM_PREFIX}
CMAKE_ARGS= -DDEFAULT_SYSROOT=${SYSROOT} \
-DLLVM_DEFAULT_TARGET_TRIPLE=${TRIPLE} \
-DLLVM_ENABLE_CXX11=ON
SHEBANG_FILES= \
tools/clang/tools/clang-format/git-clang-format \
tools/clang/tools/clang-format/clang-format-diff.py
SUB_FILES= llvm-wrapper.sh
SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" \
TOOL_PREFIX="${TOOL_PREFIX}" \
TOOL_SUFFIX="${TOOL_SUFFIX}"
OPTIONS_DEFINE= DOCS
PLIST_SUB+= CLANG_RELEASE=${CLANG_RELEASE}
COMMANDS= \
bugpoint \
clang \
clang++ \
clang-3.5 \
clang-check \
clang-cl \
clang-cpp \
clang-format \
git-clang-format \
llc \
lldb \
lldb-3.5 \
lldb-gdbserver \
lldb-gdbserver-3.5 \
lldb-platform \
lldb-platform-3.5 \
lli \
lli-child-target \
llvm-ar \
llvm-as \
llvm-bcanalyzer \
llvm-c-test \
llvm-config \
llvm-cov \
llvm-diff \
llvm-dis \
llvm-dwarfdump \
llvm-extract \
llvm-link \
llvm-lto \
llvm-mc \
llvm-mcmarkup \
llvm-nm \
llvm-objdump \
llvm-readobj \
llvm-rtdyld \
llvm-size \
llvm-stress \
llvm-symbolizer \
llvm-tblgen \
macho-dump \
opt
FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//}
.include <bsd.port.pre.mk>
.if ${CHOSEN_COMPILER_TYPE} == "gcc"
BROKEN= build errors when C++11 compiler is gcc
.endif
.if defined(BOOTSTRAP) || defined(SVN_FETCH)
FETCH_DEPENDS+= svn:${PORTSDIR}/devel/subversion
do-fetch:
${MKDIR} ${WRKDIR}
svn export --force https://github.com/CTSRD-CHERI/llvm/trunk ${WRKSRC}
svn export --force https://github.com/CTSRD-CHERI/clang/trunk \
${WRKSRC}/tools/clang
svn export --force https://github.com/CTSRD-CHERI/lldb/trunk \
${WRKSRC}/tools/lldb
cd ${WRKDIR}; tar cvfy ${DISTDIR}/${DISTNAME}.tar.bz2 ${DISTNAME}
.if ${USER} == brooks || ${USER} == bed22
scp ${DISTDIR}/${DISTNAME}.tar.bz2 \
brooks@freefall.freebsd.org:public_distfiles/
.endif
.endif
post-patch:
${REINPLACE_CMD} -e 's|\(PROJ_docsdir.*:=\).*$$|\1${DOCSDIR}|g' \
${WRKSRC}/Makefile.config.in
${REINPLACE_CMD} -e 's|\(PROJ_mandir.*:=\).*$$|\1${MANPREFIX}/man|g' \
${WRKSRC}/Makefile.config.in
${REINPLACE_CMD} -e 's|/usr/local/|${LOCALBASE}/|g' \
${WRKSRC}/tools/clang/lib/Frontend/InitHeaderSearch.cpp
post-install:
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \
${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp
${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \
${STAGEDIR}${PREFIX}/bin/${TOOL_PREFIX}${FIRST_COMMAND}
.for command in ${COMMANDS:C/^/XXXX/1:NXXXX*}
test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command}
${LN} -f ${STAGEDIR}${PREFIX}/bin/${TOOL_PREFIX}${FIRST_COMMAND} \
${STAGEDIR}${PREFIX}/bin/${TOOL_PREFIX}${command}
.endfor
build-plist:
${RM} -f ${PLIST}
${MAKE} makeplist | \
${GREP} -v /you/have/to/check/what/makeplist/gives/you | \
${SED} -e 's/%%PERL_ARCH%%/${PERL_ARCH}/' >> ${PLIST}
.include <bsd.port.post.mk>