wireshark/epan/configure.in

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
)