| # autoconf input for Objective Caml programs |
| # Copyright (C) 2001 Jean-Christophe FilliĆ¢tre |
| # from a first script by Georges Mariano |
| # |
| # Modified to be an autoconf m4 function in 2006 |
| # for BRLTTY [http://brltty.app/] |
| # by Dave Mielke <dave@mielke.cc> |
| # |
| # This library is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU Library General Public |
| # License version 2, as published by the Free Software Foundation. |
| # |
| # This library is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| # |
| # See the GNU Library General Public License version 2 for more details |
| # (enclosed in the file LGPL). |
| |
| # the script generated by autoconf from this input will set the following |
| # variables: |
| # OCAMLC "ocamlc" if present in the path, or a failure |
| # or "ocamlc.opt" if present with same version number as ocamlc |
| # OCAMLOPT "ocamlopt" (or "ocamlopt.opt" if present), or "no" |
| # OCAMLMKLIB "ocamlkmlib", or "no" |
| # OCAMLBEST either "byte" if no native compiler was found, |
| # or "opt" otherwise |
| # OCAMLDEP "ocamldep" |
| # OCAMLLEX "ocamllex" (or "ocamllex.opt" if present) |
| # OCAMLYACC "ocamlyac" |
| # OCAMLLIB the path to the ocaml standard library |
| # OCAMLVERSION the ocaml version number |
| # OCAMLWEB "ocamlweb" (not mandatory) |
| # OCAMLWIN32 "yes"/"no" depending on Sys.os_type = "Win32" |
| |
| AC_DEFUN([BRLTTY_OCAML_BINDINGS], [dnl |
| # Check for Ocaml compilers |
| |
| # we first look for ocamlc in the path; if not present, we fail |
| AC_CHECK_PROG(OCAMLC,ocamlc,ocamlc,no) |
| if test "$OCAMLC" = no ; then |
| AC_MSG_WARN([Cannot find ocamlc.]) |
| OCAML_OK=false |
| else |
| # checking for ocamlmklib |
| AC_CHECK_PROG(OCAMLMKLIB,ocamlmklib,ocamlmklib,no) |
| if test "$OCAMLMKLIB" = no ; then |
| AC_MSG_WARN([Cannot find ocamlmklib.]) |
| OCAML_OK=false |
| else |
| OCAML_OK=true |
| # we extract Ocaml version number and library path |
| OCAMLVERSION=`$OCAMLC -version` |
| AC_MSG_NOTICE([OCaml version is $OCAMLVERSION]) |
| |
| OCAMLLIB=`$OCAMLC -where` |
| AC_MSG_NOTICE([OCaml library path is $OCAMLLIB]) |
| |
| # then we look for ocamlopt; if not present, we issue a warning |
| # if the version is not the same, we also discard it |
| # we set OCAMLBEST to "opt" or "byte", whether ocamlopt is available or not |
| AC_CHECK_PROG(OCAMLOPT,ocamlopt,ocamlopt,no) |
| OCAMLBEST=byte |
| OCAML_NCLIB= |
| if test "$OCAMLOPT" = no ; then |
| AC_MSG_WARN([Cannot find ocamlopt; bytecode compilation only.]) |
| else |
| AC_MSG_CHECKING(ocamlopt version) |
| TMPVERSION=`$OCAMLOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' ` |
| if test "$TMPVERSION" != "$OCAMLVERSION" ; then |
| AC_MSG_RESULT(differs from ocamlc; ocamlopt discarded.) |
| OCAMLOPT=no |
| else |
| AC_MSG_RESULT(ok) |
| OCAMLBEST=opt |
| OCAML_NCLIB="\$(OCAML_LIB).cmxa" |
| fi |
| fi |
| |
| # checking for ocamlc.opt |
| AC_CHECK_PROG(OCAMLCDOTOPT,ocamlc.opt,ocamlc.opt,no) |
| if test "$OCAMLCDOTOPT" != no ; then |
| AC_MSG_CHECKING(ocamlc.opt version) |
| TMPVERSION=`$OCAMLCDOTOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' ` |
| if test "$TMPVERSION" != "$OCAMLVERSION" ; then |
| AC_MSG_RESULT(differs from ocamlc; ocamlc.opt discarded.) |
| else |
| AC_MSG_RESULT(ok) |
| OCAMLC=$OCAMLCDOTOPT |
| fi |
| fi |
| |
| # checking for ocamlopt.opt |
| if test "$OCAMLOPT" != no ; then |
| AC_CHECK_PROG(OCAMLOPTDOTOPT,ocamlopt.opt,ocamlopt.opt,no) |
| if test "$OCAMLOPTDOTOPT" != no ; then |
| AC_MSG_CHECKING(ocamlc.opt version) |
| TMPVER=`$OCAMLOPTDOTOPT -v | sed -n -e 's|.*version *\(.*\)$|\1|p' ` |
| if test "$TMPVER" != "$OCAMLVERSION" ; then |
| AC_MSG_RESULT(differs from ocamlc; ocamlopt.opt discarded.) |
| else |
| AC_MSG_RESULT(ok) |
| OCAMLOPT=$OCAMLOPTDOTOPT |
| fi |
| fi |
| fi |
| |
| # platform |
| AC_MSG_CHECKING(platform) |
| if echo "let _ = Sys.os_type;;" | ocaml | grep -q Win32; then |
| AC_MSG_RESULT(Win32) |
| OCAMLWIN32=yes |
| OCAML_CLIBS=libbrlapi_stubs.a |
| elif echo "let _ = Sys.os_type;;" | ocaml | grep -q Cygwin; then |
| AC_MSG_RESULT(Cygwin) |
| OCAMLWIN32=yes |
| OCAML_CLIBS=libbrlapi_stubs.a |
| else |
| AC_MSG_RESULT(Unix) |
| OCAMLWIN32=no |
| OCAML_CLIBS="libbrlapi_stubs.a dllbrlapi_stubs.so" |
| fi |
| |
| # checking for ocamlfindlib |
| AC_CHECK_PROG(OCAMLFIND,ocamlfind,ocamlfind,no) |
| if test "$OCAMLFIND" = ocamlfind; then |
| OCAMLC='ocamlfind ocamlc' |
| if test "$OCAMLOPT" = ocamlopt; then |
| OCAMLOPT='ocamlfind ocamlopt' |
| fi |
| OCAML_INSTALL_TARGET=install-with-findlib |
| OCAML_UNINSTALL_TARGET=uninstall-without-findlib |
| else |
| OCAML_INSTALL_TARGET=install-without-findlib |
| OCAML_UNINSTALL_TARGET=uninstall-without-findlib |
| AC_MSG_WARN([Cannot find ocamlfind.]) |
| fi |
| fi |
| fi |
| |
| # substitutions to perform |
| AC_SUBST(OCAMLC) |
| AC_SUBST(OCAMLOPT) |
| AC_SUBST(OCAMLMKLIB) |
| AC_SUBST(OCAMLBEST) |
| AC_SUBST(OCAMLVERSION) |
| AC_SUBST(OCAMLLIB) |
| AC_SUBST(OCAMLWIN32) |
| AC_SUBST(OCAML_CLIBS) |
| AC_SUBST(OCAML_NCLIB) |
| AC_SUBST(OCAMLFIND) |
| AC_SUBST(OCAML_INSTALL_TARGET) |
| AC_SUBST(OCAML_UNINSTALL_TARGET) |
| |
| AC_SUBST([OCAML_OK]) |
| ]) |