Rename CloogMatrix to Matrix in polylib backend.
[cloog/uuh.git] / configure.in
blob47d55aafdacf7ee1dcec3059f63e9e0fcdea52ca
2 dnl /**-------------------------------------------------------------------**
3 dnl  **                              CLooG                                **
4 dnl  **-------------------------------------------------------------------**
5 dnl  **                           configure.in                            **
6 dnl  **-------------------------------------------------------------------**
7 dnl  **                   First version: august 7th 2002                  **
8 dnl  **-------------------------------------------------------------------**/
9 dnl
10 dnl Input file for autoconf to build a configuration shellscript.
11 dnl To build the configure script from the CLooG's top-level directory, use
12 dnl autoconf -l autoconf autoconf/configure.in > configure
13 dnl if it doesn't work (invalid option -l) try -I instead
14 dnl autoconf -I autoconf autoconf/configure.in > configure
16 dnl /**************************************************************************
17 dnl *               CLooG : the Chunky Loop Generator (experimental)          *
18 dnl ***************************************************************************
19 dnl *                                                                         *
20 dnl * Copyright (C) 2001 Cedric Bastoul                                       *
21 dnl *                                                                         *
22 dnl * This library is free software; you can redistribute it and/or           *
23 dnl * modify it under the terms of the GNU Lesser General Public              *
24 dnl * License as published by the Free Software Foundation; either            *
25 dnl * version 2.1 of the License, or (at your option) any later version.      *
26 dnl *                                                                         *
27 dnl * This library is distributed in the hope that it will be useful,         *
28 dnl * but WITHOUT ANY WARRANTY; without even the implied warranty of          *
29 dnl * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
30 dnl * Lesser General Public License for more details.                         *
31 dnl *                                                                         *
32 dnl * You should have received a copy of the GNU Lesser General Public        *
33 dnl * License along with this library; if not, write to the Free Software     *
34 dnl * Foundation, Inc., 51 Franklin Street, Fifth Floor,                      *
35 dnl * Boston, MA  02110-1301  USA                                             *
36 dnl *                                                                         *
37 dnl * CLooG, the Chunky Loop Generator                                        *
38 dnl * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr                      *
39 dnl *                                                                         *
40 dnl ***************************************************************************/
42 AC_PREREQ(2.13)
43 AC_INIT(source/cloog.c)
44 AC_CONFIG_AUX_DIR(autoconf)
45 AC_CONFIG_MACRO_DIR([m4])
46 AM_INIT_AUTOMAKE(cloog, 0.14.0)
47 dnl default version
48 BITS="64"
50 dnl /**************************************************************************
51 dnl  *                              Checking                                  *
52 dnl  **************************************************************************/
54 dnl Checks for programs.
55 AC_PROG_CC
56 AC_PROG_LN_S
57 AC_PROG_MAKE_SET
58 AC_CHECK_PROG(CD, cd)
59 dnl Configure needs an empty install.sh file with this, i HATE that...
60 AC_PROG_INSTALL
61 AC_PROG_LIBTOOL
62 AC_CHECK_PROG(TEXI2DVI, texi2dvi, texi2dvi, [])
63 AM_CONDITIONAL(HAVE_TEXI2DVI, test -n "$TEXI2DVI")
65 AX_CC_MAXOPT
66 AX_CFLAGS_WARN_ALL
68 dnl Checks for typedefs, structures, and compiler characteristics.
69 AC_C_CONST
70 AC_TYPE_SIZE_T
74 dnl Checks for header files.
75 AC_HEADER_STDC
78 dnl Checks for library functions.
79 AC_CHECK_FUNCS(strtol)
82 dnl /**************************************************************************
83 dnl  *                             Option setting                             *
84 dnl  **************************************************************************/
86 MP_BITS="MP"
87 MP_DFLAGS=-DLINEAR_VALUE_IS_MP
89 AC_CHECK_HEADERS([sys/resource.h],
90         [AC_DEFINE([CLOOG_RUSAGE], [], [Print time required to generate code])])
92 AC_ARG_WITH(bits,
93             [AS_HELP_STRING([--with-bits=32|64|gmp],
94                             [integer type to use])],
95             [ BITS=$withval ])
97 AX_SUBMODULE(isl,no|system|build|bundled,bundled)
98 if test "$with_isl" != "no"; then
99         BITS="gmp"
102 dnl /**************************************************************************
103 dnl  *                            Where is GMP?                               *
104 dnl  **************************************************************************/
106 gmp_module_default=no
107 if test "$BITS" = "gmp"; then
108         gmp_module_default=system
110 AX_SUBMODULE(gmp,no|system,$gmp_module_default)
112 need_get_memory_functions=false
113 case "$with_gmp" in
114 system)
115     if test "x$with_gmp_prefix" != "x"; then
116         CPPFLAGS="-I$with_gmp_prefix/include $CPPFLAGS"
117     fi
118     
119     if test "$with_gmp_exec_prefix" != "yes" ; then
120         LDFLAGS="-L$with_gmp_exec_prefix/lib $LDFLAGS"
121     fi
122      
123     AC_CHECK_HEADER(gmp.h,
124                     [],
125                     [AC_MSG_ERROR(Can't find gmp headers.)])
126     AC_CHECK_LIB(gmp,
127                  __gmpz_init,
128                  [LIBS="$LIBS -lgmp"],
129                  [AC_MSG_ERROR(Can't find gmp library.)])
130     AC_CHECK_DECLS(mp_get_memory_functions,[],[
131             need_get_memory_functions=true
132     ],[#include <gmp.h>])
133     ;;
134 esac
135 AM_CONDITIONAL(NEED_GET_MEMORY_FUNCTIONS,
136                 test x$need_get_memory_functions = xtrue)
138 # all compiled libraries
139 CLOOG_LIBRARIES=""
140 AC_SUBST(CLOOG_LIBRARIES)
141 # backend used by executables
142 BACKEND=""
143 AC_SUBST(BACKEND)
145 dnl /**************************************************************************
146 dnl  *                          Where is PolyLib?                             *
147 dnl  **************************************************************************/
149 AX_SUBMODULE(polylib,no|system|build,system)
151 polylibs="64 32"
152 case "$BITS" in
153     32|64|gmp)
154         polylibs=$BITS
155     ;;
156 esac
158 dnl Checking for PolyLib
159 AC_SUBST(cl_cv_polylib)
160 AC_SUBST(POLYLIB_CPPFLAGS)
161 AC_SUBST(POLYLIB_LDFLAGS)
162 AC_SUBST(POLYLIB_LIBS)
164 AC_MSG_CHECKING(for location of PolyLib)
165 if test "x$with_polylib_builddir" != "x"; then
166         with_polylib_builddir=`cd $with_polylib_builddir; pwd`
167         AC_MSG_RESULT(built in $with_polylib_builddir)
168         polylib_polylibs=`echo @polylibs@ | $with_polylib_builddir/config.status --file=-`
169         AC_MSG_NOTICE(Configured polylibs: $polylib_polylibs)
170         POLYLIB_CPPFLAGS="-I$with_polylib_builddir/include -I$polylib_srcdir/include"
171         for BITS in $polylibs; do
172                 cl_cv_polylib=missing
173                 for PL in $polylib_polylibs; do
174                         if test "libpolylib$BITS.la" = $PL; then
175                                 cl_cv_polylib="polylib$BITS"
176                                 break;
177                         fi
178                 done
179                 if test "$cl_cv_polylib" != "missing"; then
180                         POLYLIB_LIBS="$with_polylib_builddir/lib$cl_cv_polylib.la"
181                         break;
182                 fi
183         done
184 elif test "$with_polylib" != "no"; then
185         if test "x$with_polylib_prefix" != "x"; then
186                 with_polylib_prefix=`cd $with_polylib_prefix; pwd`
187                 AC_MSG_RESULT(installed in $with_polylib_exec_prefix)
188                 POLYLIB_CPPFLAGS="-I$with_polylib_prefix/include"
189                 POLYLIB_LDFLAGS="-L$with_polylib_exec_prefix/lib"
190                 LD_LIBRARY_PATH="$with_polylib_exec_prefix/lib:$LD_LIBRARY_PATH"
191                 export LD_LIBRARY_PATH
192         else
193                 AC_MSG_RESULT(installed in standard location)
194         fi
195         SAVE_CPPFLAGS="$CPPFLAGS"
196         SAVE_LDFLAGS="$LDFLAGS"
197         CPPFLAGS="$POLYLIB_CPPFLAGS $CPPFLAGS"
198         LDFLAGS="$POLYLIB_LDFLAGS $LDFLAGS"
199         for BITS in $polylibs; do
200                 cl_cv_polylib="polylib$BITS"
201                 AC_CHECK_HEADER(polylib/$cl_cv_polylib.h,[
202                         AC_CHECK_LIB($cl_cv_polylib,PolyhedronTSort,[
203                                 POLYLIB_LIBS="-l$cl_cv_polylib"
204                                 break
205                         ])
206                 ])
207                 cl_cv_polylib=missing
208         done
209         CPPFLAGS="$SAVE_CPPFLAGS"
210         LDFLAGS="$SAVE_LDFLAGS"
212 case "$cl_cv_polylib" in
213 missing)
214         AC_MSG_WARN(Can't find PolyLib.)
215         ;;
216 polylib*)
217         CLOOG_LIBRARIES="$CLOOG_LIBRARIES libcloog-polylib.la"
218         BACKEND="polylib"
219         ;;
220 esac
222 dnl /**************************************************************************
223 dnl  *                          Where is isl?                                 *
224 dnl  **************************************************************************/
226 AC_SUBST(ISL_CPPFLAGS)
227 AC_SUBST(ISL_LDFLAGS)
228 AC_SUBST(ISL_LIBS)
229 case "$with_isl" in
230 bundled)
231         ISL_CPPFLAGS="-I$srcdir/isl/include -Iisl/include"
232         ;;
233 build)
234         ISL_CPPFLAGS="-I$isl_srcdir/include -I$with_isl_builddir/include"
235         ISL_LIBS="$with_isl_builddir/libisl.la"
236         ;;
237 system)
238         if test "x$with_isl_prefix" != "x"; then
239                 ISL_CPPFLAGS="-I$with_isl_prefix/include"
240         fi
241         if test "x$with_isl_exec_prefix" != "x"; then
242                 ISL_LDFLAGS="-L$with_isl_exec_prefix/lib"
243         fi
244         ISL_LIBS="-lisl"
245 esac
246 if test "$with_isl" != "no"; then
247         CLOOG_LIBRARIES="$CLOOG_LIBRARIES libcloog-isl.la"
248         BACKEND="isl"
250 AM_CONDITIONAL(BUNDLED_ISL, test $with_isl = bundled)
252 if test -z "$BACKEND"; then
253         AC_MSG_ERROR(No backend specified or found.)
257 case "$BITS" in
258         gmp)
259                 cl_cv_int_type=gmp
260                 ;;
261         32|64)
262                 AC_CHECK_SIZEOF(int,1)
263                 AC_CHECK_SIZEOF(long,1)
264                 AC_CHECK_SIZEOF(long long,1)
265                 for cl_cv_int_type in int long long_long; do
266                         eval "bits=\`expr \$ac_cv_sizeof_$cl_cv_int_type \* 8\`"
267                         if test "$bits" = "$BITS"; then
268                                 break
269                         fi
270                 done
271                 ;;
272 esac
273 AC_DEFINE_UNQUOTED(AS_TR_CPP(CLOOG_INT_$cl_cv_int_type))
275 AC_SUBST(GIT_INDEX)
276 if test -f $srcdir/.git/HEAD; then
277         GIT_INDEX="\$(top_srcdir)/.git/index"
281 dnl /**************************************************************************
282 dnl  *                            Substitutions                               *
283 dnl  **************************************************************************/
286 dnl Substitutions to do in Makefile.in.
287 AC_SUBST(target)
288 AC_SUBST(CC)
289 AC_SUBST(LN_S)
290 AC_SUBST(SHEXT)
292 AC_SUBST(prefix)
293 AC_SUBST(exec_prefix)
294 AC_SUBST(INSTALL)
296 AC_SUBST(BITS)
298 AC_CONFIG_HEADERS(config.h)
299 AC_CONFIG_HEADERS(include/cloog/int.h)
300 AC_CONFIG_HEADERS(include/cloog/options.h)
301 AC_CONFIG_FILES(Makefile test/Makefile include/cloog/polylib/backend.h)
302 AC_CONFIG_FILES(autoconf/Doxyfile)
303 AC_CONFIG_FILES(doc/Makefile)
304 AC_CONFIG_FILES(source/version.c)
305 AC_CONFIG_FILES([genversion.sh], [chmod +x genversion.sh])
306 AC_CONFIG_COMMANDS([version.h],
307         [echo '#define CLOOG_HEAD "'`./genversion.sh`'"' > version.h])
308 AC_CONFIG_COMMANDS([doc/gitversion.texi],
309         [echo '@set VERSION '`./genversion.sh`'' > doc/gitversion.texi])
310 if test $with_isl = bundled; then
311         AC_CONFIG_SUBDIRS(isl)
313 AC_CONFIG_COMMANDS_POST([
314         old_args=""
315         for arg in $ac_configure_args; do
316                 case arg in
317                 --with-polylib*)
318                         ;;
319                 *)
320                         old_args="$old_args $arg"
321                         ;;
322                 esac
323         done
324         ac_configure_args="$old_args $cloog_configure_args"
326 AC_OUTPUT
329 echo "             /*-----------------------------------------------*"
330 echo "              *           CLooG configuration is OK           *"
331 echo "              *-----------------------------------------------*/"
332 echo "It appears that your system is OK to start CLooG compilation. You need"
333 echo "now to type \"make\". After compilation, you should check CLooG by typing"
334 echo "\"make check\". If no problem occur, you can type \"make uninstall\" if"
335 echo "you are upgrading an old version. Lastly type \"make install\" to install"
336 echo "CLooG on your system (log as root if necessary)."