* virt-top/virt_top.ml: Ignore transient error from
[virt-top.git] / aclocal.m4
1 dnl autoconf macros for OCaml
2 dnl by Olivier Andrieu
3 dnl modified by Richard W.M. Jones
4 dnl from a configure.in by Jean-Christophe FilliĆ¢tre,
5 dnl from a first script by Georges Mariano
6 dnl
7 dnl defines AC_PROG_OCAML that will check the OCaml compiler
8 dnl and set the following variables :
9 dnl   OCAMLC        "ocamlc" if present in the path, or a failure
10 dnl                 or "ocamlc.opt" if present with same version number as ocamlc
11 dnl   OCAMLOPT      "ocamlopt" (or "ocamlopt.opt" if present), or "no"
12 dnl   OCAMLBEST     either "byte" if no native compiler was found, 
13 dnl                 or "opt" otherwise
14 dnl   OCAMLDEP      "ocamldep"
15 dnl   OCAMLLIB      the path to the ocaml standard library
16 dnl   OCAMLVERSION  the ocaml version number
17 AC_DEFUN(AC_PROG_OCAML,
18 [dnl
19 # checking for ocamlc
20 AC_CHECK_PROG(OCAMLC,ocamlc,ocamlc,AC_MSG_ERROR(Cannot find ocamlc.))
21 OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
22 AC_MSG_RESULT(OCaml version is $OCAMLVERSION)
23 OCAMLLIB=`$OCAMLC -where 2>/dev/null || $OCAMLC -v|tail -1|cut -d ' ' -f 4`
24 AC_MSG_RESULT(OCaml library path is $OCAMLLIB)
25 # checking for ocamlopt
26 AC_CHECK_PROG(OCAMLOPT,ocamlopt,ocamlopt)
27 OCAMLBEST=byte
28 if test -z "$OCAMLOPT"; then
29         AC_MSG_WARN(Cannot find ocamlopt; bytecode compilation only.)
30 else
31         TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
32         if test "$TMPVERSION" != "$OCAMLVERSION" ; then
33             AC_MSG_RESULT(versions differs from ocamlc; ocamlopt discarded.)
34             unset OCAMLOPT
35         else
36             OCAMLBEST=opt
37         fi
38 fi
39 # checking for ocamlc.opt
40 AC_CHECK_PROG(OCAMLCDOTOPT,ocamlc.opt,ocamlc.opt)
41 if test -z "$OCAMLCDOTOPT"; then
42         TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
43         if test "$TMPVERSION" != "$OCAMLVERSION" ; then
44             AC_MSG_RESULT(versions differs from ocamlc; ocamlc.opt discarded.)
45         else
46             OCAMLC=$OCAMLCDOTOPT
47         fi
48 fi
49 # checking for ocamlopt.opt
50 if test "$OCAMLOPT" ; then
51     AC_CHECK_PROG(OCAMLOPTDOTOPT,ocamlopt.opt,ocamlopt.opt)
52     if test "$OCAMLOPTDOTOPT"; then
53         TMPVER=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
54         if test "$TMPVER" != "$OCAMLVERSION" ; then
55             AC_MSG_RESULT(version differs from ocamlc; ocamlopt.opt discarded.)
56         else
57             OCAMLOPT=$OCAMLOPTDOTOPT
58         fi
59     fi
60 fi
61 # checking for ocamldep
62 AC_CHECK_PROG(OCAMLDEP,ocamldep,ocamldep,AC_MSG_ERROR(Cannot find ocamldep.))
63
64 #checking for ocamlmktop
65 AC_CHECK_PROG(OCAMLMKTOP,ocamlmktop,ocamlmktop, AC_MSG_WARN(Cannot find ocamlmktop.))
66 #checking for ocamlmklib
67 AC_CHECK_PROG(OCAMLMKLIB,ocamlmklib,ocamlmklib, AC_MSG_WARN(Cannot find ocamlmklib.))
68 # checking for ocamldoc
69 AC_CHECK_PROG(OCAMLDOC,ocamldoc,ocamldoc, AC_MSG_WARN(Cannot find ocamldoc.))
70
71
72 AC_SUBST(OCAMLC)
73 AC_SUBST(OCAMLOPT)
74 AC_SUBST(OCAMLDEP)
75 AC_SUBST(OCAMLBEST)
76 AC_SUBST(OCAMLVERSION)
77 AC_SUBST(OCAMLLIB)
78 AC_SUBST(OCAMLMKLIB)
79 AC_SUBST(OCAMLDOC)
80 ])
81 dnl
82 dnl
83 dnl
84 dnl macro AC_PROG_OCAML_TOOLS will check OCamllex and OCamlyacc :
85 dnl   OCAMLLEX      "ocamllex" or "ocamllex.opt" if present
86 dnl   OCAMLYACC     "ocamlyac"
87 AC_DEFUN(AC_PROG_OCAML_TOOLS,
88 [dnl
89 # checking for ocamllex and ocamlyacc
90 AC_CHECK_PROG(OCAMLLEX,ocamllex,ocamllex)
91 if test "$OCAMLLEX"; then
92     AC_CHECK_PROG(OCAMLLEXDOTOPT,ocamllex.opt,ocamllex.opt)
93     if test "$OCAMLLEXDOTOPT"; then
94         OCAMLLEX=$OCAMLLEXDOTOPT
95     fi
96 else
97         AC_MSG_ERROR(Cannot find ocamllex.)
98 fi
99 AC_CHECK_PROG(OCAMLYACC,ocamlyacc,ocamlyacc,AC_MSG_ERROR(Cannot find ocamlyacc.))
100 AC_SUBST(OCAMLLEX)
101 AC_SUBST(OCAMLYACC)
102 ])
103 dnl
104 dnl
105 dnl
106 dnl AC_PROG_CAMLP4 checks for Camlp4
107 AC_DEFUN(AC_PROG_CAMLP4,
108 [dnl
109 AC_REQUIRE([AC_PROG_OCAML])
110 # checking for camlp4
111 AC_CHECK_PROG(CAMLP4,camlp4,camlp4)
112 if test "$CAMLP4"; then
113         TMPVERSION=`$CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p'`
114         if test "$TMPVERSION" != "$OCAMLVERSION" ; then
115             AC_MSG_RESULT(versions differs from ocamlc)
116         fi
117 fi
118 ])
119 dnl
120 dnl
121 dnl
122 dnl macro AC_PROG_FINDLIB will check for the presence of
123 dnl   ocamlfind
124 AC_DEFUN(AC_PROG_FINDLIB,
125 [dnl
126 # checking for ocamlfind
127 AC_CHECK_PROG(OCAMLFIND,ocamlfind,ocamlfind,
128         AC_MSG_ERROR(ocamlfind not found))
129 AC_SUBST(OCAMLFIND)
130 ])
131 dnl
132 dnl
133 dnl
134 dnl AC_CHECK_OCAML_PKG checks wether a findlib package is present
135 dnl   defines pkg_name to "yes"
136 AC_DEFUN(AC_CHECK_OCAML_PKG,
137 [dnl
138 AC_REQUIRE([AC_PROG_FINDLIB])
139 AC_MSG_CHECKING(findlib package $1)
140 if $OCAMLFIND query $1 >/dev/null 2>/dev/null; then
141 AC_MSG_RESULT(found)
142 eval "pkg_`echo $1 | tr - _`=yes"
143 else
144 AC_MSG_RESULT(not found)
145 eval "pkg_`echo $1 | tr - _`=no"
146 fi
147 ])