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