use ExtUtils::MakeMaker qw(WriteMakefile); use Getopt::Long; # First we check if this is a local install print STDERR "Loading Config.pm\n"; if (-f '../Bio/Genex/Config.pm') { # configure.pl has already been run, we just load Config.pm eval { use lib '..'; require Bio::Genex::Config; }; die "$0: Couldn't load local Config.pm: $@\n" if $@; } else { eval { require Bio::Genex::Config; }; if ($@) { die <<"EOE"; Could not load Bio::Genex::Config. This means you did not read the README. EOE } $START_PERL = $Bio::Genex::Config->{'START_PERL'}; die "Bogus START_PERL: $Bio::Genex::Config->{'START_PERL'}\n" unless $START_PERL; # since this is an update, we have to run configure.pl ourselves my $infile = './scripts/configure.pl.in'; my $outfile = './scripts/configure.pl'; print STDERR "Running $outfile ...\n\n"; open(IN,$infile) or die "Couldn't open $infile for reading"; open(OUT,">$outfile") or die "Couldn't open $outfile for writing"; my $done = 0; while () { if ($done) { print OUT; next; } else { if ($_ =~ /\%\%START_PERL\%\%/) { $_ =~ s/\%\%START_PERL\%\%/$START_PERL/g; $done = 1; print OUT; } } } close(OUT); close(IN); chmod(0775,$outfile); `$outfile`; die "Couldn't run $outfile: $!" if $?; } $EXAMPLE_DIR = $Bio::Genex::Config->{'GENEX_EXAMPLE_DIR'}; $GENEX_MAN1 = $Bio::Genex::Config->{'GENEX_MAN1'}; $GENEX_MAN3 = $Bio::Genex::Config->{'GENEX_MAN3'}; $GENEX_INSTALLSITE = $Bio::Genex::Config->{'GENEX_INSTALLSITE'}; ############################################################################### # # Now begin the process of constructing the files # # # # Tell perl where to install the cgi scripts and Genex.pm # my $PM = {'Genex.pm' => '$(INST_LIBDIR)/Genex.pm', }; print STDERR "EXAMPLE_DIR undefined!!!!\n" unless defined $EXAMPLE_DIR; print STDERR "MAN3_DIR undefined!!!!\n" unless defined $GENEX_MAN3; print STDERR "MAN1_DIR undefined!!!!\n" unless defined $GENEX_MAN1; print STDERR "INSTALLSITELIB undefined!!!!\n" unless defined $GENEX_INSTALLSITE; print STDOUT <<"EOM"; Using the following installation parameters from Genex::Config: 'INSTALLSITELIB' => $GENEX_INSTALLSITE, 'INSTALLMAN1DIR' => $GENEX_MAN1, 'INSTALLMAN3DIR' => $GENEX_MAN3, EOM WriteMakefile( INSTALLSITELIB => $GENEX_INSTALLSITE, INSTALLMAN1DIR => $GENEX_MAN1, INSTALLMAN3DIR => $GENEX_MAN3, PM => $PM, NAME => 'Bio::Genex', VERSION_FROM => 'Genex.pm.in', PREREQ_PM => { 'Class::ObjectTemplate::DB' => '0.22', } ); sub libscan { my($self, $path) = @_; if ($path =~ /(PerlPP\.pm|Config\.pm|Install\.pm|,v|~)$/) { return undef; } $path; } sub MY::install { package MY; my ($self) = shift; my $text = $self->SUPER::install(@_); # we want to replace the following line: # 'install :: all pure_install doc_install' # with this: # 'install :: all pure_install doc_install install_samples'' # $text =~ s/(install\s+::\s+.*)\n/\1 install_samples\n/; # we append on the 'install_samples' target $text .= ' install_samples :: cd samples ; make install_samples '; return $text; }