File: want_lua.m4

package info (click to toggle)
dovecot 1%3A2.4.1%2Bdfsg1-6
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 46,224 kB
  • sloc: ansic: 596,204; makefile: 7,825; sh: 6,005; cpp: 1,866; perl: 487; yacc: 412; lex: 320; python: 253; xml: 232
file content (71 lines) | stat: -rw-r--r-- 2,235 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
AC_DEFUN([DOVECOT_WANT_LUA], [
  have_lua=no

  AS_IF([test "$want_lua" != "no"], [
    AS_IF([test "$LUA_CFLAGS" = ""], [
      dnl Use pkgconfig to first find out all luas that are there
      LUAPCS=$($PKG_CONFIG --list-all | $EGREP "lua-?...? " | sort -r)
      dnl Then we pick suitable one
      for LUAPC in $LUAPCS lua; do
        PKG_CHECK_MODULES([LUA], [$LUAPC >= 5.1 $LUAPC != 5.2], [
          have_lua=yes
          AC_MSG_NOTICE([using library $LUAPC])
          break
        ], [
          :
        ])
      done
    ], [have_lua=yes])
    AS_IF([test "$want_lua" = "yes" && test "$have_lua" = "no"], [
      AC_MSG_ERROR([cannot build with Lua support: lua not found])
    ])
  ])

  AS_IF([test "$have_lua" != "no"], [
    AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have Lua])

    AS_IF([test "$want_lua" != "plugin"], [
      AC_DEFINE([BUILTIN_LUA],, [Lua support is builtin])
    ])

    dnl at this point $want_lua is either "plugin", "auto", or "yes", so
    dnl add values to userdb and passdb accordingly
    AS_IF([test "$want_lua" = "plugin"], [
      with_lua_plugin=yes
      userdb="$userdb lua (plugin)"
      passdb="$passdb lua (plugin)"
    ], [
      userdb="$userdb lua"
      passdb="$passdb lua"
    ])

    dnl Check if various lua functions are present
    old_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $LUA_CFLAGS"
    old_LIBS="$LIBS"
    LIBS="$LIBS $LUA_LIBS"

    AC_CHECK_FUNC([lua_newstate],,AC_MSG_ERROR([cannot build with Lua support: missing critical function]))

    AC_CHECK_FUNCS([luaL_setfuncs])
    AC_CHECK_FUNCS([luaL_setmetatable])
    AC_CHECK_FUNCS([lua_isinteger])
    AC_CHECK_FUNCS([lua_resume])
    AC_CHECK_FUNCS([lua_seti])
    AC_CHECK_FUNCS([lua_tointegerx])
    AC_CHECK_FUNCS([lua_yieldk])

    AS_IF([test "$ac_cv_func_lua_resume" = "yes" -a \
                "$ac_cv_func_lua_yieldk" = "yes"], [
      AC_DEFINE([DLUA_WITH_YIELDS],, [Lua scripts will be able to yield])
      dlua_with_yields=yes
    ])

    CFLAGS="$old_CFLAGS"
    LIBS="$old_LIBS"
  ])

  AM_CONDITIONAL([AUTH_LUA_PLUGIN], [test "$with_lua_plugin" = "yes"])
  AM_CONDITIONAL([HAVE_LUA], [test "$have_lua" != "no"])
  AM_CONDITIONAL([DLUA_WITH_YIELDS], [test "$dlua_with_yields" = "yes"])
])