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 AM_INIT_AUTOMAKE(cloog, 0.14.0)
48 dnl /**************************************************************************
50 dnl **************************************************************************/
52 dnl Checks for programs.
57 dnl Configure needs an empty install.sh file with this, i HATE that...
62 dnl Checks for typedefs, structures, and compiler characteristics.
68 dnl Checks for header files.
72 dnl Checks for library functions.
73 AC_CHECK_FUNCS(strtol)
76 dnl /**************************************************************************
77 dnl * Option setting *
78 dnl **************************************************************************/
80 dnl Some default values cause I'm not sure whether autoconf set them, while
81 dnl documentation says it does...
83 gmp_include_package="yes"
84 gmp_library_package="yes"
87 MP_DFLAGS=-DLINEAR_VALUE_IS_MP
90 dnl --with-ppl=ppl-path
92 [AS_HELP_STRING([--with-ppl=DIR],
93 [Prefix of Parma Polyhedral Library installation])])
95 dnl --with-polylib=polylib-path
96 AC_ARG_WITH(polylib_prefix,
97 [AS_HELP_STRING([--with-polylib-prefix=DIR],
98 [Prefix of PolyLib installation])])
99 AC_ARG_WITH(polylib_exec_prefix,
100 [AS_HELP_STRING([--with-polylib-exec-prefix=DIR],
101 [Exec prefix of PolyLib installation])])
102 AC_ARG_WITH(polylib_builddir,
103 [AS_HELP_STRING([--with-polylib-builddir=DIR],
104 [Location of PolyLib builddir])])
106 [ --with-bits=32|64|gmp PolyLib library type to use],
107 [ echo "polylib$withval"; BITS=$withval ])
109 dnl --with-gmp=gmp-path
111 [ --with-gmp=DIR DIR where the gmp package is installed],
112 [ echo "Package gmp : $withval" &&
113 gmp_package=$withval &&
114 GMP_INC=$gmp_package/include &&
115 GMP_LIB=$gmp_package/lib &&
118 AC_ARG_WITH(gmp-include,
119 [ --with-gmp-include=DIR DIR where gmp.h is installed],
120 [ echo "Package gmp-include : $withval" &&
121 gmp_include_package=$withval &&
122 GMP_INC=$gmp_include_package &&
125 AC_ARG_WITH(gmp-library,
126 [ --with-gmp-library=DIR DIR where the gmp library is installed],
127 [ echo "Package gmp-library : $withval" &&
128 gmp_library_package=$withval &&
129 GMP_LIB=$gmp_library_package &&
133 dnl /**************************************************************************
134 dnl * Where is GMP? *
135 dnl **************************************************************************/
139 AC_MSG_CHECKING(whether gmp works)
140 if test "$gmp_package" = "no"; then
141 echo "GMP package not defined"
145 if test "$NEED_MP" = "no"; then
146 echo "Mode normal GMP"
147 TO_BUILD="$TO_BUILD MP"
148 AC_CHECK_HEADER(gmp.h,
151 [LIBS="$LIBS -lgmp"],
152 [echo "Can't find gmp library." &&
153 echo "MP version will not be builded." &&
155 [echo "Can't find gmp headers." &&
156 echo "MP version will not be builded." &&
159 dnl Default given by --with-X is "yes", --without-X is "no". We also
160 dnl initialized manually all gmp_package* variables to "yes" (thus they are
161 dnl supposed to be "yes" except if the user set them himself).
163 if test "$gmp_package" != "yes" ; then
164 echo "(GMP path has been set by user)"
166 dnl Useful for AC_CHECK_X to find what we want.
167 CPPFLAGS="-I$GMP_DIR/include $CPPFLAGS"
168 LDFLAGS="-L$GMP_DIR/lib $LDFLAGS"
171 if test "$gmp_include_package" != "yes" ; then
172 CPPFLAGS="-I$GMP_INC $CPPFLAGS"
175 if test "$gmp_library_package" != "yes" ; then
176 LDFLAGS="-L$GMP_LIB $LDFLAGS"
179 AC_CHECK_HEADER(gmp.h,
181 [AC_MSG_ERROR(Can't find gmp headers.)])
184 [LIBS="$LIBS -lgmp"],
185 [AC_MSG_ERROR(Can't find gmp library.)])
191 dnl /**************************************************************************
192 dnl * Where is Parma Polyhedral Library? *
193 dnl **************************************************************************/
195 # The default back-end for polyhedral operations is PolyLib, unless
197 AC_SUBST(POLYHEDRAL_BACKEND)
198 POLYHEDRAL_BACKEND=polylib
201 AC_SUBST(PPL_CPPFLAGS)
202 AC_SUBST(PPL_LDFLAGS)
206 AC_MSG_CHECKING(for Parma Polyhedral Library (PPL))
207 if test "x$with_ppl" != "x"; then
209 if test "x$with_polylib_prefix" != "x" -o "x$with_polylib_exec_prefix" != "x" -o "x$with_polylib_builddir" != "x"; then
210 AC_MSG_ERROR([--with-polylib and --with-ppl are mutually exclusive])
213 AC_MSG_RESULT(installed in $with_ppl)
214 POLYHEDRAL_BACKEND=ppl
215 CPPFLAGS="-I$with_ppl/include -DCLOOG_PPL_BACKEND $CPPFLAGS"
216 LDFLAGS="-L$with_ppl/lib $LDFLAGS"
217 LD_LIBRARY_PATH="$with_ppl/lib:$LD_LIBRARY_PATH"
218 export LD_LIBRARY_PATH
219 AC_CHECK_HEADER(ppl_c.h,[],
220 [AC_MSG_ERROR(Can't find PPL headers.)])
221 LIBS="$LIBS -lppl_c -lppl -lgmpxx"
223 AC_MSG_RESULT(not using PPL)
226 dnl /**************************************************************************
227 dnl * Where is PolyLib? *
228 dnl **************************************************************************/
237 dnl Checking for PolyLib
238 AC_SUBST(cl_cv_polylib)
239 AC_SUBST(POLYLIB_CPPFLAGS)
240 AC_SUBST(POLYLIB_LDFLAGS)
241 AC_SUBST(POLYLIB_LIBS)
243 if test "x$with_polylib_prefix" != "x" -a "x$with_polylib_exec_prefix" = "x"
245 with_polylib_exec_prefix=$with_polylib_prefix
247 if test "x$with_polylib_prefix" != "x" -a "x$with_polylib_builddir" != "x"; then
249 [--with-polylib-prefix and --with-polylib-builddir are mutually exclusive])
252 AC_MSG_CHECKING(for location of PolyLib)
253 if test "x$with_polylib_builddir" != "x"; then
254 AC_MSG_RESULT(built in $with_polylib_builddir)
255 polylib_srcdir=`echo @srcdir@ | $with_polylib_builddir/config.status --file=-`
256 AC_MSG_NOTICE(PolyLib sources in $polylib_srcdir)
257 polylib_polylibs=`echo @polylibs@ | $with_polylib_builddir/config.status --file=-`
258 AC_MSG_NOTICE(Configured polylibs: $polylib_polylibs)
259 CPPFLAGS="-I$with_polylib_builddir/include -I$polylib_srcdir/include $CPPFLAGS"
260 for BITS in $polylibs; do
261 cl_cv_polylib=missing
262 for PL in $polylib_polylibs; do
263 if test "libpolylib$BITS.la" = $PL; then
264 cl_cv_polylib="polylib$BITS"
268 if test "$cl_cv_polylib" != "missing"; then
269 LIBS="$with_polylib_builddir/lib$cl_cv_polylib.la $LIBS"
274 if test "x$with_polylib_prefix" != "x"; then
275 AC_MSG_RESULT(installed in $with_polylib_exec_prefix)
276 CPPFLAGS="-I$with_polylib_prefix/include $CPPFLAGS"
277 LDFLAGS="-L$with_polylib_exec_prefix/lib $LDFLAGS"
278 LD_LIBRARY_PATH="$with_polylib_exec_prefix/lib:$LD_LIBRARY_PATH"
279 export LD_LIBRARY_PATH
281 AC_MSG_RESULT(installed in standard location)
283 for BITS in $polylibs; do
284 cl_cv_polylib="polylib$BITS"
285 AC_CHECK_LIB($cl_cv_polylib,PolyhedronTSort,[
286 LIBS="-l$cl_cv_polylib $LIBS"
289 cl_cv_polylib=missing
292 if test "$cl_cv_polylib" = "missing"; then
293 AC_MSG_RESULT(Can't find PolyLib.)
295 AC_CHECK_HEADER(polylib/$cl_cv_polylib.h,[],
296 [AC_MSG_ERROR(Can't find PolyLib headers.)])
300 if test -f $srcdir/.git/HEAD; then
301 GIT_INDEX="\$(top_srcdir)/.git/index"
305 dnl /**************************************************************************
306 dnl * Substitutions *
307 dnl **************************************************************************/
310 dnl Substitutions to do in Makefile.in.
317 AC_SUBST(exec_prefix)
322 AC_CONFIG_FILES(Makefile test/Makefile include/cloog/cloog.h autoconf/Doxyfile)
323 AC_CONFIG_FILES(doc/Makefile)
324 AC_CONFIG_FILES(source/version.c)
325 AC_CONFIG_FILES([genversion.sh], [chmod +x genversion.sh])
326 AC_CONFIG_COMMANDS([version.h],
327 [echo '#define CLOOG_HEAD "'`./genversion.sh`'"' > version.h])
328 AC_CONFIG_COMMANDS([doc/gitversion.texi],
329 [echo '@set VERSION '`./genversion.sh`'' > doc/gitversion.texi])
333 echo " /*-----------------------------------------------*"
334 echo " * CLooG configuration is OK *"
335 echo " *-----------------------------------------------*/"
336 echo "It appears that your system is OK to start CLooG compilation. You need"
337 echo "now to type \"make\". After compilation, you should check CLooG by typing"
338 echo "\"make check\". If no problem occur, you can type \"make uninstall\" if"
339 echo "you are upgrading an old version. Lastly type \"make install\" to install"
340 echo "CLooG on your system (log as root if necessary)."