2 AM_INIT_AUTOMAKE(barvinok, 0.10)
8 dnl Check for GMP library
9 AC_MSG_CHECKING(whether to use GMP)
11 [ --with-libgmp DIR Location of the GMP Distribution],
12 gmp_package=$withval, gmp_package=yes)
13 if test "x$gmp_package" = "xno"; then
15 AC_MSG_ERROR(Need gmp)
18 if test "x$gmp_package" != "xyes"; then
20 if test ! -d "$GMP_DIR"; then
21 AC_ERROR(Directory given for GMP Distribution is not a directory)
23 CPPFLAGS="-I$GMP_DIR/include $CPPFLAGS"
24 LDFLAGS="-L$GMP_DIR/lib $LDFLAGS"
27 AC_CHECK_HEADER(gmp.h,
28 [AC_CHECK_LIB(gmp,main,
30 [poly_cv_gmpfatal="yes"])],
31 [poly_cv_gmpfatal="yes"])
32 if test "$poly_cv_gmpfatal" = "yes"; then
33 AC_MSG_ERROR([GMP not found])
36 AC_CHECK_DECL(mpz_divisible_p,[],[AC_LIBOBJ(mpz_divisible_p)],[#include <gmp.h>])
39 [ --with-polylib=DIR DIR Location of PolyLib],
40 [ echo "Package polylib : $withval" && polylib_package=$withval],
41 [ polylib_package=yes ])
43 if test "$polylib_package" = "no"; then
44 AC_MSG_ERROR(Need polylib)
47 if test "$polylib_package" != "yes"; then
48 CPPFLAGS="-I$polylib_package/include $CPPFLAGS"
49 LDFLAGS="-L$polylib_package/lib $LDFLAGS"
50 LD_LIBRARY_PATH="$polylib_package/lib:$LD_LIBRARY_PATH"
51 export LD_LIBRARY_PATH
54 AC_CHECK_LIB(polylibgmp, PolyhedronTSort,[],[
55 AC_MSG_ERROR(Need polylib)
57 AC_REPLACE_FUNCS(Enumeration_Free reduce_evalue)
59 #include <polylib/polylibgmp.h>
65 Matrix *M = Matrix_Alloc(6,5);
66 for (i = 0; i < 6; ++i) {
67 value_set_si(M->p[i][0], 1);
68 for (j = 1; j < 4; ++j)
69 value_set_si(M->p[i][j], (j-1 == i/2) * (1-2*(i%2)));
70 value_set_si(M->p[i][4], i%2);
72 P = Constraints2Polyhedron(M, 6);
73 return !(P->NbRays == 8);
76 AC_MSG_WARN([This version of polylib does not automatically])
77 AC_MSG_WARN([enlarge the chernikova table space]))
80 #include <polylib/polylibgmp.h>
84 enode *en = new_enode(polynomial, 1, 1);
85 return !(en->arr[0].x.p == NULL);
88 AC_MSG_WARN([This version of polylib leaks]))
92 #include <polylib/polylibgmp.h>
102 freopen("$srcdir/tests/ehrhart/t12.in", "r", stdin);
104 P = Constraints2Polyhedron(M, 1024);
106 C = Constraints2Polyhedron(M, 1024);
107 PP = Polyhedron2Param_SimplifiedDomain(&P, C, 1024, NULL, NULL);
108 for (i = 0, V = PP->V; V; ++i, V = V->next)
113 AC_MSG_WARN([This version of polylib produces incorrect vertices.]))
115 AC_MSG_CHECKING([number of arguments of Polyhedron_Enumerate])
116 AC_TRY_COMPILE([#include <polylib/polylibgmp.h>],
117 [Polyhedron_Enumerate(NULL,NULL,0,NULL)],
119 AC_DEFINE(HAVE_ENUMERATE4,[],
120 [Polyhedron_Enumerate takes four arguments])],
123 AC_MSG_CHECKING([number of arguments of count_points])
124 AC_TRY_COMPILE([#include <polylib/polylibgmp.h>],
125 [count_points(0,NULL,NULL,NULL)],
127 AC_DEFINE(HAVE_COUNT_POINTS4,[],
128 [count_points takes four arguments])],
132 [ --with-piplib=DIR DIR Location of PolyLib],
133 [ echo "Package piplib : $withval" && piplib_package=$withval],
134 [ piplib_package=yes ])
136 AC_SUBST(bv_extra_programs)
137 if test "$piplib_package" != "no"; then
138 if test "$piplib_package" != "yes"; then
139 CPPFLAGS="-I$piplib_package/include $CPPFLAGS"
140 LDFLAGS="-L$piplib_package/lib $LDFLAGS"
143 AC_CHECK_LIB(piplibMP, pip_solve,[
144 AC_DEFINE(HAVE_PIPLIB,[],[use piplib])
145 LIBS="-lpiplibMP $LIBS"
147 bv_extra_programs="piptest $bv_extra_programs"
149 AC_MSG_WARN([Piplib not found])
154 AC_MSG_CHECKING(if --enable-fractional option specified)
155 AC_ARG_ENABLE(fractional,
156 [ --enable-fractional Use fractional representation],
157 [bv_cv_fractional=$enableval], [bv_cv_fractional="no"])
158 AC_MSG_RESULT($bv_cv_fractional)
159 AC_MSG_CHECKING(if --enable-modulo option specified)
160 AC_ARG_ENABLE(modulo,
161 [ --enable-modulo Use fractional representation],
162 [bv_cv_modulo=$enableval], [bv_cv_modulo="no"])
163 AC_MSG_RESULT($bv_cv_modulo)
164 if test "x$bv_cv_modulo" != "xno" -o "x$bv_cv_fractional" != "xno"; then
165 AC_DEFINE(USE_MODULO,[], [Use fractional representation])
169 [ --with-ntl=DIR DIR Location of NTL],
170 [ echo "Package ntl : $withval" && ntl_package=$withval],
173 if test "$ntl_package" = "no"; then
174 AC_MSG_ERROR(Need ntl)
177 if test "$ntl_package" != "yes"; then
178 CPPFLAGS="-I$ntl_package/include $CPPFLAGS"
179 LDFLAGS="-L$ntl_package/lib $LDFLAGS"
182 AC_CHECK_LIB(ntl, main,[],[
183 AC_MSG_ERROR(Need ntl)
186 AC_CONFIG_HEADERS(config.h)