You are not logged in.

#1 2025-04-14 14:12:30

bash000000
Member
Registered: 2025-03-05
Posts: 1

I merged all the llvm-project components into a single build

PKGBUILD

pkgbase=llvm-project
pkgname=( 'llvm' 'mlir'  'llvm-libs' 'flang'  'clang' 'lld' 'lldb' 'libclc' 'polly' 'bolt1' 'libc++' 'libc++abi' 'libunwind1'  'openmp' 'offload' 'pstl' 'llvmlibc' 'compiler-rt')
pkgver=19.1.7
pkgrel=1
arch=('x86_64')
url="https://llvm.org/"
license=('Apache-2.0 WITH LLVM-exception')
makedepends=('cmake' 'ninja' 'zlib' 'zstd' 'curl' 'libffi' 'libedit' 'libxml2'
             'python-setuptools' 'python-psutil' 'pybind11' 'python-sphinx' 'python-sphinx-furo'
             'python-myst-parser' 'pybind11' 'nanobind' 'lua' 'ocaml')
source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz"
"fix-libc-build. Patch")
sha512sums=('c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8'
            'a4a2dc1528f02625b34daa11feafb5f110d9f310b6573ec9b4f61202ed2f9081a442d6bc92db8139dfe052b5494636a7df4bf6021efaf7d891b50366832e76a9')
options=(!lto !debug)

prepare(){
  cd llvm-project-$pkgver.src
  git apply ../fix-libc-build.patch
}

build() {
  cmake \
    -S llvm-project-$pkgver.src/llvm \
    -B build \
    -G Ninja \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_SKIP_INSTALL_RPATH=ON \
    -DCMAKE_SKIP_RPATH=ON \
    -DCMAKE_INSTALL_DOCDIR=/usr/share/doc \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_PREFIX_PATH=/opt/cuda \
    -DLLVM_USE_PERF=ON \
    -DLLVM_BINUTILS_INCDIR=/usr/include \
    -DLLVM_ENABLE_PROJECTS="bolt;clang;clang-tools-extra;cross-project-tests;lld;lldb;libclc;polly;mlir;flang" \
    -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;compiler-rt;openmp;offload;pstl;libc" \
    -DLLVM_TARGETS_TO_BUILD=all \
    -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=all \
    -DLLVM_ENABLE_PIC=ON \
    -DLLVM_BUILD_DOCS=ON \
    -DLLVM_BUILD_TESTS=ON \
    -DLLVM_BUILD_LLVM_DYLIB=ON \
    -DLLVM_ENABLE_BINDINGS=ON \
    -DLLVM_ENABLE_CURL=ON \
    -DLLVM_ENABLE_FFI=ON \
    -DLLVM_ENABLE_RTTI=ON \
    -DLLVM_ENABLE_OCAMLDOC=ON \
    -DLLVM_ENABLE_SPHINX=ON \
    -DLLVM_HOST_TRIPLE=$CHOST \
    -DLLVM_INCLUDE_BENCHMARKS=ON \
    -DLLVM_INSTALL_GTEST=ON \
    -DLLVM_INSTALL_UTILS=ON \
    -DLLVM_DYLIB_COMPONENTS=all \
    -DLLVM_BUILD_LLVM_DYLIB=ON \
    -DLLVM_LINK_LLVM_DYLIB=ON \
    -DLLVM_USE_PERF=ON \
    -DLLVM_ENABLE_ZLIB=ON \
    -DLLVM_ENABLE_ZSTD=ON \
    -DLLVM_ENABLE_LIBEDIT=ON \
    -DLLVM_ENABLE_LIBXML2=ON \
    -DLLVM_ENABLE_LIBPFM=ON \
    -DCLANG_DEFAULT_LINKER=lld \
    -DFLANG_DEFAULT_LINKER=lld \
    -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
    -DMLIR_ENABLE_BINDINGS_PYTHON=ON \
    -DLIBUNWIND_INSTALL_INCLUDE_DIR="/usr/include/unwind" \
    -DLIBUNWIND_USE_COMPILER_RT=ON \
    -DLIBCXXABI_USE_COMPILER_RT=ON \
    -DLIBCXX_INSTALL_MODULES=ON \
    -DLIBCXX_USE_COMPILER_RT=ON \
    -DCOMPILER_RT_CXX_LIBRARY=libcxx \
    -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \
    -DLLVM_LIBC_FULL_BUILD=ON \
    -DLLVM_LIBC_GPU_BUILD=ON \
    -DSPHINX_WARNINGS_AS_ERRORS=OFF
  ninja -C build -j 16
}

_python_optimize() {
  python -m compileall "$@"
  python -O -m compileall "$@"
  python -OO -m compileall "$@"
}

package_llvm() {
  pkgdesc="Compiler infrastructure"
  depends=('curl' 'perl')
  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      *bolt*|*Polly*|*BOLT*)
        continue
        ;;
      llvm*)
        selected_targets+=( "install-$target" )
        ;;
      LLVM*)
        selected_targets+=( "install-$target" )
        ;;
      cmake-exports)
        selected_targets+=( "install-$target" )
        ;;
      FileCheck|UnicodeNameMappingGenerator|bugpoint|count|dsymutil)
        selected_targets+=( "install-$target" )
        ;;
      lli*|llc|not|obj2yaml|opt|reduce*|san*|split*|verify*|yaml*)
        selected_targets+=( "install-$target" )
        ;;
      docs-llvm*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"
  rm -f $pkgdir/usr/lib/lib{LLVM,LTO,Remarks}*.so*
  rm -f $pkgdir/usr/lib/LLVMgold*.so*
  rm -f $pkgdir/usr/lib/libPolly*.a
  rm -f $pkgdir/usr/lib/libLLVMBOLT*.a*
  rm -f $pkgdir/usr/lib/libLibcTableGenUtil.a 
  # Include lit for running lit-based tests in other projects
  pushd llvm-project-$pkgver.src/llvm/utils/lit
  python3 setup.py install --root="$pkgdir" -O1
  popd
  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}

  install -Dm644 llvm-project-$pkgver.src/llvm/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

}

package_llvm-libs(){
  pkgdesc="LLVM runtime libraries"
  depends=('gcc-libs' 'zlib' 'zstd' 'libffi' 'libedit' 'libxml2')
  provides=('libLLVM.so' 'libLTO.so' 'libRemarks.so')
  DESTDIR="$pkgdir" ninja -C build install-LLVM install-LLVMgold install-Remarks install-LTO

    # Symlink LLVMgold.so from /usr/lib/bfd-plugins
  # https://bugs.archlinux.org/task/28479
  install -d "$pkgdir/usr/lib/bfd-plugins"
  ln -s $pkgdir/usr/lib/LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so"
  rm -rf $pkgdir/usr/include


  install -Dm644 llvm-project-$pkgver.src/llvm/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
package_clang() {
  url="https://clang.llvm.org/"
  optdepends=('openmp: OpenMP support in clang with -fopenmp'
            'python: for scan-view and git-clang-format'
            'llvm: referenced by some clang headers')
  depends=('llvm-libs' 'gcc' 'compiler-rt' 'lld')
  pkgdesc="C language family frontend for LLVM"
  provides=("clang-analyzer=$pkgver" "clang-tools-extra=$pkgver")
  conflicts=('clang-analyzer' 'clang-tools-extra')
  replaces=('clang-analyzer' 'clang-tools-extra')
  
  install -d "$pkgdir/usr/lib/libear"
  install -d "$pkgdir/usr/lib/libscanbuild"

  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      clang*|libclang*|findAllSymbols)
        selected_targets+=( "install-$target" )
        ;;
      scan*|amdgpu-arch|c-index-test|pp-trace|nvptx-arch|diagtool|find-all-symbols|hmaptool|modularize)
        selected_targets+=( "install-$target" )
        ;;
      docs-clang*|bash-autocomplete)
        selected_targets+=( "install-$target" )
        ;;

    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  install -Dm644 llvm-project-$pkgver.src/clang/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")

  # Compile Python scripts
  _python_optimize "$pkgdir/usr/share" "${pkgdir}${site_packages}"
  
  # Move scanbuild-py into site-packages and install Python bindings

  install -d "$pkgdir/$site_packages"
  mv "$pkgdir"/usr/lib/{libear,libscanbuild} "$pkgdir/$site_packages/"
  cp -a llvm-project-$pkgver.src/clang/bindings/python/clang "$pkgdir/$site_packages/"

  # Move analyzer scripts out of /usr/libexec
  mv "$pkgdir"/usr/libexec/* "$pkgdir/usr/lib/clang/"
  rmdir "$pkgdir/usr/libexec"
  sed -i 's|libexec|lib/clang|' \
    "$pkgdir/usr/bin/scan-build" \
    "$pkgdir/$site_packages/libscanbuild/analyze.py"


  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}
  # Move bash completion
  local bash_completion_destdir="$pkgdir/usr/share/bash-completion/completions"
  install -d $bash_completion_destdir
  mv "$pkgdir/usr/share/clang/bash-autocomplete.sh" "$bash_completion_destdir/clang"

}

package_lld() {
  pkgdesc="Linker from the LLVM project"
  url="https://lld.llvm.org/"
  depends=('llvm-libs' 'gcc-libs' 'zlib' 'zstd')

  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      lldb*)
        continue
        ;;
      docs-lldb*)
        continue
        ;;
      liblldb*)
        continue
        ;;
      lld*)
        selected_targets+=( "install-$target" )
        ;;
      liblld*)
        selected_targets+=( "install-$target" )
        ;;
      docs-lld*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  for lib in "$srcdir/build/lib"/liblld*; do
    if [[ $(basename "$lib") != liblldb* ]]; then
      install -Dm644 "$lib" "$pkgdir/usr/lib/$(basename "$lib")"
    fi
  done

  install -Dm644 llvm-project-$pkgver.src/lld/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"


  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}
}

package_lldb() {
  depends=('llvm-libs' 'clang' 'gcc-libs' 'zlib' 'xz' 'libedit' 'ncurses'
         'libxml2' 'python')
  pkgdesc="Next generation, high-performance debugger"
  url="https://lldb.llvm.org/"
  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      lldb*)
        selected_targets+=( "install-$target" )
        ;;
      liblldb*)
        selected_targets+=( "install-$target" )
        ;;
      docs-lldb*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done

  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  install -Dm644 llvm-project-$pkgver.src/lldb/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"


  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}
  # Compile Python scripts
  _python_optimize -d /usr/lib "$pkgdir/usr/lib"
}

package_libclc() {
  pkgdesc="Library requirements of the OpenCL C programming language"
  url="https://libclc.llvm.org/"

  DESTDIR="$pkgdir" ninja -C build tools/libclc/install
  install -Dm644 llvm-project-$pkgver.src/libclc/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

package_polly() {
  pkgdesc="High-level loop and data-locality optimizer and optimization infrastructure for LLVM"
  url="https://polly.llvm.org/"

  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      Polly*)
        selected_targets+=( "install-$target" )
        ;;
      LLVMPolly*)
        selected_targets+=( "install-$target" )
        ;;
      docs-polly*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  install -Dm644 llvm-project-$pkgver.src/polly/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}

}

package_bolt1(){
  depends=(gcc-libs ncurses zlib zstd)
  pkgdesc='a post-link optimizer developed to speed up large applications'
  provide=('llvm-bolt')
  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      bolt*)
        selected_targets+=( "install-$target" )
        ;;
      LLVMBOLT*)
        selected_targets+=( "install-$target" )
        ;;
      llvm-bolt*)
        selected_targets+=( "install-$target" )
        ;;
      merge-fdata)
        selected_targets+=( "install-$target" )
        ;;
      docs-bolt*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  install -Dm644 llvm-project-$pkgver.src/bolt/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  rm -r "$pkgdir"/usr/share/doc/bolt/html/{_sources,.buildinfo}
  
}

package_mlir(){
  pkgdesc="Multi-Level IR Compiler Framework for LLVM"
  url="https://mlir.llvm.org/"
  depends=('clang' 'clang' 'gcc-libs' 'zlib' 'zstd')
  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      mlir-python-sources|obj.MLIR*)
        continue
        ;;
      mlir*)
        selected_targets+=( "install-$target" )
        ;;
      MLIR*)
        selected_targets+=( "install-$target" )
        ;;
      tblgen*)
        selected_targets+=( "install-$target" )
        ;;
      docs-mlir*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"

  local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
  install -d "$pkgdir/$site_packages"
  mv "$pkgdir"/usr/python_packages/mlir_core/mlir "$pkgdir/$site_packages/"
  _python_optimize "$pkgdir/usr/python_packages/mlir_core" "$pkgdir/$site_packages"
  rm -rf "$pkgdir/usr/python_packages"

  install -Dm644 llvm-project-$pkgver.src/mlir/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  
}

package_flang(){
  pkgdesc="ground-up implementation of a Fortran front end written in modern C++"
  url="https://flang.llvm.org/"
  depends=('llvm-libs' 'clang' 'gcc-libs' 'zlib' 'zstd' 'mlir')
  local targets=( $(ninja -C $srcdir/build -t targets | grep -Po 'install-\K.*(?=-stripped:)') )
  local selected_targets=()
  for target in "${targets[@]}"; do
    case $target in
      flang*)
        selected_targets+=( "install-$target" )
        ;;
      fir*|f18*|tco)
        selected_targets+=( "install-$target" )
        ;;
      docs-flang*)
        selected_targets+=( "install-$target" )
        ;;
    esac
  done
  DESTDIR="$pkgdir" ninja -C build "${selected_targets[@]}"
  pushd $pkgdir/usr/bin
  ln -svr flang-new flang
  popd 
  install -Dm644 llvm-project-$pkgver.src/flang/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  rm -r "$pkgdir"/usr/share/doc/$pkgname/html/{_sources,.buildinfo}
}

package_libc++ () {
  pkgdesc="LLVM C++ standard library"
  url="https://libcxx.llvm.org/"
  depends+=("libc++abi=$pkgver-$pkgrel" "libunwind1=$pkgver-$pkgrel")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins libcxx/install

  install -Dm0644 llvm-project-$pkgver.src/libcxx/CREDITS.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/CREDITS
  install -Dm0644 llvm-project-$pkgver.src/libcxx/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}


package_libc++abi() {
  pkgdesc="Low level support for the $pkgdesc"
  url="https://libcxx.llvm.org/"
  depends+=("libunwind1=$pkgver-$pkgrel" "libc++=$pkgver-$pkgrel")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins libcxxabi/install

  install -Dm0644 llvm-project-$pkgver.src/libcxxabi/CREDITS.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/CREDITS
  install -Dm0644 llvm-project-$pkgver.src/libcxxabi/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}

package_libunwind1() {
  pkgdesc="A portable and efficient C programming interface (API) to determine the call-chain of a program"
  url="https://libcxx.llvm.org/"
  provides=("llvm-libunwind")
  depends+=("libc++abi=$pkgver-$pkgrel" "libc++=$pkgver-$pkgrel")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins libunwind/install

  install -Dm0644 llvm-project-$pkgver.src/libunwind/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
  rm "$pkgdir"/usr/lib/libunwind.so
}

package_compiler-rt() {
  pkgdesc="Compiler runtime libraries for clang"
  url="https://compiler-rt.llvm.org/"
  depends+=("libc++")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins compiler-rt/install
  rm -rf "$pkgdir"/usr/lib/clang/19/lib/linux/*
  cp -ap build/lib/clang/19/lib/linux/* "$pkgdir"/usr/lib/clang/19/lib/linux/
  install -Dm0644 llvm-project-$pkgver.src/compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}

package_openmp() {
  pkgdesc="LLVM OpenMP Runtime Library"
  optdepends=('cuda: offloading to NVIDIA GPUs'
            'hsa-rocr: offloading to AMD GPUs')
  url="https://openmp.llvm.org/"
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins openmp/install

  install -Dm0644 llvm-project-$pkgver.src/openmp/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
  rm "$pkgdir"/usr/lib/libgomp.so
  python -m compileall -d /usr/share "$pkgdir/usr/share"
  python -O -m compileall -d /usr/share "$pkgdir/usr/share"
  python -OO -m compileall -d /usr/share "$pkgdir/usr/share"

}

package_offload() {
  pkgdesc="LLVM Offload Runtime Library"
  url="https://openmp.llvm.org/"
  depends+=("openmp=$pkgver-$pkgrel")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins offload/install

  install -Dm0644 llvm-project-$pkgver.src/openmp/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}

package_pstl() {
  pkgdesc="LLVM Parallel STL for C++"
  url="https://libcxx.llvm.org/"
  depends+=("libc++=$pkgver-$pkgrel")
  DESTDIR="$pkgdir" ninja -C build/runtimes/runtimes-bins pstl/install
}

package_llvmlibc(){
  pkgdesc="LLVM C standard library"
  url="https://libcxx.llvm.org/"
  install -d "$pkgdir"/usr/lib/llvmlibc
  DESTDIR="$pkgdir"/usr/lib/llvmlibc ninja -C build/runtimes/runtimes-bins libc/install
  mv "$pkgdir"/usr/lib/llvmlibc/usr/lib/  "$pkgdir"/usr/lib/llvmlibc/
  mv "$pkgdir"/usr/lib/llvmlibc/usr/include/  "$pkgdir"/usr/lib/llvmlibc/
  rmdir "$pkgdir"/usr/lib/llvmlibc/usr
  cp -ap $srcdir/build/lib/libLibcTableGenUtil.a  "$pkgdir"/usr/lib/
  install -Dm0644 llvm-project-$pkgver.src/libc/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}

fix-libc-build.patch

--- a/libc/CMakeLists.txt  2025-04-14 16:04:36.092789087 +0800
+++ b/libc/CMakeLists.txt  2025-04-14 16:05:14.512029550 +0800
@@ -1,6 +1,7 @@
 cmake_minimum_required(VERSION 3.20.0)
 set(LLVM_SUBPROJECT_TITLE "libc")
-
+set(CMAKE_C_FLAGS="${CMAKE_C_FLAGS} -O" FORCE)
+set(CMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -O" FORCE)
 # Include LLVM's cmake policies.
 if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
   set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)                                                                                 

Offline

#2 2025-04-14 14:32:34

mackin_cheese
Member
Registered: 2025-01-07
Posts: 446

Re: I merged all the llvm-project components into a single build

There's a mistake in your PKGBUILD.

Offline

#3 2025-04-14 14:40:45

mackin_cheese
Member
Registered: 2025-01-07
Posts: 446

Re: I merged all the llvm-project components into a single build

also the patch is not applying correctly. where did you get the patch from?

Offline

#4 2025-04-14 15:13:17

Scimmia
Fellow
Registered: 2012-09-01
Posts: 12,614

Re: I merged all the llvm-project components into a single build

First off, why?

Have you built it in a clean chroot/container? At first glance, the use of git doesn't seem like it would work

Offline

Board footer

Powered by FluxBB