summaryrefslogtreecommitdiff
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
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>
-rw-r--r--config/companion_libs.in13
-rw-r--r--config/companion_libs/isl.in19
-rw-r--r--scripts/build/companion_libs/121-isl.sh128
3 files changed, 160 insertions, 0 deletions
diff --git a/config/companion_libs.in b/config/companion_libs.in
index d4996a6..eb0800b 100644
--- a/config/companion_libs.in
+++ b/config/companion_libs.in
@@ -22,6 +22,11 @@ config PPL_NEEDED
select PPL
select COMPLIBS_NEEDED
+config ISL_NEEDED
+ bool
+ select ISL
+ select COMPLIBS_NEEDED
+
config CLOOG_NEEDED
bool
select CLOOG
@@ -54,6 +59,11 @@ config PPL
select GMP
select COMPLIBS
+config ISL
+ bool
+ select GMP
+ select COMPLIBS
+
config CLOOG
bool
select GMP
@@ -82,6 +92,9 @@ endif
if PPL
source "config/companion_libs/ppl.in"
endif
+if ISL
+source "config/companion_libs/isl.in"
+endif
if CLOOG
source "config/companion_libs/cloog.in"
endif
diff --git a/config/companion_libs/isl.in b/config/companion_libs/isl.in
new file mode 100644
index 0000000..51854c8
--- /dev/null
+++ b/config/companion_libs/isl.in
@@ -0,0 +1,19 @@
+# ISL options
+
+choice
+ bool
+ prompt "ISL version"
+# Don't remove next line
+# CT_INSERT_VERSION_BELOW
+
+config ISL_V_0_11_1
+ bool
+ prompt "0.11.1"
+
+endchoice
+
+config ISL_VERSION
+ string
+# Don't remove next line
+# CT_INSERT_VERSION_STRING_BELOW
+ default "0.11.1" if ISL_V_0_11_1
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