This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / ext / GDBM_File / Makefile.PL
CommitLineData
42793c05 1use ExtUtils::MakeMaker;
1cb0fb50 2use ExtUtils::Constant 0.11 'WriteConstants';
4ad3186e 3WriteMakefile(
1adb159c 4 NAME => 'GDBM_File',
30afd0dc 5 LIBS => ["-lgdbm", "-ldbm"],
4ad3186e 6 XSPROTOARG => '-noprototypes', # XXX remove later?
c07a80fd 7 VERSION_FROM => 'GDBM_File.pm',
ece2ffd9 8 realclean => {FILES=> 'const-c.inc const-xs.inc'},
a5d81eb5 9 XS_VERSION => eval MM->parse_version('GDBM_File.pm'), #silence warnings if we are a dev release
0552bf3a 10);
1d7b7043
SP
11
12my @names = qw(GDBM_CACHESIZE GDBM_CENTFREE GDBM_COALESCEBLKS
13 GDBM_FAST GDBM_FASTMODE GDBM_INSERT GDBM_NEWDB GDBM_NOLOCK
14 GDBM_OPENMASK GDBM_READER GDBM_REPLACE GDBM_SYNC GDBM_SYNCMODE
15 GDBM_WRCREAT GDBM_WRITER GDBM_NOMMAP GDBM_CLOEXEC GDBM_BSEXACT
16 GDBM_XVERIFY GDBM_PREREAD GDBM_NUMSYNC);
17
18push @names, {
19 name => $_,
20 type => "IV",
8b8b1222 21 macro => [ "#if GDBM_VERSION_MAJOR > 1 || GDBM_VERSION_MINOR >= 21\n",
1d7b7043
SP
22 "#endif\n" ],
23 value => "$_",
24} foreach qw(GDBM_SNAPSHOT_OK GDBM_SNAPSHOT_BAD GDBM_SNAPSHOT_ERR
25 GDBM_SNAPSHOT_SAME GDBM_SNAPSHOT_SUSPICIOUS);
26
8b8b1222 27# Basic error codes - these are supported by all versions of gdbm
0f875b7c
SP
28push @names, {
29 name => $_,
30 value => "$_",
31 type => "IV",
32 macro => 1
33} foreach qw(
8b8b1222
SP
34 GDBM_NO_ERROR
35 GDBM_MALLOC_ERROR
36 GDBM_BLOCK_SIZE_ERROR
37 GDBM_FILE_OPEN_ERROR
38 GDBM_FILE_WRITE_ERROR
39 GDBM_FILE_SEEK_ERROR
40 GDBM_FILE_READ_ERROR
41 GDBM_BAD_MAGIC_NUMBER
42 GDBM_EMPTY_DATABASE
43 GDBM_CANT_BE_READER
44 GDBM_CANT_BE_WRITER
45 GDBM_READER_CANT_DELETE
46 GDBM_READER_CANT_STORE
47 GDBM_READER_CANT_REORGANIZE
48 GDBM_UNKNOWN_UPDATE
49 GDBM_ITEM_NOT_FOUND
50 GDBM_REORGANIZE_FAILED
51 GDBM_CANNOT_REPLACE
52 GDBM_ILLEGAL_DATA
53 GDBM_OPT_ALREADY_SET
54 GDBM_OPT_ILLEGAL);
55
56# Error codes added in various versions of gdbm
57push @names, {
58 name => $_->[0],
59 value => "$_->[0]",
60 type => "IV",
61 macro => [ "#if GDBM_VERSION_MAJOR > 1 || $_->[1]\n",
62 "#endif\n" ],
63} foreach map {
64 my @vref = @{$_}[1..$#{$_}];
65 my $cond;
66 if ($_->[2]) {
67 $cond = "GDBM_VERSION_MINOR > $_->[1] || ( GDBM_VERSION_MINOR == $_->[1] && GDBM_VERSION_PATCH >= $_->[2] )";
68 } else {
69 $cond = "GDBM_VERSION_MINOR >= $_->[1]";
70 }
71 map { [$_, $cond ] } @{$_->[0]}
72} ( # [ [ ERROR_CODE_NAMES ], MAJ [, MIN [, PAT]] ]
73 # where MAJ,MIN,PAT are major, minor and patchlevel numbers of the gdbm
74 # version which introduced ERROR_CODE_NAMES.
75 [[qw(GDBM_BYTE_SWAPPED GDBM_BAD_FILE_OFFSET GDBM_BAD_OPEN_FLAGS)], 9],
76 [[qw(GDBM_FILE_STAT_ERROR GDBM_FILE_EOF)], 10],
77 [[qw(GDBM_NO_DBNAME GDBM_ERR_FILE_OWNER GDBM_ERR_FILE_MODE)], 11],
78 [[qw(GDBM_UNKNOWN_ERROR GDBM_NEED_RECOVERY GDBM_BACKUP_FAILED
79 GDBM_DIR_OVERFLOW)], 13],
80 [[qw(GDBM_BAD_BUCKET GDBM_BAD_HEADER GDBM_BAD_AVAIL GDBM_BAD_HASH_TABLE
81 GDBM_BAD_DIR_ENTRY)], 15],
82 [[qw(GDBM_FILE_CLOSE_ERROR GDBM_FILE_SYNC_ERROR)], 17],
83 [[qw(GDBM_FILE_TRUNCATE_ERROR)], 18, 1],
84 [[qw(GDBM_BUCKET_CACHE_CORRUPTED GDBM_BAD_HASH_ENTRY)], 20],
85 [[qw(GDBM_MALFORMED_DATA GDBM_OPT_BADVAL GDBM_ERR_SNAPSHOT_CLONE
86 GDBM_ERR_REALPATH GDBM_ERR_USAGE)], 21]
87 );
88
89
0552bf3a
NC
90WriteConstants(
91 NAME => 'GDBM_File',
92 DEFAULT_TYPE => 'IV',
93 BREAKOUT_AT => 8,
6642cd87 94 PROXYSUBS => {autoload => 1},
1d7b7043 95 NAMES => \@names
4ad3186e 96);