# the SVN revision number.
# pkg_enable - Enable or disable package versioning.
# pkg_format - Like "format", but used for the package version.
+# is_release - Specifies that we're building from a release tarball;
+# svnversion.h is not updated. This should be added only
+# to the *released* version.conf, not the one used to build
+# the release (IOW it should be added by automake's dist-hook).
#
# If run with the "-p" or "--package-version" argument, the
# AC_INIT macro in configure.in and the VERSION macro in
# config.nmake will have the pkg_format template appended to the
# version number. svnversion.h will _not_ be generated if either
-# argument is present.
+# argument is present (it will also not be generated if 'is_release' is set
+# in version.conf).
#
# Default configuration:
#
"enable" => 1,
"svn_client" => 1,
"format" => "SVN %Y%m%d%H%M%S",
+ "is_release" => 0,
# Normal development builds
"pkg_enable" => 1,
#"pkg_format" => "",
);
my $srcdir = ".";
+my $svn_info_cmd = "";
+$ENV{LANG} = "C"; # Ensure we run with correct locale
# Run "svn info". Parse out the most recent modification time and the
# revision number.
eval {
use warnings "all";
no warnings "all";
- $line = qx{svn info $srcdir};
+ $line = qx{$svn_info_cmd};
if (defined($line)) {
if ($line =~ /Last Changed Date: (\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/) {
$last_change = timegm($6, $5, $4, $3, $2 - 1, $1);
my $svn_version;
my $needs_update = 1;
- if ($pkg_version) { return; }
+ if ($pkg_version || $version_pref{"is_release"} == 1) { return; }
if ($last_change && $revision) {
$svn_version = "#define SVNVERSION \"SVN Rev " .
$revision . "\"\n" .
"#define SVNPATH \"" . $repo_path . "\"\n";
} else {
- $svn_version = "/* #define SVNVERSION \"\" */\n" .
- "/* #define SVNPATH \"\" */\n";
+ $svn_version = "#define SVNVERSION \"SVN Rev Unknown\"\n" .
+ "#define SVNPATH \"unknown\"\n";
}
if (open(OLDVER, "<$version_file")) {
- if (<OLDVER> eq $svn_version) {
+ my $old_svn_version = <OLDVER> . <OLDVER>;
+ if ($old_svn_version eq $svn_version) {
$needs_update = 0;
}
close OLDVER;
$srcdir = $ARGV[0]
}
-
if (! open(FILE, "<$vconf_file")) {
print STDERR "Version configuration file $vconf_file not "
. "found. Using defaults.\n";
&get_config();
if (-d "$srcdir/.svn") {
+ $svn_info_cmd = "svn info $srcdir";
+} elsif (-d "$srcdir/.git/svn") {
+ $svn_info_cmd = "(cd $srcdir; git svn info)";
+}
+
+if ($svn_info_cmd) {
print "This is a build from SVN (or a SVN snapshot).\n";
&read_svn_info();
if ($pkg_version) {