[vlc-devel] [PATCH 2/5] configure.ac: refactor lua detection
Alexandre Janniaux
ajanni at videolabs.io
Mon Apr 6 15:56:01 CEST 2020
All checks were nested which was really hard to read and modify
correctly. Instead use a state variable to track the detection status
and chain AS_IF condition for each test.
---
configure.ac | 64 ++++++++++++++++++++++++++++------------------------
1 file changed, 35 insertions(+), 29 deletions(-)
diff --git a/configure.ac b/configure.ac
index 9aba863449..049f590ca6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1854,37 +1854,43 @@ AC_ARG_ENABLE([lua],
[disable LUA scripting support (default enabled)]))
if test "${enable_lua}" != "no"
then
- PKG_CHECK_MODULES(LUA, lua5.2,
- [ have_lua=yes ],
- [
+ PKG_CHECK_MODULES(LUA, lua5.2, [ have_lua=yes ], [])
+
+ AS_IF([test "${have_lua}" != "yes"], [
AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
+ PKG_CHECK_MODULES(LUA, lua5.1, [ have_lua=yes ], []) ])
+
+ AS_IF([test "${have_lua}" != "yes"], [
+ AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
+ PKG_CHECK_MODULES(LUA, lua >= 5.1, [ have_lua=yes ], []) ])
+
+ AS_IF([test "${have_lua}" != "yes"], [
+ AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
+ have_lua_lib=no
+ AC_CHECK_LIB( lua5.2 , luaL_newstate, [
+ LUA_LIBS="-llua5.2"
+ have_lua_lib=yes], [])
+
+ AS_IF([test "${have_lua_lib}" != "yes"], [
+ AC_CHECK_LIB( lua5.1 , luaL_newstate, [
+ LUA_LIBS="-llua5.1"
+ have_lua_lib=yes], [] ) ])
+
+ AS_IF([test "${have_lua_lib}" != "yes"], [
+ AC_CHECK_LIB( lua51 , luaL_newstate, [
+ LUA_LIBS="-llua51"
+ have_lua_lib=yes], [] ) ])
+
+ AS_IF([test "${have_lua_lib}" != "yes"], [
+ AC_CHECK_LIB( lua , luaL_newstate,
+ [LUA_LIBS="-llua"],
+ [ have_lua=no ], [-lm] ) ])
+
+ dnl If we found any lib, check that we have the headers too
+ AS_IF([test "${have_lua_lib}" = "yes"], [
+ AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], [ have_lua=yes ], []) ])
+ ])
- PKG_CHECK_MODULES(LUA, lua5.1,
- [ have_lua=yes ],
- [
- AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
- PKG_CHECK_MODULES(LUA, lua >= 5.1,
- [ have_lua=yes ],
- [
- AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
- have_lua=yes
- AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
- [],
- [ have_lua=no ] )
- AC_CHECK_LIB( lua5.2 , luaL_newstate,
- [LUA_LIBS="-llua5.2"],
- AC_CHECK_LIB( lua5.1 , luaL_newstate,
- [LUA_LIBS="-llua5.1"],
- AC_CHECK_LIB( lua51 , luaL_newstate,
- [LUA_LIBS="-llua51"],
- AC_CHECK_LIB( lua , luaL_newstate,
- [LUA_LIBS="-llua"],
- [ have_lua=no
- ], [-lm])
- )))
- ])
- ])
- ])
if test "x${have_lua}" != "xyes" ; then
AC_MSG_ERROR([Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error.])
fi
--
2.26.0
More information about the vlc-devel
mailing list