DBD-DBMaker
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
$ENV{'DBMAKER_HOME'} = "c:/dbmaker/$VER"; # Guess DBMaker install in here.
}
else { # UNIX
if(my $d=(getpwnam('dbmaker'))[7]) { # If not defined DBMAKER_HOME
$ENV{'DBMAKER_HOME'} = $d . "/$VER"; # we search ~dbmaker user
}
else { # Maybe just install client
$ENV{'DBMAKER_HOME'} = "/usr/local"; # Guess install in /usr/local.
}
}
}
$search_dirs = $ENV{'DBMAKER_HOME'};
my %opts =
(
'NAME' => 'DBD::DBMaker',
'VERSION_FROM'=> 'DBMaker.pm',
'LIBS' => [''],
'DEFINE' => '',
'INC' => "-I\$(INSTALLSITEARCH)/auto/DBI",
clean => { FILES=> 'DBMaker.xsi' },
dist => {
#DIST_DEFAULT=> 'clean distcheck disttest ci tardist',
DIST_DEFAULT => 'clean distcheck ci tardist',
PREOP => '$(MAKE) -f Makefile.old distdir',
COMPRESS => 'gzip', SUFFIX => 'gz'
},
OBJECT => '$(O_FILES)',
);
if ($ExtUtils::MakeMaker::VERSION >= 5.43) {
$opts{ABSTRACT} = "DBMaker $VER driver for Perl DBI";
$opts{AUTHOR} = 'DBMaker team(dbmaker@lion.syscom.com.tw)';
$opts{CAPI} = 'TRUE' if $Config{archname} =~ /-object\b/i;
}
print "\nConfiguring DBD::DBMaker ...\n
>>>\tRemember to actually *READ* the README file!
\tAnd re-read it if you have any problems.\n
";
my ($incdir) = find_inc($search_dirs);
my ($libname, $libdir) = find_lib($search_dirs);
unless (defined($incdir) && defined($libname) && defined($libdir)) {
print "Cannot found DBMaker include files or lib\n".
Usage();
}
print "Configuring for DBMaker ...\n";
if ($^O eq 'MSWin32') {
$opts{DEFINE} = "-DMSWin32";
$opts{LIBS} = ["$libdir/DMAPI$VERNO.LIB"];
$opts{INC} = "-I$incdir $opts{INC}";
$opts{INC} = "$opts{INC} $Config{incpath}\\mfc" if ($Config{cc} eq 'bcc32');
}
else {
$opts{INC} = "-I. -I$incdir $opts{INC}";
$libname =~ s/^lib//;
$libname =~ s/\.a|\.so&//;
$opts{LIBS} = " -L$libdir -l$libname -lm";
# Because unable to resolve stat()
if ($^O eq "linux") {
$opts{LIBS} = $opts{LIBS}." -lc";
}
}
WriteMakefile(%opts);
local($^W)=0;
print qq{
The DBD::DBMaker tests will use these values for the database connection:
DBI_DSN=$ENV{DBI_DSN} e.g. dbi:DBMaker:demo
DBI_USER=$ENV{DBI_USER}
DBI_PASS=$ENV{DBI_PASS}
};
print "Warning: not all required environment variables are set.\n"
unless ($ENV{DBI_DSN} && $ENV{DBI_USER} && $ENV{DBI_PASS});
print "Warning: DBI_DSN ($ENV{DBI_DSN}) doesn't start with 'dbi:DBMaker:'\n"
if ($ENV{DBI_DSN} && $ENV{DBI_DSN} !~ m/^[dD][bB][iI]:DBMaker:/);
sub find_lib { # Search DBMaker include file directory
my $dirs = $_[0];
my $wanted = sub {
my $f = $::wanted_lib;
if ($_ =~ /$f/i && -f $_ && -r $_) {
push(@::dbmaker_libname, $_);
push(@::dbmaker_libdir, $File::Find::dir);
}
};
@::dbmaker_libname = ();
@::dbmaker_libdir = ();
my @lib_name;
@lib_name = ($^O eq 'MSWin32') ? ( "DMAPI$VERNO.LIB" ) : ( "libdmapic.a" );
foreach (@lib_name) {
$::wanted_lib = $_;
find($wanted, $dirs);
}
($::dbmaker_libname[0], $::dbmaker_libdir[0]);
}
sub find_inc { # Search DBMaker include file directory
my $dirs = $_[0];
my $wanted = sub {
my $f = $::wanted_inc;
push(@::dbmaker_inc, $File::Find::dir)
if($_ =~ /$f/i && -f $_ && -r $_);
};
@::dbmaker_inc = ();
my @inc_name = ( "sqlopt.h" );
foreach (@inc_name) {
$::wanted_inc = $_;
find($wanted, $dirs);
}
($::dbmaker_inc[0]);
}
sub Usage {
print "You must set the 'DBMAKER_HOME' environment variable before running me.\n";
exit(0);
}
__END__
( run in 0.621 second using v1.01-cache-2.11-cpan-39bf76dae61 )