1AC_INIT([isl], [0.22.1], [isl-development@googlegroups.com])
2AC_CONFIG_AUX_DIR([.])
3AC_CONFIG_MACRO_DIR([m4])
4AM_INIT_AUTOMAKE([foreign])
5m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
6AC_SUBST(versioninfo)
7versioninfo=22:1:0
8
9if test "x$prefix" != "xNONE"; then
10	prefix_wd=`cd $prefix && pwd`
11	srcdir_wd=`cd $srcdir && pwd`
12	wd=`pwd`
13	if test "x$prefix_wd" = "x$srcdir_wd"; then
14		AC_MSG_ERROR(Installation in source directory not supported)
15	fi
16	if test "x$prefix_wd" = "x$wd"; then
17		AC_MSG_ERROR(Installation in build directory not supported)
18	fi
19fi
20
21AC_PROG_CC
22AC_PROG_CXX
23
24AX_CC_MAXOPT
25AX_GCC_WARN_UNUSED_RESULT
26AX_C___ATTRIBUTE__
27
28AX_CXX_COMPILE_STDCXX_11_NO_OVERRIDE
29
30AC_PROG_GREP
31AC_PROG_LIBTOOL
32AC_PROG_SED
33AM_PATH_PYTHON([2.5], [], [:])
34AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
35
36AC_CHECK_PROG(CYGPATH, cygpath, cygpath, [])
37AC_CHECK_PROG(PERL, perl, perl, [])
38AC_CHECK_PROG(PDFLATEX, pdflatex, pdflatex, [])
39AC_CHECK_PROG(POD2HTML, pod2html, pod2html, [])
40
41AC_SUBST(OS_SRCDIR)
42if test "$host_os" = "mingw32" -a -n "$CYGPATH"; then
43	OS_SRCDIR=`$CYGPATH -m "$srcdir"`
44else
45	OS_SRCDIR="$srcdir"
46fi
47
48AM_CONDITIONAL(GENERATE_DOC, test -n "$PERL" -a -n "$PDFLATEX" -a -n "$POD2HTML")
49
50AX_CREATE_STDINT_H(include/isl/stdint.h)
51
52AC_ARG_WITH([int],
53	    [AS_HELP_STRING([--with-int=gmp|imath|imath-32],
54			    [Which package to use to represent
55				multi-precision integers [default=gmp]])],
56	    [], [with_int=gmp])
57case "$with_int" in
58gmp|imath|imath-32)
59	;;
60*)
61	AC_MSG_ERROR(
62	    [bad value ${withval} for --with-int (use gmp, imath or imath-32)])
63esac
64
65AC_SUBST(MP_CPPFLAGS)
66AC_SUBST(MP_CFLAGS)
67AC_SUBST(MP_LDFLAGS)
68AC_SUBST(MP_LIBS)
69case "$with_int" in
70gmp)
71	AX_DETECT_GMP
72	;;
73imath|imath-32)
74	AX_DETECT_IMATH
75	;;
76esac
77if test "x$with_int" = "ximath-32" -a "x$GCC" = "xyes"; then
78	MP_CFLAGS="-std=gnu99 $MP_CFLAGS"
79fi
80
81AM_CONDITIONAL(IMATH_FOR_MP, test x$with_int = ximath -o x$with_int = ximath-32)
82AM_CONDITIONAL(GMP_FOR_MP, test x$with_int = xgmp)
83
84AM_CONDITIONAL(HAVE_CXX11, test "x$HAVE_CXX11" = "x1")
85AM_CONDITIONAL(SMALL_INT_OPT, test "x$with_int" == "ximath-32")
86AS_IF([test "x$with_int" == "ximath-32"], [
87	AC_DEFINE([USE_SMALL_INT_OPT], [], [Use small integer optimization])
88])
89
90AC_CHECK_DECLS(ffs,[],[],[#include <strings.h>])
91AC_CHECK_DECLS(__builtin_ffs,[],[],[])
92AC_CHECK_DECLS([_BitScanForward],[],[],[#include <intrin.h>])
93if test "x$ac_cv_have_decl_ffs" = xno -a \
94		"x$ac_cv_have_decl___builtin_ffs" = xno -a \
95		"x$ac_cv_have_decl__BitScanForward" = xno; then
96	AC_MSG_ERROR([No ffs implementation found])
97fi
98AC_CHECK_DECLS([strcasecmp,strncasecmp],[],[],[#include <strings.h>])
99AC_CHECK_DECLS([_stricmp,_strnicmp],[],[],[#include <string.h>])
100if test "x$ac_cv_have_decl_strcasecmp" = xno -a \
101		"x$ac_cv_have_decl__stricmp" = xno; then
102	AC_MSG_ERROR([No strcasecmp implementation found])
103fi
104if test "x$ac_cv_have_decl_strncasecmp" = xno -a \
105		"x$ac_cv_have_decl__strnicmp" = xno; then
106	AC_MSG_ERROR([No strncasecmp implementation found])
107fi
108AC_CHECK_DECLS([snprintf,_snprintf],[],[],[#include <stdio.h>])
109if test "x$ac_cv_have_decl_snprintf" = xno -a \
110		"x$ac_cv_have_decl__snprintf" = xno; then
111	AC_MSG_ERROR([No snprintf implementation found])
112fi
113
114AX_SUBMODULE(clang,system|no,no)
115case "$with_clang" in
116system)
117	AX_DETECT_CLANG
118	;;
119esac
120AM_CONDITIONAL(HAVE_CLANG, test $with_clang = system)
121AM_CONDITIONAL(HAVE_CPP_ISL_H,
122    [(test $with_clang = system -a "x$HAVE_CXX11" = "x1") || \
123     test -f $srcdir/include/isl/cpp.h])
124
125AX_SET_WARNING_FLAGS
126
127AC_SUBST(WARNING_FLAGS)
128
129PACKAGE_CFLAGS="$MP_CPPFLAGS"
130PACKAGE_LDFLAGS="$MP_LDFLAGS"
131PACKAGE_LIBS="-lisl $MP_LIBS"
132AX_CREATE_PKGCONFIG_INFO
133
134AX_DETECT_GIT_HEAD
135
136AC_SUBST([CONFIG_STATUS_DEPENDENCIES], [$LLVM_CONFIG])
137AH_BOTTOM([#include <isl_config_post.h>])
138AC_CONFIG_HEADERS(isl_config.h)
139AC_CONFIG_FILES(isl_srcdir.c)
140AC_CONFIG_FILES(Makefile)
141AC_CONFIG_FILES(doc/Makefile)
142if test $with_clang = system; then
143	AC_CONFIG_FILES(interface/Makefile)
144fi
145AC_CONFIG_FILES([bound_test.sh], [chmod +x bound_test.sh])
146AC_CONFIG_FILES([codegen_test.sh], [chmod +x codegen_test.sh])
147AC_CONFIG_FILES([pip_test.sh], [chmod +x pip_test.sh])
148AC_CONFIG_FILES([flow_test.sh], [chmod +x flow_test.sh])
149AC_CONFIG_FILES([schedule_test.sh], [chmod +x schedule_test.sh])
150AC_CONFIG_COMMANDS_POST([
151	dnl pass on arguments to subdir configures, but don't
152	dnl add them to config.status
153	ac_configure_args="$ac_configure_args $isl_configure_args"
154])
155AC_OUTPUT
156