# Select build number.
my $build_number = POSIX::strftime("%Y%m%d%H%M%S", localtime);
-my $topdir = getcwd();
+my $topdir = getcwd ();
# Create build directory.
my $builddir = "builds/$build_number";
run ("git archive --format=tar --prefix=pspp$build_number/ buildtmp/$$/pspp | (cd $builddir && tar xf -)");
# Extract version number.
- start_step ("Extract version number");
+ start_step ("Extract repository version number");
my $trace = `cd $builddir/pspp$build_number && autoconf -t AC_INIT`;
chomp $trace;
- my ($file, $line, $macro, $package, $version, @rest) = split (':', $trace);
- set_var ("pspp_version", $version);
-
- # Append -g012345 to AC_INIT version number.
- start_step ("Adding -g$abbrev_commit to version number");
+ my ($file, $line, $macro, $package, $repo_version, @rest)
+ = split (':', $trace);
+ set_var ("repo_version", $repo_version);
+
+ # Is this a "gnits" mode tree?
+ start_step ("Checking Automake mode");
+ open (MAKEFILE_AM, '<', "$builddir/pspp$build_number/Makefile.am");
+ my $am_mode = "gnu";
+ while (<MAKEFILE>) {
+ if (/gnits/) {
+ $am_mode = "gnits";
+ last;
+ }
+ }
+ set_var ("am_mode", $am_mode);
+
+ # Generate version number for build.
+ # We want to append -g012345, but if we're in Gnits mode and the
+ # version number already has a hyphen, we have to omit it.
+ start_step ("Generate build version number");
+ my $version = $repo_version;
+ $version .= '-' unless $version =~ /-/;
+ $version .= "g$abbrev_commit";
+ set_var ("version", $version);
+
+ # Append -g012345 to configure.ac version number.
+ start_step ("Updating version number in $file");
my $fullname = "$builddir/pspp$build_number/$file";
open (OLDFILE, '<', $fullname)
or die "opening $fullname failed: $!\n";
if ($. != $line) {
print NEWFILE $_;
} else {
- print NEWFILE "AC_INIT([$package], [$version-g$abbrev_commit]";
+ print NEWFILE "AC_INIT([$package], [$version]";
print NEWFILE ", [$_]" foreach @rest;
print NEWFILE ")\n";
}
if (!$found_changes && /^Changes/) {
$found_changes = 1;
print NEWFILE <<EOF;
-Changes from $version to $version-g$abbrev_commit:
+Changes from $repo_version to $version:
* Built automatically from commit $revision
in branch $branch by builder $builder
# Distribute.
start_step ("Make source tarball");
run ("cd $builddir/pspp$build_number/_build && make dist");
- my $tarname = "pspp-$version-g$abbrev_commit.tar.gz";
+ my $tarname = "pspp-$version.tar.gz";
$tarball = save_result ("$builddir/pspp$build_number/_build/$tarname", 1);
- # Build the manual in various formats.
- start_step ("Build manual");
- run ("cd $builddir/pspp$build_number/doc && GENDOCS_TEMPLATE_DIR=$topdir/gnulib/doc $topdir/gnulib/build-aux/gendocs.sh --email bug-gnu-pspp\@gnu.org pspp \\\"GNU PSPP Manual\\\"");
- save_result ("$builddir/pspp$build_number/doc/manual");
+ # Build user manual
+ start_step ("Build user manual");
+ run ("cd $builddir/pspp$build_number && cp _build/doc/*.texi doc/");
+ run ("cd $builddir/pspp$build_number && GENDOCS_TEMPLATE_DIR=$topdir $topdir/gendocs.sh -s doc/pspp.texinfo -o $topdir/$builddir/results/user-manual --email bug-gnu-pspp\@gnu.org pspp \"GNU PSPP User Manual\"");
+
+ # Build developer's guide
+ start_step ("Build developers guide");
+ run ("cd $builddir/pspp$build_number && GENDOCS_TEMPLATE_DIR=$topdir $topdir/gendocs.sh -s doc/pspp-dev.texinfo -o $topdir/$builddir/results/dev-guide --email bug-gnu-pspp\@gnu.org pspp \"GNU PSPP Developers Guide\"");
} else {
$tarball = $ARGV[0];
}