]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
configure: Detect lua
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 8 Nov 2017 12:09:26 +0000 (14:09 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 24 Nov 2017 09:02:05 +0000 (11:02 +0200)
configure.ac
m4/want_lua.m4 [new file with mode: 0644]

index 154f08f83c85b10aa910f24fefb1bb9818345d46..4ee09d8a869296e18f8f25e290f9f35fc2f55b35 100644 (file)
@@ -541,6 +541,9 @@ userdb="$userdb static"
 dict_drivers=""
 
 dnl *** auth/userdb/dict things
+DOVECOT_WANT_LUA_PLUGIN
+DOVECOT_WANT_LUA
+DOVECOT_WANT_LUAJIT
 DOVECOT_WANT_PREFETCH
 DOVECOT_WANT_PASSWD
 DOVECOT_WANT_SHADOW
@@ -561,6 +564,14 @@ DOVECOT_WANT_VPOPMAIL
 
 DOVECOT_SQL
 
+AM_CONDITIONAL([HAVE_LUA], [test "x$with_luajit" = "xyes" || test "x$with_lua" = "xyes"])
+
+AS_IF([test "x$with_luajit" = "xyes" || test "x$with_lua" = "xyes"],
+  AS_IF([test "x$with_lua_plugin" = "xyes"],
+      [userdb="$userdb lua (plugin)"; passdb="$passdb lua (plugin)"],
+      [userdb="$userdb lua"; passdb="$passdb lua"],
+  ), [])
+
 if test $have_modules = yes; then
   AC_DEFINE(HAVE_MODULES,, [Define if you have dynamic module support])
   AC_SUBST(MODULE_LIBS)
diff --git a/m4/want_lua.m4 b/m4/want_lua.m4
new file mode 100644 (file)
index 0000000..0ff3ceb
--- /dev/null
@@ -0,0 +1,79 @@
+AC_DEFUN([DOVECOT_WANT_LUA_PLUGIN],[
+  AC_ARG_WITH([lua-plugin],
+    [AS_HELP_STRING([--with-lua-plugin], [build Lua as plugin @<:@default=no@:>@])],
+    [with_lua_plugin=$withval],
+    [with_lua_plugin=no]
+  )
+  AM_CONDITIONAL([AUTH_LUA_PLUGIN], [test "x$with_lua_plugin" = "xyes"])
+])
+
+AC_DEFUN([DOVECOT_WANT_LUAJIT],[
+  AS_IF([test "$xwith_luajit" = "xplugin"], [with_lua_plugin=yes], [])
+  AC_MSG_CHECKING([whether we will be linking in LuaJIT])
+  AC_ARG_WITH([luajit],
+    [AS_HELP_STRING([--with-luajit], [build LuaJIT bindings @<:@default=auto@:>@])],
+    [with_luajit=$withval],
+    [with_luajit=no]
+  )
+  AC_MSG_RESULT([$with_luajit])
+
+  AS_IF([test "x$with_luajit" != "xno"], [
+    LUAJITPC="$with_luajit"
+    PKG_CHECK_MODULES([LUA], [luajit],
+      [AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have LuaJIT])],
+      [LUAJITPC=""]
+    )
+    AS_IF([test "x$LUAJITPC" = "x"], [
+      AC_MSG_ERROR([LuaJIT not found])]
+    )
+  ])
+
+  AS_IF([test "x$with_luajit" = "xyes"],
+    AS_IF([test "x$with_lua_plugin" != "xyes"],
+     AC_DEFINE([BUILTIN_LUA],, [Lua support is builtin])
+   )
+  )
+])
+
+AC_DEFUN([DOVECOT_WANT_LUA],[
+  AS_IF([test "$xwith_lua" = "xplugin"], [with_lua_plugin=yes], [])
+  AC_MSG_CHECKING([whether we will be linking in Lua])
+  AC_ARG_WITH([lua],
+    [AS_HELP_STRING([--with-lua], [build Lua Bindings @<:@default=auto@:>@])],
+    [with_lua=$withval],
+    [with_lua=auto]
+  )
+  AC_MSG_RESULT([$with_lua])
+
+  AS_IF([test "x$with_lua" != "xno"],[
+    AS_IF([test "x$with_lua" = "xyes" -o "x$with_lua" = "xauto"],
+      [for LUAPC in lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua; do
+         PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [
+           AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])
+           with_lua=yes
+         ], [LUAPC=""]) # otherwise pkg_check will fail
+         if test "x$LUA_LIBS" != "x"; then break; fi
+       done
+      ],
+      [LUAPC="$with_lua"
+        PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [
+          AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])
+          with_lua=yes
+        ])
+    ])
+    AC_MSG_CHECKING([for chosen LUA])
+    AS_IF([test "x$LUAPC" = "x"], [
+      AS_IF([test "x$with_lua" = "xyes"],
+        [AC_MSG_ERROR([cannot find lua])],
+        [AC_MSG_RESULT([not found])]
+      )],[
+        AC_MSG_RESULT([$LUAPC])
+      ])
+    ])
+
+  AS_IF([test "x$with_lua" = "xyes"],
+    AS_IF([test "x$with_lua_plugin" != "xyes"],
+     AC_DEFINE([BUILTIN_LUA],, [Lua support is builtin])
+   )
+  )
+])