mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-24 03:35:38 +03:00
The bootstrap port now sets up needed settings at apk build time instead of at docker build time. Should be less brittle for changes.
88 lines
2.4 KiB
Bash
Executable file
88 lines
2.4 KiB
Bash
Executable file
#!/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
|