From e1675bac640e9491b23d2fd95f46af17b160013b Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Sun, 5 May 2013 00:01:05 +0200 Subject: complibs/cloog: add support for the ISL backend CLooG 0.18+ will use ISL instead of PPL, so we have to configure adequately depending of which backend is in use. The Kconfig entries will decide for us which is selected, so we can rely on either PPL xor ISL to be selected, not both. Reported-by: "Plotnikov Dmitry" [Dmitry did a preliminray patch to add ISL support, which this patch is inspired from] Signed-off-by: "Yann E. MORIN" diff --git a/config/companion_libs.in b/config/companion_libs.in index eb0800b..c48fc82 100644 --- a/config/companion_libs.in +++ b/config/companion_libs.in @@ -67,7 +67,6 @@ config ISL config CLOOG bool select GMP - select PPL select COMPLIBS config MPC diff --git a/config/companion_libs/cloog.in b/config/companion_libs/cloog.in index d2e6b0a..1f58731 100644 --- a/config/companion_libs/cloog.in +++ b/config/companion_libs/cloog.in @@ -2,10 +2,22 @@ choice bool - prompt "CLooG/ppl version" + prompt "CLooG version" + +if ISL + # Don't remove next line # CT_INSERT_VERSION_BELOW +config CLOOG_V_0_18_0 + bool + prompt "0.18.0" + select CLOOG_0_18_or_later + +endif # ISL + +if PPL + config CLOOG_V_0_15_11 bool prompt "0.15.11" @@ -32,12 +44,15 @@ config CLOOG_V_0_15_6 bool prompt "0.15.6" +endif # PPL + endchoice config CLOOG_VERSION string # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW + default "0.18.0" if CLOOG_V_0_18_0 default "0.15.11" if CLOOG_V_0_15_11 default "0.15.10" if CLOOG_V_0_15_10 default "0.15.9" if CLOOG_V_0_15_9 @@ -45,6 +60,9 @@ config CLOOG_VERSION default "0.15.7" if CLOOG_V_0_15_7 default "0.15.6" if CLOOG_V_0_15_6 +config CLOOG_0_18_or_later + bool + config CLOOG_0_15_1x bool select CLOOG_NEEDS_AUTORECONF diff --git a/scripts/build/companion_libs/130-cloog.sh b/scripts/build/companion_libs/130-cloog.sh index 06240e5..fe5ba13 100644 --- a/scripts/build/companion_libs/130-cloog.sh +++ b/scripts/build/companion_libs/130-cloog.sh @@ -7,12 +7,24 @@ do_cloog_extract() { :; } do_cloog_for_build() { :; } do_cloog_for_host() { :; } +cloog_basename() { + printf "cloog" + if [ "${CT_PPL}" = "y" ]; then + printf -- "-ppl" + fi +} +cloog_basename_version() { + cloog_basename + printf -- "-${CT_CLOOG_VERSION}" +} + # Overide functions depending on configuration if [ "${CT_CLOOG}" = "y" ]; then # Download CLooG do_cloog_get() { - CT_GetFile "cloog-ppl-${CT_CLOOG_VERSION}" \ + CT_GetFile "$(cloog_basename_version)" \ + http://www.bastoul.net/cloog/pages/download \ ftp://gcc.gnu.org/pub/gcc/infrastructure } @@ -24,20 +36,20 @@ do_cloog_extract() { # while versions 0.15.4 onward do have the version in the dirname. # But, because the infrastructure properly creates the extracted # directories (with tar's --strip-components), we can live safely... - CT_Extract "cloog-ppl-${CT_CLOOG_VERSION}" - CT_Patch "cloog-ppl" "${CT_CLOOG_VERSION}" + CT_Extract "$(cloog_basename_version)" + CT_Patch "$(cloog_basename)" "${CT_CLOOG_VERSION}" # Help the autostuff in case it thinks there are things to regenerate... - CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}/m4" + CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/$(cloog_basename_version)/m4" if [ "${CT_CLOOG_NEEDS_AUTORECONF}" = "y" ]; then - CT_Pushd "${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}" + CT_Pushd "${CT_SRC_DIR}/$(cloog_basename_version)" CT_DoExecLog CFG ./autogen.sh CT_Popd fi } -# Build CLooG/PPL for running on build +# Build CLooG for running on build # - always build statically # - we do not have build-specific CFLAGS # - install in build-tools prefix @@ -48,8 +60,8 @@ do_cloog_for_build() { native|cross) return 0;; esac - CT_DoStep INFO "Installing CLooG/PPL for build" - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-build-${CT_BUILD}" + CT_DoStep INFO "Installing CLooG for build" + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-build-${CT_BUILD}" cloog_opts+=( "host=${CT_BUILD}" ) cloog_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" ) @@ -61,12 +73,12 @@ do_cloog_for_build() { CT_EndStep } -# Build CLooG/PPL for running on host +# Build CLooG for running on host do_cloog_for_host() { local -a cloog_opts - CT_DoStep INFO "Installing CLooG/PPL for host" - CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-host-${CT_HOST}" + CT_DoStep INFO "Installing CLooG for host" + CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-host-${CT_HOST}" cloog_opts+=( "host=${CT_HOST}" ) cloog_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" ) @@ -78,7 +90,7 @@ do_cloog_for_host() { CT_EndStep } -# Build ClooG/PPL +# Build CLooG # Parameter : description : type : default # host : machine to run on : tuple : (none) # prefix : prefix to install into : dir : (none) @@ -89,14 +101,30 @@ do_cloog_backend() { local prefix local cflags local ldflags - local cloog_src_dir="${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}" + local cloog_src_dir="${CT_SRC_DIR}/$(cloog_basename_version)" local arg + local -a cloog_opts + local -a cloog_targets + local -a cloog_install_targets for arg in "$@"; do eval "${arg// /\\ }" done - CT_DoLog EXTRA "Configuring CLooG/ppl" + if [ "${CT_CLOOG_0_18_or_later}" = y ]; then + cloog_opts+=( --with-gmp=system --with-gmp-prefix="${prefix}" ) + cloog_opts+=( --with-isl=system --with-isl-prefix="${prefix}" ) + cloog_opts+=( --without-osl ) + cloog_targets=( all ) + cloog_install_targets=( install ) + else + cloog_opts+=( --with-gmp="${prefix}" ) + cloog_opts+=( --with-ppl="${prefix}" ) + cloog_targets=( libcloog.la ) + cloog_install_targets=( install-libLTLIBRARIES install-pkgincludeHEADERS ) + fi + + CT_DoLog EXTRA "Configuring CLooG" CT_DoExecLog CFG \ CFLAGS="${cflags}" \ @@ -106,23 +134,22 @@ do_cloog_backend() { --build=${CT_BUILD} \ --host=${host} \ --prefix="${prefix}" \ - --with-gmp="${prefix}" \ - --with-ppl="${prefix}" \ --with-bits=gmp \ --with-host-libstdcxx='-lstdc++' \ --disable-shared \ - --enable-static + --enable-static \ + "${cloog_opts[@]}" - CT_DoLog EXTRA "Building CLooG/ppl" - CT_DoExecLog ALL make ${JOBSFLAGS} libcloog.la + CT_DoLog EXTRA "Building CLooG" + CT_DoExecLog ALL make ${JOBSFLAGS} "${cloog_targets[@]}" if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then - CT_DoLog EXTRA "Checking CLooG/ppl" + CT_DoLog EXTRA "Checking CLooG" CT_DoExecLog ALL make ${JOBSFLAGS} -s check fi - CT_DoLog EXTRA "Installing CLooG/ppl" - CT_DoExecLog ALL make install-libLTLIBRARIES install-pkgincludeHEADERS + CT_DoLog EXTRA "Installing CLooG" + CT_DoExecLog ALL make "${cloog_install_targets[@]}" } fi # CT_CLOOG -- cgit v0.10.2-6-g49f6