3
use ExtUtils::Constant qw(WriteConstants);
5
use constant DEFINE => 'define' ;
6
use constant STRING => 'string' ;
7
use constant IGNORE => 'ignore' ;
16
DBM_REPLACE => IGNORE,
20
DB_AM_INMEM => IGNORE,
21
DB_AM_LOCKING => IGNORE,
22
DB_AM_LOGGING => IGNORE,
23
DB_AM_MLOCAL => IGNORE,
24
DB_AM_PGDEF => IGNORE,
25
DB_AM_RDONLY => IGNORE,
26
DB_AM_RECOVER => IGNORE,
29
DB_APP_INIT => DEFINE,
31
DB_BTREEMAGIC => DEFINE,
32
DB_BTREEVERSION => DEFINE,
33
DB_BT_DELIMITER => IGNORE,
35
DB_BT_FIXEDLEN => IGNORE,
37
DB_BT_SNAPSHOT => IGNORE,
38
DB_CHECKPOINT => DEFINE,
41
DB_DBT_INTERNAL => IGNORE,
42
DB_DBT_MALLOC => IGNORE,
43
DB_DBT_PARTIAL => IGNORE,
44
DB_DBT_USERMEM => IGNORE,
46
DB_DELIMITER => DEFINE,
50
DB_FIXEDLEN => DEFINE,
52
DB_HASHMAGIC => DEFINE,
53
DB_HASHVERSION => DEFINE,
54
DB_HS_DIRTYMETA => IGNORE,
55
DB_INCOMPLETE => DEFINE,
56
DB_INIT_LOCK => DEFINE,
57
DB_INIT_LOG => DEFINE,
58
DB_INIT_MPOOL => DEFINE,
59
DB_INIT_TXN => DEFINE,
60
DB_KEYEXIST => DEFINE,
61
DB_KEYFIRST => DEFINE,
64
DB_LOCKMAGIC => DEFINE,
65
DB_LOCKVERSION => DEFINE,
66
DB_LOCK_DEADLOCK => DEFINE,
67
DB_LOCK_NOTGRANTED => DEFINE,
68
DB_LOCK_NOTHELD => DEFINE,
69
DB_LOCK_NOWAIT => DEFINE,
70
DB_LOCK_RIW_N => DEFINE,
71
DB_LOCK_RW_N => DEFINE,
72
DB_LOGMAGIC => DEFINE,
73
DB_LOGVERSION => DEFINE,
74
DB_MAX_PAGES => DEFINE,
75
DB_MAX_RECORDS => DEFINE,
76
DB_MPOOL_CLEAN => DEFINE,
77
DB_MPOOL_CREATE => DEFINE,
78
DB_MPOOL_DIRTY => DEFINE,
79
DB_MPOOL_DISCARD => DEFINE,
80
DB_MPOOL_LAST => DEFINE,
81
DB_MPOOL_NEW => DEFINE,
82
DB_MPOOL_PRIVATE => DEFINE,
83
DB_MUTEXDEBUG => DEFINE,
84
DB_NEEDSPLIT => DEFINE,
86
DB_NOOVERWRITE => DEFINE,
87
DB_NORECURSE => DEFINE,
89
DB_NOTFOUND => DEFINE,
93
DB_REGISTERED => DEFINE,
94
DB_RE_MODIFIED => IGNORE,
96
DB_SET_RANGE => DEFINE,
97
DB_SNAPSHOT => DEFINE,
98
DB_SWAPBYTES => DEFINE,
99
DB_TRUNCATE => DEFINE,
100
DB_TXNMAGIC => DEFINE,
101
DB_TXNVERSION => DEFINE,
102
DB_TXN_BACKWARD_ROLL => DEFINE,
103
DB_TXN_FORWARD_ROLL => DEFINE,
104
DB_TXN_LOCK_2PL => DEFINE,
105
DB_TXN_LOCK_MASK => DEFINE,
106
DB_TXN_LOCK_OPTIMISTIC => DEFINE,
107
DB_TXN_LOG_MASK => DEFINE,
108
DB_TXN_LOG_REDO => DEFINE,
109
DB_TXN_LOG_UNDO => DEFINE,
110
DB_TXN_LOG_UNDOREDO => DEFINE,
111
DB_TXN_OPENFILES => DEFINE,
112
DB_TXN_REDO => DEFINE,
113
DB_TXN_UNDO => DEFINE,
114
DB_USE_ENVIRON => DEFINE,
115
DB_USE_ENVIRON_ROOT => DEFINE,
116
DB_VERSION_MAJOR => DEFINE,
117
DB_VERSION_MINOR => DEFINE,
118
DB_VERSION_PATCH => DEFINE,
119
DB_VERSION_STRING => STRING,
121
__BIT_TYPES_DEFINED__ => IGNORE,
128
DB_UNKNOWN => '2.0.0',
131
DB_LOCK_DUMP => '2.0.0',
132
DB_LOCK_GET => '2.0.0',
133
DB_LOCK_PUT => '2.0.0',
134
DB_LOCK_PUT_ALL => '2.0.0',
135
DB_LOCK_PUT_OBJ => '2.0.0',
138
DB_LOCK_NG => IGNORE, # 2.0.0
139
DB_LOCK_READ => IGNORE, # 2.0.0
140
DB_LOCK_WRITE => IGNORE, # 2.0.0
141
DB_LOCK_IREAD => IGNORE, # 2.0.0
142
DB_LOCK_IWRITE => IGNORE, # 2.0.0
143
DB_LOCK_IWR => IGNORE, # 2.0.0
146
FIND => IGNORE, # 2.0.0
147
ENTER => IGNORE, # 2.0.0
153
DB_SEQUENTIAL => DEFINE,
154
DB_TEMPORARY => DEFINE,
166
DB_AM_THREAD => IGNORE,
167
DB_ARCH_ABS => DEFINE,
168
DB_ARCH_DATA => DEFINE,
169
DB_ARCH_LOG => DEFINE,
170
DB_LOCK_CONFLICT => DEFINE,
171
DB_LOCK_DEFAULT => DEFINE,
172
DB_LOCK_NORUN => DEFINE,
173
DB_LOCK_OLDEST => DEFINE,
174
DB_LOCK_RANDOM => DEFINE,
175
DB_LOCK_YOUNGEST => DEFINE,
176
DB_RECOVER => DEFINE,
177
DB_RECOVER_FATAL => DEFINE,
179
DB_TXN_NOSYNC => DEFINE,
185
DB_BTREEOLDVER => DEFINE,
186
DB_BT_RECNUM => IGNORE,
187
DB_FILE_ID_LEN => DEFINE,
189
DB_HASHOLDVER => DEFINE,
190
DB_KEYEMPTY => DEFINE,
191
DB_LOGOLDVER => DEFINE,
193
DB_RECORDCOUNT => DEFINE,
194
DB_RENUMBER => DEFINE,
195
DB_RE_DELIMITER => IGNORE,
196
DB_RE_FIXEDLEN => IGNORE,
198
DB_RE_RENUMBER => IGNORE,
199
DB_RE_SNAPSHOT => IGNORE,
205
DB_GET_RECNO => DEFINE,
206
DB_SET_RECNO => DEFINE,
218
DB_TXN_CKP => DEFINE,
224
DB_ENV_APPINIT => DEFINE,
225
DB_ENV_STANDALONE => DEFINE,
226
DB_ENV_THREAD => DEFINE,
232
DB_FUNC_CALLOC => IGNORE,
233
DB_FUNC_CLOSE => IGNORE,
234
DB_FUNC_DIRFREE => IGNORE,
235
DB_FUNC_DIRLIST => IGNORE,
236
DB_FUNC_EXISTS => IGNORE,
237
DB_FUNC_FREE => IGNORE,
238
DB_FUNC_FSYNC => IGNORE,
239
DB_FUNC_IOINFO => IGNORE,
240
DB_FUNC_MALLOC => IGNORE,
241
DB_FUNC_MAP => IGNORE,
242
DB_FUNC_OPEN => IGNORE,
243
DB_FUNC_READ => IGNORE,
244
DB_FUNC_REALLOC => IGNORE,
245
DB_FUNC_SEEK => IGNORE,
246
DB_FUNC_SLEEP => IGNORE,
247
DB_FUNC_STRDUP => IGNORE,
248
DB_FUNC_UNLINK => IGNORE,
249
DB_FUNC_UNMAP => IGNORE,
250
DB_FUNC_WRITE => IGNORE,
251
DB_FUNC_YIELD => IGNORE,
257
DB_TSL_SPINS => IGNORE,
263
DB_DBM_HSEARCH => IGNORE,
272
DB_FUNC_RUNLINK => IGNORE,
273
DB_REGION_ANON => DEFINE,
274
DB_REGION_INIT => DEFINE,
275
DB_REGION_NAME => DEFINE,
276
DB_TXN_LOCK_OPTIMIST => DEFINE,
277
__CURRENTLY_UNUSED => IGNORE,
280
DB_LSTAT_ABORTED => IGNORE, # 2.4.10
281
DB_LSTAT_ERR => IGNORE, # 2.4.10
282
DB_LSTAT_FREE => IGNORE, # 2.4.10
283
DB_LSTAT_HELD => IGNORE, # 2.4.10
284
DB_LSTAT_NOGRANT => IGNORE, # 2.4.10
285
DB_LSTAT_PENDING => IGNORE, # 2.4.10
286
DB_LSTAT_WAITING => IGNORE, # 2.4.10
292
DB_MUTEXLOCKS => DEFINE,
293
DB_PAGEYIELD => DEFINE,
294
__UNUSED_100 => IGNORE,
295
__UNUSED_4000 => IGNORE,
301
DBC_CONTINUE => IGNORE,
302
DBC_KEYSET => IGNORE,
303
DBC_RECOVER => IGNORE,
305
DB_DBM_ERROR => IGNORE,
306
DB_GET_BOTH => DEFINE,
307
DB_NEXT_DUP => DEFINE,
308
DB_OPFLAGS_MASK => DEFINE,
310
DB_RUNRECOVERY => DEFINE,
317
DB_DUPSORT => DEFINE,
318
DB_JOIN_ITEM => DEFINE,
324
DBC_WRITER => IGNORE,
326
DB_ENV_CDB => DEFINE,
327
DB_INIT_CDB => DEFINE,
328
DB_LOCK_UPGRADE => DEFINE,
329
DB_WRITELOCK => DEFINE,
337
DB_LOCK_INHERIT => '2.7.1',
343
DB_FCNTL_LOCKING => DEFINE,
349
DBC_WRITECURSOR => IGNORE,
350
DB_AM_DISCARD => IGNORE,
351
DB_AM_SUBDB => IGNORE,
352
DB_BT_REVSPLIT => IGNORE,
353
DB_CONSUME => DEFINE,
354
DB_CXX_NO_EXCEPTIONS => DEFINE,
355
DB_DBT_REALLOC => IGNORE,
356
DB_DUPCURSOR => DEFINE,
357
DB_ENV_CREATE => DEFINE,
358
DB_ENV_DBLOCAL => DEFINE,
359
DB_ENV_LOCKDOWN => DEFINE,
360
DB_ENV_LOCKING => DEFINE,
361
DB_ENV_LOGGING => DEFINE,
362
DB_ENV_NOMMAP => DEFINE,
363
DB_ENV_OPEN_CALLED => DEFINE,
364
DB_ENV_PRIVATE => DEFINE,
365
DB_ENV_SYSTEM_MEM => DEFINE,
366
DB_ENV_TXN => DEFINE,
367
DB_ENV_TXN_NOSYNC => DEFINE,
368
DB_ENV_USER_ALLOC => DEFINE,
370
DB_LOCKDOWN => DEFINE,
371
DB_LOCK_RECORD => DEFINE,
372
DB_LOGFILEID_INVALID => DEFINE,
373
DB_MPOOL_NEW_GROUP => DEFINE,
374
DB_NEXT_NODUP => DEFINE,
375
DB_OK_BTREE => DEFINE,
376
DB_OK_HASH => DEFINE,
377
DB_OK_QUEUE => DEFINE,
378
DB_OK_RECNO => DEFINE,
379
DB_OLD_VERSION => DEFINE,
380
DB_OPEN_CALLED => DEFINE,
381
DB_PAGE_LOCK => DEFINE,
382
DB_POSITION => DEFINE,
383
DB_POSITIONI => DEFINE,
384
DB_PRIVATE => DEFINE,
385
DB_QAMMAGIC => DEFINE,
386
DB_QAMOLDVER => DEFINE,
387
DB_QAMVERSION => DEFINE,
388
DB_RECORD_LOCK => DEFINE,
389
DB_REVSPLITOFF => DEFINE,
390
DB_SYSTEM_MEM => DEFINE,
391
DB_TEST_POSTLOG => DEFINE,
392
DB_TEST_POSTLOGMETA => DEFINE,
393
DB_TEST_POSTOPEN => DEFINE,
394
DB_TEST_POSTRENAME => DEFINE,
395
DB_TEST_POSTSYNC => DEFINE,
396
DB_TEST_PREOPEN => DEFINE,
397
DB_TEST_PRERENAME => DEFINE,
398
DB_TXN_NOWAIT => DEFINE,
399
DB_TXN_SYNC => DEFINE,
400
DB_UPGRADE => DEFINE,
401
DB_VERB_CHKPOINT => DEFINE,
402
DB_VERB_DEADLOCK => DEFINE,
403
DB_VERB_RECOVERY => DEFINE,
404
DB_VERB_WAITSFOR => DEFINE,
405
DB_WRITECURSOR => DEFINE,
406
DB_XA_CREATE => DEFINE,
409
DB_QUEUE => '3.0.55',
415
DBC_ACTIVE => IGNORE,
417
DBC_TRANSIENT => IGNORE,
418
DBC_WRITEDUP => IGNORE,
419
DB_AGGRESSIVE => DEFINE,
420
DB_AM_DUPSORT => IGNORE,
421
DB_CACHED_COUNTS => DEFINE,
423
DB_DBT_DUPOK => IGNORE,
424
DB_DBT_ISSET => IGNORE,
425
DB_ENV_RPCCLIENT => DEFINE,
426
DB_GET_BOTHC => DEFINE,
427
DB_JOIN_NOSORT => DEFINE,
428
DB_NODUPDATA => DEFINE,
429
DB_NOORDERCHK => DEFINE,
430
DB_NOSERVER => DEFINE,
431
DB_NOSERVER_HOME => DEFINE,
432
DB_NOSERVER_ID => DEFINE,
433
DB_ODDFILESIZE => DEFINE,
434
DB_ORDERCHKONLY => DEFINE,
435
DB_PREV_NODUP => DEFINE,
436
DB_PR_HEADERS => DEFINE,
437
DB_PR_PAGE => DEFINE,
438
DB_PR_RECOVERYTEST => DEFINE,
439
DB_RDWRMASTER => DEFINE,
440
DB_SALVAGE => DEFINE,
441
DB_VERIFY_BAD => DEFINE,
442
DB_VERIFY_FATAL => DEFINE,
443
DB_VRFY_FLAGMASK => DEFINE,
446
DB_TXN_ABORT => '3.1.12',
447
DB_TXN_BACKWARD_ROLL => '3.1.12',
448
DB_TXN_FORWARD_ROLL => '3.1.12',
449
DB_TXN_OPENFILES => '3.1.12',
455
DBC_COMPENSATE => IGNORE,
456
DB_AM_VERIFYING => IGNORE,
457
DB_CDB_ALLDB => DEFINE,
458
DB_ENV_CDB_ALLDB => DEFINE,
460
DB_JOINENV => DEFINE,
461
DB_LOCK_SWITCH => DEFINE,
462
DB_MPOOL_EXTENT => DEFINE,
463
DB_REGION_MAGIC => DEFINE,
464
DB_UNRESOLVED_CHILD => DEFINE,
468
DB_NOTICE_LOGFILE_CHANGED => IGNORE, # 3.2.3
474
DB_ALREADY_ABORTED => DEFINE,
475
DB_CONSUME_WAIT => DEFINE,
476
DB_JAVA_CALLBACK => DEFINE,
477
DB_TEST_POSTEXTDELETE => DEFINE,
478
DB_TEST_POSTEXTOPEN => DEFINE,
479
DB_TEST_POSTEXTUNLINK => DEFINE,
480
DB_TEST_PREEXTDELETE => DEFINE,
481
DB_TEST_PREEXTOPEN => DEFINE,
482
DB_TEST_PREEXTUNLINK => DEFINE,
485
DB_LOCK_WAIT => IGNORE, # 3.2.6
491
DBC_DIRTY_READ => IGNORE,
492
DBC_MULTIPLE => IGNORE,
493
DBC_MULTIPLE_KEY => IGNORE,
494
DB_AM_DIRTY => IGNORE,
495
DB_AM_SECONDARY => IGNORE,
497
DB_DBT_APPMALLOC => IGNORE,
498
DB_DIRTY_READ => DEFINE,
499
DB_DONOTINDEX => DEFINE,
500
DB_ENV_PANIC_OK => DEFINE,
501
DB_ENV_RPCCLIENT_GIVEN => DEFINE,
502
DB_FAST_STAT => DEFINE,
503
DB_LOCK_MAXLOCKS => DEFINE,
504
DB_LOCK_MINLOCKS => DEFINE,
505
DB_LOCK_MINWRITE => DEFINE,
506
DB_MULTIPLE => DEFINE,
507
DB_MULTIPLE_KEY => DEFINE,
508
DB_PAGE_NOTFOUND => DEFINE,
509
DB_RPC_SERVERPROG => DEFINE,
510
DB_RPC_SERVERVERS => DEFINE,
511
DB_UPDATE_SECONDARY => DEFINE,
512
DB_XIDDATASIZE => DEFINE,
515
DB_TXN_POPENFILES => '3.3.4',
518
DB_LOCK_UPGRADE_WRITE => '3.3.4',
521
DB_LOCK_DIRTY => IGNORE, # 3.3.4
522
DB_LOCK_WWRITE => IGNORE, # 3.3.4
528
DB_SECONDARY_BAD => DEFINE,
529
DB_SURPRISE_KID => DEFINE,
530
DB_TEST_POSTDESTROY => DEFINE,
531
DB_TEST_PREDESTROY => DEFINE,
537
DB_APPLY_LOGREG => DEFINE,
538
DB_BROADCAST_EID => DEFINE,
539
DB_CL_WRITER => DEFINE,
540
DB_ENV_NOLOCKING => DEFINE,
541
DB_ENV_NOPANIC => DEFINE,
542
DB_ENV_REGION_INIT => DEFINE,
543
DB_ENV_REP_CLIENT => DEFINE,
544
DB_ENV_REP_LOGSONLY => DEFINE,
545
DB_ENV_REP_MASTER => DEFINE,
546
DB_ENV_YIELDCPU => DEFINE,
547
DB_GET_BOTH_RANGE => DEFINE,
548
DB_INVALID_EID => DEFINE,
549
DB_LOCK_EXPIRE => DEFINE,
550
DB_LOCK_FREE_LOCKER => DEFINE,
551
DB_LOCK_SET_TIMEOUT => DEFINE,
552
DB_LOGC_BUF_SIZE => DEFINE,
553
DB_LOG_DISK => DEFINE,
554
DB_LOG_LOCKED => DEFINE,
555
DB_LOG_SILENT_ERR => DEFINE,
556
DB_NOLOCKING => DEFINE,
557
DB_NOPANIC => DEFINE,
558
DB_PANIC_ENVIRONMENT => DEFINE,
559
DB_REP_CLIENT => DEFINE,
560
DB_REP_DUPMASTER => DEFINE,
561
DB_REP_HOLDELECTION => DEFINE,
562
DB_REP_LOGSONLY => DEFINE,
563
DB_REP_MASTER => DEFINE,
564
DB_REP_NEWMASTER => DEFINE,
565
DB_REP_NEWSITE => DEFINE,
566
DB_REP_OUTDATED => DEFINE,
567
DB_REP_PERMANENT => DEFINE,
568
DB_REP_UNAVAIL => DEFINE,
569
DB_SET_LOCK_TIMEOUT => DEFINE,
570
DB_SET_TXN_NOW => DEFINE,
571
DB_SET_TXN_TIMEOUT => DEFINE,
572
DB_STAT_CLEAR => DEFINE,
573
DB_TIMEOUT => DEFINE,
574
DB_YIELDCPU => DEFINE,
576
MP_OPEN_CALLED => IGNORE,
577
MP_READONLY => IGNORE,
578
MP_UPGRADE => IGNORE,
579
MP_UPGRADE_FAIL => IGNORE,
580
TXN_CHILDCOMMIT => IGNORE,
581
TXN_COMPENSATE => IGNORE,
582
TXN_DIRTY_READ => IGNORE,
583
TXN_LOCKTIMEOUT => IGNORE,
584
TXN_MALLOC => IGNORE,
585
TXN_NOSYNC => IGNORE,
586
TXN_NOWAIT => IGNORE,
590
DB_TXN_APPLY => '4.0.7',
593
DB_LOCK_GET_TIMEOUT => '4.0.7',
594
DB_LOCK_PUT_READ => '4.0.7',
595
DB_LOCK_TIMEOUT => '4.0.7',
598
DB_LSTAT_EXPIRED => IGNORE, # 4.0.7
604
DB_EID_BROADCAST => DEFINE,
605
DB_EID_INVALID => DEFINE,
606
DB_VERB_REPLICATION => DEFINE,
612
DBC_OWN_LID => IGNORE,
613
DB_AM_CHKSUM => IGNORE,
614
DB_AM_CL_WRITER => IGNORE,
615
DB_AM_COMPENSATE => IGNORE,
616
DB_AM_CREATED => IGNORE,
617
DB_AM_CREATED_MSTR => IGNORE,
618
DB_AM_DBM_ERROR => IGNORE,
619
DB_AM_DELIMITER => IGNORE,
620
DB_AM_ENCRYPT => IGNORE,
621
DB_AM_FIXEDLEN => IGNORE,
622
DB_AM_IN_RENAME => IGNORE,
623
DB_AM_OPEN_CALLED => IGNORE,
625
DB_AM_RECNUM => IGNORE,
626
DB_AM_RENUMBER => IGNORE,
627
DB_AM_REVSPLITOFF => IGNORE,
628
DB_AM_SNAPSHOT => IGNORE,
629
DB_AUTO_COMMIT => DEFINE,
630
DB_CHKSUM_SHA1 => DEFINE,
632
DB_DIRECT_DB => DEFINE,
633
DB_DIRECT_LOG => DEFINE,
634
DB_ENCRYPT => DEFINE,
635
DB_ENCRYPT_AES => DEFINE,
636
DB_ENV_AUTO_COMMIT => DEFINE,
637
DB_ENV_DIRECT_DB => DEFINE,
638
DB_ENV_DIRECT_LOG => DEFINE,
639
DB_ENV_FATAL => DEFINE,
640
DB_ENV_OVERWRITE => DEFINE,
641
DB_ENV_TXN_WRITE_NOSYNC => DEFINE,
642
DB_HANDLE_LOCK => DEFINE,
643
DB_LOCK_NOTEXIST => DEFINE,
644
DB_LOCK_REMOVE => DEFINE,
646
DB_OVERWRITE => DEFINE,
647
DB_PERMANENT => DEFINE,
648
DB_PRINTABLE => DEFINE,
649
DB_RENAMEMAGIC => DEFINE,
650
DB_TEST_ELECTINIT => DEFINE,
651
DB_TEST_ELECTSEND => DEFINE,
652
DB_TEST_ELECTVOTE1 => DEFINE,
653
DB_TEST_ELECTVOTE2 => DEFINE,
654
DB_TEST_ELECTWAIT1 => DEFINE,
655
DB_TEST_ELECTWAIT2 => DEFINE,
656
DB_TEST_SUBDB_LOCKS => DEFINE,
657
DB_TXN_LOCK => DEFINE,
658
DB_TXN_WRITE_NOSYNC => DEFINE,
659
DB_WRITEOPEN => DEFINE,
660
DB_WRNOSYNC => DEFINE,
661
_DB_EXT_PROT_IN_ => IGNORE,
664
DB_LOCK_TRADE => '4.1.17',
667
DB_LSTAT_NOTEXIST => IGNORE, # 4.1.17
669
# enum DB_CACHE_PRIORITY
670
DB_PRIORITY_VERY_LOW => '4.1.17',
671
DB_PRIORITY_LOW => '4.1.17',
672
DB_PRIORITY_DEFAULT => '4.1.17',
673
DB_PRIORITY_HIGH => '4.1.17',
674
DB_PRIORITY_VERY_HIGH => '4.1.17',
677
DB_TXN_BACKWARD_ALLOC => '4.1.17',
678
DB_TXN_GETPGNOS => '4.1.17',
679
DB_TXN_PRINT => '4.1.17',
686
my ($major, $minor, $patch) = split /\./, $str ;
689
"#if (DB_VERSION_MAJOR > $major) || \\\n" .
690
" (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR > $minor) || \\\n" .
691
" (DB_VERSION_MAJOR == $major && DB_VERSION_MINOR == $minor && \\\n" .
692
" DB_VERSION_PATCH >= $patch)\n" ;
703
foreach my $key (sort keys %constants)
705
my $val = $constants{$key} ;
706
next if $val eq IGNORE;
709
{ push @names, { name => $key, type => "PV" } }
710
elsif ($val eq DEFINE)
711
{ push @names, $key }
713
{ push @names, { name => $key, macro => [enum_Macro($val), "#endif\n"] } }
716
warn "Updating constants.xs & constants.h...\n";
720
C_FILE => 'constants.h',
721
XS_FILE => 'constants.xs',
727
my $filename = 'BerkeleyDB.pm';
728
warn "Updating $filename...\n";
729
open IN, "<$filename" || die "Cannot open $filename: $!\n";
730
open OUT, ">$filename.tmp" || die "Cannot open $filename.tmp: $!\n";
732
my $START = '@EXPORT = qw(' ;
733
my $START_re = quotemeta $START ;
735
my $END_re = quotemeta $END ;
737
# skip to the @EXPORT declaration
740
if ( /^\s*$START_re/ )
742
# skip to the end marker.
744
{ last OUTER if /^\s*$END_re/ }
749
print OUT "$START\n";
750
foreach my $key (sort keys %constants)
752
next if $constants{$key} eq IGNORE;
753
print OUT "\t$key\n";
755
print OUT "\t$END\n";
765
rename $filename, "$filename.bak" || die "Cannot rename $filename: $!\n" ;
766
rename "$filename.tmp", $filename || die "Cannot rename $filename.tmp: $!\n" ;