Makefile.PL
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #! perl -w
  2. # It should not be necessary to edit this file. The configuration for
  3. # BerkeleyDB is controlled from the file config.in
  4. BEGIN { die "BerkeleyDB needs Perl 5.004_04 or greater" if $] < 5.004_04 ; }
  5. use strict ;
  6. use ExtUtils::MakeMaker ;
  7. my $LIB_DIR ;
  8. my $INC_DIR ;
  9. my $DB_NAME ;
  10. my $LIBS ;
  11. ParseCONFIG() ;
  12. if (defined $DB_NAME) 
  13.   { $LIBS = $DB_NAME }
  14. else { 
  15.     if ($^O eq 'MSWin32')
  16.       { $LIBS = '-llibdb' }
  17.     else
  18.       { $LIBS = '-ldb' }
  19. }
  20. # OS2 is a special case, so check for it now.
  21. my $OS2 = "" ;
  22. $OS2 = "-DOS2" if $^O eq 'os2' ;
  23. WriteMakefile(
  24. NAME  => 'BerkeleyDB',
  25. LIBS  => ["-L${LIB_DIR} $LIBS"],
  26.         MAN3PODS        => ' ',         # Pods will be built by installman.
  27. INC => "-I$INC_DIR",
  28. VERSION_FROM => 'BerkeleyDB.pm',
  29. XSPROTOARG => '-noprototypes',
  30. DEFINE => "$OS2",
  31. #'macro' => { INSTALLDIRS => 'perl' },
  32.         'dist'          => {COMPRESS=>'gzip', SUFFIX=>'gz'},    
  33. ($] >= 5.005
  34.     ? (ABSTRACT_FROM => 'BerkeleyDB.pod',
  35.        AUTHOR   => 'Paul Marquess <Paul.Marquess@btinternet.com>')
  36.     : ()
  37. ),
  38. );
  39. sub MY::postamble {
  40. '
  41. $(NAME).pod: $(NAME).pod.P t/examples.t.T t/examples3.t.T mkpod
  42. perl ./mkpod
  43. $(NAME).xs: typemap
  44. @$(TOUCH) $(NAME).xs
  45. Makefile: config.in 
  46. ' ;
  47. }
  48. sub ParseCONFIG
  49. {
  50.     my ($k, $v) ;
  51.     my @badkey = () ;
  52.     my %Info = () ;
  53.     my @Options = qw( INCLUDE LIB DBNAME ) ;
  54.     my %ValidOption = map {$_, 1} @Options ;
  55.     my %Parsed = %ValidOption ;
  56.     my $CONFIG = 'config.in' ;
  57.     print "Parsing $CONFIG...n" ;
  58.     # DBNAME is optional, so pretend it has been parsed.
  59.     delete $Parsed{'DBNAME'} ;
  60.     open(F, "$CONFIG") or die "Cannot open file $CONFIG: $!n" ;
  61.     while (<F>) {
  62. s/^s*|s*$//g ;
  63. next if /^s*$/ or /^s*#/ ;
  64. s/s*#s*$// ;
  65. ($k, $v) = split(/s+=s+/, $_, 2) ;
  66. $k = uc $k ;
  67. if ($ValidOption{$k}) {
  68.     delete $Parsed{$k} ;
  69.     $Info{$k} = $v ;
  70. }
  71. else {
  72.     push(@badkey, $k) ;
  73. }
  74.     }
  75.     close F ;
  76.     print "Unknown keys in $CONFIG ignored [@badkey]n"
  77. if @badkey ;
  78.     # check parsed values
  79.     my @missing = () ;
  80.     die "The following keys are missing from $CONFIG file: [@missing]n" 
  81.         if @missing = keys %Parsed ;
  82.     $INC_DIR =  $ENV{'BERKELEYDB_INCLUDE'} || $Info{'INCLUDE'} ;
  83.     $LIB_DIR =  $ENV{'BERKELEYDB_LIB'} || $Info{'LIB'} ;
  84.     $DB_NAME = $Info{'DBNAME'} if defined $Info{'DBNAME'} ;
  85.     print "Looks Good.n" ;
  86. }
  87. # end of file Makefile.PL