summaryrefslogtreecommitdiff
path: root/scripts/build/companion_libs
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@free.fr>2013-05-03 22:08:34 (GMT)
committerYann E. MORIN" <yann.morin.1998@free.fr>2013-05-03 22:08:34 (GMT)
commite4828c01d378448d56cfad19fdb8c29247cecd3c (patch)
tree204159da4ab9962bc849f928143cffd4be27ac0e /scripts/build/companion_libs
parent501204e8d48eeea4d63cb9f95af5ed490c8e99de (diff)
complibs: add ISL
ISL is used by gcc-4.8 onward for GRAPHITE, so is also used as backend for CLooG 0.18.0 onward. Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru> [Dmitry did a preliminray patch to add ISL, which this one is inspired from] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Diffstat (limited to 'scripts/build/companion_libs')
-rw-r--r--scripts/build/companion_libs/121-isl.sh128
1 files changed, 128 insertions, 0 deletions
diff --git a/scripts/build/companion_libs/121-isl.sh b/scripts/build/companion_libs/121-isl.sh
new file mode 100644
index 0000000..1d3c049
--- /dev/null
+++ b/scripts/build/companion_libs/121-isl.sh
@@ -0,0 +1,128 @@
+# This file adds the functions to build the ISL library
+# Copyright 2009 Yann E. MORIN
+# Licensed under the GPL v2. See COPYING in the root of this package
+
+do_isl_get() { :; }
+do_isl_extract() { :; }
+do_isl_for_build() { :; }
+do_isl_for_host() { :; }
+
+# Overide functions depending on configuration
+if [ "${CT_ISL}" = "y" ]; then
+
+# Download ISL
+do_isl_get() {
+ CT_GetFile "isl-${CT_ISL_VERSION}" \
+ ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/
+}
+
+# Extract ISL
+do_isl_extract() {
+ CT_Extract "isl-${CT_ISL_VERSION}"
+ CT_Patch "isl" "${CT_ISL_VERSION}"
+}
+
+# Build ISL for running on build
+# - always build statically
+# - we do not have build-specific CFLAGS
+# - install in build-tools prefix
+do_isl_for_build() {
+ local -a isl_opts
+ local isl_cflags
+ local isl_cxxflags
+
+ case "${CT_TOOLCHAIN_TYPE}" in
+ native|cross) return 0;;
+ esac
+
+ CT_DoStep INFO "Installing ISL for build"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-isl-build-${CT_BUILD}"
+
+ isl_cflags="${CT_CFLAGS_FOR_BUILD}"
+ isl_cxxflags="${CT_CFLAGS_FOR_BUILD}"
+
+ isl_opts+=( "host=${CT_BUILD}" )
+ isl_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
+ isl_opts+=( "cflags=${isl_cflags}" )
+ isl_opts+=( "cxxflags=${isl_cxxflags}" )
+ isl_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" )
+ do_isl_backend "${isl_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+# Build ISL for running on host
+do_isl_for_host() {
+ local -a isl_opts
+ local isl_cflags
+ local isl_cxxflags
+
+ CT_DoStep INFO "Installing ISL for host"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-isl-host-${CT_HOST}"
+
+ isl_cflags="${CT_CFLAGS_FOR_HOST}"
+ isl_cxxflags="${CT_CFLAGS_FOR_HOST}"
+
+ isl_opts+=( "host=${CT_HOST}" )
+ isl_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
+ isl_opts+=( "cflags=${isl_cflags}" )
+ isl_opts+=( "cxxflags=${isl_cxxflags}" )
+ isl_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
+ do_isl_backend "${isl_opts[@]}"
+
+ CT_Popd
+ CT_EndStep
+}
+
+# Build ISL
+# Parameter : description : type : default
+# host : machine to run on : tuple : (none)
+# prefix : prefix to install into : dir : (none)
+# cflags : cflags to use : string : (empty)
+# ldflags : ldflags to use : string : (empty)
+do_isl_backend() {
+ local host
+ local prefix
+ local cflags
+ local cxxflags
+ local ldflags
+ local arg
+
+ for arg in "$@"; do
+ eval "${arg// /\\ }"
+ done
+
+ CT_DoLog EXTRA "Configuring ISL"
+
+ CT_DoExecLog CFG \
+ CFLAGS="${cflags}" \
+ CXXFLAGS="${cxxflags}" \
+ LDFLAGS="${ldflags}" \
+ "${CT_SRC_DIR}/isl-${CT_ISL_VERSION}/configure" \
+ --build=${CT_BUILD} \
+ --host=${host} \
+ --prefix="${prefix}" \
+ --with-libgmp-prefix="${prefix}" \
+ --with-libgmpxx-prefix="${prefix}" \
+ --with-gmp-prefix="${prefix}" \
+ --disable-shared \
+ --enable-static \
+ --with-gmp=system \
+ --with-gmp-prefix="${prefix}" \
+ --with-piplib=no \
+ --with-clang=no
+
+ CT_DoLog EXTRA "Building ISL"
+ CT_DoExecLog ALL make ${JOBSFLAGS}
+
+ if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
+ CT_DoLog EXTRA "Checking ISL"
+ CT_DoExecLog ALL make ${JOBSFLAGS} -s check
+ fi
+
+ CT_DoLog EXTRA "Installing ISL"
+ CT_DoExecLog ALL make install
+}
+
+fi # CT_ISL