Make DB_File use -ldb on MSWin32 with a gcc compiler
[p5sagit/p5-mst-13.2.git] / ext / DB_File / Makefile.PL
CommitLineData
07200f1b 1use strict;
2use warnings;
3
b59936da 4use ExtUtils::MakeMaker ;
07200f1b 5use ExtUtils::Constant qw(WriteConstants);
88108326 6use Config ;
7
8# OS2 is a special case, so check for it now.
9my $OS2 = "-DOS2" if $Config{'osname'} eq 'os2' ;
8e07c86e 10
1f70e1ea 11my $LIB = "-ldb" ;
12# so is win32
50797850 13if ( $^O eq 'MSWin32' ) {
14 $LIB = $Config{cc} =~ /gcc/ ? "-ldb" : "-llibdb";
15}
1f70e1ea 16
8e07c86e 17WriteMakefile(
88108326 18 NAME => 'DB_File',
1f70e1ea 19 LIBS => ["-L/usr/local/lib $LIB"],
69158f75 20 MAN3PODS => {}, # Pods will be built by installman.
88108326 21 #INC => '-I/usr/local/include',
c07a80fd 22 VERSION_FROM => 'DB_File.pm',
039d031f 23 OBJECT => 'version$(OBJ_EXT) DB_File$(OBJ_EXT)',
88108326 24 XSPROTOARG => '-noprototypes',
6570f784 25 DEFINE => $OS2 || "",
07200f1b 26 INC => ($^O eq "MacOS" ? "-i ::::db:include" : ""),
a5d81eb5 27 XS_VERSION => eval MM->parse_version('DB_File.pm'),
f1aa208b 28 ((ExtUtils::MakeMaker->VERSION() gt '6.30')
29 ? ('LICENSE' => 'perl')
30 : ()
31 ),
32 (
33 $] >= 5.005
34 ? (ABSTRACT_FROM => 'DB_File.pm',
35 AUTHOR => 'Paul Marquess <pmqs@cpan.org>')
36 : ()
37 ),
38
412e9c57 39 'depend' => {'version$(OBJ_EXT)' => 'version.c'},
40 'clean' => {FILES => 'constants.h constants.xs'},
07200f1b 41 );
42
43my @names = qw(
44 BTREEMAGIC
45 BTREEVERSION
46 DB_LOCK
47 DB_SHMEM
48 DB_TXN
49 HASHMAGIC
50 HASHVERSION
51 MAX_PAGE_NUMBER
52 MAX_PAGE_OFFSET
53 MAX_REC_NUMBER
54 RET_ERROR
55 RET_SPECIAL
56 RET_SUCCESS
57 R_CURSOR
58 R_DUP
59 R_FIRST
60 R_FIXEDLEN
61 R_IAFTER
62 R_IBEFORE
63 R_LAST
64 R_NEXT
65 R_NOKEY
66 R_NOOVERWRITE
67 R_PREV
68 R_RECNOSYNC
69 R_SETCURSOR
70 R_SNAPSHOT
71 __R_UNUSED
88108326 72 );
8e07c86e 73
07200f1b 74 # Check the constants above all appear in @EXPORT in DB_File.pm
75 my %names = map { $_, 1} @names;
76 open F, "<DB_File.pm" or die "Cannot open DB_File.pm: $!\n";
77 while (<F>)
78 {
79 last if /^\s*\@EXPORT\s+=\s+qw\(/ ;
80 }
81
82 while (<F>)
83 {
84 last if /^\s*\)/ ;
85 /(\S+)/ ;
86 delete $names{$1} if defined $1 ;
87 }
88 close F ;
039d031f 89
07200f1b 90 if ( keys %names )
91 {
92 my $missing = join ("\n\t", sort keys %names) ;
93 die "The following names are missing from \@EXPORT in DB_File.pm\n" .
94 "\t$missing\n" ;
95 }
96
039d031f 97
07200f1b 98 WriteConstants( NAME => 'DB_File',
99 NAMES => \@names,
100 C_FILE => 'constants.h',
101 XS_FILE => 'constants.xs',
102 );