|
Packit |
723767 |
# From ExtUtils::MakeMaker 6.48 and DBI 1.43
|
|
Packit |
723767 |
use 5.006;
|
|
Packit |
723767 |
use strict;
|
|
Packit |
723767 |
use ExtUtils::MakeMaker;
|
|
Packit |
723767 |
use Config;
|
|
Packit |
723767 |
use File::Spec;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub DEVELOPER_ONLY () {
|
|
Packit |
723767 |
return -d '.git' ? 1 : 0;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Some dependencies need to be more aggressive on Windows
|
|
Packit |
723767 |
sub WINLIKE () {
|
|
Packit |
723767 |
return 1 if $^O eq 'MSWin32';
|
|
Packit |
723767 |
return 1 if $^O eq 'cygwin';
|
|
Packit |
723767 |
return 1 if $^O eq 'msys';
|
|
Packit |
723767 |
return '';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Make setting optional MakeMaker parameters more readable
|
|
Packit |
723767 |
sub OPTIONAL {
|
|
Packit |
723767 |
return () unless $ExtUtils::MakeMaker::VERSION ge shift;
|
|
Packit |
723767 |
return @_;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Are we upgrading from a critically out of date version?
|
|
Packit |
723767 |
eval {
|
|
Packit |
723767 |
require DBD::SQLite;
|
|
Packit |
723767 |
if ( $DBD::SQLite::VERSION < 1.0 ) {
|
|
Packit |
723767 |
print <
|
|
Packit |
723767 |
|
|
Packit |
723767 |
**** WARNING **** WARNING **** WARNING **** WARNING **** WARNING ****
|
|
Packit |
723767 |
|
|
Packit |
723767 |
Your version of DBD::SQLite currently installed ($DBD::SQLite::VERSION) uses
|
|
Packit |
723767 |
the old sqlite database format. This version of DBD::SQLite will *NOT*
|
|
Packit |
723767 |
open these files, and installing this module may cause problems on your
|
|
Packit |
723767 |
system. If this is a live environment you should upgrade with caution.
|
|
Packit |
723767 |
|
|
Packit |
723767 |
To upgrade a database, download and install both sqlite 2.x and 3.x from
|
|
Packit |
723767 |
http://www.sqlite.org/ and issue:
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sqlite OLD.DB .dump | sqlite3 NEW.DB
|
|
Packit |
723767 |
|
|
Packit |
723767 |
DBD::SQLite will NOT automatically upgrade a database for you, and using
|
|
Packit |
723767 |
this version against an old SQLite database WILL lead to database
|
|
Packit |
723767 |
corruption.
|
|
Packit |
723767 |
|
|
Packit |
723767 |
EOT
|
|
Packit |
723767 |
if ( prompt("Continue?", "N") !~ /^y/i ) {
|
|
Packit |
723767 |
print "Exiting\n";
|
|
Packit |
723767 |
exit(-1);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
};
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Because DBI generates a postamble at configure-time, we need
|
|
Packit |
723767 |
# the required version of DBI very early.
|
|
Packit |
723767 |
my $DBI_required = 1.57;
|
|
Packit |
723767 |
eval {
|
|
Packit |
723767 |
require DBI;
|
|
Packit |
723767 |
};
|
|
Packit |
723767 |
if ( $@ or DBI->VERSION < $DBI_required ) {
|
|
Packit |
723767 |
print "DBI $DBI_required is required to configure this module; please install it or upgrade your CPAN/CPANPLUS shell.\n";
|
|
Packit |
723767 |
exit(0);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# See if we have a C compiler
|
|
Packit |
723767 |
# The following code is adapted from Module::Install::Can
|
|
Packit |
723767 |
SCOPE: {
|
|
Packit |
723767 |
# Fix Cygwin bug on maybe_command();
|
|
Packit |
723767 |
if ( $^O eq 'cygwin' ) {
|
|
Packit |
723767 |
require ExtUtils::MM_Cygwin;
|
|
Packit |
723767 |
require ExtUtils::MM_Win32;
|
|
Packit |
723767 |
if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) {
|
|
Packit |
723767 |
*ExtUtils::MM_Cygwin::maybe_command = sub {
|
|
Packit |
723767 |
my ($self, $file) = @_;
|
|
Packit |
723767 |
if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) {
|
|
Packit |
723767 |
ExtUtils::MM_Win32->maybe_command($file);
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
ExtUtils::MM_Unix->maybe_command($file);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub can_run {
|
|
Packit |
723767 |
my $cmd = shift;
|
|
Packit |
723767 |
my $_cmd = $cmd;
|
|
Packit |
723767 |
return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
|
|
Packit |
723767 |
|
|
Packit |
723767 |
for my $dir ( (split /$Config::Config{path_sep}/, $ENV{PATH}), '.' ) {
|
|
Packit |
723767 |
next if $dir eq '';
|
|
Packit |
723767 |
my $abs = File::Spec->catfile($dir, $_[1]);
|
|
Packit |
723767 |
return $abs if (-x $abs or $abs = MM->maybe_command($abs));
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
return;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub can_cc {
|
|
Packit |
723767 |
my @chunks = split(/ /, $Config::Config{cc}) or return;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# $Config{cc} may contain args; try to find out the program part
|
|
Packit |
723767 |
while ( @chunks ) {
|
|
Packit |
723767 |
return can_run("@chunks") || (pop(@chunks), next);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
return;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
unless ( can_cc() ) {
|
|
Packit |
723767 |
print "We can't locate a C compiler from your Config.pm.\n";
|
|
Packit |
723767 |
exit(0);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Determine if we are going to use the provided SQLite code, or an already-
|
|
Packit |
723767 |
# installed copy. To this end, look for two command-line parameters:
|
|
Packit |
723767 |
#
|
|
Packit |
723767 |
# USE_LOCAL_SQLITE -- If non-false, force use of the installed version
|
|
Packit |
723767 |
# SQLITE_LOCATION -- If passed, look for headers and libs under this root
|
|
Packit |
723767 |
#
|
|
Packit |
723767 |
# In absense of either of those, expect SQLite 3.X.X libs and headers in the
|
|
Packit |
723767 |
# common places known to Perl or the C compiler.
|
|
Packit |
723767 |
#
|
|
Packit |
723767 |
# Note to Downstream Packagers:
|
|
Packit |
723767 |
# This block is if ( 0 ) to discourage casual users building against
|
|
Packit |
723767 |
# the system SQLite. We expect that anyone sophisticated enough to use
|
|
Packit |
723767 |
# a system sqlite is also sophisticated enough to have a patching system
|
|
Packit |
723767 |
# that can change the if ( 0 ) to if ( 1 )
|
|
Packit |
723767 |
my ($sqlite_local, $sqlite_base, $sqlite_lib, $sqlite_inc);
|
|
Packit Service |
1fedab |
if ( 0 ) {
|
|
Packit |
723767 |
require File::Spec;
|
|
Packit |
723767 |
if ( $sqlite_base = (grep(/SQLITE_LOCATION=.*/, @ARGV))[0] ) {
|
|
Packit |
723767 |
$sqlite_base =~ /=(.*)/;
|
|
Packit |
723767 |
$sqlite_base = $1;
|
|
Packit |
723767 |
$sqlite_lib = File::Spec->catdir( $sqlite_base, 'lib' );
|
|
Packit |
723767 |
$sqlite_inc = File::Spec->catdir( $sqlite_base, 'include' );
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ( $sqlite_local = (grep(/USE_LOCAL_SQLITE=.*/, @ARGV))[0] ) {
|
|
Packit |
723767 |
$sqlite_local =~ /=(.*)/;
|
|
Packit |
723767 |
$sqlite_local = "$1" ? 1 : 0;
|
|
Packit |
723767 |
if ( $sqlite_local ) {
|
|
Packit |
723767 |
# Keep these from making into CFLAGS/LDFLAGS
|
|
Packit |
723767 |
undef $sqlite_lib;
|
|
Packit |
723767 |
undef $sqlite_inc;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ( my $my_inc = (grep /SQLITE_INC=.*/, @ARGV)[0] ) {
|
|
Packit |
723767 |
$my_inc =~ /=(.*)/;
|
|
Packit |
723767 |
$sqlite_inc = $1;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ( my $my_lib = (grep /SQLITE_LIB=.*/, @ARGV)[0] ) {
|
|
Packit |
723767 |
$my_lib =~ /=(.*)/;
|
|
Packit |
723767 |
$sqlite_lib = $1;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# Now check for a compatible sqlite3
|
|
Packit |
723767 |
unless ( $sqlite_local ) {
|
|
Packit |
723767 |
my ($dir, $file, $fh, $version);
|
|
Packit |
723767 |
print "Checking installed SQLite version...\n" if $ENV{AUTOMATED_TESTING};
|
|
Packit |
723767 |
if ( $sqlite_inc ) {
|
|
Packit |
723767 |
open($fh, '< ' , File::Spec->catfile($sqlite_inc, 'sqlite3.h'))
|
|
Packit |
723767 |
or die "Error opening sqlite3.h in $sqlite_inc: $!";
|
|
Packit |
723767 |
while ( defined($_ = <$fh>) ) {
|
|
Packit |
723767 |
if (/\#define\s+SQLITE_VERSION_NUMBER\s+(\d+)/) {
|
|
Packit |
723767 |
$version = $1;
|
|
Packit |
723767 |
last;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
close($fh);
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
# Go hunting for the file (Matt: Add more dirs here as you see fit)
|
|
Packit |
723767 |
foreach $dir ( [ qw(usr include) ], [ qw(usr local include) ] ) {
|
|
Packit |
723767 |
$file = File::Spec->catfile('', @$dir, 'sqlite3.h');
|
|
Packit |
723767 |
next unless (-f $file);
|
|
Packit |
723767 |
open($fh, "<", $file) or die "Error opening $file: $!";
|
|
Packit |
723767 |
while ( defined($_ = <$fh>) ) {
|
|
Packit |
723767 |
if (/\#define\s+SQLITE_VERSION_NUMBER\s+(\d+)/) {
|
|
Packit |
723767 |
$version = $1;
|
|
Packit |
723767 |
last;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
close($fh);
|
|
Packit |
723767 |
last if $version;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
unless ( $version && ($version >= 3006000) ) {
|
|
Packit |
723767 |
warn "SQLite version must be at least 3.6.0. No header file at that\n";
|
|
Packit |
723767 |
warn "version or higher was found. Using the local version instead.\n";
|
|
Packit |
723767 |
$sqlite_local = 1;
|
|
Packit |
723767 |
undef $sqlite_lib;
|
|
Packit |
723767 |
undef $sqlite_inc;
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
print "Looks good\n" if $ENV{AUTOMATED_TESTING};
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
# Always the bundled one.
|
|
Packit |
723767 |
# XXX: ... and this message should be more informative.
|
|
Packit |
723767 |
$sqlite_local = 1;
|
|
Packit |
723767 |
print "We're using the bundled sqlite library.\n" if $ENV{AUTOMATED_TESTING};
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
@ARGV = grep( ! /SQLITE_LOCATION|USE_LOCAL_SQLITE|SQLITE_LIB|SQLITE_INC/, @ARGV );
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
#####################################################################
|
|
Packit |
723767 |
# Prepare Compiler Options
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my @CC_LIBS = ();
|
|
Packit |
723767 |
if ( $sqlite_lib ) {
|
|
Packit |
723767 |
push @CC_LIBS, "-L$sqlite_lib";
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
unless ( $sqlite_local ) {
|
|
Packit |
723767 |
push @CC_LIBS, '-lsqlite3';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my @CC_INC = (
|
|
Packit |
723767 |
'-I.',
|
|
Packit |
723767 |
'-I$(DBI_INSTARCH_DIR)',
|
|
Packit |
723767 |
);
|
|
Packit |
723767 |
if ( $sqlite_inc ) {
|
|
Packit |
723767 |
push @CC_INC, "-I$sqlite_inc";
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my @CC_DEFINE = (
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_FTS4', # for sqlite >= 3.7.4
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_FTS3_PARENTHESIS', # for sqlite >= 3.6.10
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_RTREE', # for sqlite >= 3.6.10
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_COLUMN_METADATA',
|
|
Packit |
723767 |
# '-DSQLITE_ENABLE_STAT3', # for sqlite >= 3.7.9
|
|
Packit |
723767 |
# '-DSQLITE_ENABLE_STAT4', # for sqlite >= 3.8.3.1
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_JSON1', # for sqlite >= 3.9.0
|
|
Packit |
723767 |
'-DSQLITE_ENABLE_FTS5', # for sqlite >= 3.9.0
|
|
Packit |
723767 |
'-DNDEBUG=1',
|
|
Packit |
723767 |
);
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# for upstream security concern, this should be set only if requested
|
|
Packit |
723767 |
if ($ENV{SQLITE_ENABLE_FTS3_TOKENIZER}) {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_ENABLE_FTS3_TOKENIZER'; # for sqlite >= 3.11.0
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
if (DEVELOPER_ONLY) {
|
|
Packit |
723767 |
# for sqlite >= 3.8.8
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_ENABLE_API_ARMOR';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
if ( $^O eq 'cygwin') {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_TEMP_STORE=2';
|
|
Packit |
723767 |
# push @CC_DEFINE, '-DTHREADSAFE=0'; # requires this for 3.8.7-8
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ( $Config{d_usleep} || $Config{osname} =~ m/linux/ ) {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DHAVE_USLEEP=1';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
unless ( $Config{usethreads} ) {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DTHREADSAFE=0';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ($^O eq 'hpux' and $Config{osvers} <= 10.20) {
|
|
Packit |
723767 |
# HP-UX 10.20 does not have pread () at all
|
|
Packit |
723767 |
push @CC_DEFINE,
|
|
Packit |
723767 |
'-DSQLITE_OMIT_LOAD_EXTENSION',
|
|
Packit |
723767 |
'-UUSE_PREAD',
|
|
Packit |
723767 |
'-UUSE_PREAD64',
|
|
Packit |
723767 |
'-USQLITE_ENABLE_LOCKING_STYLE',
|
|
Packit |
723767 |
'-DMAP_FAILED="((void *)-1)"';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ($^O eq 'darwin') {
|
|
Packit |
723767 |
my ($osmajor, $osminor) = split /\./, $Config{osvers};
|
|
Packit |
723767 |
if ($osmajor < 8 or ($osmajor == 8 && $osminor <= 11)) {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_WITHOUT_ZONEMALLOC=1';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_ENABLE_LOCKING_STYLE=0';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ($^O eq 'aix') {
|
|
Packit |
723767 |
push @CC_DEFINE, '-DSQLITE_DISABLE_DIRSYNC';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
if ($^O =~ /bsd/i && $^O !~ /(?:open|net)bsd/) {
|
|
Packit |
723767 |
push @CC_DEFINE, '-D_XOPEN_SOURCE';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my (@CCFLAGS, @LDFLAGS, @LDDLFLAGS);
|
|
Packit |
723767 |
|
|
Packit |
723767 |
# RT #70135: See if ld supports Bsymbolic;
|
|
Packit |
723767 |
unless ($^O eq 'MSWin32' && $Config{ld} =~ /link/) {
|
|
Packit |
723767 |
for my $path (File::Spec->path) {
|
|
Packit |
723767 |
if (MM->maybe_command("$path/ld")) {
|
|
Packit |
723767 |
my $devnull = File::Spec->devnull;
|
|
Packit |
723767 |
my $output = `$path/ld --help 2>$devnull`;
|
|
Packit |
723767 |
if ($output =~ /Bsymbolic/) {
|
|
Packit |
723767 |
push @CCFLAGS, '-Wl,-Bsymbolic';
|
|
Packit |
723767 |
push @LDFLAGS, '-Wl,-Bsymbolic';
|
|
Packit |
723767 |
push @LDDLFLAGS, '-Wl,-Bsymbolic';
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
last;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
if ($^O eq 'solaris' && $Config{gccversion}) {
|
|
Packit |
723767 |
push @CCFLAGS, "-std=gnu99";
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
my %CC_OPTIONS = (
|
|
Packit |
723767 |
INC => join( ' ', @CC_INC ),
|
|
Packit |
723767 |
DEFINE => join( ' ', @CC_DEFINE ),
|
|
Packit |
723767 |
);
|
|
Packit |
723767 |
|
|
Packit |
723767 |
$CC_OPTIONS{LIBS} = join ' ', @CC_LIBS if @CC_LIBS;
|
|
Packit |
723767 |
$CC_OPTIONS{CCFLAGS} = join ' ', $Config{ccflags}, @CCFLAGS if @CCFLAGS;
|
|
Packit |
723767 |
$CC_OPTIONS{LDFLAGS} = join ' ', $Config{ldflags}, @LDFLAGS if @LDFLAGS;
|
|
Packit |
723767 |
$CC_OPTIONS{LDDLFLAGS} = join ' ', $Config{lddlflags}, @LDDLFLAGS if @LDDLFLAGS;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
|
|
Packit |
723767 |
#####################################################################
|
|
Packit |
723767 |
# Hand off to ExtUtils::MakeMaker
|
|
Packit |
723767 |
|
|
Packit |
723767 |
WriteMakefile(
|
|
Packit |
723767 |
NAME => 'DBD::SQLite',
|
|
Packit |
723767 |
ABSTRACT => 'Self Contained SQLite RDBMS in a DBI Driver',
|
|
Packit |
723767 |
VERSION_FROM => 'lib/DBD/SQLite.pm',
|
|
Packit |
723767 |
AUTHOR => 'Adam Kennedy <adamk@cpan.org>',
|
|
Packit |
723767 |
# Release manager (can this be an array?)
|
|
Packit |
723767 |
PREREQ_PM => {
|
|
Packit |
723767 |
'Tie::Hash' => 0,
|
|
Packit |
723767 |
'File::Spec' => (WINLIKE ? '3.27' : '0.82'),
|
|
Packit |
723767 |
'DBI' => $DBI_required,
|
|
Packit Service |
1fedab |
'Test::More' => '0.47', # Test::NoWarnings
|
|
Packit Service |
1fedab |
'Test::Builder' => '0.86', # Test::NoWarnings
|
|
Packit |
723767 |
( WINLIKE ? (
|
|
Packit |
723767 |
'Win32' => '0.30',
|
|
Packit |
723767 |
) : () ),
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
# XXX: VOVKASM suggested to remove this OPTIMIZE line to use
|
|
Packit |
723767 |
# the same optimization as perl itself. However, it turned out
|
|
Packit |
723767 |
# this change broke a test under some environment, and thus, may
|
|
Packit |
723767 |
# break other applications eventually. I'm not sure if this is
|
|
Packit |
723767 |
# worth the trouble.
|
|
Packit |
723767 |
# OPTIMIZE => $Config{optimize} . ($^O eq 'solaris' && !$Config{gccversion} ? "" : " -O2"),
|
|
Packit |
723767 |
OPTIONAL( '6.48',
|
|
Packit |
723767 |
MIN_PERL_VERSION => '5.006',
|
|
Packit |
723767 |
),
|
|
Packit |
723767 |
OPTIONAL( '6.31',
|
|
Packit |
723767 |
LICENSE => 'perl',
|
|
Packit |
723767 |
),
|
|
Packit |
723767 |
OPTIONAL( '6.46',
|
|
Packit |
723767 |
# Use META_ADD instead of META_MERGE so that we can remove
|
|
Packit |
723767 |
# any build-time dependencies that MakeMaker will put into
|
|
Packit |
723767 |
# the requires field.
|
|
Packit |
723767 |
META_ADD => {
|
|
Packit |
723767 |
dynamic_config => 1,
|
|
Packit |
723767 |
configure_requires => {
|
|
Packit |
723767 |
'ExtUtils::MakeMaker' => '6.48',
|
|
Packit |
723767 |
# This is not allowed to be computed
|
|
Packit |
723767 |
'File::Spec' => '0.82',
|
|
Packit |
723767 |
'DBI' => $DBI_required,
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
build_requires => {
|
|
Packit |
723767 |
'File::Spec' => (WINLIKE ? '3.27' : '0.82'),
|
|
Packit |
723767 |
'Test::More' => '0.42',
|
|
Packit Service |
1fedab |
# Bundled in /inc
|
|
Packit Service |
1fedab |
# 'Test::NoWarnings' => '0.081',
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
requires => {
|
|
Packit |
723767 |
'Tie::Hash' => 0,
|
|
Packit |
723767 |
'DBI' => $DBI_required,
|
|
Packit |
723767 |
'Scalar::Util' => 0,
|
|
Packit |
723767 |
( WINLIKE ? (
|
|
Packit |
723767 |
'Win32' => '0.30',
|
|
Packit |
723767 |
) : () ),
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
resources => {
|
|
Packit |
723767 |
license => 'http://dev.perl.org/licenses/',
|
|
Packit |
723767 |
bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=DBD-SQLite',
|
|
Packit |
723767 |
repository => 'https://github.com/DBD-SQLite/DBD-SQLite',
|
|
Packit |
723767 |
MailingList => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite',
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
no_index => {
|
|
Packit |
723767 |
directory => [ qw{
|
|
Packit |
723767 |
t inc util
|
|
Packit |
723767 |
} ],
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
),
|
|
Packit |
723767 |
OBJECT => ( $sqlite_local
|
|
Packit |
723767 |
? '$(O_FILES)'
|
|
Packit |
723767 |
: 'SQLite.o dbdimp.o'
|
|
Packit |
723767 |
),
|
|
Packit |
723767 |
clean => {
|
|
Packit |
723767 |
FILES => 'SQLite.xsi config.h tv.log *.old',
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
test => {
|
|
Packit |
723767 |
TESTS => 't/*.t t/**/*.t',
|
|
Packit |
723767 |
},
|
|
Packit |
723767 |
PL_FILES => {},
|
|
Packit |
723767 |
EXE_FILES => [],
|
|
Packit |
723767 |
|
|
Packit |
723767 |
%CC_OPTIONS,
|
|
Packit |
723767 |
);
|
|
Packit |
723767 |
|
|
Packit |
723767 |
package MY;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
use Config;
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub postamble {
|
|
Packit |
723767 |
require DBI;
|
|
Packit |
723767 |
require DBI::DBD;
|
|
Packit |
723767 |
my $postamble = eval {
|
|
Packit |
723767 |
DBI::DBD::dbd_postamble(@_)
|
|
Packit |
723767 |
};
|
|
Packit |
723767 |
if (-e 'sqlite3.c' && -e 'sqlite3.h' && -e 'sqlite3ext.h') {
|
|
Packit |
723767 |
my $S = $^O eq 'MSWin32' ? '\\' : '/'; # only Win32 (not cygwin)
|
|
Packit |
723767 |
my $share = "\$(INST_LIB)${S}auto${S}share${S}dist${S}\$(DISTNAME)";
|
|
Packit |
723767 |
my $perm_dir = $ExtUtils::MakeMaker::VERSION >= 6.52 ? '$(PERM_DIR)' : '755';
|
|
Packit |
723767 |
$postamble .= <<"SHARE";
|
|
Packit |
723767 |
config ::
|
|
Packit |
723767 |
\t\$(NOECHO) \$(MKPATH) "$share"
|
|
Packit |
723767 |
\t\$(NOECHO) \$(CHMOD) $perm_dir "$share"
|
|
Packit |
723767 |
\t\$(NOECHO) \$(CP) "sqlite3.c" "$share${S}sqlite3.c"
|
|
Packit |
723767 |
\t\$(NOECHO) \$(CP) "sqlite3.h" "$share${S}sqlite3.h"
|
|
Packit |
723767 |
\t\$(NOECHO) \$(CP) "sqlite3ext.h" "$share${S}sqlite3ext.h"
|
|
Packit |
723767 |
SHARE
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
return $postamble;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub libscan {
|
|
Packit |
723767 |
my ($self, $path) = @_;
|
|
Packit |
723767 |
return if $path =~ /\.pl$/;
|
|
Packit |
723767 |
($path =~ m/\~$/) ? undef : $path;
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub test_via_harness {
|
|
Packit |
723767 |
my ($self, $perl, $tests) = @_;
|
|
Packit |
723767 |
if ( $^O eq 'hpux' and $Config{osvers} <= 10.20 ) {
|
|
Packit |
723767 |
return qq{\tPERL_DL_NONLAZY=0 $perl "-MExtUtils::Command::MM" }
|
|
Packit |
723767 |
. qq{"-e" "test_harness(\$(TEST_VERBOSE), '\$(INST_LIB)', '\$(INST_ARCHLIB)')" $tests\n};
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
$self->SUPER::test_via_harness($perl, $tests);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
|
|
Packit |
723767 |
sub test_via_script {
|
|
Packit |
723767 |
my ($self, $perl, $script) = @_;
|
|
Packit |
723767 |
if ( $^O eq 'hpux' and $Config{osvers} <= 10.20 ) {
|
|
Packit |
723767 |
return qq{\tPERL_DL_NONLAZY=0 $perl "-I\$(INST_LIB)" "-I\$(INST_ARCHLIB)" $script\n};
|
|
Packit |
723767 |
} else {
|
|
Packit |
723767 |
$self->SUPER::test_via_script($perl, $script);
|
|
Packit |
723767 |
}
|
|
Packit |
723767 |
}
|