test needs to be in same CVS module as the perl module
[bioperl-run.git] / Makefile.PL
blob75b2e1ae30f941348f03bd44224f8e3fc8f493dd
1 ## --Makefile.PL for Bioperl-pipeline distribution--##
2 ## ----------------------------------------------------##
3 ## $Id$
4 ##----------------------------------------------------
7 # Basically this is a standard Makefile with a hash of
8 # needed packages which are tested at the start
10 # If you want help with this Makefile get in touch with
11 # the developers by sending a message to bioperl-l@bioperl.org.
12 require 5.005;
13 use ExtUtils::MakeMaker;
17 # All Bioperl dependencies on external modules are defined here
18 %packages = (
19              'IO::String'               => '0.0/IO handle to read or write to a string/GenBank+GenPept sequence retrieval, Variation code/Bio::DB::*,Bio::Variation::*,Bio::Tools::Blast::Run::Webblast, Bio::Index::Blast',
20              'File::Temp'               => '0.0/Temporary File creation/Bio::Root::IO uses if present/Bio::DB::WebDBSeqI, Bio::Seq::LargePrimarySeq',
21              'XML::Parser::PerlSAX'          => '0.0/XML SAX parser/Pise Applications/Pise::Job',
22              'HTML::Parser'     => '0.0/HTML Parser/Pise Applications/Pise::Job');
24 sub check_package {
25     my ($name,$str) = @_;
26     my ($ver,$desc,$expl,$module) = split( /\// , $str);
27     if( !eval "require($name)") {
28         print "External Module $name, $desc,\n is not installed on this computer.\n  The $module in bioperl-run  needs it for $expl\n\n";
29         return 1;
30     }
32     return 0;
36 # Generate sub testing package system
40 # make mini test targets for playing around with
41 # in testing...
43 opendir(DIR,"t") || warn "No test directory. Weird!";
44 @files = readdir(DIR);
45 shift @files;
46 shift @files;
47 foreach my $file (@files) {
48     $file =~ /(\w+)\.t/ || next;
49     $file = $1;
50     $line = "test_$file :: pure_all\n\tPERL_DL_NONLAZY=1 \$(FULLPERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB) -I\$(PERL_LIB) -e \'use Test::Harness qw(&runtests \$\$verbose); \$\$verbose=\$(TEST_VERBOSE); runtests \@ARGV;\' t/$file.t\n";
51     push(@tline,$line);
52     push(@targets,$file);
53     $tset  .= "$file \\\n";
56 $tline = join('',@tline);
57 $tline = "show_tests :\n\t\@echo \'type make test_<subtest> to run\'\n\t\@echo '$tset'\n$tline\n";
59 print STDERR "Generated sub tests. go make show_tests to see available subtests\n";
61 sub MY::postamble {
62              $tline;
66 # Talk to Elia Stupka (<elia@fugu-sg.org>) or bioperl-l@bioperl.org for more info.
69 # Let the code begin...
71 my $NAME     = 'Bio';
72 my $DISTNAME = "bioperl-run";
73 my $VERSION  = "1.00";
75 my $proceed = prompt("Do you want to run the Pise tests (requires a network connection) y/n",'n');
76 if( $proceed =~ /^[yY]/) {
77     my $address = prompt("Enter your email address (no default)",'');
78    
79     if (open T,">t/pise-email.test") {
80 print T "$address\n";
81 close T;
82     } else { warn("Cannot open file t/pise-email.test for writing - no Pise tests will be run"); }
83 } else {
84     if( -e "t/pise-email.test" ) {
85 unlink "t/pise-email.test";
86     }
88 #$do_autoload_finesse = 0;
89 #$NAME     = 'Bio';
90 #$DISTNAME = "GFD";
91 #$VERSION  = "1.00";
93 $error = 0;
94 print "\n";
95 foreach $name ( keys %packages ) {
96     if( &check_package($name,$packages{$name}) == 1 ) {
97         $error = 1;
98     }
101 if( $error == 1 ) {
102     print <<QQ_ERROR_QQ;
104 Warning:
106    There are some external packages and perl modules, listed above, which 
107    bioperl-run uses. This only effects the functionality which is listed above:
108 the rest of bioperl will work fine.
110    The installation of these external packages is very simple. You
111    can read more about bioperl external dependencies at
113    http://bioperl.org/Core/external.shtml
115    Enjoy the rest of bioperl, which you can use after going 'make install'
117 QQ_ERROR_QQ
120 WriteMakefile(
121     NAME        => $NAME,
122     DISTNAME    => $DISTNAME,
123     VERSION     => $VERSION,
124     'dist'      => {  COMPRESS     => 'gzip -9f',
125                       SUFFIX       => '.gz', 
126                       DIST_DEFAULT => 'all tardist',
127                    },
128     ($] ge '5.005')  ? (
129         'AUTHOR' => 'FuguI Team (fugui@fugu-sg.org)',
130         'ABSTRACT' => 'Generic Feature Database',
131         ) : (),
132      'realclean'  => {  FILES        => join(' ',@BACKUP_FILES) }