-print "Determining $tarball target directory\n";
-my $sample_filename = `zcat $tarball | tar tf - | head -1`;
-my ($tarball_dir) = $sample_filename =~ m%^(?:[./])*([^/]+)/%;
-print "\tTARBALL_DIR=$tarball_dir\n";
-
-print "Extracting $tarball into $builddir/$tarball_dir\n";
-run ("zcat $tarball | (cd $builddir && tar xf -)");
-
-print "Extracting tar version\n";
-my ($version) = `cd $builddir/$tarball_dir && ./configure --version | head -1`
- =~ /configure (\S+)$/;
-print "\tVERSION=$version\n";
-my ($binary_version) = "$version-$builder-build$buildnumber";
-print "\tBINARY_VERSION=$version\n";
-
-print "Configuring\n";
-run ("chmod -R a-w $builddir/$tarball_dir");
-run ("chmod u+w $builddir/$tarball_dir");
-run ("mkdir $builddir/$tarball_dir/_build");
-run ("chmod a-w $builddir/$tarball_dir");
-run ("cd $builddir/$tarball_dir/_build && ../configure --enable-relocatable --prefix=''");
+if ($build_binary) {
+ start_step ("Save tarball to Git");
+ run ("GIT_DIR=$topdir/.git $topdir/git-import-tar $tarball refs/builds/$build_number/dist", "git-dist");
+ set_var ("dist_ref", "refs/builds/$build_number/dist");
+ set_var ("dist_commit", ref_to_commit ("refs/builds/$build_number/dist"));
+
+ start_step ("Determining $tarball target directory");
+ my $sample_filename = `zcat $tarball | tar tf - | head -1`;
+ my ($tarball_dir) = $sample_filename =~ m%^(?:[./])*([^/]+)/%;
+ set_var ("dist_dir", $tarball_dir);
+
+ start_step ("Extracting source tarball");
+ run ("zcat $tarball | (cd $builddir && tar xf -)");
+
+ start_step ("Extracting tar version");
+ my ($version) = `cd $builddir/$tarball_dir && ./configure --version | head -1`
+ =~ /configure (\S+)$/;
+ set_var ("dist_version", $version);
+ my ($binary_version) = "$version-$build_host-build$build_number";
+ set_var ("binary_version", $binary_version);
+
+ start_step ("Configuring");
+ run ("chmod -R a-w $builddir/$tarball_dir");
+ run ("chmod u+w $builddir/$tarball_dir");
+ run ("mkdir $builddir/$tarball_dir/_build");
+ run ("chmod a-w $builddir/$tarball_dir");
+ my $ok = try_run ("cd $builddir/$tarball_dir/_build && ../configure --enable-relocatable --prefix=''", "bin-configure");
+ for my $basename ("config.h", "config.log") {
+ save_result_if_exists ("build configuration",
+ "$builddir/$tarball_dir/_build/$basename");
+ }
+ fail () if !$ok;