Commit Graph

142 Commits

Author SHA1 Message Date
Peter Volkov
9aca99aa40 Respect --without-chroot correctly
./configure --without-chroot will configure tcpdump with "no" as the
value of chroot directory and cause tcpdump to fail with:

tcpdump: Couldn't chroot/chdir to 'no': No such file or directory

This patch makes ./configure to avoid chroot directory when called with
--without-chroot.
2010-04-01 22:55:22 -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
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
2a5fc2e1fc Copy a comment from the libpcap configure.in. 2009-07-02 19:49:53 -07:00
Guy Harris
2425b023c1 Use <sys/bitypes.h> in all tests for types. 2009-06-29 00:58:33 -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
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
3565ec111d 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:12:48 +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
0fe13260f1 The string-comparison operator in the "test" command is "=", not "==". 2008-02-05 18:58:19 +00:00
guy
cfab7ed87f 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:33:21 +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
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
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
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
guy
e1db53eeb7 From Albert Chin:
1. On AIX, AC_LBL_C_INLINE detected the compiler supported
     the inline keyword which is wrong. AC_C_INLINE from
     autoconf-2.59 worked.
  2. AC_CHECK_TYPE from autoconf-2.5x is no longer broken.
     Replaced AC_LBL_CHECK_TYPE with it, mainly to use
     <sys/bitypes.h> for Tru64 UNIX where some of the u_int#_t
     types are defined.
  3. Tru64 UNIX 4.0D doesn't support %llx; however, it does support %lx.
  4. Added <stdint.h> to interface.h for int#_t types on
     Tru64 UNIX 4.0D (required for missing/snprintf.c).
  5. Reworked includes in tcpdump-stdinc.h for int#_t types.
2005-04-20 09:44:30 +00:00
guy
6198b3a089 Check for ether_ntohost() after checking for libpcap, so that we do so
after we've checked whether we need -lsocket -lnsl to get routines such
as ether_ntohost().
2005-03-27 23:16:08 +00:00
guy
a7f2c5e465 Don't check for netinet/ether.h unless we're going to use it. 2005-03-27 22:58:08 +00:00
guy
97f3ed0073 Fix an error in the previous checkin. 2005-03-27 22:46:21 +00:00
guy
969f75a107 Fix a typo.
Don't bother checking whether ether_ntohost() is declared if it exists
but is buggy so we won't be using it.
2005-03-27 22:44:22 +00:00
guy
0b6991cfd5 Do the same sort of checks whether ether_ntohost() is declared that we
do in libpcap for ether_hostton().  Include <netinet/ether.h> only if it
declares ether_ntohost().  If nothing declares it, declare it ourselves,
as we do in libpcap.

Don't cast the second argument to ether_ntohost() to a const pointer, as
some systems don't modify it but don't declare that argument as a const
pointer.  (This is similar to what we do on libpvap for
ether_hostton().)

Fix indentation.
2005-03-27 22:38:09 +00:00
guy
af0a039080 Have our own headers to declare the format of ONC (Sun) RPC messages on
the wire; the definitions in many systems use u_long, which is 64 bits
long on many platforms - that's OK for in-memory structures, but it
doesn't match what's on the wire.  Use headers based on the Sun ones,
but use u_int32_t for fields, and otherwise make the structures match
what's on the wire, and change some names to avoid collision with
<rpc/rpc.h>, which print-sunrpc.c includes to declare "getrpcbynumber()"
and the structure it returns.

Record whether "getrpcbynumber()" is found, and use it only if it's
found, rather than basing the decisison on whether we're building for
Win32 or not.
2004-12-27 00:41:29 +00:00
guy
0b18136512 From Andrew Church <andrew@users.sourceforge.net>: when testing for
"pcap_version", "pcap_debug", and "yydebug", don't add our own functions
referring to those variables - GCC 3.4.1 optimizes the test code out
before the link is done, as it's in a function that's not called.
2004-08-27 07:17:03 +00:00
guy
fb8b947488 When checking for pcap_if_t, add $V_INCLS to CFLAGS, so we look at the
header files for the version of libpcap we'll be using.
2004-07-10 21:53:31 +00:00
guy
faf8160c18 Second stage of adding support for 64-bit integral data types - this
causes the configure script to attempt to define the PRI[doux]64 macros
if they're not defined by including <inttypes.h>, and causes
"missing/bittypes.h" to attempt to define them, if undefined, in a
fashion that should, with any luck, work on MSVC++ and various flavors
of GNU C on Windows.

Fix the spelling of "Mac OS X".
2004-04-17 08:44:49 +00:00
guy
1875b8ffe1 First stage of adding support for 64-bit integral data types - this
causes "int64_t" and "u_int64_t" to be defined by the configure script,
and causes "missing/bittypes.h" to attempt to define "u_int64_t" in a
fashion that should, with any luck, work on MSVC++ and various flavors
of GNU C on Windows.
2004-04-17 04:33:16 +00:00
mcr
f58fc7f79d when looking for libcrypto, look first in the directory set
given by --prefix= first.
	the newest openssl's no longer have "des_cbc_encrypt",
	but rather DES_cbc_encrypt.
2004-04-05 00:11:27 +00:00
fenner
9c5f13a16a Use right prereqs for <netinet/if_ether.h> to avoid "autoconf bug!"
error.
Check for pcap_if_t in <pcap.h> if we have pcap_findalldevs; MacOS X
 10.3.3 ships a newer libpcap which has pcap_findalldevs but an older
 pcap.h which doesn't have a pcap_if_t.
2004-03-23 18:57:33 +00:00
hannes
6d605cea6d from Pekka Savola <pekkas@netcore.fi>:
- add compile time option WITH_CHROOT
 - chroot() when dropping privileges
2004-02-25 14:23:32 +00:00
guy
e4e20350aa AC_LIBOBJ takes the name of an object file without the extension (as the
extension is platform-dependent).
2004-01-31 05:26:50 +00:00
hannes
ad71414016 from Pekka Savola <pekkas@netcore.fi>:
add a compile time option --with-user=USERNAME that
 drops privileges by default to USERNAME
2004-01-22 09:51:30 +00:00
guy
d88193ac89 From Gisle Vanem:
When saving to a file with "-w", have the "-v" flag make tcpdump
	report, every 10 seconds, the number of packets captured.

	Include <smi.h> if we're building with libsmi, to declare
	"smiInit()" and "smiLoadModule()".
2004-01-15 19:53:48 +00:00
guy
b0aae8584b Autoconf 2.5x won't let you modify LIBOBJS directly; use AC_LIBOBJ to
modify it.

AC_LIBOBJ isn't supported by pre-2.50 autoconf; require 2.50.

2.5x apparently does quoting, or dnl, or something differently from
2.13; fix AC_EGREP_CPP calls.
2004-01-14 03:14:29 +00:00
guy
def0866994 From Albert Chin <china@thewrittenword.com>:
propagate CPPFLAGS to Makefile.in;

	move the CPPFLAGS and V_INCLS change to the end of the configure
	run so users don't see "-I$(srcdir)/missing" in their config.log
	output.
2003-12-15 02:12:40 +00:00
guy
bbc1cfa669 Have the configure script arrange that the Makefile define _U_
appropriately, and that GNUmakefile and the MSVC++ project file define
it apppriately, as we do with libpcap, rather than defining it in
"interface.h".

Undo the rcsid-shuffling and addition of extra #includes, as we no
longer need to arrange that "interface.h" be included before using _U_
in an RCS ID or copyright.
2003-11-16 09:36:07 +00:00
fenner
0d529f6edc Don't try to print deltas from zero.
Print the value of the times if strftime is available.

Submitted by:	Keith Reynolds
Sourceforge Tracker #734407
2003-08-01 01:18:24 +00:00
itojun
95fc64f066 no need to check rc5.h 2003-07-17 13:39:03 +00:00
itojun
fe59684555 probe openssl/evp.h 2003-07-17 13:32:03 +00:00
guy
b57da60ea5 Fix the test for libcrypto to use valid "test" syntax. 2003-07-08 01:19:10 +00:00
guy
0e797e0a4d Check for ".sl", which is what HP-UX uses for 32-bit shared libraries. 2003-07-04 23:19:54 +00:00
guy
43c4a04b45 Check for shared-library versions of -lcrypto, not just archive
versions, in case a system includes a shared library but not an archive.
2003-07-01 20:44:16 +00:00
guy
8f758e65ff Use AC_TRY_LINK, not AC_TRY_COMPILE, when looking for
inet_ntop/inet_pton/inet_aton, and don't use AC_REPLACE_FUNCS to set
LIBOBJS to include the replacement module, as that does the full check
for the routine again, not just the simple replacement.

Move the tests in question after AC_LBL_LIBPCAP, so that we link with
the appropriate libraries (e.g., "-lsocket -lnsl" on Solaris) to use
when using those routines.
2003-05-02 08:48:25 +00:00