#!/bin/sh CURDIR=`pwd` SOURCE_TAR_DIR=${CURDIR}/sources LLVM_SOURCE_TAR_FILE=${SOURCE_TAR_DIR}/llvm-4.0.0.tar.gz LLVM_SOURCE_DIR=${CURDIR}/llvm-4.0.0 BUILD_PATH=${CURDIR}/rbuild-${TARGET_OS} ARM_BUILD_PATH=${CURDIR}/arm_rbuild-${TARGET_OS} INSTALL_PATH=${SRCDIR}/install-libllvm-4.0.0-${TARGET_OS} ARM_INSTALL_PATH=${CURDIR}/arm-libllvm-4.0.0-${TARGET_OS} LIB_INSTALL_PATH=${SRCDIR}/libllvm-4.0.0-${TARGET_OS} rm -rf ${LLVM_SOURCE_DIR} tar xf ${LLVM_SOURCE_TAR_FILE} if [ -d ${LLVM_SOURCE_DIR} ] then echo "[checking llvm source.. ok]" else echo "[error: there is not llvm source]" exit 1 fi mkdir $BUILD_PATH cd $BUILD_PATH echo "CMAKE for release mode" export COMPILER_DIR=${ROOTDIR}/tools/x86_64-linux-gnu-gcc-4.9/bin export SYSROOT_DIR=${ROOTDIR}/rs-devel_glibc-2.20.x86_64 cmake $LLVM_SOURCE_DIR \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \ -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++ -static-libgcc --disable-shared --enable-static" \ -DCMAKE_SHARED_LINKER_FLAGS="-static-libstdc++ -static-libgcc --disable-shared --enable-static" \ -DCMAKE_C_COMPILER=$COMPILER_DIR/x86_64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=$COMPILER_DIR/x86_64-linux-gnu-g++ \ -DCMAKE_C_FLAGS="--sysroot=${SYSROOT_DIR}" -DCMAKE_CXX_FLAGS="--sysroot=${SYSROOT_DIR}" \ -DCMAKE_AR=$COMPILER_DIR/x86_64-linux-gnu-ar -DCMAKE_RANLIB=$COMPILER_DIR/x86_64-linux-gnu-ranlib \ -DCMAKE_LINKER=$COMPILER_DIR/x86_64-linux-gnu-ld \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \ -DLLVM_INCLUDE_TESTS=OFF 2>&1 | tee ../build.log echo "make for release mode" make ENABLE_OPTIMIZED=1 -j4 2>&1 | tee -a ../build.log echo "make install for release mode" make install 2>&1 | tee -a ../build.log cd .. cd $INSTALL_PATH rm -rf bin/APIChecker rm -rf include rm -rf share cd ${SRCDIR} rm -rf $ARM_BUILD_PATH mkdir $ARM_BUILD_PATH cd $ARM_BUILD_PATH export SYSROOT_DIR=${ROOTDIR}/rs-devel_glibc-2.20.armv7l export COMPILER_DIR=${ROOTDIR}/tools/arm-linux-gnueabi-gcc-4.9/bin cmake $LLVM_SOURCE_DIR -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="ARM" -DCMAKE_CROSSCOMPILING=True -DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabi -DHAVE_POSIX_SPAWN=0 -DCMAKE_INSTALL_PREFIX=$ARM_INSTALL_PATH -DCMAKE_C_COMPILER=$COMPILER_DIR/arm-linux-gnueabi-gcc -DCMAKE_CXX_COMPILER=$COMPILER_DIR/arm-linux-gnueabi-g++ -DCMAKE_SYSROOT=$SYSROOT_DIR -DCMAKE_AR=$COMPILER_DIR/arm-linux-gnueabi-ar -DCMAKE_RANLIB=$COMPILER_DIR/arm-linux-gnueabi-ranlib -DCMAKE_LINKER=$COMPILER_DIR/arm-linux-gnueabi-ld -DCMAKE_CROSSCOMPILING=True -DLLVM_TARGET_ARCH=ARM -DLLVM_TABLEGEN=$BUILD_PATH/bin/llvm-tblgen -DCLANG_TABLEGEN=$BUILD_PATH/bin/clang-tblgen -DCMAKE_SHARED_LINKER_FLAGS="-static-libgcc" -DLLVM_INCLUDE_TESTS=OFF 2>&1 | tee ../build_profilert.log make -j4 2>&1 | tee ../build_profilert.log make install 2>&1 | tee -a ../build_profilert.log cd ${SRCDIR} mkdir -p $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.asan-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.builtins-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.profile-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.asan-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.asan-i586.a cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.builtins-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.builtins-i586.a cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.profile-i386.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.profile-i586.a cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.asan-x86_64.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.builtins-x86_64.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.profile-x86_64.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $ARM_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.asan-arm.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $ARM_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.builtins-arm.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ cp -r $ARM_INSTALL_PATH/lib/clang/4.0.0/lib/linux/libclang_rt.profile-arm.a $LIB_INSTALL_PATH/lib/clang/4.0.0/lib/linux/ #clean rm -rf $INSTALL_PATH rm -rf $ARM_INSTALL_PATH rm -rf $BUILD_PATH rm -rf $ARM_BUILD_PATH cd $CURDIR