This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Support official CLooG.org versions.
- From: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- To: Andreas Simbürger <simbuerg at googlemail dot com>
- Cc: gcc-graphite at googlegroups dot com, gcc-patches at gcc dot gnu dot org, sebpop at gmail dot com
- Date: Fri, 10 Sep 2010 06:42:20 -0400
- Subject: Re: [PATCH] Support official CLooG.org versions.
- References: <4C88C926.6030102@fim.uni-passau.de> <1284107187-9883-1-git-send-email-simbuerg@googlemail.com>
On Fri, Sep 10, 2010 at 10:26:27AM +0200, Andreas Simbürger wrote:
> Add support for official CLooG releases.
> CLooG's configuration gets detected within 2 stages:
>
> Stage 1: Detect the installed CLooG version.
> This is done by linking test programs against the various
> CLooG libraries. As CLooG's library sonames depend on the
> used backend, this is sufficient to detect the used backend.
>
> We only detect this backends, in order:
> 1) CLooG-PPL (Legacy): The "old" CLooG.
> 2) CLooG-ISL: The "new" CLooG.
> 3) CLooG-Parma: An alternative backend, to compare it with
> CLooG-ISL.
>
> CLooG-Poly is not detected, as the PolyLib may conflict
> with GCC's license.
>
> Stage 2: Version checks.
> After detecting the right configuration, we finally check
> if the installed version is usable. There are 2 different
> checks: One for CLooG-PPL (Legacy) and one for CLooG-ISL.
>
> * CLooG-ISL:
> As the "new" CLooG provides methods to check for its version at
> both compile and run time, we use this feature. First
> we check for the constants to verify the header's compatibility.
> Finally we verify the compatibility of our headers with
> the library that will get linked with GCC.
> As stated in autoconf's documentation, the run time check
> is not usable when cross-compiling, so we skip this check
> then.
>
> * CLooG-PPL (Legacy):
> This version check provides the same semantics as before.
> As CLooG-PPL (Legacy) provides the same constants as the
> official CLooG, we can use the same test program for the
> compile time check.
I thought it was agreed that we shouldn't allow cloog-ppl < 0.16
to be used to build gcc 4.6 and later in order to avoid the ABI issues
introduced with the ppl 0.11 release...
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00849.html
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg00998.html
http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01033.html
I read the last message as agreeing that in order to solve the issue
of maintaining coherency between the ppl ABI used to build FSF gcc and
cloog that...
1) cloog-ppl would be left incapable of building against ppl >= 0.11.
2) cloog.org would require ppl >= 0.11 to build.
3) when cloog.org support was added to gcc 4.6, the ability to build
against cloog-ppl would be depreciated.
Jack
>
> Tested with CLooG-ISL and CLooG-PPL (Legacy).
> As for now, CLooG-Parma fails to build.
>
> 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
>
> * configure.ac: Support official CLooG.org versions.
> * configure: Regenerate.
> ---
> ChangeLog.graphite | 5 +
> configure | 369 ++++++++++++++++++++++++++++++++++++++++++----------
> configure.ac | 149 ++++++++++++++++++----
> 3 files changed, 433 insertions(+), 90 deletions(-)
>
> diff --git a/ChangeLog.graphite b/ChangeLog.graphite
> index c5edc3a..58e30e3 100644
> --- a/ChangeLog.graphite
> +++ b/ChangeLog.graphite
> @@ -1,3 +1,8 @@
> +2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
> +
> + * configure.ac: Support official CLooG.org versions.
> + * configure: Regenerate.
> +
> 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
>
> * Merge from mainline (160224:163495).
> diff --git a/configure b/configure
> index fc759d7..878b72f 100755
> --- a/configure
> +++ b/configure
> @@ -1816,6 +1816,48 @@ fi
>
> } # ac_fn_c_try_link
>
> +# ac_fn_c_try_run LINENO
> +# ----------------------
> +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
> +# that executables *can* be run.
> +ac_fn_c_try_run ()
> +{
> + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
> + if { { ac_try="$ac_link"
> +case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
> +$as_echo "$ac_try_echo"; } >&5
> + (eval "$ac_link") 2>&5
> + ac_status=$?
> + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
> + { { case "(($ac_try" in
> + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> + *) ac_try_echo=$ac_try;;
> +esac
> +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
> +$as_echo "$ac_try_echo"; } >&5
> + (eval "$ac_try") 2>&5
> + ac_status=$?
> + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> + test $ac_status = 0; }; }; then :
> + ac_retval=0
> +else
> + $as_echo "$as_me: program exited with status $ac_status" >&5
> + $as_echo "$as_me: failed program was:" >&5
> +sed 's/^/| /' conftest.$ac_ext >&5
> +
> + ac_retval=$ac_status
> +fi
> + rm -rf conftest.dSYM conftest_ipa8_conftest.oo
> + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
> + return $ac_retval
> +
> +} # ac_fn_c_try_run
> +
> # ac_fn_c_try_cpp LINENO
> # ----------------------
> # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
> @@ -1940,48 +1982,6 @@ fi
>
> } # ac_fn_c_check_header_mongrel
>
> -# ac_fn_c_try_run LINENO
> -# ----------------------
> -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
> -# that executables *can* be run.
> -ac_fn_c_try_run ()
> -{
> - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
> - if { { ac_try="$ac_link"
> -case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
> -$as_echo "$ac_try_echo"; } >&5
> - (eval "$ac_link") 2>&5
> - ac_status=$?
> - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
> - { { case "(($ac_try" in
> - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
> - *) ac_try_echo=$ac_try;;
> -esac
> -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
> -$as_echo "$ac_try_echo"; } >&5
> - (eval "$ac_try") 2>&5
> - ac_status=$?
> - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> - test $ac_status = 0; }; }; then :
> - ac_retval=0
> -else
> - $as_echo "$as_me: program exited with status $ac_status" >&5
> - $as_echo "$as_me: failed program was:" >&5
> -sed 's/^/| /' conftest.$ac_ext >&5
> -
> - ac_retval=$ac_status
> -fi
> - rm -rf conftest.dSYM conftest_ipa8_conftest.oo
> - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
> - return $ac_retval
> -
> -} # ac_fn_c_try_run
> -
> # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
> # -------------------------------------------------------
> # Tests whether HEADER exists and can be compiled using the include files in
> @@ -5885,8 +5885,6 @@ fi
>
>
> # Check for CLOOG
> -clooglibs=" -lcloog "
> -clooginc=" -DCLOOG_PPL_BACKEND "
>
>
> # Check whether --with-cloog was given.
> @@ -5919,19 +5917,19 @@ case $with_cloog in
> "" | yes)
> ;;
> *)
> - clooglibs="-L$with_cloog/lib -lcloog"
> - clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
> + clooglibs="-L$with_cloog/lib"
> + clooginc="-I$with_cloog/include"
> ;;
> esac
> if test "x$with_cloog_include" != x; then
> - clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
> + clooginc="-I$with_cloog_include"
> fi
> if test "x$with_cloog_lib" != x; then
> - clooglibs="-L$with_cloog_lib -lcloog"
> + clooglibs="-L$with_cloog_lib"
> fi
> if test "x$with_cloog$with_cloog_include$with_cloog_lib" = x && test -d ${srcdir}/cloog; then
> - clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' -lcloog '
> - clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -DCLOOG_PPL_BACKEND '
> + clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
> + clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
> enable_cloog_version_check=no
> fi
>
> @@ -5943,56 +5941,293 @@ else
> fi
>
>
> -if test "x$with_cloog" != "xno" -a "${ENABLE_CLOOG_CHECK}" = "yes"; then
> - saved_CFLAGS="$CFLAGS"
> - CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.15.5 (or later revision) of CLooG" >&5
> -$as_echo_n "checking for version 0.15.5 (or later revision) of CLooG... " >&6; }
> +if test "x$with_cloog" != "xno"; then
> + # CLooG configure test programs.
> +
> +
> +
> +
> + saved_cflags=$CFLAGS
> + saved_libs=$LIBS
> + saved_ldflags=$LDFLAGS
> +
> + # Only fail if the user explicitly selected CLooG.
> + cloog_allow_fail="no"
> + if test "x${with_cloog}${with_cloog_include}${with_cloog_lib}" != "x" ; then
> + cloog_allow_fail="yes"
> + fi
> +
> + # Stage 1: Detect the available CLooG+backend combination.
> + clooglegacyinc="-DCLOOG_PPL_BACKEND"
> + cloogorginc="-DCLOOG_INT_GMP -DCLOOG_ORG"
> + CFLAGS="${CFLAGS} ${gmpinc} ${pplinc} ${clooginc} ${cloogorginc}"
> + LDFLAGS="${LDFLAGS} ${clooglibs}"
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for installed CLooG type" >&5
> +$as_echo_n "checking for installed CLooG type... " >&6; }
> +
> + cloog_inc=$clooglegacyinc
> + cloog_org="no"
> + LIBS="-lcloog"
> cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h. */
> -#include "cloog/cloog.h"
> +
> +
> + #include <cloog/cloog.h>
> +
> int
> main ()
> {
>
> - #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 || CLOOG_VERSION_REVISION < 5
> - choke me
> - #endif
> + cloog_version ()
> +
> +
> + ;
> + return 0;
> +}
> +
> +_ACEOF
> +if ac_fn_c_try_link "$LINENO"; then :
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CLooG-PPL (Legacy)" >&5
> +$as_echo "CLooG-PPL (Legacy)" >&6; }
> +else
> +
> + cloog_inc=$cloogorginc
> + cloog_org="yes"
> + LIBS="-lcloog-isl -lisl"
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h. */
> +
> +
> + #include <cloog/cloog.h>
> +
> +int
> +main ()
> +{
> +
> + cloog_version ()
> +
> +
> + ;
> + return 0;
> +}
> +
> +_ACEOF
> +if ac_fn_c_try_link "$LINENO"; then :
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CLooG-ISL" >&5
> +$as_echo "CLooG-ISL" >&6; }
> +else
> +
> + LIBS="-lcloog-ppl"
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h. */
> +
> +
> + #include <cloog/cloog.h>
> +
> +int
> +main ()
> +{
> +
> + cloog_version ()
> +
>
> ;
> return 0;
> }
> +
> +_ACEOF
> +if ac_fn_c_try_link "$LINENO"; then :
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: CLooG-PPL" >&5
> +$as_echo "CLooG-PPL" >&6; }
> +else
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }; cloog_inc= ; cloog_org= ; LIBS= ;
> +
> +fi
> +rm -f core conftest.err conftest.$ac_objext \
> + conftest$ac_exeext conftest.$ac_ext
> +
> +fi
> +rm -f core conftest.err conftest.$ac_objext \
> + conftest$ac_exeext conftest.$ac_ext
> +
> +fi
> +rm -f core conftest.err conftest.$ac_objext \
> + conftest$ac_exeext conftest.$ac_ext
> +
> + # Setup required flags for CLooG.
> + if test "x${cloog_inc}${cloog_org}" != "x" ; then
> + clooglibs="${clooglibs} ${LIBS}"
> + clooginc="${clooginc} ${cloog_inc}"
> + else
> + clooglibs= ; clooginc= ;
> + fi
> +
> + CFLAGS=$saved_cflags
> + LIBS=$saved_libs
> + LDFLAGS=$saved_ldflags
> +
> + # Stage 2: Version check the found CLooG.
> + if test "${ENABLE_CLOOG_CHECK}" = "yes" \
> + && test "${cloog_org}" = "yes" ; then
> + saved_CFLAGS="$CFLAGS"
> + saved_LDFLAGS="$LDFLAGS"
> + CFLAGS="${CFLAGS} ${gmpinc} ${pplinc} ${clooginc} "
> + LDFLAGS="${LDFLAGS} ${clooglibs} "
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.14.0 of CLooG (compile and run time)" >&5
> +$as_echo_n "checking for version 0.14.0 of CLooG (compile and run time)... " >&6; }
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h. */
> +
> +
> + #include <cloog/cloog.h>
> +
> +int
> +main ()
> +{
> +
> + #if CLOOG_VERSION_MAJOR != 0
> + || CLOOG_VERSION_MINOR != 14
> + || CLOOG_VERSION_REVISION < 0
> + choke me
> + #endif
> +
> +
> + ;
> + return 0;
> +}
> +
> _ACEOF
> if ac_fn_c_try_compile "$LINENO"; then :
> +
> + if test "$cross_compiling" = yes; then :
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (cross-compile)" >&5
> +$as_echo "yes (cross-compile)" >&6; }
> +else
> cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h. */
> -#include "cloog/cloog.h"
> +
> +
> + #include <stdlib.h>
> + #include <cloog/cloog.h>
> +
> int
> main ()
> {
>
> - #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 || CLOOG_VERSION_REVISION < 9
> - choke me
> - #endif
> + if ((cloog_version_major () != CLOOG_VERSION_MAJOR)
> + && (cloog_version_minor () != CLOOG_VERSION_MINOR)
> + && (cloog_version_revision () != CLOOG_VERSION_REVISION))
> + {
> + exit (1);
> + }
> +
>
> ;
> return 0;
> }
> +
> _ACEOF
> -if ac_fn_c_try_compile "$LINENO"; then :
> +if ac_fn_c_try_run "$LINENO"; then :
> { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
> $as_echo "yes" >&6; }
> else
> - { $as_echo "$as_me:${as_lineno-$LINENO}: result: buggy but acceptable" >&5
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed at run time" >&5
> +$as_echo "failed at run time" >&6; }; clooglibs= ; clooginc=
> +fi
> +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
> + conftest.$ac_objext conftest.beam conftest.$ac_ext
> +fi
> +
> +else
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed at compile time" >&5
> +$as_echo "failed at compile time" >&6; }; clooglibs= ; clooginc=
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +
> + CFLAGS=${saved_CFLAGS}
> + LDFLAGS=${saved_LDFLAGS}
> + fi
> +
> + # Version check for CLooG-PPL (Legacy).
> + if test "${ENABLE_CLOOG_CHECK}" = "yes" \
> + && test "${cloog_org}" = "no" ; then
> + saved_CFLAGS="$CFLAGS"
> + CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.15.5 (or later revision) of CLooG" >&5
> +$as_echo_n "checking for version 0.15.5 (or later revision) of CLooG... " >&6; }
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h. */
> +
> +
> + #include <cloog/cloog.h>
> +
> +int
> +main ()
> +{
> +
> + #if CLOOG_VERSION_MAJOR != 0
> + || CLOOG_VERSION_MINOR != 15
> + || CLOOG_VERSION_REVISION < 5
> + choke me
> + #endif
> +
> +
> + ;
> + return 0;
> +}
> +
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h. */
> +
> +
> + #include <cloog/cloog.h>
> +
> +int
> +main ()
> +{
> +
> + #if CLOOG_VERSION_MAJOR != 0
> + || CLOOG_VERSION_MINOR != 15
> + || CLOOG_VERSION_REVISION < 9
> + choke me
> + #endif
> +
> +
> + ;
> + return 0;
> +}
> +
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
> +$as_echo "yes" >&6; }
> +else
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: buggy but acceptable" >&5
> $as_echo "buggy but acceptable" >&6; }
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> else
> - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> $as_echo "no" >&6; }; clooglibs= ; clooginc=
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> - CFLAGS="$saved_CFLAGS"
> + CFLAGS="$saved_CFLAGS"
> + fi
> +
> + if test "${cloog_allow_fail}" = "yes" \
> + && test "x${clooglibs}${clooginc}" = "x"; then
> + as_fn_error "Unable to find a usable CLooG. See config.log for details." "$LINENO" 5
> + fi
> fi
>
> # Flags needed for CLOOG
> diff --git a/configure.ac b/configure.ac
> index 3d969aa..da67bbd 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1580,8 +1580,6 @@ AC_SUBST(pplinc)
>
>
> # Check for CLOOG
> -clooglibs=" -lcloog "
> -clooginc=" -DCLOOG_PPL_BACKEND "
>
> AC_ARG_WITH(cloog, [ --with-cloog=PATH Specify prefix directory for the installed CLooG-PPL package
> Equivalent to --with-cloog-include=PATH/include
> @@ -1601,19 +1599,19 @@ case $with_cloog in
> "" | yes)
> ;;
> *)
> - clooglibs="-L$with_cloog/lib -lcloog"
> - clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
> + clooglibs="-L$with_cloog/lib"
> + clooginc="-I$with_cloog/include"
> ;;
> esac
> if test "x$with_cloog_include" != x; then
> - clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
> + clooginc="-I$with_cloog_include"
> fi
> if test "x$with_cloog_lib" != x; then
> - clooglibs="-L$with_cloog_lib -lcloog"
> + clooglibs="-L$with_cloog_lib"
> fi
> if test "x$with_cloog$with_cloog_include$with_cloog_lib" = x && test -d ${srcdir}/cloog; then
> - clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' -lcloog '
> - clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -DCLOOG_PPL_BACKEND '
> + clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
> + clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
> enable_cloog_version_check=no
> fi
>
> @@ -1622,21 +1620,126 @@ AC_ARG_ENABLE(cloog-version-check,
> ENABLE_CLOOG_CHECK=$enableval,
> ENABLE_CLOOG_CHECK=yes)
>
> -if test "x$with_cloog" != "xno" -a "${ENABLE_CLOOG_CHECK}" = "yes"; then
> - saved_CFLAGS="$CFLAGS"
> - CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
> - AC_MSG_CHECKING([for version 0.15.5 (or later revision) of CLooG])
> - AC_TRY_COMPILE([#include "cloog/cloog.h"],[
> - #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 || CLOOG_VERSION_REVISION < 5
> - choke me
> - #endif
> - ], [AC_TRY_COMPILE([#include "cloog/cloog.h"],[
> - #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15 || CLOOG_VERSION_REVISION < 9
> - choke me
> - #endif
> - ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
> - [AC_MSG_RESULT([no]); clooglibs= ; clooginc= ])
> - CFLAGS="$saved_CFLAGS"
> +if test "x$with_cloog" != "xno"; then
> + # CLooG configure test programs.
> + m4_define([CLOOG_BACKEND_PROG],[
> + AC_LANG_PROGRAM([
> + #include <cloog/cloog.h>
> + ],[
> + cloog_version ()
> + ]
> + )]
> + )
> + m4_define([CLOOG_CHECK_CT_PROG],[
> + AC_LANG_PROGRAM([
> + #include <cloog/cloog.h>
> + ], [
> + #if CLOOG_VERSION_MAJOR != $1
> + || CLOOG_VERSION_MINOR != $2
> + || CLOOG_VERSION_REVISION < $3
> + choke me
> + #endif
> + ]
> + )]
> + )
> + m4_define([CLOOG_CHECK_RT_PROG],[
> + AC_LANG_PROGRAM([
> + #include <stdlib.h>
> + #include <cloog/cloog.h>
> + ],[
> + if ((cloog_version_major () != CLOOG_VERSION_MAJOR)
> + && (cloog_version_minor () != CLOOG_VERSION_MINOR)
> + && (cloog_version_revision () != CLOOG_VERSION_REVISION))
> + {
> + exit (1);
> + }
> + ]
> + )]
> + )
> +
> + saved_cflags=$CFLAGS
> + saved_libs=$LIBS
> + saved_ldflags=$LDFLAGS
> +
> + # Only fail if the user explicitly selected CLooG.
> + cloog_allow_fail="no"
> + if test "x${with_cloog}${with_cloog_include}${with_cloog_lib}" != "x" ; then
> + cloog_allow_fail="yes"
> + fi
> +
> + # Stage 1: Detect the available CLooG+backend combination.
> + clooglegacyinc="-DCLOOG_PPL_BACKEND"
> + cloogorginc="-DCLOOG_INT_GMP -DCLOOG_ORG"
> + CFLAGS="${CFLAGS} ${gmpinc} ${pplinc} ${clooginc} ${cloogorginc}"
> + LDFLAGS="${LDFLAGS} ${clooglibs}"
> +
> + AC_MSG_CHECKING([for installed CLooG type])
> +
> + cloog_inc=$clooglegacyinc
> + cloog_org="no"
> + LIBS="-lcloog"
> + AC_LINK_IFELSE([CLOOG_BACKEND_PROG], [AC_MSG_RESULT([CLooG-PPL (Legacy)])],[
> + cloog_inc=$cloogorginc
> + cloog_org="yes"
> + LIBS="-lcloog-isl -lisl"
> + AC_LINK_IFELSE([CLOOG_BACKEND_PROG], [AC_MSG_RESULT([CLooG-ISL])],[
> + LIBS="-lcloog-ppl"
> + AC_LINK_IFELSE([CLOOG_BACKEND_PROG], [AC_MSG_RESULT([CLooG-PPL])],[
> + AC_MSG_RESULT([no]); cloog_inc= ; cloog_org= ; LIBS= ;
> + ])
> + ])
> + ])
> +
> + # Setup required flags for CLooG.
> + if test "x${cloog_inc}${cloog_org}" != "x" ; then
> + clooglibs="${clooglibs} ${LIBS}"
> + clooginc="${clooginc} ${cloog_inc}"
> + else
> + clooglibs= ; clooginc= ;
> + fi
> +
> + CFLAGS=$saved_cflags
> + LIBS=$saved_libs
> + LDFLAGS=$saved_ldflags
> +
> + # Stage 2: Version check the found CLooG.
> + if test "${ENABLE_CLOOG_CHECK}" = "yes" \
> + && test "${cloog_org}" = "yes" ; then
> + saved_CFLAGS="$CFLAGS"
> + saved_LDFLAGS="$LDFLAGS"
> + CFLAGS="${CFLAGS} ${gmpinc} ${pplinc} ${clooginc} "
> + LDFLAGS="${LDFLAGS} ${clooglibs} "
> +
> + AC_MSG_CHECKING([for version 0.14.0 of CLooG (compile and run time)])
> + AC_COMPILE_IFELSE([CLOOG_CHECK_CT_PROG(0,14,0)],[
> + AC_RUN_IFELSE([CLOOG_CHECK_RT_PROG],
> + [AC_MSG_RESULT([yes])],
> + [AC_MSG_RESULT([failed at run time]); clooglibs= ; clooginc= ],
> + [AC_MSG_RESULT([yes (cross-compile)])])],
> + [AC_MSG_RESULT([failed at compile time]); clooglibs= ; clooginc= ])
> +
> + CFLAGS=${saved_CFLAGS}
> + LDFLAGS=${saved_LDFLAGS}
> + fi
> +
> + # Version check for CLooG-PPL (Legacy).
> + if test "${ENABLE_CLOOG_CHECK}" = "yes" \
> + && test "${cloog_org}" = "no" ; then
> + saved_CFLAGS="$CFLAGS"
> + CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
> + AC_MSG_CHECKING([for version 0.15.5 (or later revision) of CLooG])
> + AC_COMPILE_IFELSE([CLOOG_CHECK_CT_PROG(0,15,5)],[
> + AC_COMPILE_IFELSE([CLOOG_CHECK_CT_PROG(0,15,9)],[
> + AC_MSG_RESULT([yes])],[
> + AC_MSG_RESULT([buggy but acceptable])])],[
> + AC_MSG_RESULT([no]); clooglibs= ; clooginc= ])
> + CFLAGS="$saved_CFLAGS"
> + fi
> +
> + if test "${cloog_allow_fail}" = "yes" \
> + && test "x${clooglibs}${clooginc}" = "x"; then
> + AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])
> + fi
> fi
>
> # Flags needed for CLOOG
> --
> 1.7.2.2