Wireshark-dev: Re: [Wireshark-dev] Win32 build from 1.6.3 source tarball: svnversion.h missing
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 2 Nov 2011 13:18:42 -0700
On Nov 2, 2011, at 11:19 AM, Guy Harris wrote:

> 
> On Nov 2, 2011, at 10:26 AM, Guy Harris wrote:
> 
>> On Nov 2, 2011, at 10:16 AM, Jeff Morriss wrote:
>> 
>>> Oh, shoot.  Looks like svnversion.h is removed by clean and/or dist-clean.
>> 
>> So it should be generated only if you're building from SVN, and should be included in source tarballs, and should be removed only by maintainer-clean.
> 
> I've checked in a change to do that, and will schedule it for the next 1.4.x and 1.6.x release, unless somebody can come up with a good reason to remove svnversion.h with clean or dist-clean.  Speak up soon....

Well, the build is failing because "make distclean" isn't getting rid of it.

To quote the automake manual:

	* Distributed files should never depend upon non-distributed built files.
	* Distributed files should be distributed with all their dependencies.
	* If a file is intended to be rebuilt by users, then there is no point in distributing it.

svnversion.h is made by make-version.pl, and to get the SVN version you presumably have to be in an SVN tree, so svnversion.h's "dependency" is on, in a sense, .svn and its contents, so, from what the automake manual says, if we ship svnversion.h, we have to ship the .svn tree as well.

I don't think we want to do that.

So, either

	1) we need to arrange to define HAVE_SVNVERSION_H if building from SVN, *not* define it if building from a release tarball, protect the includes of svnversion.h with #ifdef HAVE_SVNVERSION_H/#endif;

	2) we need to have make-version.pl work when run from a source tarball, for some reasonable definition of "work";

and, in either case, not distribute svnversion.h with the tarball and remove svnversion.h with "make distclean".

I'll change Makefile.am to remove svnversion.h with "make distclean", to fix the build.