1
2APACHE_MODPATH_INIT(lua)
3
4dnl CHECK_LUA_PATH(PREFIX, INCLUDE-PATH, LIB-PATH, LIB-NAME)
5dnl
6dnl Checks for a specific version of the Lua libraries. Use CHECK_LUA instead,
7dnl which will call this macro.
8dnl
9dnl Sets LUA_CFLAGS and LUA_LIBS, and breaks from its containing loop, if the
10dnl check succeeds.
11AC_DEFUN([CHECK_LUA_PATH], [dnl
12    AC_MSG_CHECKING([for lua.h in $1/$2])
13    if test -f $1/$2/lua.h; then
14        AC_MSG_RESULT([yes])
15        save_CFLAGS=$CFLAGS
16        save_LDFLAGS=$LDFLAGS
17        CFLAGS="$CFLAGS"
18        LDFLAGS="-L$1/$3 $LDFLAGS $lib_m"
19        AC_CHECK_LIB($4, luaL_newstate, [
20            LUA_LIBS="-L$1/$3 -l$4 $lib_m"
21            if test "x$ap_platform_runtime_link_flag" != "x"; then
22               APR_ADDTO(LUA_LIBS, [$ap_platform_runtime_link_flag$1/$3])
23            fi
24            LUA_CFLAGS="-I$1/$2"
25        ])
26        CFLAGS=$save_CFLAGS
27        LDFLAGS=$save_LDFLAGS
28
29        if test -n "${LUA_LIBS}"; then
30            break
31        fi
32    else
33        AC_MSG_RESULT([no])
34    fi
35])
36
37dnl Check for Lua Libraries
38dnl CHECK_LUA(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
39dnl Sets:
40dnl  LUA_CFLAGS
41dnl  LUA_LIBS
42AC_DEFUN([CHECK_LUA],
43[dnl
44
45AC_ARG_WITH(
46    lua,
47    [AC_HELP_STRING([--with-lua=PATH],[Path to the Lua installation prefix])],
48    lua_path="$withval",
49    :)
50
51dnl # Determine lua lib directory
52if test -z "$lua_path"; then
53    test_paths=". /usr/local /usr"
54else
55    test_paths="${lua_path}"
56fi
57
58for pklua in lua lua5.4 lua5.3 lua5.2 lua5.1; do
59  if test -n "$PKGCONFIG" -a -z "$lua_path" \
60     && $PKGCONFIG --atleast-version=5.1 $pklua; then
61    LUA_LIBS="`$PKGCONFIG --libs $pklua`"
62    LUA_CFLAGS="`$PKGCONFIG --cflags $pklua`"
63    LUA_VERSION="`$PKGCONFIG --modversion $pklua`"
64    AC_MSG_NOTICE([using Lua $LUA_VERSION configuration from pkg-config])
65    break
66  fi
67done
68
69if test -z "$LUA_VERSION"; then
70  AC_CHECK_LIB(m, pow, lib_m="-lm")
71  AC_CHECK_LIB(m, sqrt, lib_m="-lm")
72  for x in $test_paths ; do
73    CHECK_LUA_PATH([${x}], [include/lua-5.4], [lib/lua-5.4], [lua-5.4])
74    CHECK_LUA_PATH([${x}], [include/lua5.4], [lib], [lua5.4])
75    CHECK_LUA_PATH([${x}], [include/lua54], [lib/lua54], [lua])
76
77    CHECK_LUA_PATH([${x}], [include/lua-5.3], [lib/lua-5.3], [lua-5.3])
78    CHECK_LUA_PATH([${x}], [include/lua5.3], [lib], [lua5.3])
79    CHECK_LUA_PATH([${x}], [include/lua53], [lib/lua53], [lua])
80
81    CHECK_LUA_PATH([${x}], [include], [lib], [lua])
82
83    CHECK_LUA_PATH([${x}], [include/lua-5.2], [lib/lua-5.2], [lua-5.2])
84    CHECK_LUA_PATH([${x}], [include/lua5.2], [lib], [lua5.2])
85    CHECK_LUA_PATH([${x}], [include/lua52], [lib/lua52], [lua])
86
87    CHECK_LUA_PATH([${x}], [include/lua-5.1], [lib/lua-5.1], [lua-5.1])
88    CHECK_LUA_PATH([${x}], [include/lua5.1], [lib], [lua5.1])
89    CHECK_LUA_PATH([${x}], [include/lua51], [lib/lua51], [lua])
90  done
91fi
92
93AC_SUBST(LUA_LIBS)
94AC_SUBST(LUA_CFLAGS)
95
96if test -z "${LUA_LIBS}"; then
97  AC_MSG_WARN([*** Lua 5.4 5.3 5.2 or 5.1 library not found.])
98  ifelse([$2], ,
99    enable_lua="no"
100    if test -z "${lua_path}"; then
101        AC_MSG_WARN([Lua 5.4 5.3 5.2 or 5.1 library is required])
102    else
103        AC_MSG_ERROR([Lua 5.4 5.3 5.2 or 5.1 library is required])
104    fi,
105    $2)
106else
107  AC_MSG_NOTICE([using '${LUA_LIBS}' for Lua Library])
108  AC_ARG_ENABLE(luajit,APACHE_HELP_STRING(--enable-luajit,Enable LuaJit Support),
109  [
110    if test "$enableval" = "yes"; then
111      APR_ADDTO(MOD_CPPFLAGS, ["-DAP_ENABLE_LUAJIT"])
112    fi
113  ])
114  ifelse([$1], , , $1)
115fi
116])
117
118lua_objects="lua_apr.lo lua_config.lo mod_lua.lo lua_request.lo lua_vmprep.lo lua_dbd.lo lua_passwd.lo"
119
120APACHE_MODULE(lua, Apache Lua Framework, $lua_objects, , , [
121  CHECK_LUA()
122  if test "x$enable_lua" != "xno" ; then
123    APR_ADDTO(MOD_INCLUDES, [$LUA_CFLAGS])
124    APR_ADDTO(MOD_LUA_LDADD, [$LUA_LIBS $CRYPT_LIBS])
125  fi
126])
127
128APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
129
130APACHE_MODPATH_FINISH
131