summaryrefslogtreecommitdiff
path: root/libdb/perl/DB_File/Makefile.PL
diff options
context:
space:
mode:
Diffstat (limited to 'libdb/perl/DB_File/Makefile.PL')
-rw-r--r--libdb/perl/DB_File/Makefile.PL330
1 files changed, 0 insertions, 330 deletions
diff --git a/libdb/perl/DB_File/Makefile.PL b/libdb/perl/DB_File/Makefile.PL
deleted file mode 100644
index 4c1565d8d..000000000
--- a/libdb/perl/DB_File/Makefile.PL
+++ /dev/null
@@ -1,330 +0,0 @@
-#! perl -w
-
-use strict ;
-use ExtUtils::MakeMaker 5.16 ;
-use Config ;
-
-die "DB_File needs Perl 5.004_05 or better. This is $]\n"
- if $] <= 5.00404;
-
-my $VER_INFO ;
-my $LIB_DIR ;
-my $INC_DIR ;
-my $DB_NAME ;
-my $LIBS ;
-my $COMPAT185 = "" ;
-
-ParseCONFIG() ;
-
-my @files = ('DB_File.pm', glob "t/*.t") ;
-UpDowngrade(@files);
-
-if (defined $DB_NAME)
- { $LIBS = $DB_NAME }
-else {
- if ($^O eq 'MSWin32')
- { $LIBS = '-llibdb' }
- else
- { $LIBS = '-ldb' }
-}
-
-# Solaris is special.
-#$LIBS .= " -lthread" if $^O eq 'solaris' ;
-
-# AIX is special.
-$LIBS .= " -lpthread" if $^O eq 'aix' ;
-
-# OS2 is a special case, so check for it now.
-my $OS2 = "" ;
-$OS2 = "-DOS2" if $Config{'osname'} eq 'os2' ;
-
-WriteMakefile(
- NAME => 'DB_File',
- LIBS => ["-L${LIB_DIR} $LIBS"],
- #MAN3PODS => {}, # Pods will be built by installman.
- INC => "-I$INC_DIR",
- VERSION_FROM => 'DB_File.pm',
- XSPROTOARG => '-noprototypes',
- DEFINE => "-D_NOT_CORE $OS2 $VER_INFO $COMPAT185",
- OBJECT => 'version$(OBJ_EXT) DB_File$(OBJ_EXT)',
- #OPTIMIZE => '-g',
- 'depend' => { 'Makefile' => 'config.in',
- 'version$(OBJ_EXT)' => 'version.c'},
- 'clean' => { FILES => 'constants.h constants.xs' },
- 'macro' => { INSTALLDIRS => 'perl', my_files => "@files" },
- 'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz',
- DIST_DEFAULT => 'MyDoubleCheck tardist'},
- );
-
-
-my @names = qw(
- BTREEMAGIC
- BTREEVERSION
- DB_LOCK
- DB_SHMEM
- DB_TXN
- HASHMAGIC
- HASHVERSION
- MAX_PAGE_NUMBER
- MAX_PAGE_OFFSET
- MAX_REC_NUMBER
- RET_ERROR
- RET_SPECIAL
- RET_SUCCESS
- R_CURSOR
- R_DUP
- R_FIRST
- R_FIXEDLEN
- R_IAFTER
- R_IBEFORE
- R_LAST
- R_NEXT
- R_NOKEY
- R_NOOVERWRITE
- R_PREV
- R_RECNOSYNC
- R_SETCURSOR
- R_SNAPSHOT
- __R_UNUSED
- );
-
-if (eval {require ExtUtils::Constant; 1}) {
- # Check the constants above all appear in @EXPORT in DB_File.pm
- my %names = map { $_, 1} @names;
- open F, "<DB_File.pm" or die "Cannot open DB_File.pm: $!\n";
- while (<F>)
- {
- last if /^\s*\@EXPORT\s+=\s+qw\(/ ;
- }
-
- while (<F>)
- {
- last if /^\s*\)/ ;
- /(\S+)/ ;
- delete $names{$1} if defined $1 ;
- }
- close F ;
-
- if ( keys %names )
- {
- my $missing = join ("\n\t", sort keys %names) ;
- die "The following names are missing from \@EXPORT in DB_File.pm\n" .
- "\t$missing\n" ;
- }
-
-
- ExtUtils::Constant::WriteConstants(
- NAME => 'DB_File',
- NAMES => \@names,
- C_FILE => 'constants.h',
- XS_FILE => 'constants.xs',
-
- );
-}
-else {
- use File::Copy;
- copy ('fallback.h', 'constants.h')
- or die "Can't copy fallback.h to constants.h: $!";
- copy ('fallback.xs', 'constants.xs')
- or die "Can't copy fallback.xs to constants.xs: $!";
-}
-
-exit;
-
-
-sub MY::postamble { <<'EOM' } ;
-
-MyDoubleCheck:
- @echo Checking config.in is setup for a release
- @(grep "^LIB.*/usr/local/BerkeleyDB" config.in && \
- grep "^INCLUDE.*/usr/local/BerkeleyDB" config.in && \
- grep "^#DBNAME.*" config.in) >/dev/null || \
- (echo config.in needs fixing ; exit 1)
- @echo config.in is ok
- @echo
- @echo Checking DB_File.xs is ok for a release.
- @(perl -ne ' exit 1 if /^\s*#\s*define\s+TRACE/ ; ' DB_File.xs || \
- (echo DB_File.xs needs fixing ; exit 1))
- @echo DB_File.xs is ok
- @echo
- @echo Checking for $$^W in files: $(my_files)
- @perl -ne ' \
- exit 1 if /^\s*local\s*\(\s*\$$\^W\s*\)/;' $(my_files) || \
- (echo found unexpected $$^W ; exit 1)
- @echo No $$^W found.
- @echo
- @echo Checking for 'use vars' in files: $(my_files)
- @perl -ne ' \
- exit 0 if /^__(DATA|END)__/; \
- exit 1 if /^\s*use\s+vars/;' $(my_files) || \
- (echo found unexpected "use vars"; exit 1)
- @echo No 'use vars' found.
- @echo
- @echo All files are OK for a release.
- @echo
-
-EOM
-
-
-
-sub ParseCONFIG
-{
- my ($k, $v) ;
- my @badkey = () ;
- my %Info = () ;
- my @Options = qw( INCLUDE LIB PREFIX HASH DBNAME COMPAT185 ) ;
- my %ValidOption = map {$_, 1} @Options ;
- my %Parsed = %ValidOption ;
- my $CONFIG = 'config.in' ;
-
- print "Parsing $CONFIG...\n" ;
-
- # DBNAME & COMPAT185 are optional, so pretend they have
- # been parsed.
- delete $Parsed{'DBNAME'} ;
- delete $Parsed{'COMPAT185'} ;
- $Info{COMPAT185} = "No" ;
-
-
- open(F, "$CONFIG") or die "Cannot open file $CONFIG: $!\n" ;
- while (<F>) {
- s/^\s*|\s*$//g ;
- next if /^\s*$/ or /^\s*#/ ;
- s/\s*#\s*$// ;
-
- ($k, $v) = split(/\s+=\s+/, $_, 2) ;
- $k = uc $k ;
- if ($ValidOption{$k}) {
- delete $Parsed{$k} ;
- $Info{$k} = $v ;
- }
- else {
- push(@badkey, $k) ;
- }
- }
- close F ;
-
- print "Unknown keys in $CONFIG ignored [@badkey]\n"
- if @badkey ;
-
- # check parsed values
- my @missing = () ;
- die "The following keys are missing from $CONFIG file: [@missing]\n"
- if @missing = keys %Parsed ;
-
- $INC_DIR = $ENV{'DB_FILE_INCLUDE'} || $Info{'INCLUDE'} ;
- $LIB_DIR = $ENV{'DB_FILE_LIB'} || $Info{'LIB'} ;
- $DB_NAME = $Info{'DBNAME'} if defined $Info{'DBNAME'} ;
- $COMPAT185 = "-DCOMPAT185 -DDB_LIBRARY_COMPATIBILITY_API"
- if (defined $ENV{'DB_FILE_COMPAT185'} &&
- $ENV{'DB_FILE_COMPAT185'} =~ /^\s*(on|true|1)\s*$/i) ||
- $Info{'COMPAT185'} =~ /^\s*(on|true|1)\s*$/i ;
- my $PREFIX = $Info{'PREFIX'} ;
- my $HASH = $Info{'HASH'} ;
-
- $VER_INFO = "-DmDB_Prefix_t=${PREFIX} -DmDB_Hash_t=${HASH}" ;
-
- print <<EOM if 0 ;
- INCLUDE [$INC_DIR]
- LIB [$LIB_DIR]
- HASH [$HASH]
- PREFIX [$PREFIX]
- DBNAME [$DB_NAME]
-
-EOM
-
- print "Looks Good.\n" ;
-
-}
-
-sub UpDowngrade
-{
- my @files = @_ ;
-
- # our is stable from 5.6.0 onward
- # warnings is stable from 5.6.1 onward
-
- # Note: this code assumes that each statement it modifies is not
- # split across multiple lines.
-
-
- my $warn_sub ;
- my $our_sub ;
-
- if ($] < 5.006001) {
- # From: use|no warnings "blah"
- # To: local ($^W) = 1; # use|no warnings "blah"
- #
- # and
- #
- # From: warnings::warnif(x,y);
- # To: $^W && carp(y); # warnif -- x
- $warn_sub = sub {
- s/^(\s*)(no\s+warnings)/${1}local (\$^W) = 0; #$2/ ;
- s/^(\s*)(use\s+warnings)/${1}local (\$^W) = 1; #$2/ ;
-
- s/^(\s*)warnings::warnif\s*\((.*?)\s*,\s*(.*?)\)\s*;/${1}\$^W && carp($3); # warnif - $2/ ;
- };
- }
- else {
- # From: local ($^W) = 1; # use|no warnings "blah"
- # To: use|no warnings "blah"
- #
- # and
- #
- # From: $^W && carp(y); # warnif -- x
- # To: warnings::warnif(x,y);
- $warn_sub = sub {
- s/^(\s*)local\s*\(\$\^W\)\s*=\s*\d+\s*;\s*#\s*((no|use)\s+warnings.*)/$1$2/ ;
- s/^(\s*)\$\^W\s+\&\&\s*carp\s*\((.*?)\)\s*;\s*#\s*warnif\s*-\s*(.*)/${1}warnings::warnif($3, $2);/ ;
- };
- }
-
- if ($] < 5.006000) {
- $our_sub = sub {
- if ( /^(\s*)our\s+\(\s*([^)]+\s*)\)/ ) {
- my $indent = $1;
- my $vars = join ' ', split /\s*,\s*/, $2;
- $_ = "${indent}use vars qw($vars);\n";
- }
- };
- }
- else {
- $our_sub = sub {
- if ( /^(\s*)use\s+vars\s+qw\((.*?)\)/ ) {
- my $indent = $1;
- my $vars = join ', ', split ' ', $2;
- $_ = "${indent}our ($vars);\n";
- }
- };
- }
-
- foreach (@files)
- { doUpDown($our_sub, $warn_sub, $_) }
-}
-
-
-sub doUpDown
-{
- my $our_sub = shift;
- my $warn_sub = shift;
-
- local ($^I) = ".bak" ;
- local (@ARGV) = shift;
-
- while (<>)
- {
- print, last if /^__(END|DATA)__/ ;
-
- &{ $our_sub }();
- &{ $warn_sub }();
- print ;
- }
-
- return if eof ;
-
- while (<>)
- { print }
-}
-
-# end of file Makefile.PL