ports/devel/llvm-devel/Makefile
Brooks Davis 49a5f7537c Mark broken on 10.3.
This is broader than necessicary, but should not be a major problem
in practice.  Packages for 10.x should start being built again after
10.3 expires at the end of April which is well before the release
of 7.0.0 is planned.
2018-02-12 21:22:39 +00:00

490 lines
15 KiB
Makefile

# Created by: Hye-Shik Chang
# $FreeBSD$
PORTNAME= llvm
PORTVERSION= ${LLVM_MAJOR}.d${SNAPDATE}
PORTREVISION= 0
CATEGORIES= devel lang
PKGNAMESUFFIX= -devel
MAINTAINER= brooks@FreeBSD.org
COMMENT= LLVM and Clang
LLVM_SUFFIX= -devel
LLVM_PREFIX= ${PREFIX}/llvm${LLVM_SUFFIX}
DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${LLVM_SUFFIX}
DATADIR= ${PREFIX}/share/${PORTNAME}${LLVM_SUFFIX}
USES= cmake:outsource compiler:c++11-lib libedit perl5 \
shebangfix
USE_LDCONFIG= ${LLVM_PREFIX}/lib
_USES_PYTHON?= python:build:2.7
USES+= ${_USES_PYTHON}
SHEBANG_FILES= utils/lit/lit.py utils/llvm-lit/llvm-lit.in \
tools/clang/tools/scan-view/bin/scan-view \
tools/clang/tools/clang-format/git-clang-format \
tools/clang/tools/clang-format/clang-format-diff.py \
tools/clang/tools/extra/clang-tidy/tool/clang-tidy-diff.py \
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py \
tools/clang/tools/extra/include-fixer/find-all-symbols/tool/run-find-all-symbols.py
SUB_FILES= llvm-wrapper.sh
SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
CMAKE_INSTALL_PREFIX= ${LLVM_PREFIX}
CMAKE_ARGS= -DLLVM_BUILD_LLVM_DYLIB=ON
CMAKE_ARGS+= -DLLVM_ENABLE_RTTI=ON
CMAKE_ARGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=${CONFIGURE_TARGET}
CMAKE_ARGS+= -DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET}
# Following commit https://github.com/kitware/cmake/commit/956054
# we need to either change the whole man-shuffle below, or simply
# redefine CMAKE_INSTALL_MANDIR
CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR:PATH="share/man"
USE_GITHUB= yes
GH_ACCOUNT= llvm-mirror
GH_TAGNAME= ${LLVM_COMMIT}
.include "Makefile.snapshot"
OPTIONS_DEFINE= CLANG DOCS EXTRAS LIT LLD LLDB
OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_i386= COMPILER_RT
OPTIONS_DEFAULT= CLANG EXTRAS LIT LLD LLDB
OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFAULT_i386= COMPILER_RT
OPTIONS_EXCLUDE_FreeBSD_10= LLDB OPENMP
OPTIONS_SUB= yes
PLIST_FILES=
CLANG_DESC= Build clang
CLANG_EXTRA_PATCHES= ${PATCHDIR}/clang
CLANG_CONFLICTS_INSTALL= clang-devel-3.[1234567]*
CLANG_GH_PROJECT= clang:clang
CLANG_GH_SUBDIR= tools/clang:clang
CLANG_GH_TAGNAME= ${CLANG_COMMIT}:clang
CLANG_CMAKE_ON= -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
CLANG_PORTDOCS= clang
CLANG_USE= GNOME=libxml2
COMPILER_RT_DESC= Sanitizer libraries
COMPILER_RT_IMPLIES= CLANG
COMPILER_RT_GH_PROJECT= compiler-rt:compiler_rt
COMPILER_RT_GH_TAGNAME= ${COMPILER_RT_COMMIT}:compiler_rt
COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS:S|^|${_CRTLIBDIR}/|}
DOCS_PORTDOCS= llvm
DOCS_CMAKE_ON= -DLLVM_ENABLE_SPHINX=ON \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DLLVM_BUILD_DOCS=ON
DOCS_PLIST_FILES= ${MAN1SRCS:S|^|man/man1/|:S|.1$|${LLVM_SUFFIX}.1.gz|}
EXTRAS_DESC= Extra clang tools
EXTRAS_IMPLIES= CLANG
EXTRAS_GH_PROJECT= clang-tools-extra:extras
EXTRAS_GH_SUBDIR= tools/clang/tools/extra:extras
EXTRAS_GH_TAGNAME= ${EXTRAS_COMMIT}:extras
LIT_DESC= Install lit and FileCheck test tools
LLD_DESC= Install lld, the LLVM linker
LLD_GH_PROJECT= lld:lld
LLD_GH_SUBDIR= tools/lld:lld
LLD_GH_TAGNAME= ${LLD_COMMIT}:lld
LLDB_BUILD_DEPENDS= swig3.0:devel/swig30
LLDB_DESC= Install lldb, the LLVM debugger
LLDB_GH_PROJECT= lldb:lldb
LLDB_GH_SUBDIR= tools/lldb:lldb
LLDB_GH_TAGNAME= ${LLDB_COMMIT}:lldb
LLDB_IMPLIES= CLANG
LLDB_VARS= _USES_PYTHON=python:2.7
OPENMP_DESC= Install libomp, the LLVM OpenMP runtime library
OPENMP_CONFLICTS_INSTALL= libiomp5-devel-*
OPENMP_GH_PROJECT= openmp:openmp
OPENMP_GH_SUBDIR= projects/openmp:openmp
OPENMP_GH_TAGNAME= ${OPENMP_COMMIT}:openmp
OPENMP_EXTRA_PATCHES= ${PATCHDIR}/openmp
GOLD_DESC= Build the LLVM Gold plugin for LTO
GOLD_CMAKE_ON= -DLLVM_BINUTILS_INCDIR=${LOCALBASE}/include
GOLD_BUILD_DEPENDS= ${LOCALBASE}/bin/ld.gold:devel/binutils
OPTIONS_SUB= yes
DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
PLIST_SUB+= LLVM_LIB_VER=${LLVM_MAJOR:C/\..*//} \
LLVM_MAJOR=${LLVM_MAJOR} \
LLVM_RELEASE=${LLVM_RELEASE}
COMMANDS= bugpoint \
llc \
lli \
llvm-ar \
llvm-as \
llvm-bcanalyzer \
llvm-cat \
llvm-cfi-verify \
llvm-config \
llvm-cov \
llvm-cvtres \
llvm-diff \
llvm-dis \
llvm-dlltool \
llvm-dwarfdump \
llvm-dwp \
llvm-extract \
llvm-link \
llvm-mc \
llvm-mcmarkup \
llvm-modextract \
llvm-mt \
llvm-nm \
llvm-objcopy \
llvm-objdump \
llvm-opt-report \
llvm-pdbutil \
llvm-profdata \
llvm-ranlib \
llvm-rc \
llvm-readelf \
llvm-readobj \
llvm-rtdyld \
llvm-size \
llvm-split \
llvm-stress \
llvm-strings \
llvm-symbolizer \
llvm-tblgen \
macho-dump \
opt \
sancov
FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//}
STRIP_LIBS= BugpointPasses.so \
LLVMHello.so \
${LIBNAME}.0 \
libLTO.so
EXTRAS_COMMANDS= \
clang-apply-replacements \
clang-change-namespace \
clang-include-fixer \
clang-modernize \
clang-query \
clang-rename \
clang-reorder-fields \
clang-tidy \
find-all-symbols \
modularize
EXTRAS_LIBS= \
libclangApplyReplacements \
libclangIncludeFixer \
libclangRename \
libclangQuery \
libclangTidy \
libclangTidyGoogleModule \
libclangTidyLLVMModule \
libclangTidyMiscModule \
libclangTidyReadabilityModule \
libclangTidyUtils \
libfindAllSymbols \
libmodernizeCore
EXTRAS_PATTERN= ${EXTRAS_COMMANDS:tW:C/ */|/g}|${EXTRAS_LIBS:tW:C/ */|/g}
.include <bsd.port.options.mk>
# keep in sync with /usr/src/lib/clang/clang.build.mk
# ----------- start of sync block ------------------
# Armv6 and armv7 uses hard float abi, unless the CPUTYPE has soft in it.
# arm (for armv4 and armv5 CPUs) always uses the soft float ABI.
# For all other targets, we stick with 'unknown'.
.if ${ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "")
TARGET_ABI= -gnueabihf
.elif ${ARCH:Marm*}
TARGET_ABI= -gnueabi
.else
TARGET_ABI=
.endif
CONFIGURE_TARGET:=${ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-portbld-${OPSYS:tl}${OSREL}${TARGET_ABI}
# ----------- end of sync block --------------------
.if ${PORT_OPTIONS:MCLANG}
COMMANDS+= c-index-test \
clang \
clang++ \
clang-check \
clang-cpp \
clang-format \
clang-func-mapping \
clang-import-test \
clang-offload-bundler \
clangd \
scan-build \
scan-view
MAN1SRCS+= clang.1 \
scan-build.1
CLANG_PATTERN= (c-index-test|clang|scan-|Reporter.py|ScanView.py|scanview.css|sorttable.js|startfile.py|-analyzer)
.endif
.if ${PORT_OPTIONS:MCOMPILER_RT}
COMPILER_RT_PATTERN= (_blacklist.txt|sanitizer|include.xray)
.endif
.if ${PORT_OPTIONS:MLIT}
MAN1SRCS+= lit.1 FileCheck.1
LIT_COMMANDS= lit llvm-lit FileCheck
.endif
.if ${PORT_OPTIONS:MLLD}
COMMANDS+= ld.lld \
ld64.lld \
wasm-ld
.endif
.if ${PORT_OPTIONS:MLLDB}
COMMANDS+= lldb \
lldb-argdumper \
lldb-mi \
lldb-server \
lldb-test
.endif
.if ! ${OPTIONS_DEFINE:MCOMPILER_RT}
# Hack to disable COMPILER_RT in plist of unsupported architectures
PLIST_SUB+= COMPILER_RT="@comment "
.else
.endif
.if ! ${OPTIONS_DEFINE:MGOLD}
# Hack to disable GOLD in plist of unsupported architectures
PLIST_SUB+= GOLD="@comment "
.else
.endif
.if ! ${OPTIONS_DEFINE:MOPENMP}
# Hack to disable OPENMP in plist of unsupported architectures
PLIST_SUB+= OPENMP="@comment "
.else
.endif
MAN1SRCS+= bugpoint.1 dsymutil.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
llvm-bcanalyzer.1 llvm-build.1 llvm-config.1 llvm-cov.1 \
llvm-diff.1 llvm-dis.1 llvm-dwarfdump.1 \
llvm-extract.1 llvm-lib.1 llvm-link.1 llvm-nm.1 \
llvm-pdbutil.1 \
llvm-profdata.1 llvm-readobj.1 llvm-stress.1 llvm-symbolizer.1 \
opt.1 tblgen.1
.include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSREL} == 10.3
CFLAGS+= -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1
BROKEN= Missing __cxa_thread_atexit
.endif
.if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE= RelWithDebInfo
STRIP=
.endif
_CRTLIBDIR= ${LLVM_PREFIX:S|${PREFIX}/||}/lib/clang/${LLVM_RELEASE}/lib/freebsd
.if ${ARCH} == "amd64"
_COMPILER_RT_LIBS= \
libclang_rt.asan-preinit-x86_64.a \
libclang_rt.asan-x86_64.a \
libclang_rt.asan-x86_64.a.syms \
libclang_rt.asan-x86_64.so \
libclang_rt.asan_cxx-x86_64.a \
libclang_rt.asan_cxx-x86_64.a.syms \
libclang_rt.builtins-x86_64.a \
libclang_rt.dd-x86_64.a \
libclang_rt.dyndd-x86_64.so \
libclang_rt.fuzzer-x86_64.a \
libclang_rt.fuzzer_no_main-x86_64.a \
libclang_rt.lsan-x86_64.a \
libclang_rt.profile-x86_64.a \
libclang_rt.safestack-x86_64.a \
libclang_rt.stats-x86_64.a \
libclang_rt.stats_client-x86_64.a \
libclang_rt.tsan-x86_64.a \
libclang_rt.tsan-x86_64.a.syms \
libclang_rt.tsan_cxx-x86_64.a \
libclang_rt.tsan_cxx-x86_64.a.syms \
libclang_rt.ubsan_minimal-x86_64.a \
libclang_rt.ubsan_minimal-x86_64.a.syms \
libclang_rt.ubsan_minimal-x86_64.so \
libclang_rt.ubsan_standalone-x86_64.a \
libclang_rt.ubsan_standalone-x86_64.a.syms \
libclang_rt.ubsan_standalone-x86_64.so \
libclang_rt.ubsan_standalone_cxx-x86_64.a \
libclang_rt.ubsan_standalone_cxx-x86_64.a.syms
.endif
.if ${ARCH} == "i386"
_COMPILER_RT_LIBS+= \
libclang_rt.asan-i386.a \
libclang_rt.asan-i386.so \
libclang_rt.asan-preinit-i386.a \
libclang_rt.asan_cxx-i386.a \
libclang_rt.builtins-i386.a \
libclang_rt.lsan-i386.a \
libclang_rt.profile-i386.a \
libclang_rt.safestack-i386.a \
libclang_rt.stats-i386.a \
libclang_rt.stats_client-i386.a \
libclang_rt.ubsan_minimal-i386.a \
libclang_rt.ubsan_minimal-i386.so \
libclang_rt.ubsan_standalone-i386.a \
libclang_rt.ubsan_standalone-i386.so \
libclang_rt.ubsan_standalone_cxx-i386.a
.endif
.if ${PORT_OPTIONS:MEXTRAS}
COMMANDS+= ${EXTRAS_COMMANDS}
MAN1SRCS+= extraclangtools.1
PORTDOCS+= clang-tools
.endif
.if ${PORT_OPTIONS:MLLD}
COMMANDS+= lld \
lld-link
PORTDOCS+= lld
.endif
post-patch:
${REINPLACE_CMD} -e 's|import lit|import lit${LLVM_SUFFIX}|' \
-e 's|from lit|from lit${LLVM_SUFFIX}|' \
-e 's|lit\.|lit${LLVM_SUFFIX}.|' \
${WRKSRC}/utils/lit/lit.py ${WRKSRC}/utils/lit/lit/*.py
${REINPLACE_CMD} -e 's,/usr/local/,${LOCALBASE}/,' \
${WRKSRC}/CMakeLists.txt
post-patch-CLANG-on:
${REINPLACE_CMD} -e 's|%%LLVM_SUFFIX%%|${LLVM_SUFFIX}|' \
${PATCH_WRKSRC}/tools/clang/tools/clang-format/clang-format.py \
${PATCH_WRKSRC}/tools/clang/tools/clang-format/clang-format-sublime.py \
${PATCH_WRKSRC}/tools/clang/tools/clang-format/git-clang-format
post-build-COMPILER_RT-on:
${MKDIR} ${WRKDIR}/compiler-rt-build
cd ${WRKDIR}/compiler-rt-build && \
${CMAKE_BIN} ${CMAKE_ARGS} \
-DLLVM_CONFIG_PATH=${CONFIGURE_WRKSRC}/bin/llvm-config \
${WRKSRC_compiler_rt} && \
${MAKE_ENV} ${MAKE_CMD}
post-install:
${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \
${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX}
.for command in ${COMMANDS:C/^/XXXX/1:NXXXX*}
${LN} -f ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} \
${STAGEDIR}${PREFIX}/bin/${command}${LLVM_SUFFIX}
.endfor
post-install-DOCS-on:
${MV} ${STAGEDIR}${LLVM_PREFIX}/share/doc ${STAGEDIR}${DOCSDIR}
.for _man in ${MAN1SRCS}
${MV} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/${_man} \
${STAGEDIR}${MANPREFIX}/man/man1/${_man:R}${LLVM_SUFFIX}.1
.endfor
.if ! ${PORT_OPTIONS:MLIT}
${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/lit.1
${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/FileCheck.1
.endif
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
.if ${PORT_OPTIONS:MCLANG}
post-install-DOCS-off:
${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/scan-build.1
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
.endif
post-install-CLANG-on:
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \
${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp
post-install-COMPILER_RT-on:
cd ${WRKDIR}/compiler-rt-build && \
${MAKE_ENV} ${MAKE_CMD} ${INSTALL_TARGET}
.if ${ARCH} == "amd64"
${RM} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd/libclang_rt*i386*
.endif
${MKDIR} ${STAGEDIR}${PREFIX}/${_CRTLIBDIR}
${MV} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd/* \
${STAGEDIR}${PREFIX}/${_CRTLIBDIR}
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd
post-install-LIT-on:
${INSTALL_SCRIPT} ${PATCH_WRKSRC}/utils/lit/lit.py \
${STAGEDIR}${LLVM_PREFIX}/bin/lit
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
${STAGEDIR}${LLVM_PREFIX}/bin/llvm-lit
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
${STAGEDIR}${PREFIX}/bin/lit${LLVM_SUFFIX}
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
${STAGEDIR}${PREFIX}/bin/llvm-lit${LLVM_SUFFIX}
${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
${INSTALL_DATA} ${WRKSRC}/utils/lit/lit/*.py \
${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/FileCheck \
${STAGEDIR}${LLVM_PREFIX}/bin/
${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/FileCheck \
${STAGEDIR}${PREFIX}/bin/FileCheck${LLVM_SUFFIX}
post-install-LLDB-on:
${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/lldb/API
TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${MAKE_CMD} check-local-lit)'
regression-test: ${BUILD_COOKIE}
if [ `${ID} -u` = 0 ]; then \
${CHOWN} -R nobody ${WRKSRC}/test; \
su -m nobody -c ${TEST_CMD}; \
else \
${SH} -c ${TEST_CMD}; \
fi
build-plist:
${RM} ${PLIST} ${PLIST}.tmp
${ECHO_CMD} "@comment >>>>> GENERATED FILE, DO NOT EDIT <<<<<" >> ${PLIST}.tmp
${ECHO_CMD} "@comment Alter build-plist target and regenerate as required" >> ${PLIST}.tmp
.for command in ${COMMANDS}
${ECHO_CMD} bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp
.endfor
.for command in ${LIT_COMMANDS}
${ECHO_CMD} %%LIT%%bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp
${ECHO_CMD} %%LIT%%${LLVM_PREFIX:S|${PREFIX}/||}/bin/${command} >> ${PLIST}.tmp
.endfor
${FIND} ${STAGEDIR}${LLVM_PREFIX} -type f -o -type l | \
${GREP} -v '[/-]lit$$' | ${GREP} -v 'FileCheck$$' | \
${GREP} -v man/man1 | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \
-e 's|${PYTHON_SITELIBDIR:C|${PREFIX}/||}|%%PYTHON_SITELIBDIR%%|' \
-e 's|${PORTVERSION}|%%PORTVERSION%%|' \
-e 's|release.cmake|%%CMAKE_BUILD_TYPE%%.cmake|' \
-e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
-e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' \
-e 's|\.${LLVM_MAJOR:C/\..*//}|.%%LLVM_LIB_VER%%|' \
| ${SORT} >> ${PLIST}.tmp
${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/lit${LLVM_SUFFIX} -type f | \
${SED} -e 's|${STAGEDIR}${PYTHON_SITELIBDIR}|%%LIT%%%%PYTHON_SITELIBDIR%%|' \
-e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
-e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' | \
${SORT} >> ${PLIST}.tmp
awk '{ \
if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /omp.h|${EXTRAS_PATTERN}|libclang_rt/) {printf "%%%%CLANG%%%%"} \
if ($$0 ~ /${COMPILER_RT_PATTERN}/) \
{printf "%%%%COMPILER_RT%%%%"} \
if ($$0 ~ /lld|wasm-ld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} \
if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \
if ($$0 ~ /(argdumper|lldb|six.py)/) {printf "%%%%LLDB%%%%"} \
if ($$0 ~ /(lib[ig]*omp|omp.h|ompt.h)/) {printf "%%%%OPENMP%%%%"} \
if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} \
if ($$0 !~ /libclang_rt/) {print} \
}' ${PLIST}.tmp >> ${PLIST}
${ECHO_CMD} '@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi' >> ${PLIST}
${ECHO_CMD} '@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi' >> ${PLIST}
${RM} ${PLIST}.tmp
check-commands:
.for command in ${COMMANDS}
test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command}
.endfor
.include <bsd.port.post.mk>