2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
[official-gcc.git] / config / cloog.m4
blob670cd652fcb2470eb4b3ec899774fcacde322c63
1 # This file is part of GCC.
3 # GCC is free software; you can redistribute it and/or modify it under
4 # the terms of the GNU General Public License as published by the Free
5 # Software Foundation; either version 3, or (at your option) any later
6 # version.
8 # GCC is distributed in the hope that it will be useful, but WITHOUT
9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11 # for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with GCC; see the file COPYING3.  If not see
15 # <http://www.gnu.org/licenses/>.
17 # Contributed by Andreas Simbuerger <simbuerg@fim.uni-passau.de>
19 # CLOOG_INIT_FLAGS ()
20 # -------------------------
21 # Provide configure switches for CLooG support.
22 # Initialize clooglibs/clooginc according to the user input.
23 AC_DEFUN([CLOOG_INIT_FLAGS],
25   AC_ARG_WITH([cloog-include],
26     [AS_HELP_STRING(
27       [--with-cloog-include=PATH],
28       [Specify directory for installed CLooG include files])])
29   AC_ARG_WITH([cloog-lib],
30     [AS_HELP_STRING(
31       [--with-cloog-lib=PATH],
32       [Specify the directory for the installed CLooG library])])
34   AC_ARG_ENABLE(cloog-version-check,
35     [AS_HELP_STRING(
36       [--disable-cloog-version-check],
37       [disable check for CLooG version])],
38     ENABLE_CLOOG_CHECK=$enableval,
39     ENABLE_CLOOG_CHECK=yes)
40   
41   # Initialize clooglibs and clooginc.
42   case $with_cloog in
43     no)
44       clooglibs=
45       clooginc=
46       ;;
47     "" | yes)
48       ;;
49     *)
50       clooglibs="-L$with_cloog/lib"
51       clooginc="-I$with_cloog/include"
52       ;;
53   esac
54   if test "x${with_cloog_include}" != x ; then
55     clooginc="-I$with_cloog_include"
56   fi
57   if test "x${with_cloog_lib}" != x; then
58     clooglibs="-L$with_cloog_lib"
59   fi
60   dnl If no --with-cloog flag was specified and there is in-tree CLooG
61   dnl source, set up flags to use that and skip any version tests
62   dnl as we cannot run them reliably before building CLooG
63   if test "x${clooginc}" = x && test "x${clooglibs}" = x \
64      && test -d ${srcdir}/cloog; then
65      clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
66      clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -I'${srcdir}'/cloog/include '
67     ENABLE_CLOOG_CHECK=no
68     AC_MSG_WARN([using in-tree CLooG, disabling version check])
69   fi
71   clooginc="-DCLOOG_INT_GMP ${clooginc}"
72   clooglibs="${clooglibs} -lcloog-isl ${isllibs} -lisl"
76 # CLOOG_REQUESTED (ACTION-IF-REQUESTED, ACTION-IF-NOT)
77 # ----------------------------------------------------
78 # Provide actions for failed CLooG detection.
79 AC_DEFUN([CLOOG_REQUESTED],
81   AC_REQUIRE([CLOOG_INIT_FLAGS])
83   if test "x${with_cloog}" = xno; then
84     $2
85   elif test "x${with_cloog}" != x \
86     || test "x${with_cloog_include}" != x \
87     || test "x${with_cloog_lib}" != x ; then
88     $1
89   else
90     $2
91   fi
95 # _CLOOG_CHECK_CT_PROG(MAJOR, MINOR, REVISION)
96 # --------------------------------------------
97 # Helper for verifying CLooG's compile time version.
98 m4_define([_CLOOG_CHECK_CT_PROG],[AC_LANG_PROGRAM(
99   [#include "cloog/version.h"],
100   [#if CLOOG_VERSION_MAJOR != $1 \
101     || CLOOG_VERSION_MINOR != $2 \
102     || CLOOG_VERSION_REVISION < $3
103     choke me
104    #endif])])
106 # CLOOG_CHECK_VERSION CLOOG_CHECK_VERSION (MAJOR, MINOR, REVISION)
107 # ----------------------------------------------------------------
108 # Test the found CLooG to be exact of version MAJOR.MINOR and at least
109 # REVISION.
110 AC_DEFUN([CLOOG_CHECK_VERSION],
112   AC_REQUIRE([CLOOG_INIT_FLAGS])
114   if test "${ENABLE_CLOOG_CHECK}" = yes ; then
115     _cloog_saved_CFLAGS=$CFLAGS
116     _cloog_saved_LDFLAGS=$LDFLAGS
118     CFLAGS="${_cloog_saved_CFLAGS} ${clooginc} ${islinc} ${gmpinc}"
119     LDFLAGS="${_cloog_saved_LDFLAGS} ${clooglibs} ${isllibs} ${gmplib}"
121     AC_MSG_CHECKING([for version $1.$2.$3 of CLooG])
122     AC_COMPILE_IFELSE([_CLOOG_CHECK_CT_PROG($1,$2,$3)],
123         [gcc_cv_cloog=yes],
124         [gcc_cv_cloog=no])
125     AC_MSG_RESULT([$gcc_cv_cloog])
127     CFLAGS=$_cloog_saved_CFLAGS
128     LDFLAGS=$_cloog_saved_LDFLAGS
129   fi
133 # CLOOG_IF_FAILED (ACTION-IF-FAILED)
134 # ----------------------------------
135 # Executes ACTION-IF-FAILED, if GRAPHITE was requested and
136 # the checks failed.
137 AC_DEFUN([CLOOG_IF_FAILED],
139   CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
140   
141   if test "${gcc_cv_cloog}" = no ; then
142     clooglibs=
143     clooginc=
144   fi
146   if test "${graphite_requested}" = yes \
147     && test "x${clooglibs}" = x \
148     && test "x${clooginc}" = x ; then
149     $1
150   fi