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.