3 [Kim Nguyễn <kn@lri.fr>],
8 AC_ARG_WITH([ocamlfind],
9 AS_HELP_STRING([--with-ocamlfind=PATH], [location of the ocamlfind binary]),
10 [OCAMLFIND="$withval"])
11 AC_MSG_CHECKING([for ocamlfind ($OCAMLFIND)])
12 $OCAMLFIND list >/dev/null 2>&1
14 AC_MSG_RESULT([found])
15 OCAMLC="$OCAMLFIND ocamlc"
16 OCAMLOPT="$OCAMLFIND ocamlopt"
17 OCAMLDEP="$OCAMLFIND ocamldep"
19 AC_MSG_RESULT([not found])
20 AC_MSG_ERROR([Cannot find ocamlfind.])
26 AC_MSG_CHECKING([for $OCAMLC])
27 $OCAMLC >/dev/null 2>&1
31 AC_MSG_RESULT([failed])
32 AC_MSG_ERROR(Cannot find ocamlc.)
37 AC_MSG_CHECKING([for $OCAMLOPT])
38 $OCAMLOPT >/dev/null 2>&1
42 AC_MSG_RESULT([failed])
43 AC_MSG_ERROR(Cannot find ocamlopt.)
48 AC_MSG_CHECKING([for $OCAMLDEP])
49 $OCAMLDEP >/dev/null 2>&1
53 AC_MSG_RESULT([failed])
54 AC_MSG_ERROR(Cannot find ocamldep.)
59 OCAMLVERSION=$($OCAMLC -version)
60 AC_MSG_CHECKING([ocaml version])
61 AC_MSG_RESULT([$OCAMLVERSION])
63 case "$OCAMLVERSION" in
65 *) AC_MSG_ERROR([OCaml $OCAMLVERSION is too old])
69 AC_SUBST(OCAMLVERSION)
71 dnl ocamlyacc and ocamllex are not needed
73 dnl OCAMLYACC=ocamlyacc
74 dnl AC_ARG_WITH([ocamlyacc],
75 dnl AS_HELP_STRING([--with-ocamlyacc=PATH], [location of the ocamlyacc binary]),
76 dnl [OCAMLYACC="$withval"])
77 dnl AC_MSG_CHECKING([for ocamlyacc ($OCAMLYACC)])
78 dnl OCAMLYACC_VERSION=$($OCAMLYACC -version 2>/dev/null || echo foo)
79 dnl case "$OCAMLYACC_VERSION" in
81 dnl AC_MSG_RESULT([ok])
84 dnl AC_MSG_RESULT([failed])
85 dnl AC_MSG_ERROR([Cannot find ocamlyacc])
88 dnl AC_MSG_RESULT([failed])
89 dnl AC_MSG_ERROR([Bad ocamlyacc version])
92 dnl AC_SUBST([OCAMLYACC])
96 dnl AC_ARG_WITH([ocamllex],
97 dnl AS_HELP_STRING([--with-ocamllex=PATH], [location of the ocamllex binary]),
98 dnl [OCAMLLEX="$withval"])
99 dnl AC_MSG_CHECKING([for ocamllex ($OCAMLLEX)])
100 dnl OCAMLLEX_VERSION=$($OCAMLLEX -version 2>/dev/null || echo foo)
101 dnl case "$OCAMLLEX_VERSION" in
103 dnl AC_MSG_RESULT([ok])
106 dnl AC_MSG_RESULT([failed])
107 dnl AC_MSG_ERROR([Cannot find ocamllex])
110 dnl AC_MSG_RESULT([failed])
111 dnl AC_MSG_ERROR([Bad ocamllex version])
114 dnl AC_SUBST([OCAMLLEX])
119 AC_ARG_WITH([camlp4],
120 AS_HELP_STRING([--with-camlp4=PATH], [location of the camlp4 binary]),
122 AC_MSG_CHECKING([for camlp4 ($CAMLP4)])
123 CAMLP4_VERSION=$($CAMLP4 -version 2>/dev/null || echo foo)
124 case "$CAMLP4_VERSION" in
129 AC_MSG_RESULT([failed])
130 AC_MSG_ERROR([Cannot find camlp4])
133 AC_MSG_RESULT([failed])
134 AC_MSG_ERROR([Bad camlp4 version])
140 AC_MSG_CHECKING([platform])
141 OCAML_PLATFORM=$(echo 'print_endline Sys.os_type;;' | ocaml -noprompt | grep '^@<:@A-Z@:>@')
142 AC_MSG_RESULT([$OCAML_PLATFORM])
143 if test "$OCAML_PLATFORM" = "Win32"; then
148 AC_SUBST(OCAML_PLATFORM)
152 AC_MSG_CHECKING([for ulex])
153 ulex_path=`$OCAMLFIND query ulex 2>/dev/null`
154 if test "$ulex_path" ; then
155 AC_MSG_RESULT([found])
157 AC_MSG_RESULT([not found])
158 AC_MSG_ERROR([Cannot find ulex.])
163 AC_ARG_WITH([menhir],
164 AS_HELP_STRING([--with-menhir=PATH], [location of the menhir binary]),
167 AC_MSG_CHECKING([for menhir ($MENHIR)])
169 MENHIR_VERSION=$($MENHIR --version 2>/dev/null || echo not_found)
170 MENHIR_VERSION=$(echo "$MENHIR_VERSION" | cut -f 2- -d ',' | cut -f 2- -d ' ')
171 case "$MENHIR_VERSION" in
172 'version 201'[[0-9]]*)
173 AC_MSG_RESULT([ok (${MENHIR_VERSION})])
176 AC_MSG_RESULT([failed])
177 AC_MSG_ERROR([Cannot find menhir])
180 AC_MSG_RESULT([failed])
181 AC_MSG_ERROR([Your version of menhir is too old (${MENHIR_VERSION})])
187 AC_MSG_CHECKING([for expat])
188 expat_path=`$OCAMLFIND query expat 2>/dev/null`
189 if test "$expat_path" ; then
190 AC_MSG_RESULT([found])
192 AC_MSG_RESULT([not found])
193 AC_MSG_ERROR([Cannot find expat.])
198 OCAMLFLAGS=$OCAMLFLAGS
199 CAMLP4FLAGS=$CAMLP4FLAGS
200 OCAMLCFLAGS=$OCAMLCFLAGS
201 OCAMLOPTFLAGS=$OCAMLOPTFLAGS
203 AC_ARG_ENABLE([debug],
204 [ --enable-debug build in debug mode],
208 if test "x$DEBUG" = "xyes"; then
209 OCAMLFLAGS="$OCAMLFLAGS -g"
210 CAMLP4FLAGS="$CAMLP4FLAGS -DDEBUG"
214 AC_ARG_ENABLE([profile],
215 [ --enable-profile compile in profiling code],
216 [PROFILE=$enableval],
219 if test "x$PROFILE" = "xyes"; then
220 OCAMLOPTFLAGS="$OCAMLOPTFLAGS -p"
221 OCAMLC="$OCAMLFIND ocamlcp"
225 AC_ARG_ENABLE([trace],
226 [ --enable-trace add tracing code],
230 if test "x$TRACE" = "xyes"; then
231 CAMLP4FLAGS="$CAMLP4FLAGS -DHTMLTRACE"
236 AC_ARG_ENABLE([inline],
237 [ --enable-inline set OCaml inlining level (default=100)],
242 AC_ARG_ENABLE([unsafe],
243 [ --enable-unsafe use unsafe array and string accesses],
247 if test "x$UNSAFE" = "xyes"; then
248 CAMLP4FLAGS="$CAMLP4FLAGS -unsafe"
255 AC_SUBST([REMAKE], [./remake$EXE])
256 if test ! -x "$REMAKE" -o "$REMAKE" -ot remake.cpp; then
257 AC_MSG_NOTICE([creating $REMAKE])
258 REMAKE_LOG=build_remake.log
261 $CXX -Wall -O2 -o remake.exe remake.cpp -lws2_32 > "$REMAKE_LOG" 2>&1
262 if test $? != 0; then
263 cat "$REMAKE_LOG"; rm -f "$REMAKE_LOG";
264 AC_MSG_FAILURE([failed]);
268 $CXX -Wall -O2 -o remake remake.cpp > "$REMAKE_LOG" 2>&1
269 if test $? != 0; then
270 cat "$REMAKE_LOG"; rm -f "$REMAKE_LOG";
271 AC_MSG_FAILURE([failed]);
277 AC_MSG_NOTICE([$REMAKE exists, not rebuilding])
283 AC_SUBST(OCAMLCFLAGS)
284 AC_SUBST(OCAMLOPTFLAGS)
285 AC_SUBST(CAMLP4FLAGS)
286 AC_CONFIG_FILES(Remakefile)
287 AC_CONFIG_FILES(Makefile)