On Tue, Jan 24, 2006 at 03:41:43PM +0100, LEGO wrote:
> > As mentioned above: I'm willing to do the autofoo stuff, which can cover
> > this case as well. Just let me know if you want me to do it - that way
> > you can continue working on the code ;)
>
> I'd love that, Thanks!!!
Attached a patch that should do it. Please test it and if it works, commit
it.
ciao
Joerg
--
Joerg Mayer <jmayer@xxxxxxxxx>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.
Index: configure.in
===================================================================
--- configure.in (revision 17118)
+++ configure.in (working copy)
@@ -749,6 +749,41 @@
fi
+dnl lua check
+AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
+
+AC_ARG_WITH(lua,
+[ --with-lua[[=DIR]] use liblua (located in directory DIR, if supplied) for the lua scripting plugin. [[default=no]]],
+[
+ if test $withval = no
+ then
+ want_lua=no
+ elif test $withval = yes
+ then
+ want_lua=yes
+ else
+ want_lua=yes
+ lua=dir=$withval
+ fi
+],[
+ #
+ # Use liblua if it's present, otherwise don't.
+ #
+ want_lua=ifavailable
+ lua_dir=
+])
+if test "x$want_lua" = "xno" ; then
+ AC_MSG_RESULT(no)
+else
+ AC_MSG_RESULT(yes)
+ AC_ETHEREAL_LIBLUA_CHECK
+ if test "x$want_lua" = "xno" ; then
+ AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
+ fi
+fi
+AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
+
+
dnl ipv6 check
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 use ipv6 name resolution, if available. [default=yes]],enable_ipv6=$enableval,enable_ipv6=yes)
@@ -1256,6 +1291,7 @@
plugins/gryphon/Makefile
plugins/h223/Makefile
plugins/irda/Makefile
+ plugins/lua/Makefile
plugins/lwres/Makefile
plugins/mate/Makefile
plugins/megaco/Makefile
@@ -1294,6 +1330,12 @@
pcre_message="yes"
fi
+if test "x$want_lua" = "xno" -a "x$have_plugins" = "yes" ; then
+ lua_message="no"
+else
+ lua_message="yes"
+fi
+
if test "x$want_ssl" = "xno" ; then
ssl_message="no"
else
@@ -1335,6 +1377,7 @@
echo ""
echo " Install setuid : $setuid_message"
echo " Use plugins : $have_plugins"
+echo " Build lua plugin : $lua_message"
echo " Use GTK+ v2 library : $enable_gtk2"
if test "x$enable_gtk2" = "xyes" ; then
echo " Use threads : $enable_threads"
Index: acinclude.m4
===================================================================
--- acinclude.m4 (revision 17118)
+++ acinclude.m4 (working copy)
@@ -736,6 +736,112 @@
])
#
+# AC_ETHEREAL_LIBLUA_CHECK
+#
+AC_DEFUN([AC_ETHEREAL_LIBLUA_CHECK],
+[
+ if test "x$lua_dir" != "x"
+ then
+ #
+ # The user specified a directory in which liblua resides,
+ # so add the "include" subdirectory of that directory to
+ # the include file search path and the "lib" subdirectory
+ # of that directory to the library search path.
+ #
+ # XXX - if there's also a liblua in a directory that's
+ # already in CFLAGS, CPPFLAGS, or LDFLAGS, this won't
+ # make us find the version in the specified directory,
+ # as the compiler and/or linker will search that other
+ # directory before it searches the specified directory.
+ #
+ ethereal_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -I$lua_dir/include"
+ ethereal_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I$lua_dir/include"
+ ethereal_save_LIBS="$LIBS"
+ LIBS="$LIBS -llua"
+ ethereal_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -L$lua_dir/lib"
+ fi
+
+ #
+ # Make sure we have "lua.h". If we don't, it means we probably
+ # don't have liblua, so don't use it.
+ #
+ AC_CHECK_HEADER(lua.h,,
+ [
+ if test "x$lua_dir" != "x"
+ then
+ #
+ # The user used "--with-lua=" to specify a directory
+ # containing liblua, but we didn't find the header file
+ # there; that either means they didn't specify the
+ # right directory or are confused about whether liblua
+ # is, in fact, installed. Report the error and give up.
+ #
+ AC_MSG_ERROR([liblua header not found in directory specified in --with-lua])
+ else
+ if test "x$want_lua" = "xyes"
+ then
+ #
+ # The user tried to force us to use the library, but we
+ # couldn't find the header file; report an error.
+ #
+ AC_MSG_ERROR(Header file lua.h not found.)
+ else
+ #
+ # We couldn't find the header file; don't use the
+ # library, as it's probably not present.
+ #
+ want_lua=no
+ fi
+ fi
+ ])
+
+ if test "x$want_lua" != "xno"
+ then
+ #
+ # Well, we at least have the lua header file.
+ #
+ # We're only using standard functions from liblua,
+ # so we don't need to perform extra checks.
+ #
+ AC_CHECK_LIB(lua, lua_version,
+ [
+ if test "x$lua_dir" != "x"
+ then
+ #
+ # Put the "-I" and "-L" flags for lua at
+ # the beginning of CFLAGS, CPPFLAGS,
+ # LDFLAGS, and LIBS.
+ #
+ LUA_LIBS="-L$lua_dir/lib -llua $ethereal_save_LIBS"
+ else
+ LUA_LIBS="-llua"
+ fi
+ AC_DEFINE(HAVE_LIBLUA, 1, [Define to use liblua library])
+ ],[
+ if test "x$lua_dir" != "x"
+ then
+ #
+ # Restore the versions of CFLAGS, CPPFLAGS,
+ # LDFLAGS, and LIBS before we added the
+ # "--with-lua=" directory, as we didn't
+ # actually find lua there.
+ #
+ CFLAGS="$ethereal_save_CFLAGS"
+ CPPFLAGS="$ethereal_save_CPPFLAGS"
+ LDFLAGS="$ethereal_save_LDFLAGS"
+ LIBS="$ethereal_save_LIBS"
+ LUA_LIBS=""
+ fi
+ want_lua=no
+ ])
+ AC_SUBST(LUA_LIBS)
+ fi
+])
+
+#
# AC_ETHEREAL_NETSNMP_CHECK
#
AC_DEFUN([AC_ETHEREAL_NETSNMP_CHECK],
Index: Makefile.am
===================================================================
--- Makefile.am (revision 17118)
+++ Makefile.am (working copy)
@@ -178,6 +178,14 @@
include Makefile.common
if HAVE_PLUGINS
+
+if HAVE_LIBLUA
+lua_lib = \
+ plugins/lua/lua.la
+else # HAVE_LIBLUA
+lua_lib =
+endif # HAVE_LIBLUA
+
plugin_libs = \
plugins/acn/acn.la \
plugins/agentx/agentx.la \
@@ -190,7 +198,9 @@
plugins/giop/coseventcomm.la \
plugins/gryphon/gryphon.la \
plugins/irda/irda.la \
+ $(lua_lib) \
plugins/lwres/lwres.la \
+ plugins/mate/mate.la \
plugins/megaco/megaco.la \
plugins/mgcp/mgcp.la \
plugins/opsi/opsi.la \
@@ -200,12 +210,21 @@
plugins/rlm/rlm.la \
plugins/rtnet/rtnet.la \
plugins/rudp/rudp.la \
+ plugins/stats_tree/stats_tree.la \
plugins/v5ua/v5ua.la
if ENABLE_STATIC
plugin_ldadd = $(plugin_libs)
else # ENABLE_STATIC
+
+if HAVE_LIBLUA
+lua_ldadd = \
+ "-dlopen" plugins/lua/lua.la
+else # HAVE_LIBLUA
+lua_ldadd =
+endif # HAVE_LIBLUA
+
plugin_ldadd = \
"-dlopen" self \
"-dlopen" plugins/acn/acn.la \
@@ -218,8 +237,12 @@
"-dlopen" plugins/giop/cosnaming.la \
"-dlopen" plugins/giop/coseventcomm.la \
"-dlopen" plugins/gryphon/gryphon.la \
+ "-dlopen" plugins/h223/h223.la \
"-dlopen" plugins/irda/irda.la \
+ $(lua_ldadd) \
+ "-dlopen" plugins/lua/lua.la \
"-dlopen" plugins/lwres/lwres.la \
+ "-dlopen" plugins/mate/mate.la \
"-dlopen" plugins/megaco/megaco.la \
"-dlopen" plugins/mgcp/mgcp.la \
"-dlopen" plugins/opsi/opsi.la \
@@ -229,6 +252,7 @@
"-dlopen" plugins/rlm/rlm.la \
"-dlopen" plugins/rtnet/rtnet.la \
"-dlopen" plugins/rudp/rudp.la \
+ "-dlopen" plugins/stats_tree/stats_tree.la \
"-dlopen" plugins/v5ua/v5ua.la
endif # ENABLE_STATIC
Index: plugins/Makefile.am
===================================================================
--- plugins/Makefile.am (revision 17118)
+++ plugins/Makefile.am (working copy)
@@ -21,6 +21,13 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+if HAVE_LIBLUA
+lua_dir = \
+ lua
+else # HAVE_LIBLUA
+lua_dir =
+endif # HAVE_LIBLUA
+
SUBDIRS = \
acn \
agentx \
@@ -33,6 +40,7 @@
gryphon \
h223 \
irda \
+ $(lua_dir) \
lwres \
mate \
megaco \
Index: plugins/lua/Makefile.am
===================================================================
--- plugins/lua/Makefile.am (revision 17118)
+++ plugins/lua/Makefile.am (working copy)
@@ -28,23 +28,23 @@
plugin_LTLIBRARIES = lua.la
lua_la_SOURCES = \
- lua_tvb.c \
- lua_proto.c \
- lua_tree.c \
- lua_pinfo.c \
- lua_tap.c \
- packet-lua.c \
- packet-lua.h \
+ lua_tvb.c \
+ lua_proto.c \
+ lua_tree.c \
+ lua_pinfo.c \
+ lua_tap.c \
+ packet-lua.c \
+ packet-lua.h \
plugin.c
lua_la_LDFLAGS = -module -avoid-version
-lua_la_LIBADD = @PLUGIN_LIBS@
+lua_la_LIBADD = @PLUGIN_LIBS@ @LUA_LIBS@
# Libs must be cleared, or else libtool won't create a shared module.
# If your module needs to be linked against any particular libraries,
# add them here.
-LIBS = -L./lua-5.0.2/lib -llua -llualib
+LIBS =
CLEANFILES = \