Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Ethereal-dev: Re: [Ethereal-dev] autoconf patches to 0.8.16

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Wed, 7 Mar 2001 21:39:36 -0800
On Wed, Mar 07, 2001 at 11:20:52PM -0600, ethereal-dev@xxxxxxxxxxxxxxxxxx wrote:
> Build patches:
>   1. Added --with-libpcap-include=DIR and --with-libpcap-lib=DIR
>      to specify path to libpcap library.
>   2. Added --with-zlib=DIR to specify the path to zlib
>   3. Remove hard-coding /usr/local/include and /usr/local/lib. This
>      is gross.

4. Cause "autogen.sh" to fail with:

	/usr/local/bin/autoheader: Symbol `HAVE_LIBPCAP' is not covered by
	    /usr/local/share/autoconf/acconfig.h ./acconfig.h

in the "wiretap" directory.

One could add it to "wiretap/acconfig.h", but note that wiretap doesn't
*use* HAVE_LIBPCAP, so the right thing to do is probably to remove the
stuff that sets it from "wiretap/acinclude.m4".

Another problem with the patched version of "wiretap/acinclude.m4" is
that it uses AC_CHECK_HEADER to check for "pcap.h"; to quote the checkin
comment for version 1.7 of "acinclude.m4":

	"autoheader" recognizes AC_CHECK_HEADERS as a macro that defines
	HAVE_XXX_H if xxx.h is present, but doesn't recognize AC_CHECK_HEADER as
	such, and thus doesn't put anything about HAVE_XXX_H into "config.h.in",
	and thus HAVE_XXX_H doesn't get defined even if xxx.h is present.

Furthermore, the patched version appears to fail if "pcap.h" is not
present - this is *not* what it is supposed to do, it's simply supposed
to fail to define HAVE_PCAP_H, so that you can build Ethereal even if
you don't have "pcap.h" (you can't capture packets, and you won't
necessarily be able to read all types of libpcap capture files, but
that's still better than a poke in the eye with a sharp stick).

It also doesn't need to check for <net/bpf.h>, especially if you don't
have "pcap.h".

(The bottom line: don't just cut-and-paste the libpcap checks from
Ethereal and paste them into the Wiretap autoconfig stuff; the Wiretap
autoconfigure stuff doesn't need to do the same things the Ethereal
autoconfigure stuff needs to do.)