- # ===========================================================================
- # http://www.nongnu.org/autoconf-archive/lua.html
- # ===========================================================================
- #
- # SYNOPSIS
- #
- # AX_WITH_LUA
- # AX_LUA_VERSION (MIN-VERSION, [TOO-BIG-VERSION])
- # AX_LUA_HEADERS
- # AX_LUA_LIBS
- # AX_LUA_LIB_VERSION (MIN-VERSION, [TOO-BIG-VERSION])
- #
- # DESCRIPTION
- #
- # Detect Lua interpreter, headers and libraries, optionally enforcing a
- # particular range of versions.
- #
- # AX_WITH_LUA searches for Lua interpreter and defines LUA if found.
- #
- # AX_LUA_VERSION checks that the version of Lua is at least MIN-VERSION
- # and less than TOO-BIG-VERSION, if given.
- #
- # AX_LUA_HEADERS searches for Lua headers and defines HAVE_LUA_H and
- # HAVE_LUALIB_H if found, and defines LUA_INCLUDE to the preprocessor
- # flags needed, if any.
- #
- # AX_LUA_LIBS searches for Lua libraries and defines LUA_LIB if found.
- #
- # AX_LUA_LIB_VERSION checks that the Lua libraries' version is at least
- # MIN-VERSION, and less than TOO-BIG-VERSION, if given.
- #
- # Versions are specified as three-digit integers whose first digit is the
- # major version and last two are the minor version (the same format as
- # LUA_VERSION_NUM in lua.h); e.g. 501 for Lua 5.1. The revision (e.g. the
- # "3" in "5.1.3") is ignored.
- #
- # The following options are added by these macros:
- #
- # --with-lua-prefix=DIR Lua files are in DIR.
- # --with-lua-suffix=ARG Lua binaries and library files are
- # suffixed with ARG.
- # --with-lua-includes=DIR Lua include files are in DIR.
- # --with-lua-libraries=DIR Lua library files are in DIR.
- #
- # LICENSE
- #
- # Copyright (c) 2009 Reuben Thomas <rrt@sc3d.org>
- # Copyright (c) 2009 Matthieu Moy <Matthieu.Moy@imag.fr>
- # Copyright (c) 2009 Tom Payne <twpayne@gmail.com>
- #
- # This program is free software: you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by the
- # Free Software Foundation, either version 3 of the License, or (at your
- # option) any later version.
- #
- # This program 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 General
- # Public License for more details.
- #
- # You should have received a copy of the GNU General Public License along
- # with this program. If not, see <http://www.gnu.org/licenses/>.
- #
- # As a special exception, the respective Autoconf Macro's copyright owner
- # gives unlimited permission to copy, distribute and modify the configure
- # scripts that are the output of Autoconf when processing the Macro. You
- # need not follow the terms of the GNU General Public License when using
- # or distributing such scripts, even though portions of the text of the
- # Macro appear in them. The GNU General Public License (GPL) does govern
- # all other use of the material that constitutes the Autoconf Macro.
- #
- # This special exception to the GPL applies to versions of the Autoconf
- # Macro released by the Autoconf Archive. When you make and distribute a
- # modified version of the Autoconf Macro, you may extend this special
- # exception to the GPL to apply to your modified version as well.
-
- dnl Helper function to declare extra options
- AC_DEFUN([_AX_LUA_OPTS],
- [AC_ARG_WITH([lua-prefix],
- [AS_HELP_STRING([--with-lua-prefix=DIR],
- [Lua files are in DIR])])
- AC_ARG_WITH([lua-suffix],
- [AS_HELP_STRING([--with-lua-suffix=ARG],
- [Lua binary and library files are suffixed with ARG])])
- AC_ARG_WITH([lua-includes],
- [AS_HELP_STRING([--with-lua-includes=DIR],
- [Lua include files are in DIR])])
- AC_ARG_WITH([lua-libraries],
- [AS_HELP_STRING([--with-lua-libraries=DIR],
- [Lua library files are in DIR])])])dnl
-
- AC_DEFUN([AX_WITH_LUA],
- [_AX_LUA_OPTS
- if test "x$with_lua_prefix" = x; then
- lua_search_path="$PATH"
- else
- lua_search_path="$with_lua_prefix/bin"
- fi
- if test "x$LUA" = x; then
- AC_PATH_PROG([LUA], [lua$with_lua_suffix], [], [$lua_search_path])
- fi])dnl
-
- dnl Helper function to parse minimum & maximum versions
- AC_DEFUN([_AX_LUA_VERSIONS],
- [lua_min_version=$1
- lua_max_version=$2
- if test "x$lua_min_version" = x; then
- lua_min_version=0
- fi
- if test "x$lua_max_version" = x; then
- lua_max_version=1000
- fi])
-
- AC_DEFUN([AX_LUA_VERSION],
- [_AX_LUA_OPTS
- AC_MSG_CHECKING([Lua version is in range $1 <= v < $2])
- _AX_LUA_VERSIONS($1, $2)
- if test "x$LUA" != x; then
- lua_text_version=$($LUA -v 2>&1 | head -n 1 | cut -d' ' -f2)
- case $lua_text_version in
- 5.1*)
- lua_version=501
- ;;
- 5.0*)
- lua_version=500
- ;;
- 4.0*)
- lua_version=400
- ;;
- *)
- lua_version=-1
- ;;
- esac
- if test $lua_version -ge "$lua_min_version" -a $lua_version -lt "$lua_max_version"; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE([Lua version not in desired range.])
- fi
- else
- AC_MSG_RESULT([no])
- AC_MSG_FAILURE([Lua version not in desired range.])
- fi])dnl
-
- AC_DEFUN([AX_LUA_HEADERS],
- [_AX_LUA_OPTS
- if test "x$with_lua_includes" != x; then
- LUA_INCLUDE="-I$with_lua_includes"
- elif test "x$with_lua_prefix" != x; then
- LUA_INCLUDE="-I$with_lua_prefix/include"
- fi
- LUA_OLD_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $LUA_INCLUDE"
- AC_CHECK_HEADERS([lua.h lualib.h])
- CPPFLAGS="$LUA_OLD_CPPFLAGS"])dnl
-
- AC_DEFUN([AX_LUA_LIBS],
- [_AX_LUA_OPTS
- if test "x$with_lua_libraries" != x; then
- LUA_LIB="-L$with_lua_libraries"
- elif test "x$with_lua_prefix" != x; then
- LUA_LIB="-L$with_lua_prefix/lib"
- fi
- AC_CHECK_LIB([m], [exp], [lua_extra_libs="$lua_extra_libs -lm"], [])
- AC_CHECK_LIB([dl], [dlopen], [lua_extra_libs="$lua_extra_libs -ldl"], [])
- AC_CHECK_LIB([lua$with_lua_suffix],
- [lua_call],
- [LUA_LIB="$LUA_LIB -llua$with_lua_suffix $lua_extra_libs"],
- [],
- [$LUA_LIB $lua_extra_libs])])dnl
-
- AC_DEFUN([AX_LUA_LIB_VERSION],
- [_AX_LUA_OPTS
- AC_MSG_CHECKING([liblua version is in range $1 <= v < $2])
- _AX_LUA_VERSIONS($1, $2)
- LUA_OLD_LIBS="$LIBS"
- LIBS="$LIBS $LUA_LIB"
- LUA_OLD_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $LUA_INCLUDE"
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <lua.h>
- #include <stdlib.h>
- #include <stdio.h>
- int main()
- {
- printf("(found %s, %d)... ", LUA_VERSION, LUA_VERSION_NUM);
- if (LUA_VERSION_NUM >= $lua_min_version && LUA_VERSION_NUM < $lua_max_version)
- exit(EXIT_SUCCESS);
- exit(EXIT_FAILURE);
- }
- ]])],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_FAILURE([Lua libraries version not in desired range])])
- LIBS="$LUA_OLD_LIBS"
- CPPFLAGS="$LUA_OLD_CPPFLAGS"])dnl