musllvm

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

headers.sh (1008B)


      1 #!/bin/sh
      2 set -eu
      3 
      4 . $PWD/scripts/config.sh
      5 
      6 LINUX_TAR=$(ls "$PROOT"/sources/linux-*.tar.* 2>/dev/null | head -n 1 | xargs basename)
      7 if [ -z "$LINUX_TAR" ]; then
      8         echo "ERR: No Linux tarball found in sources directory"
      9         exit 1
     10 fi
     11 LINUX_SOURCE="${LINUX_TAR%%.tar*}"
     12 
     13 if command -v "clang" >/dev/null 2>&1 && command -v "lld" >/dev/null 2>&1; then
     14         export LLVM=1
     15         export LLVM_IAS=1
     16 fi
     17 
     18 if [ ! -d $PROOT/build/"$LINUX_SOURCE" ]; then
     19         echo "Extracting Linux tarball to ./build/"
     20         tar -xpf $PROOT/sources/"$LINUX_TAR" -C $PROOT/build
     21 else
     22         echo "Linux source already extracted."
     23 fi
     24 
     25 echo "Creating target include directory"
     26 mkdir -pv $PROOT/build/"$FROOT"/include
     27 
     28 echo "Building Headers"
     29 if [ -d $PROOT/build/"$FROOT"/include/linux ]; then
     30         echo "Headers already built, skipping..."
     31         exit
     32 fi
     33 
     34 cd ./build/"$LINUX_SOURCE"
     35 
     36 make mrproper
     37 make headers
     38 find usr/include -type f ! -name '*.h' -delete
     39 cp -rv usr/include/* $PROOT/build/"$FROOT"/include/
     40