#!/bin/sh MAKEDEPS="cmake llvm libxml2 ninja python python-markupsafe python-pygments" DEPS="curl gcc libssh2 openssl" PKG_VER=13.0.0 SOURCE=https://github.com/llvm/llvm-project/releases/download/llvmorg-$PKG_VER/clang-$PKG_VER.src.tar.xz DESC="Systems programming language focused on safety, speed and concurrency" ADDITIONAL=" patches/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch patches/10-add-musl-triples.patch " prepare () { apply_patches # link in /usr/inlcude/llvm to include ln -s /usr/include/llvm include/llvm # (there should be a better way to do this, since tblgen does look in /include rather than /usr/include) } build () { mkdir build cd build python_version=$(python3 -V | sed 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/') cmake .. -G Ninja -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS_RELEASE_INIT="$CFLAGS -O2" \ -DCMAKE_CXX_FLAGS_RELEASE_INIT="$CXXFLAGS" \ -DCMAKE_EXE_LINKER_FLAGS_RELEASE_INIT="$LDFLAGS -Wl,-z,stack-size=2097152" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_VERBOSE_MAKEFILE=OFF \ -DCLANG_VENDOR=XiLinux \ -DLLVM_EXTERNAL_LIT=/usr/bin/lit \ -DCLANG_BUILD_EXAMPLES=OFF \ -DCLANG_INCLUDE_DOCS=ON \ -DCLANG_PYTHON_BINDINGS_VERSIONS="$python_version" \ -DLLVM_BUILD_DOCS=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DCLANG_INCLUDE_TESTS=ON \ -DCLANG_PLUGIN_SUPPORT=ON \ -DLIBCLANG_BUILD_STATIC=ON \ -DLLVM_ENABLE_EH=ON \ -DLLVM_ENABLE_RTTI=ON ninja clang-tblgen ninja } package () { DESTDIR=$PKG_DEST ninja install }