2 dnl /**-------------------------------------------------------------------**
4 dnl **-------------------------------------------------------------------**
6 dnl **-------------------------------------------------------------------**
7 dnl ** First version: august 7th 2002 **
8 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 ***************************************************************************
20 dnl * Copyright (C) 2001 Cedric Bastoul *
22 dnl * This is free software; you can redistribute it and/or modify it under *
23 dnl * the terms of the GNU General Public License as published by the Free *
24 dnl * Software Foundation; either version 2 of the License, or (at your *
25 dnl * option) any later version. *
27 dnl * This software is distributed in the hope that it will be useful, but *
28 dnl * WITHOUT ANY WARRANTY; without even the implied warranty of *
29 dnl * MERCHANTABILITYor FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
30 dnl * General Public License for more details. *
32 dnl * You should have received a copy of the GNU General Public License along *
33 dnl * with software; if not, write to the Free Software Foundation, Inc., *
34 dnl * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
36 dnl * CLooG, the Chunky Loop Generator *
37 dnl * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
39 dnl ***************************************************************************/
42 AC_INIT(source/cloog.c)
43 AC_CONFIG_AUX_DIR(autoconf)
44 AC_CONFIG_MACRO_DIR([m4])
46 dnl Every other copy of the package version number gets its value from here.
47 AM_INIT_AUTOMAKE(cloog, 0.15)
54 # Version number machinery.
55 changequote(<<, >>)dnl
56 if test -n "`expr $VERSION : '\([0-9]*\)\.[0-9]*\.[0-9]*'`"
58 CLOOG_VERSION_MAJOR=`expr $VERSION : '\([0-9]*\)\.[0-9]*\.[0-9]*'`
59 CLOOG_VERSION_MINOR=`expr $VERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`
60 CLOOG_VERSION_REVISION=`expr $VERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
61 CLOOG_VERSION_BETA=`expr $VERSION : '[0-9]*\.[0-9]*\.[0-9]*pre\([0-9]*\)'`
63 CLOOG_VERSION_MAJOR=`expr $VERSION : '\([0-9]*\)\.[0-9]*'`
64 CLOOG_VERSION_MINOR=`expr $VERSION : '[0-9]*\.\([0-9]*\)'`
65 CLOOG_VERSION_REVISION=0
66 CLOOG_VERSION_BETA=`expr $VERSION : '[0-9]*\.[0-9]*pre\([0-9]*\)'`
68 if test -z "$CLOOG_VERSION_BETA"
73 AC_SUBST(CLOOG_VERSION_MAJOR)
74 AC_SUBST(CLOOG_VERSION_MINOR)
75 AC_SUBST(CLOOG_VERSION_REVISION)
76 AC_SUBST(CLOOG_VERSION_BETA)
79 dnl /**************************************************************************
81 dnl **************************************************************************/
83 dnl Checks for programs.
88 dnl Configure needs an empty install.sh file with this, i HATE that...
93 dnl Checks for typedefs, structures, and compiler characteristics.
99 dnl Checks for header files.
103 dnl Checks for library functions.
104 AC_CHECK_FUNCS(strtol)
107 dnl /**************************************************************************
108 dnl * Option setting *
109 dnl **************************************************************************/
111 dnl Some default values cause I'm not sure whether autoconf set them, while
112 dnl documentation says it does...
114 gmp_include_package="yes"
115 gmp_library_package="yes"
118 MP_DFLAGS=-DLINEAR_VALUE_IS_MP
121 dnl --with-ppl=ppl-path
123 [AS_HELP_STRING([--with-ppl=DIR],
124 [Prefix of Parma Polyhedral Library installation])])
126 dnl --with-polylib=polylib-path
127 AC_ARG_WITH(polylib_prefix,
128 [AS_HELP_STRING([--with-polylib-prefix=DIR],
129 [Prefix of PolyLib installation])])
130 AC_ARG_WITH(polylib_exec_prefix,
131 [AS_HELP_STRING([--with-polylib-exec-prefix=DIR],
132 [Exec prefix of PolyLib installation])])
133 AC_ARG_WITH(polylib_builddir,
134 [AS_HELP_STRING([--with-polylib-builddir=DIR],
135 [Location of PolyLib builddir])])
137 [ --with-bits=32|64|gmp PolyLib library type to use],
138 [ echo "polylib$withval"; BITS=$withval ])
140 dnl --with-gmp=gmp-path
142 [ --with-gmp=DIR DIR where the gmp package is installed],
143 [ echo "Package gmp : $withval" &&
144 gmp_package=$withval &&
145 GMP_INC=$gmp_package/include &&
146 GMP_LIB=$gmp_package/lib &&
149 AC_ARG_WITH(gmp-include,
150 [ --with-gmp-include=DIR DIR where gmp.h is installed],
151 [ echo "Package gmp-include : $withval" &&
152 gmp_include_package=$withval &&
153 GMP_INC=$gmp_include_package &&
156 AC_ARG_WITH(gmp-library,
157 [ --with-gmp-library=DIR DIR where the gmp library is installed],
158 [ echo "Package gmp-library : $withval" &&
159 gmp_library_package=$withval &&
160 GMP_LIB=$gmp_library_package &&
164 dnl /**************************************************************************
165 dnl * Where is GMP? *
166 dnl **************************************************************************/
170 AC_MSG_CHECKING(whether gmp works)
171 if test "$gmp_package" = "no"; then
172 echo "GMP package not defined"
176 if test "$NEED_MP" = "no"; then
177 echo "Mode normal GMP"
178 TO_BUILD="$TO_BUILD MP"
179 AC_CHECK_HEADER(gmp.h,
182 [LIBS="$LIBS -lgmp"],
183 [echo "Can't find gmp library." &&
184 echo "MP version will not be builded." &&
186 [echo "Can't find gmp headers." &&
187 echo "MP version will not be builded." &&
190 dnl Default given by --with-X is "yes", --without-X is "no". We also
191 dnl initialized manually all gmp_package* variables to "yes" (thus they are
192 dnl supposed to be "yes" except if the user set them himself).
194 if test "$gmp_package" != "yes" ; then
195 echo "(GMP path has been set by user)"
197 dnl Useful for AC_CHECK_X to find what we want.
198 CPPFLAGS="-I$GMP_DIR/include $CPPFLAGS"
199 LDFLAGS="-L$GMP_DIR/lib $LDFLAGS"
202 if test "$gmp_include_package" != "yes" ; then
203 CPPFLAGS="-I$GMP_INC $CPPFLAGS"
206 if test "$gmp_library_package" != "yes" ; then
207 LDFLAGS="-L$GMP_LIB $LDFLAGS"
210 AC_CHECK_HEADER(gmp.h,
212 [AC_MSG_ERROR(Can't find gmp headers.)])
215 [LIBS="$LIBS -lgmp"],
216 [AC_MSG_ERROR(Can't find gmp library.)])
222 dnl /**************************************************************************
223 dnl * Where is PolyLib? *
224 dnl **************************************************************************/
233 dnl Checking for PolyLib
234 AC_SUBST(cl_cv_polylib)
235 AC_SUBST(POLYLIB_CPPFLAGS)
236 AC_SUBST(POLYLIB_LDFLAGS)
237 AC_SUBST(POLYLIB_LIBS)
239 if test "x$with_polylib_prefix" != "x" -a "x$with_polylib_exec_prefix" = "x"
241 with_polylib_exec_prefix=$with_polylib_prefix
243 if test "x$with_polylib_prefix" != "x" -a "x$with_polylib_builddir" != "x"; then
245 [--with-polylib-prefix and --with-polylib-builddir are mutually exclusive])
248 AC_MSG_CHECKING(for location of PolyLib)
249 if test "x$with_polylib_builddir" != "x"; then
250 AC_MSG_RESULT(built in $with_polylib_builddir)
251 polylib_srcdir=`echo @srcdir@ | $with_polylib_builddir/config.status --file=-`
252 AC_MSG_NOTICE(PolyLib sources in $polylib_srcdir)
253 polylib_polylibs=`echo @polylibs@ | $with_polylib_builddir/config.status --file=-`
254 AC_MSG_NOTICE(Configured polylibs: $polylib_polylibs)
255 CPPFLAGS="-I$with_polylib_builddir/include -I$polylib_srcdir/include $CPPFLAGS"
256 for BITS in $polylibs; do
257 cl_cv_polylib=missing
258 for PL in $polylib_polylibs; do
259 if test "libpolylib$BITS.la" = $PL; then
260 cl_cv_polylib="polylib$BITS"
264 if test "$cl_cv_polylib" != "missing"; then
265 LIBS="$with_polylib_builddir/lib$cl_cv_polylib.la $LIBS"
270 if test "x$with_polylib_prefix" != "x"; then
271 AC_MSG_RESULT(installed in $with_polylib_exec_prefix)
272 CPPFLAGS="-I$with_polylib_prefix/include $CPPFLAGS"
273 LDFLAGS="-L$with_polylib_exec_prefix/lib $LDFLAGS"
274 LD_LIBRARY_PATH="$with_polylib_exec_prefix/lib:$LD_LIBRARY_PATH"
275 export LD_LIBRARY_PATH
277 AC_MSG_RESULT(installed in standard location)
279 for BITS in $polylibs; do
280 cl_cv_polylib="polylib$BITS"
281 AC_CHECK_LIB($cl_cv_polylib,PolyhedronTSort,[
282 LIBS="-l$cl_cv_polylib $LIBS"
285 cl_cv_polylib=missing
288 if test "$cl_cv_polylib" = "missing"; then
289 AC_MSG_RESULT(Can't find PolyLib.)
291 AC_CHECK_HEADER(polylib/$cl_cv_polylib.h,[],
292 [AC_MSG_ERROR(Can't find PolyLib headers.)])
296 if test -f $srcdir/.git/HEAD; then
297 GIT_INDEX="\$(top_srcdir)/.git/index"
301 dnl /**************************************************************************
302 dnl * Where is Parma Polyhedral Library? *
303 dnl **************************************************************************/
305 # The default back-end for polyhedral operations is PolyLib, unless
307 AC_SUBST(POLYHEDRAL_BACKEND)
308 POLYHEDRAL_BACKEND=polylib
313 AC_SUBST(PPL_CPPFLAGS)
314 AC_SUBST(PPL_LDFLAGS)
317 AC_MSG_CHECKING(for Parma Polyhedral Library (PPL))
318 if test "x$with_ppl" != "x"; then
320 if test "x$with_polylib_prefix" != "x" -o "x$with_polylib_exec_prefix" != "x" -o "x$with_polylib_builddir" != "x"; then
321 AC_MSG_ERROR([--with-polylib and --with-ppl are mutually exclusive])
324 AC_MSG_RESULT(installed in $with_ppl)
325 POLYHEDRAL_BACKEND=ppl
326 CPPFLAGS="-I$with_ppl/include -DCLOOG_PPL_BACKEND $CPPFLAGS"
327 LDFLAGS="-L$with_ppl/lib $LDFLAGS"
328 LD_LIBRARY_PATH="$with_ppl/lib:$LD_LIBRARY_PATH"
329 export LD_LIBRARY_PATH
331 AC_CHECK_HEADER(ppl_c.h,[],
332 [AC_MSG_ERROR(Can't find PPL headers.)])
334 AC_MSG_CHECKING([for version $ppl_major_version.$ppl_minor_version of PPL])
335 AC_TRY_COMPILE([#include "ppl_c.h"],[
336 #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version
339 ], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR(Can't find correct version of PPL.) ])
341 LIBS="$LIBS -lppl_c -lppl -lgmpxx"
344 AC_MSG_RESULT(not using PPL)
347 dnl /**************************************************************************
348 dnl * Substitutions *
349 dnl **************************************************************************/
352 dnl Substitutions to do in Makefile.in.
359 AC_SUBST(exec_prefix)
364 AC_CONFIG_FILES(Makefile test/Makefile include/cloog/cloog.h autoconf/Doxyfile)
365 AC_CONFIG_FILES(doc/Makefile)
366 dnl AC_CONFIG_FILES(include/cloog/version.h)
367 AC_CONFIG_FILES([genversion.sh], [chmod +x genversion.sh])
368 AC_CONFIG_COMMANDS([version.h],
369 [echo '#define CLOOG_HEAD "'`./genversion.sh`'"' > version.h])
370 AC_CONFIG_COMMANDS([doc/gitversion.texi],
371 [echo '@set VERSION '`./genversion.sh`'' > doc/gitversion.texi])
375 echo " /*-----------------------------------------------*"
376 echo " * CLooG configuration is OK *"
377 echo " *-----------------------------------------------*/"
378 echo "It appears that your system is OK to start CLooG compilation. You need"
379 echo "now to type \"make\". After compilation, you should check CLooG by typing"
380 echo "\"make check\". If no problem occur, you can type \"make uninstall\" if"
381 echo "you are upgrading an old version. Lastly type \"make install\" to install"
382 echo "CLooG on your system (log as root if necessary)."