The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use vars qw[$DEST_DIR];

package MY;

sub postamble {
  <<'__POSTAMBLE__';
faceplant_install ::
	mkdir -p $(FP_DEST_DIR); cp -r src/* $(FP_DEST_DIR)

__POSTAMBLE__
}

sub install {
    my $class = shift;
    my $basic = $class->SUPER::install(@_);
    my $add   = 'faceplant_install';
    $basic =~ s/^(install\s+::)\s+.*$/$1 $add/m;
    $basic;
}

sub constants {
    my $class = shift;
    my $basic = $class->SUPER::constants(@_);
    $basic = "FP_DEST_DIR = $main::DEST_DIR\n$basic";
    $basic;
}

package main;

use ExtUtils::MakeMaker;

$DEST_DIR = prompt(
q[What directory should faceplant be installed as?

For example, selecting `/usr/local/apache/htdocs/gallery' will cause the
dhandler to be installed as `/usr/local/apache/htdocs/gallery/dhandler'.

Directory:]
);

print <<__DIE_DIE_DIE__ and exit unless $DEST_DIR;
*** No Destination Directory Provided ***
__DIE_DIE_DIE__

WriteMakefile(
  NAME          => 'faceplant',
  ABSTRACT      => 'A Photo Gallery written in Mason and Imager',
  AUTHOR        => 'Casey West <casey@geeknest.com>',
  PREREQ_PM     => {
                     'HTML::Mason'           => 0,
                     'Imager'                => 0,
                     'HTML::Table'           => 0,
                     'List::Group'           => 0,
                     'File::Type'            => 0,
                     'File::Spec::Functions' => 0,
                   },
  VERSION_FROM  => 'src/dhandler',
);