# 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 # # 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]) ])