Ethereal-dev: [ethereal-dev] Some autoconf/automake/... changes checked in

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

From: guy@xxxxxxxxxx (Guy Harris)
Date: Mon, 16 Nov 1998 18:54:34 -0800 (PST)
I checked in changes that fix up some problems I found when checking out
a vanilla tree from CVS and trying "configure" and "make":

	the "configure" script needs to recurse into the "wiretap"
	directory - given that the CVS checkout creates "XXX" before
	creating "XXX.in", makes try to redo all the "auto*" stuff, and
	somewhere along the line it got upset at the lack of a
	"config.status" file in the "wiretap" directory;

	I added a "acinclude.m4" file that defines a
	"AC_ETHEREAL_STRUCT_SA_LEN" macro (modeled after similar macros
	provided with "autoconf") to check whether "struct sockaddr" has
	an "sa_len" member, and defines or undefines "HAVE_SA_LEN"
	appropriately, so that I could use all the "auto*" stuff without
	it complaining about "AC_LBL_SOCKADDR_SA_LEN" not being defined.

The latter change was needed in order to actually make the "configure"
script using "autoconf".

The latter change also fixes the configure script to check whether
"struct sockaddr" has "sa_len" (the version that was in CVS just had the
line

	AC_LBL_SOCKADDR_SA_LEN

which didn't actually do anything when run in a shell script, other than
complain about not being able to find the command
"AC_LBL_SOCKADDR_SA_LEN".

(I didn't pick up the LBL macro because it's covered by a Berkeley
copyright, which imposes a "give credit" restriction on redistribution,
and I've heard claims - nothing authoritative, unfortunately - that this
conflicts with the GPL.  The macro I added was based on a macro from
"autoconf", which is covered by the GPL.

I also sent the macro to "bug-gnu-utils", for possible inclusion in a
future version of "autoconf".)

However, there's still another nuisance I ran across when testing the
configure-and-build from a freshly-checked-out CVS tree.  Given that, as
I noted, "XXX" is checked out from CVS before "XXX.in", the "make" will
try to run "automake" and "autoconf" and company to build various "XXX"s
from the corresponding "XXX.in"s, and that fails because, as the files
were checked out from CVS, they're not writable.

Should files generated by "automake", "autoconf", "autoheader", and
"aclocal" be in CVS?  *Not* putting them in CVS would clear up the
problem I noted, although

	1) it means you have to run all the "auto*" stuff if you check
	   out a fresh CVS tree;

	2) that means you have to have that stuff even if you aren't
	   tweaking any of the "*.in" or "*.am" files;

	3) "automake" *might* not be clever enough to include them as
	   part of a tarball when you do "make dist".