summaryrefslogtreecommitdiff
path: root/build-libllvm-ubuntu-64.sh
blob: 2593cf318b7039b997775a18591e4f41cc5323e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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