Skip to content
Snippets Groups Projects
Commit 87c96570 authored by Brooks Davis's avatar Brooks Davis
Browse files

devel/llvm15: add a STATIC_LIBS option

When enabled (default) assorted LLVM componant static libraries are
included in the package.  Disabling this option reduces the installed
size by ~1GiB.

Sponsored by:	DARPA
parent 2aa44a22
No related branches found
No related tags found
No related merge requests found
......@@ -85,7 +85,7 @@ 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
OPTIONS_DEFINE= BE_AMDGPU BE_WASM CLANG DOCS EXTRAS FLANG LIT LLD LLDB MLIR PYCLANG STATIC_LIBS
OPTIONS_DEFINE_aarch64= OPENMP
OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFINE_i386= COMPILER_RT OPENMP
......@@ -93,7 +93,7 @@ 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
OPTIONS_DEFAULT= BE_AMDGPU BE_STANDARD BE_WASM CLANG EXTRAS LIT LLD LLDB PYCLANG STATIC_LIBS
OPTIONS_DEFAULT_aarch64= OPENMP
OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
OPTIONS_DEFAULT_i386= COMPILER_RT
......@@ -110,7 +110,7 @@ OPTIONS_SINGLE= BACKENDS
OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
OPTIONS_SUB= yes
# All non-backend options
_ALL_OPTIONS= CLANG COMPILER_RT DOCS EXTRAS FLANG GOLD LIT LLD LLDB MLIR OPENMP PYCLANG
_ALL_OPTIONS= CLANG COMPILER_RT DOCS EXTRAS FLANG GOLD LIT LLD LLDB MLIR OPENMP PYCLANG STATIC_LIBS
BE_AMDGPU_DESC= AMD GPU backend (required by mesa)
BE_FREEBSD_DESC= Backends for FreeBSD architectures
......@@ -120,7 +120,7 @@ BE_NATIVE_CMAKE_ON= -DLLVM_TARGETS_TO_BUILD="${NATIVE_BACKENDS:ts;}"
BE_STANDARD_DESC= All non-experimental backends
BE_WASM_DESC= WebAssembly backend (required by firefox via wasi)
.for BE in FREEBSD NATIVE STANDARD
BE_${BE}_PLIST_FILES= ${_BE_LIBS_${BE}:O:S/$/.a/:S|^|${LLVM_DIR}/lib/libLLVM|} \
BE_${BE}_PLIST_FILES= ${_BE_LIBS_${BE}:O:S/$/.a/:S|^|%%STATIC_LIBS%%${LLVM_DIR}/lib/libLLVM|} \
${_BE_INCS_${BE}:S|^|${LLVM_DIR}/lib/clang/${LLVM_RELEASE}/include/|:N${LLVM_DIR}/lib/clang/${LLVM_RELEASE}/include/$}
.endfor
CLANG_DESC= Build clang
......@@ -181,6 +181,7 @@ PYCLANG_DESC= Install python bindings to libclang
PYCLANG_IMPLIES= CLANG
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)
.if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE= RelWithDebInfo
......@@ -686,6 +687,10 @@ do-test:
${SH} -c ${TEST_CMD}; \
fi
post-install-STATIC_LIBS-off:
${RM} ${STAGEDIR}${LLVM_PREFIX}/lib/lib*.a
build-plist:
@[ -d ${STAGEDIR} ] || (echo "Can't make plist before package is staged ${STAGEDIR}" && exit 1)
${RM} ${PLIST} ${PLIST}.tmp
......@@ -720,6 +725,7 @@ build-plist:
-e 's|\([^0-9]\)${LLVM_MAJOR}\([^0-9]\)|\1%%LLVM_MAJOR%%\2|' \
| ${SORT} >> ${PLIST}.tmp
${AWK} '{ \
if ($$0 ~ /lib.lib[a-zA-Z].*\.a$$/ && $$0 !~ /(${BE_PATTERN})$$/) {printf "%%%%STATIC_LIBS%%%%"} \
if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /(${OPENMP_PATTERN}|${EXTRAS_PATTERN}|libclang_rt|${PYCLANG_PATTERN}|${BE_PATTERN})/) {printf "%%%%CLANG%%%%"} \
if ($$0 ~ /${COMPILER_RT_PATTERN}/) \
{printf "%%%%COMPILER_RT%%%%"} \
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment