Commit Graph

185 Commits

Author SHA1 Message Date
Guy Harris
6d9c7f9ae0 Put the call to AC_LANG_SOURCE in AC_C___ATTRIBUTE__ in quotes.
That's what they do in the autoconf manual; perhaps it'll squelch some
warnings I'm seeing on NetBSD 5.1 with autoconf 2.68.
2011-02-01 14:59:53 -08:00
Guy Harris
687b442022 Get rid of unnecessary configure script tests and missing/XXX.h headers.
This also fixes configure-script problems on OSes that have IPv6 support
but don't have <netinet6/in6.h> - no standard I could find requires that
header for IPv6 support (the Single UNIX Specification speaks of
<netinet/in.h> for both IPv4 and IPv6, and RFCs 2292 and 3542 don't
mention <netinet6/in6.h>, just <netinet/in.h> and <netinet6/ip6.h>).
2011-02-01 02:08:41 -08:00
Guy Harris
aa0cc41863 Fix e-mail address for tcpdump-workers.
Thanks to Cameron Elliott for pointing out that the address hadn't been
updated.
2011-01-27 11:09:28 -08:00
Guy Harris
7254c152b3 Point people to the autoconf documentation on shell substitution.
Hopefully this will keep people from sending "helpful" patches that
break things.
2011-01-23 15:07:01 -08:00
Guy Harris
869efa23a3 Handle POSIX quoting rules.
See section 11.6 "Shell Substitutions" in the autoconf documentation,
especially the

	There is just no portable way to use double-quoted strings
	inside double-quoted back-quoted expressions (pfew!).

part.
2011-01-23 13:35:31 -08:00
Guy Harris
d8252d0c05 Add support for nommu systems.
Rather than hardcode the WIN32 define, add proper fork checks to the
configure script and check those.  This fixes building for nommu systems
which lack the fork function.

While we're here though, add support for this functionality via vfork
so that it does work on nommu systems.  And fix an old bug where we
exit properly in the forked child when the exec failed instead of just
returning to the calling code (which isn't expecting it).

Reviewed-By: Guy Harris <guy@alum.mit.edu>
2010-11-30 16:18:32 -08:00
Mike Frysinger
316d5087cc Use AC_PATH_TOOL, not AC_PATH_PROG, to find pcap-config.
The PROG variant does not take into consideration cross-compilation, so
it always looks for "pcap-config" which finds the host script.  So use
the TOOL variant instead which first searches for the cross-prefixed
pcap-config before falling back to the bare "pcap-config".

Reviewed-By: Guy Harris <guy@alum.mit.edu>
2010-11-30 16:13:05 -08:00
Guy Harris
71894d1a62 Make sure we can link with libpcap.
After finding libpcap and getting a list of other flags needed when
linking, we check for "pcap_loop()", to make sure we found a working
libpcap and have all the right other libraries with which dnl to link.
(Otherwise, for example, the check for pcap_list_datalinks() will fail,
not because the routines are missing from the library, but because we
aren't linking properly with libpcap, and that will cause confusing
errors at build time.)
2010-11-14 12:23:40 -08:00
Guy Harris
a20a6126fc Add support for setting the time stamp type for a capture.
Based on a patch from Scott Mcmillan <scott.a.mcmillan@intel.com>.

While we're at it, make some error messages a bit less geeky.
2010-08-22 17:32:26 -07:00
Guy Harris
e97d5ed3c2 Add a comment to the AC_DEFINE for _SUN, matching what we do in libpcap. 2010-04-16 03:31:33 -07:00
Guy Harris
8db70a1a1b Build fat appropriately for Leopard. 2010-04-06 15:10:31 -07:00
Guy Harris
9b2d37151d Don't define any of the SIZEOF_ values. 2010-04-04 13:41:27 -07:00
Guy Harris
103de367dc Fix check for Snow Leopard.
For OS X version 10.{x}.{y}, Darwin is (at least for later versions)
version {x+4}.{y}.
2010-04-04 12:42:00 -07:00
Guy Harris
c1b245043f Build universal on OS X by default; add an option to disable that.
Instead of requiring the user to specify -arch options on OS X to build
a universal version of tcpdump, just default to universal on OS X by
default.  Pick the particular targets to match the way tcpdump is built
for the OS for which we're building.
2010-04-04 12:08:11 -07:00
Guy Harris
48c58c08b7 Re-generate configure script. 2010-04-01 23:01:56 -07:00
Guy Harris
f7b185510a Add a --with-arch-flags configuration option to specify target architectures.
They allow the user to specify flags to indicate the target
architecture(s) (yes, possibly plural - think, for example, Mac OS X)
for which we're building.  Those might need to be used not only when
compiling, but also when linking and when building a shared library.

This is not for general cross-compiling, it's for use on platforms where
versions of the native OS support more than one instruction set and
where you want to build for the OS on which you're running but not for
the default build architecture on the machine on which you're running.

This may currently be less useful for tcpdump, as tcpdump currently
builds no libraries, but it's there for compatibility with libpcap.
2010-03-31 17:24:33 -07:00
Guy Harris
599c6c53d1 Recognize -PRE-GIT as well as alpha/beta; clean up regexps a bit. 2010-02-08 16:28:42 -08:00
Guy Harris
16e7d6ed56 When removing conftest*, use "-r", to clean up OS X .dSYM turds. 2010-01-02 15:59:43 -08:00
Guy Harris
ebc9a33b11 Fix some problems that show up in autoconf 2.64 and later. 2010-01-02 15:29:06 -08:00
Guy Harris
ce952c7dc4 Get rid of some autoconf macros not used, or no longer used, with
tcpdump.

Check whether __attribute__((format)) can be applied to function
pointers and, if not, don't apply it to function pointers; some older
versions of GCC appear to support applying it to functions, but not
pointers to functions.

As we've gotten rid of missing/getaddrinfo.c, don't use it.
2009-07-08 01:22:27 -07:00
Guy Harris
706103b136 In AC_LBL_C_INIT, don't explicitly set V_CCOPT, just set $1, as is done
elsewhere in the macro.

For the Alpha C compiler, don't set -std1 unless it's necessary for ANSI
mode - we don't want to limit the compiler only to C89 features and,
more importantly, C89 headers (<inttypes.h> doesn't work, on at least
some versions of Digital UNIX and some C compiler versions, with -std1).
2009-07-04 17:57:01 -07:00
Guy Harris
9076e3c01a Add a comment to the AC_DEFINE call for const, just as we did for
libpcap; that eliminates the need to list it in acconfig.h, so get rid
of that.
2009-07-02 19:28:34 -07:00
Guy Harris
4cf4925027 Pick up some AC_DEFINE comments from libpcap's aclocal.m4.
Remove unused items, and items for which we now have AC_DEFINE() calls
that supply a comment, from acconfig.h.

Note that a host OS that matches "osf*" is assumed to be DEC
OSF1/Digital UNIX/Tru64 UNIX.
2009-07-02 18:59:24 -07:00
Guy Harris
02ae5549fc As with libpcap, so with tcpdump; when testing whether "inline" works,
use the V_CCOPT flags, because some of those might disable inlining;
otherwise, the test for inlining will succeed, but inlining won't work
with the options we're using when compiling.
2009-07-02 11:55:55 -07:00
Guy Harris
2425b023c1 Use <sys/bitypes.h> in all tests for types. 2009-06-29 00:58:33 -07:00
Guy Harris
6b510e1a1b On AIX, if we have pcap-config, rely on it to supply the right extra
flags for linking with libpcap.
2009-06-16 00:21:06 -07:00
Guy Harris
97b52f9f3f Don't put -L/usr/lib into LDFLAGS - it would cause linking with -lpcap,
on a system that comes with libpcap, to link with the system libpcap
even if, say, you've installed a newer libpcap under /usr/local and its
pcap-config added -L/usr/local/lib to LDFLAGS, as the -L/usr/lib comes
earlier in LDFLAGS.  (For "would", read "did, when I tried it".)
2009-06-07 18:19:59 -07:00
Guy Harris
018e7fe40d If we're using a local libpcap library, check for a local pcap-config
script and, if we find it, query it to see what additional libraries are
needed to link with that library.

If we're not, check for a system pcap-config script and, if we find it,
query it to see what C compiler flags and linker flags are needed to
build with that library.
2009-05-22 18:45:27 -07:00
Guy Harris
2c28d8f466 From Bert Vermeulen: add a USB printer, and fix the error message
printed when trying to print packets for a DLT_ for which we don't have
a printer to indicate that you can still save to a capture file in that
case.  (Slightly changed not to require DLT_USB_LINUX_MMAPPED to be
defined, for older libpcaps that only define DLT_USB_LINUX.)
2009-04-04 12:30:27 -07:00
guy
a28495afd3 Propagate from the git tree:
Author: Peter Volkov <pva@gentoo.org>
Date:   Sun Nov 9 20:33:27 2008 -0500

    Currently it's impossible to build tcpdump without libsmi on system with
    libsmi installed. The patch in attachment adds --with{,out}-smi
    configure switch which allows to disable it.
2008-11-18 07:39:20 +00:00
guy
7ec2b0b9f7 Run the tcpdump man page through config, so that it refers to the right
man page sections.  Have it refer to the new pcap-savefile man page for
a description of the savefile format.
2008-10-27 21:20:16 +00:00
guy
2fa88fe1a3 We support building tcpdump with versions of libpcap other than the one
with which it was released, and DLT_BLUETOOTH_HCI_H4_WITH_PHDR might be
defined by pcap-bpf.h without pcap/bluetooth.h being present (as appears
to be the case on Fedora 9, for example), so check whether
<pcap/bluetooth.h> is usable.

Update a comment - F9 appears to have a "/usr/include/pcap.h" if you
install the libpcap headers.

When adding -I flags when running a compiler-based test, add them to
CPPFLAGS, not CFLAGS - the latter doesn't work right with
AC_CHECK_HEADERS, as the "gcc -E" run doesn't have the -I flags added.
2008-09-25 21:45:50 +00:00
guy
bca64a2755 Use the new libpcap API's if available; that means we can support "-B"
on all platforms in that case.  Also, add a "-I" flag to turn on monitor
mode.
2008-04-04 19:42:11 +00:00
guy
eb65de093f From Sagun Shakya: check whether we need libdlpi. 2008-03-13 18:32:51 +00:00
guy
5d375b6ca0 Have --with-crypto take an optional argument, specifying where libcrypto
can be found.  If --with-crypto is specified, and libcrypto isn't found,
fail, as presumably the user expected libcrypto to be available.
2008-02-26 20:47:12 +00:00
guy
d5744f5949 From Mike Frysinger: include the Blackfin processor as one of the
processors that don't support unaligned accesses.
2008-02-26 19:17:56 +00:00
guy
0fe13260f1 The string-comparison operator in the "test" command is "=", not "==". 2008-02-05 18:58:19 +00:00
guy
411c7e7f10 Run ranlib on libnetdissect.a if necessary. Remove it before building
it, so we discard any stuff already in the archive.
2008-02-04 20:42:09 +00:00
guy
7e5e89df69 From Max Laier: check whether the system has <net/pfvar.h> and:
if it does, use that for the pf definitions;

	if it doesn't, don't compile in pf support;

as both OpenBSD and FreeBSD have changed the pf definitions and header
format without changing the DLT value, so you can't reliably read
pflog-format libpcap files on a machine running an OS version other than
the one on which the file was generated.
2007-09-12 19:36:18 +00:00
guy
625ce5e12d Add -Wpointer-arith to the list of warnings we enable with GCC. 2005-11-08 02:59:40 +00:00
guy
385cd8601b From David Smith: let the path for the crypto headers and libraries be
set explicitly by setting Xprefix as an environment variable, for use
when cross-compiling.
2005-09-21 16:47:59 +00:00
guy
e39a8ce814 Re-generate with 2.57, just to minimize the changes at this point. 2005-06-04 09:30:10 +00:00
guy
e549a22820 Use pcap_dump_ftell() rather than casting a pcap_dumper_t * to a FILE *
and using ftell(); that won't necessarily work on Windows (if libpcap
was built with a different version of the C runtime library than tcpdump
is), and, even on UN*X, would break if a pcap_dumper_t * were ever made
something other than a FILE *.

Provide a pcap_dump_ftell() implementation that does that cheating cast
for use if libpcap doesn't have it (a pcap_dumper_t * is just a FILE *
on those older versions of libpcap).
2005-06-03 22:08:51 +00:00
guy
674ca18295 Fix to work with autoconf 2.59. 2005-06-03 21:36:41 +00:00
guy
d0f903c65d Split a line to match the way it's split in libpcap's configure.in. 2005-04-24 01:34:59 +00:00
guy
505ddaca27 Albert Chin's patch to libpcap's configure.in:
AC_CHECK_DECLS will define the HAVE_DECL_xxx variable whether it
	succeeds or fails, so you can't erase a "no" result and try
	again with a different header.  Use AC_CHECK_DECL, which doesn't
	define HAVE_DECL_xxx, and then explicitly define it based on
	whether we found a declaration or not.

is required for tcpdump's configure.in as well.
2005-04-24 01:25:23 +00:00
guy
d4290ae435 AC_TRY_COMPILE works only for code that fits inside "main()"; the test
for __attribute__ doesn't fit inside "main()" with GCC 4.0, as it
defines a function.
2005-04-21 03:50:29 +00:00
guy
d26090f659 Put back AC_LBL_C_INLINE; it turns out that wasn't the cause of the
inline problem, and AC_LBL_C_INLINE checks for a case that some versions
of the HP C compiler don't handle, and only uses inline if that case
succeeds.
2005-04-21 02:21:47 +00:00
guy
794a52c42c Some systems (*cough*Irix*cough) not only don't declare
"ether_ntohost()" but don't even declare "struct ether_addr"; on those
systems, declare "struct ether_addr".
2005-04-20 11:17:18 +00:00
guy
caf503e482 From Albert Chin:
1. aclocal.m4 patch required by Tru64 UNIX which has
     inttypes.h in a non-standard location so gcc cannot find
     the PRI types. So, use <sys/bitypes.h> to get u_int#_t
     types for help detecting %llx, etc.
  2. Help gcc on aix find ether_ntohost declaration.
2005-04-20 09:49:52 +00:00