This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Support official CLooG.org versions.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]