aboutsummaryrefslogtreecommitdiffstats
path: root/testing/ghc-bootstrap/llvm-3.7.1.sh
diff options
context:
space:
mode:
Diffstat (limited to 'testing/ghc-bootstrap/llvm-3.7.1.sh')
-rwxr-xr-xtesting/ghc-bootstrap/llvm-3.7.1.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/testing/ghc-bootstrap/llvm-3.7.1.sh b/testing/ghc-bootstrap/llvm-3.7.1.sh
new file mode 100755
index 0000000000..49e44dfc20
--- /dev/null
+++ b/testing/ghc-bootstrap/llvm-3.7.1.sh
@@ -0,0 +1,88 @@
+#!/usr/bin/env sh
+#-*-mode: Shell-script; coding: utf-8;-*-
+export script=$(basename "$0")
+export dir=$(cd "$(dirname "$0")"; pwd)
+export iam=${dir}/${script}
+llvm_major=3.7
+llvm_version=${llvm_major}.1
+llvm_srcdir="/tmp/llvm-${llvm_version}.src"
+suffix="-${llvm_major}"
+llvm_builddir=/tmp/build
+polly_orig_srcdir="/tmp/polly-$llvm_version.src"
+
+cd "$llvm_srcdir"
+
+_cmake_flags="\
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_VERBOSE_MAKEFILE=NO \
+ -DLLVM_BINUTILS_INCDIR=/usr/include \
+ -DLLVM_ENABLE_ASSERTIONS=NO \
+ -DLLVM_ENABLE_LIBCXX=NO \
+ -DLLVM_ENABLE_PIC=YES \
+ -DLLVM_ENABLE_ZLIB=YES \
+ -DLLVM_ENABLE_RTTI=YES \
+ -DLLVM_BUILD_EXAMPLES=NO \
+ -DLLVM_INCLUDE_EXAMPLES=NO \
+ -DLIBXML2_INCLUDE_DIR=/usr/include/libxml2 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_TARGETS_TO_BUILD='all' \
+ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=NO \
+ -DBUILD_SHARED_LIBS=NO \
+ -DLLVM_BUILD_DOCS=NO \
+ -DLLVM_BUILD_TESTS=NO \
+ -DLLVM_ENABLE_CXX1Y=NO \
+ -DLLVM_ENABLE_FFI=YES \
+ -DLLVM_ENABLE_SPHINX=NO \
+ -DLLVM_ENABLE_TERMINFO=NO \
+ -DLLVM_ENABLE_CURSES=NO \
+ -DWITH_POLLY=YES \
+ -DLLVM_INCLUDE_EXAMPLES=NO \
+ -DLLVM_INCLUDE_TESTS=NO \
+ "
+srcdir_polly="$llvm_srcdir"/tools/polly
+mv /tmp/polly-$llvm_version.src "$srcdir_polly" || return 1
+
+(
+ OCFLAGS="${CFLAGS}"
+ OCXXFLAGS="${CXXFLAGS}"
+ unset CFLAGS
+ unset CXXFLAGS
+
+ test -z "${OCFLAGS}" && OCFLAGS="-O3"
+ test -z "${OCXXFLAGS}" && OCXXFLAGS="-O3"
+
+ cflags="${OCFLAGS} -DNDEBUG -I$srcdir/tmp/include"
+ cxxflags="${OCXXFLAGS} -DNDEBUG -fno-devirtualize"
+
+ export CC=gcc
+ export CXX=g++
+
+ ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')"
+
+ cflags="${OCFLAGS} -DNDEBUG"
+ cxxflags="${OCXXFLAGS} -DNDEBUG"
+
+ mkdir -p "${llvm_builddir}"
+ cd "${llvm_builddir}"
+ cmake -G "Unix Makefiles" -Wno-dev ${_cmake_final_flags} \
+ -DCMAKE_C_COMPILER="${CC}" \
+ -DCMAKE_CXX_COMPILER="${CXX}" \
+ -DCMAKE_C_FLAGS_RELEASE="${cflags}" \
+ -DCMAKE_CXX_FLAGS_RELEASE="${cxxflags}" \
+ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS} -L$srcdir/tmp/lib" \
+ -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
+ -DFFI_INCLUDE_DIR="$ffi_include_dir" \
+ -DCMAKE_PREFIX_PATH="$srcdir/tmp" \
+ "${llvm_srcdir}" || return 1
+
+ (
+ export LD_LIBRARY_PATH="$srcdir/tmp/lib:$LD_LIBRARY_PATH"
+ make -j$(grep -c processor /proc/cpuinfo) llvm-tblgen || return 1
+ make -j$(grep -c processor /proc/cpuinfo) || return 1
+ ) || return 1
+ export CFLAGS="${OCFLAGS}"
+ export CXXFLAGS="${OCXXFLAGS}"
+
+ # install portion
+ make -j1 install || return 1
+) || return 1