Index: trunk/Nebulous-Server/Build.PL
===================================================================
--- trunk/Nebulous-Server/Build.PL	(revision 4440)
+++ trunk/Nebulous-Server/Build.PL	(revision 4628)
@@ -6,5 +6,70 @@
                 : 'Module::Build';
 
-$build_pkg->new(
+my $class = $build_pkg->subclass(code => <<'EOF');
+use Apache::TestMB;
+@ISA = qw( Apache::TestMB );
+
+my $pkg_dir = "./nebclient";
+
+sub ACTION_code {
+    my $self = shift;
+
+    $self->SUPER::ACTION_code(@_);
+
+    my $old_pwd = $ENV{PWD};
+    chdir $pkg_dir;
+
+    unless (-e "configure") {
+        system("./autogen.sh") == 0 or die "install failed: $?";
+    }
+
+    chdir $old_pwd;
+}
+
+sub ACTION_build {
+    my $self = shift;
+
+    $self->SUPER::ACTION_build(@_);
+
+    my $old_pwd = $ENV{PWD};
+    chdir $pkg_dir;
+
+    unless (-e "Makefile") {
+        system("sh ./configure") == 0 or die "build failed: $?";
+    }
+
+    system("make") == 0 or die "build failed: $?";
+
+    chdir $old_pwd;
+}
+
+sub ACTION_install {
+    my $self = shift;
+
+    $self->SUPER::ACTION_install(@_);
+
+    my $old_pwd = $ENV{PWD};
+    chdir $pkg_dir;
+
+    system("make install") == 0 or die "install failed: $?";
+
+    chdir $old_pwd;
+}
+
+sub ACTION_clean {
+    my $self = shift;
+
+    $self->SUPER::ACTION_clean(@_);
+
+    my $old_pwd = $ENV{PWD};
+    chdir $pkg_dir;
+
+    system("make clean") == 0 or die "install failed: $?";
+
+    chdir $old_pwd;
+}
+EOF
+
+$class->new(
     module_name         => 'Nebulous',
     dist_version_from   => 'lib/Nebulous/Server.pm',
@@ -18,5 +83,5 @@
         'DBD::mysql'            => '2.9004',
         'Class::Accessor::Fast' => 0,
-        'Params::Validate'      => 0,
+        'Params::Validate'      => '0.73',
     },
     build_requires      => {
