# HG changeset patch # User "Yann E. MORIN" # Date 1367618914 -7200 # Node ID bfad02f03c75f9401bc87e3d7876237107e613e8 # Parent 4c63ce24fccd4dd6825c57da3df477ef5cbaacfd 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" [Dmitry did a preliminray patch to add ISL, which this one is inspired from] Signed-off-by: "Yann E. MORIN" diff -r 4c63ce24fccd -r bfad02f03c75 config/companion_libs.in --- a/config/companion_libs.in Mon May 13 15:00:56 2013 +0800 +++ b/config/companion_libs.in Sat May 04 00:08:34 2013 +0200 @@ -22,6 +22,11 @@ select PPL select COMPLIBS_NEEDED +config ISL_NEEDED + bool + select ISL + select COMPLIBS_NEEDED + config CLOOG_NEEDED bool select CLOOG @@ -54,6 +59,11 @@ select GMP select COMPLIBS +config ISL + bool + select GMP + select COMPLIBS + config CLOOG bool select GMP @@ -82,6 +92,9 @@ 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 -r 4c63ce24fccd -r bfad02f03c75 config/companion_libs/isl.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/companion_libs/isl.in Sat May 04 00:08:34 2013 +0200 @@ -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 -r 4c63ce24fccd -r bfad02f03c75 scripts/build/companion_libs/121-isl.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/build/companion_libs/121-isl.sh Sat May 04 00:08:34 2013 +0200 @@ -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