aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2023-04-02 02:17:48 +0000
committerBrooks Davis <brooks@FreeBSD.org>2023-04-02 02:17:48 +0000
commitaf979dd126ff49eabb75e48087ee284e288da322 (patch)
tree65567cb3b4d6e5fc8812be3473946c1346e52e3d
parent87c9657029fac3e26a5d43195da5d8aec16ee70b (diff)
downloadports-af979dd126ff49eabb75e48087ee284e288da322.tar.gz
ports-af979dd126ff49eabb75e48087ee284e288da322.zip
devel/llvm15: add a lite FLAVOR
The lite flavor is for when you just need a FreeBSD compiler (e.g., in CI). By default it includes CLANG and LLD as well as backends required for FreeBSD and FreeBSD ports (BE_NATIVE, BE_AMDGPU, and BE_WASM). The lite install is ~350GiB on amd64 vs ~1.7GiB for default and it has only a single dependency (zstandard). (The goal was no dependencies, but libzstd is a private lib in base.) Bump PORT_REVISION due to removal of clang libxml2 dependency. Sponsored by: DARPA
-rw-r--r--devel/llvm15/Makefile33
1 files changed, 26 insertions, 7 deletions
diff --git a/devel/llvm15/Makefile b/devel/llvm15/Makefile
index 166758c601e8..86dce0ee1d8a 100644
--- a/devel/llvm15/Makefile
+++ b/devel/llvm15/Makefile
@@ -1,6 +1,6 @@
PORTNAME= llvm
DISTVERSION= 15.0.7
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel lang
MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
https://${PRE_}releases.llvm.org/${LLVM_RELEASE}${RCDIR}/
@@ -22,6 +22,10 @@ LICENSE:= ${LICENSE:NARM}
LIB_DEPENDS= libzstd.so:archivers/zstd
+FLAVORS= default lite
+FLAVOR?= ${FLAVORS:[1]}
+lite_PKGNAMESUFFIX= ${LLVM_SUFFIX}-lite
+
LLVM_RELEASE= ${DISTVERSION:C/rc.*//}
LLVM_MAJOR= ${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//}
LLVM_SUFFIX= ${LLVM_MAJOR}
@@ -75,6 +79,7 @@ CMAKE_ARGS+= -DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET}
CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR:PATH="share/man"
CMAKE_ARGS+= -DLLVM_PARALLEL_LINK_JOBS=1
CMAKE_ARGS+= -DLLVM_ENABLE_Z3_SOLVER=OFF
+CMAKE_ARGS+= -DLLVM_ENABLE_LIBXML2=OFF
CMAKE_ARGS+= -DLLVM_ENABLE_LIBEDIT=OFF
CMAKE_ARGS+= -DPython3_EXECUTABLE=${PYTHON_CMD}
# LLVM likes to pick up ${LOCALBASE}/lib/libtinfo.so.*
@@ -85,7 +90,16 @@ CMAKE_ARGS+= -DLLVM_ENABLE_TERMINFO=OFF
CFLAGS+= -DNDEBUG
CXXFLAGS+= -DNDEBUG
-OPTIONS_DEFINE= BE_AMDGPU BE_WASM CLANG DOCS EXTRAS FLANG LIT LLD LLDB MLIR PYCLANG STATIC_LIBS
+OPTIONS_DEFINE= BE_AMDGPU BE_WASM CLANG DOCS LLD STATIC_LIBS
+OPTIONS_DEFAULT= BE_AMDGPU BE_WASM CLANG LLD
+OPTIONS_SINGLE= BACKENDS
+OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
+OPTIONS_SUB= yes
+
+.if ${FLAVOR:Mlite}
+OPTIONS_DEFAULT+= BE_NATIVE
+.else
+OPTIONS_DEFINE+= EXTRAS FLANG LIT LLDB MLIR OPENMP PYCLANG
OPTIONS_DEFINE_aarch64= OPENMP
OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_i386= COMPILER_RT OPENMP
@@ -93,7 +107,8 @@ OPTIONS_DEFINE_powerpc= COMPILER_RT GOLD
OPTIONS_DEFINE_powerpc64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_powerpc64le= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_riscv64= COMPILER_RT OPENMP
-OPTIONS_DEFAULT= BE_AMDGPU BE_STANDARD BE_WASM CLANG EXTRAS LIT LLD LLDB PYCLANG STATIC_LIBS
+
+OPTIONS_DEFAULT+= BE_STANDARD EXTRAS LIT LLDB PYCLANG STATIC_LIBS
OPTIONS_DEFAULT_aarch64= OPENMP
OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFAULT_i386= COMPILER_RT
@@ -101,14 +116,13 @@ OPTIONS_DEFAULT_powerpc= COMPILER_RT GOLD
OPTIONS_DEFAULT_powerpc64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFAULT_powerpc64le= COMPILER_RT GOLD OPENMP
OPTIONS_DEFAULT_riscv64= COMPILER_RT OPENMP
+
OPTIONS_EXCLUDE_armv6= FLANG
OPTIONS_EXCLUDE_armv7= FLANG
OPTIONS_EXCLUDE_i386= FLANG
OPTIONS_EXCLUDE_powerpc= FLANG
OPTIONS_EXCLUDE_riscv64= LLDB
-OPTIONS_SINGLE= BACKENDS
-OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
-OPTIONS_SUB= yes
+.endif
# All non-backend options
_ALL_OPTIONS= CLANG COMPILER_RT DOCS EXTRAS FLANG GOLD LIT LLD LLDB MLIR OPENMP PYCLANG STATIC_LIBS
@@ -133,7 +147,10 @@ CLANG_SUB_LIST= XCC=clang${LLVM_SUFFIX} \
XCPP=clang-cpp${LLVM_SUFFIX} \
XLD=ld.lld${LLVM_SUFFIX} \
X_COMPILER_TYPE=clang
-CLANG_USE= GNOME=libxml2
+.if ${FLAVOR:Mlite}
+# scan-build does require perl, but lite users can install it manually.
+CLANG_USE= PERL5=build
+.endif
COMPILER_RT_DESC= Sanitizer libraries
COMPILER_RT_CMAKE_ON= -DCOMPILER_RT_INSTALL_PATH=${LLVM_PREFIX}/lib/clang/${LLVM_RELEASE}
COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS:S|^|${_CRTLIBDIR}/|} \
@@ -183,6 +200,8 @@ PYCLANG_VARS= _USES_PYTHON=python:3.6+
PYCLANG_CMAKE_ON= -DCLANG_PYTHON_BINDINGS_VERSIONS=${PYTHON_VER}
STATIC_LIBS_DESC= Install static libraries (does not effect sanitizers)
+CONFLICTS_INSTALL= ${PORTNAME}${LLVM_SUFFIX} ${PORTNAME}${LLVM_SUFFIX}-lite
+
.if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE= RelWithDebInfo
STRIP=