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