411 lines
10 KiB
Plaintext
411 lines
10 KiB
Plaintext
# $Id: configure.in,v 1.68 2004/03/22 17:03:30 gerald Exp $
|
|
#
|
|
AC_INIT(epan.c)
|
|
|
|
AC_PREREQ(2.52)
|
|
|
|
dnl Check for CPU / vendor / OS
|
|
AC_CANONICAL_HOST
|
|
AC_CANONICAL_TARGET
|
|
|
|
AM_INIT_AUTOMAKE(libethereal.a, 0.10.3)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
AM_DISABLE_STATIC
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_PROG_YACC
|
|
AM_PROG_LEX
|
|
AC_PROG_LIBTOOL
|
|
AC_PATH_PROG(LEX, flex)
|
|
AC_PATH_PROG(PERL, perl)
|
|
AC_PATH_PROG(PYTHON, python)
|
|
|
|
AC_SUBST(FLEX_PATH)
|
|
AC_SUBST(PERL)
|
|
AC_SUBST(PYTHON)
|
|
|
|
#
|
|
# If we're running gcc, add '-Wall -W' to CFLAGS, and add
|
|
# '-D_U_="__attribute__((unused))"' as well, so we can use _U_ to
|
|
# flag unused function arguments and not get warnings about them.
|
|
# If "--with-extra-gcc-checks" was specified, add "-Wcast-qual
|
|
# -Wcast-align" as well. (Add more checks here in the future?)
|
|
#
|
|
# Otherwise, add '-D_U_=""', so that _U_ used to flag an unused function
|
|
# argument will compile with non-GCC compilers.
|
|
#
|
|
AC_ARG_WITH(extra-gcc-checks,
|
|
[ --with-extra-gcc-checks Do additional -W checks in GCC. [default=no]],
|
|
[
|
|
if test $withval != no
|
|
then
|
|
ethereal_extra_gcc_flags=" -Wcast-qual -Wcast-align -Wbad-function-cast -pedantic"
|
|
fi
|
|
],)
|
|
AC_MSG_CHECKING(to see if we can add '-Wall -W$ethereal_extra_gcc_flags' to CFLAGS)
|
|
if test x$GCC != x ; then
|
|
CFLAGS="-D_U_=\"__attribute__((unused))\" -Wall -W $ethereal_extra_gcc_flags $CFLAGS"
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
CFLAGS="-D_U_=\"\" $CFLAGS"
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
#
|
|
# Add any platform-specific compiler flags needed.
|
|
#
|
|
AC_MSG_CHECKING(for platform-specific compiler flags)
|
|
if test "x$GCC" = x
|
|
then
|
|
#
|
|
# Not GCC - assume it's the vendor's compiler.
|
|
#
|
|
case "$host_os" in
|
|
hpux*)
|
|
#
|
|
# HP's ANSI C compiler; flags suggested by Jost Martin.
|
|
# "-Ae" for ANSI C plus extensions such as "long long".
|
|
# "+O2", for optimization. XXX - works with "-g"?
|
|
#
|
|
CFLAGS="-Ae +O2 $CFLAGS"
|
|
AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
|
|
;;
|
|
darwin*)
|
|
#
|
|
# It may be called "cc", but it's really a GCC derivative
|
|
# with a problematic special precompiler and precompiled
|
|
# headers; turn off the special precompiler, as some
|
|
# apparently-legal code won't compile with its precompiled
|
|
# headers.
|
|
#
|
|
CFLAGS="-no-cpp-precomp $CFLAGS"
|
|
AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(none needed)
|
|
;;
|
|
esac
|
|
else
|
|
case "$host_os" in
|
|
darwin*)
|
|
#
|
|
# See comments above about Apple's lovely C compiler.
|
|
#
|
|
CFLAGS="-no-cpp-precomp $CFLAGS"
|
|
AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(none needed)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl Look in /usr/local for header files and libraries ?
|
|
dnl XXX FIXME don't include /usr/local if it is already in the system
|
|
dnl search path as this causes gcc 3.2 on Linux to complain about a change
|
|
dnl of the system search order for includes
|
|
AC_ARG_ENABLE(usr-local,
|
|
[ --enable-usr-local look for headers and libs in /usr/local tree. [default=yes]],enable_usr_local=$enableval,enable_usr_local=yes)
|
|
|
|
AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
|
|
if test "x$enable_usr_local" = "xyes" ; then
|
|
AC_MSG_RESULT(yes)
|
|
#
|
|
# Arrange that we search for header files in the source directory
|
|
# and in its "wiretap" subdirectory, as well as in "/usr/local/include",
|
|
# as various packages we use ("libpcap", "zlib", an SNMP library)
|
|
# may have been installed under "/usr/local/include".
|
|
#
|
|
CFLAGS="$CFLAGS -I/usr/local/include"
|
|
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_ARG_ENABLE(profile-build,
|
|
[ --enable-profile-build build profile-ready binaries. [default=no]],enable_profile_build=$enableval,enable_profile_build=no)
|
|
AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
|
|
AC_MSG_CHECKING(if profile builds must be generated)
|
|
if test "x$enable_profile_build" = "xyes" ; then
|
|
if test -n "$GCC" ; then
|
|
AC_MSG_RESULT(yes)
|
|
CFLAGS=" -pg $CFLAGS"
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
echo "Building profile binaries currently only supported for GCC."
|
|
fi
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
# Create DATAFILE_DIR #define for config.h
|
|
datafiledir=$datadir/ethereal
|
|
datafiledir=`(
|
|
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
|
test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
|
|
eval echo "$datafiledir"
|
|
)`
|
|
AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
|
|
|
|
AC_ARG_ENABLE(gtk2,
|
|
[ --enable-gtk2 build Glib2/Gtk2+-based (t)ethereal. [default=no]],enable_gtk2=$enableval,enable_gtk2=no)
|
|
|
|
if test "x$enable_gtk2" = "xyes" ; then
|
|
AM_PATH_GLIB_2_0(2.0.0, CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS", , gmodule)
|
|
else
|
|
AM_PATH_GLIB(1.2.0, CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS", , gmodule)
|
|
fi
|
|
|
|
dnl Checks for header files
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(stdarg.h direct.h dirent.h fcntl.h netdb.h unistd.h)
|
|
AC_CHECK_HEADERS(sys/param.h sys/socket.h sys/stat.h sys/time.h sys/types.h)
|
|
AC_CHECK_HEADERS(netinet/in.h)
|
|
AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
|
|
|
|
dnl ipv6 check
|
|
AC_ARG_ENABLE(ipv6,
|
|
[ --enable-ipv6 use ipv6 name resolution, if available. [default=yes]],enable_ipv6=$enableval,enable_ipv6=yes)
|
|
|
|
AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
|
|
if test "x$enable_ipv6" = "xno" ; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_ETHEREAL_IPV6_STACK
|
|
fi
|
|
|
|
|
|
dnl kerberos/heimdal check
|
|
AC_MSG_CHECKING(whether to use kerberos/heimdal)
|
|
|
|
AC_ARG_WITH(krb5,
|
|
changequote(<<, >>)dnl
|
|
<< --with-krb5[=DIR] use kerberos/heimdal (located in directory DIR, if supplied) to use in kerberos dissection [default=no]>>,
|
|
changequote([, ])dnl
|
|
[
|
|
if test $withval = no
|
|
then
|
|
want_krb5=no
|
|
elif test $withval = yes
|
|
then
|
|
want_krb5=yes
|
|
else
|
|
want_krb5=no
|
|
krb5_dir=$withval
|
|
fi
|
|
],[
|
|
#
|
|
# Use kerberos/heimdal if it's present, otherwise don't.
|
|
#
|
|
want_krb5=no
|
|
krb5_dir=
|
|
])
|
|
if test "x$want_krb5" = "xno" ; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_ETHEREAL_KRB5_CHECK
|
|
if test "x$want_krb5" = "xno" ; then
|
|
AC_MSG_RESULT(heimdal not found - disabling dissection for some kerberos data in packet decoding)
|
|
fi
|
|
fi
|
|
|
|
|
|
AC_CHECK_FUNC(inet_aton, INET_ATON_O="",
|
|
INET_ATON_O="inet_aton.lo")
|
|
if test "$ac_cv_func_inet_aton" = no ; then
|
|
INET_ATON_C="inet_aton.c"
|
|
INET_ATON_O="inet_aton.lo"
|
|
AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
|
|
fi
|
|
AC_SUBST(INET_ATON_C)
|
|
AC_SUBST(INET_ATON_O)
|
|
|
|
AC_SEARCH_LIBS(inet_pton, [socket nsl], [
|
|
dnl check for pre-BIND82 inet_pton() bug.
|
|
AC_MSG_CHECKING(for broken inet_pton)
|
|
AC_TRY_RUN([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
int main()
|
|
{
|
|
#ifdef AF_INET6
|
|
char buf[16];
|
|
/* this should return 0 (error) */
|
|
return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
|
|
#else
|
|
return 1;
|
|
#endif
|
|
}], [AC_MSG_RESULT(ok);
|
|
have_inet_pton=yes], [AC_MSG_RESULT(broken);
|
|
have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
|
|
have_inet_pton=no])],
|
|
have_inet_pton=no)
|
|
if test "$have_inet_pton" = no; then
|
|
INET_PTON_C="inet_pton.c"
|
|
INET_PTON_O="inet_pton.lo"
|
|
else
|
|
INET_PTON_C=""
|
|
INET_PTON_O=""
|
|
fi
|
|
AC_SUBST(INET_PTON_C)
|
|
AC_SUBST(INET_PTON_O)
|
|
|
|
AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
|
|
AC_MSG_CHECKING([for inet_ntop prototype])
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
|
|
extern const char *inet_ntop(int, const void *, char *, size_t);],, [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
|
|
[Define if inet_ntop() prototype exists])], [
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
|
|
extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
|
|
[Define if inet_ntop() prototype exists])], [
|
|
AC_MSG_RESULT(no)])])
|
|
INET_NTOP_O=""], [
|
|
INET_NTOP_C="inet_ntop.c"
|
|
INET_NTOP_O="inet_ntop.lo"
|
|
AC_DEFINE(NEED_INET_V6DEFS_H, 1,
|
|
[Define if inet/v6defs.h needs to be included])])
|
|
AC_SUBST(INET_NTOP_C)
|
|
AC_SUBST(INET_NTOP_O)
|
|
|
|
AC_CHECK_FUNC(strptime, ,
|
|
[AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
|
|
])
|
|
|
|
dnl pcre check
|
|
AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
|
|
AC_ARG_WITH(pcre,
|
|
changequote(<<, >>)dnl
|
|
<< --with-pcre[=DIR] use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. [default=yes, if present]>>,
|
|
changequote([, ])dnl
|
|
[
|
|
if test $withval = no
|
|
then
|
|
want_pcre=no
|
|
elif test $withval = yes
|
|
then
|
|
want_pcre=yes
|
|
else
|
|
want_pcre=yes
|
|
pcre_dir=$withval
|
|
fi
|
|
],[
|
|
#
|
|
# Use libpcre if it's present, otherwise don't.
|
|
#
|
|
want_pcre=ifpresent
|
|
pcre_dir=
|
|
])
|
|
if test "x$want_pcre" = "xno" ; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_ETHEREAL_LIBPCRE_CHECK
|
|
if test "x$want_pcre" = "xno" ; then
|
|
AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
|
|
fi
|
|
fi
|
|
|
|
dnl ADNS Check
|
|
AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
|
|
if test "x$enable_adns" = "xno" ; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
AC_ETHEREAL_ADNS_CHECK
|
|
fi
|
|
|
|
#
|
|
# Check whether GLib modules are supported, to determine whether we
|
|
# can support plugins.
|
|
#
|
|
AC_MSG_CHECKING(whether GLib supports loadable modules)
|
|
#ac_save_CFLAGS="$CFLAGS"
|
|
#ac_save_LIBS="$LIBS"
|
|
#CFLAGS="$CFLAGS $GLIB_CFLAGS"
|
|
#LIBS="$GLIB_LIBS $LIBS"
|
|
AC_TRY_RUN([
|
|
#include <glib.h>
|
|
#include <gmodule.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int
|
|
main ()
|
|
{
|
|
if (g_module_supported())
|
|
return 0; /* success */
|
|
else
|
|
return 1; /* failure */
|
|
}
|
|
], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
|
|
[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
|
#CFLAGS="$ac_save_CFLAGS"
|
|
#LIBS="$ac_save_LIBS"
|
|
if test "$ac_cv_glib_supports_modules" = yes ; then
|
|
AC_MSG_RESULT(yes)
|
|
have_plugins=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
have_plugins=no
|
|
fi
|
|
|
|
dnl
|
|
dnl check whether plugins should be enabled; we don't set plugindir,
|
|
dnl as that's set by the top-level configure script
|
|
dnl
|
|
AC_ARG_WITH(plugins,
|
|
changequote(<<, >>)dnl
|
|
<< --with-plugins[=DIR] support plugins (installed in DIR, if supplied).>>,
|
|
changequote([, ])dnl
|
|
[
|
|
case "$withval" in
|
|
"" | y | ye | yes )
|
|
;;
|
|
n | no)
|
|
have_plugins=no
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
]
|
|
)
|
|
|
|
AM_CONDITIONAL(HAVE_PLUGINS, test x$have_plugins = xyes)
|
|
if test x$have_plugins = xyes
|
|
then
|
|
AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
|
|
fi
|
|
|
|
AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
|
|
if test x$enable_static = xyes -a x$have_plugins = xyes
|
|
then
|
|
AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Ethereal])
|
|
fi
|
|
AC_SUBST(ENABLE_STATIC)
|
|
|
|
AC_OUTPUT(
|
|
Makefile
|
|
dfilter/Makefile
|
|
ftypes/Makefile
|
|
)
|