+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=''");
+
+print "Build\n";
+run ("cd $builddir/$tarball_dir/_build && make");
+
+print "Install\n";
+run ("cd $builddir/$tarball_dir/_build && make install DESTDIR=\$PWD/pspp-$binary_version");
+
+print "Make binary distribution\n";
+run ("cd $builddir/$tarball_dir/_build && tar cfz pspp-$binary_version.tar.gz pspp-$binary_version");
+
+print "Check\n";
+run ("cd $builddir/$tarball_dir/_build && make check");
+
+print "Uninstall\n";
+run ("cd $builddir/$tarball_dir/_build && make uninstall DESTDIR=\$PWD/pspp-$binary_version");
+
+print "Check uninstall\n";
+run ("cd $builddir/$tarball_dir/_build && make distuninstallcheck distuninstallcheck_dir=\$PWD/pspp-$binary_version");
+
+# distcleancheck
+
+print "Success\n";
+