use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
'NAME' => 'foo::bar',
'VERSION_FROM' => 'bar.pm', # finds $VERSION
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
);
It could easily look like this:
use ExtUtils::MakeMaker;
my ( $config_file, $makefile ) = ask_config_questions();
write_config( %$config_file );
WriteMakefile( %$makefile );
sub ask_config_questions {
my %config;
print "What is your name? ";
chomp( my $name = <> );
$config{'name'} = $name;
# blah blah
my %makefile = ('NAME' => 'foo::bar',
'VERSION_FROM' => 'bar.pm' );
# blah blah - ask more questions, modify %makefile...
return \%config, \%makefile;
}
sub write_config {
my %config = @_;
open CONFIG, '/some/path/' or die "Can't write config $!\n";
print CONFIG "$_ = $config{$_}\n" for keys %config;
close CONFIG
}
See the MakeMaker.pm docs for more details on how you change the Makefile via the hash you pass to WriteMakefile(). make(1) just processes the Makefile so you need to do your stuff in the Makefile.PL which writes this file if you want to keep it really simple.
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
|