musllvm

A pure LLVM/Clang cross compiler toolchain targeting musl C
git clone git://git.daat.foo/musllvm.git
Log | Files | Refs | README | LICENSE

elftoolchain-cross.sh (1018B)


      1 #!/bin/sh
      2 set -eu
      3 
      4 . $PWD/scripts/config.sh
      5 
      6 ELF_TAR=$(ls "$PROOT"/sources/elftoolchain-*.tar.* 2>/dev/null | head -n 1 | xargs basename)
      7 if [ -z "$ELF_TAR" ]; then
      8         echo "ERR: No Musl tarball found in sources directory"
      9         exit 1
     10 fi
     11 ELF_SOURCE="${ELF_TAR%%.tar.*}"
     12 
     13 if command -v "clang" >/dev/null 2>&1 && command -v "lld" >/dev/null 2>&1; then
     14         export CC="clang"
     15 else
     16         export CC="cc"
     17 fi
     18 
     19 if [ ! -d $PROOT/build/"$ELF_SOURCE" ]; then
     20         echo "Extracting Elftoolchain tarball to ./build/"
     21         tar -xpf $PROOT/sources/"$ELF_TAR" -C ./build
     22 else
     23         echo "Elftoolchain source already extracted."
     24 fi
     25 
     26 echo "Buliding musl headers"
     27 if [ -f "$PROOT/build/$ELF_SOURCE" ]; then
     28         echo "ELFTOOLCHAIN  already built, skipping..."
     29         exit
     30 fi
     31 
     32 cd ./build/"$ELF_SOURCE"
     33 
     34 echo "patching elftoolchain-cross..."
     35 
     36 patch -Np1 < "$PROOT"/patches/elftoolchain/*
     37 
     38 echo "Installing elftoolchain-cross..."
     39 
     40 bmake WITH_ADDITIONAL_DOCUMENTATION=no \
     41       WITH_TESTS=no \
     42       MANTARGET=man