DBD-Firebird
view release on metacpan or search on metacpan
inc/FirebirdMaker.pm view on Meta::CPAN
our @EXPORT_OK = qw( WriteMakefile1 setup_for_ms_gcc setup_for_ms_cl
setup_for_cygwin
locate_firebird check_and_set_devlibs alternative_locations
search_fb_home_dirs search_fb_inc_dirs search_fb_lib_dirs
locate_firebird_ms registry_lookup read_registry read_data
save_test_parameters read_test_parameters prompt_for_settings
prompt_for check_str check_path check_exe check_file help_message
welcome_msg closing_msg create_embedded_files detect_firebird_api_version
$test_conf $test_mark $use_libfbembed );
our @EXPORT = @EXPORT_OK;
our ( $use_libfbembed );
# Temp file names
our $test_conf = 't/tests-setup.tmp.conf';
our $test_mark = 't/tests-setup.tmp.OK';
$FB::API_VER = 0;
# Written by Alexandr Ciornii, version 0.23. Added by eumm-upgrade.
sub WriteMakefile1 {
my %params = @_;
my $eumm_version = $ExtUtils::MakeMaker::VERSION;
$eumm_version = eval $eumm_version;
die "EXTRA_META is deprecated" if exists $params{EXTRA_META};
die "License not specified" if not exists $params{LICENSE};
if ( $params{AUTHOR}
and ref( $params{AUTHOR} ) eq 'ARRAY'
and $eumm_version < 6.5705 )
{
$params{META_ADD}{author} = $params{AUTHOR};
$params{AUTHOR} = join( ', ', @{ $params{AUTHOR} } );
}
if ( $params{BUILD_REQUIRES} and $eumm_version < 6.5503 ) {
#EUMM 6.5502 has problems with BUILD_REQUIRES
$params{PREREQ_PM} =
{ %{ $params{PREREQ_PM} || {} }, %{ $params{BUILD_REQUIRES} } };
delete $params{BUILD_REQUIRES};
}
delete $params{CONFIGURE_REQUIRES} if $eumm_version < 6.52;
delete $params{MIN_PERL_VERSION} if $eumm_version < 6.48;
delete $params{META_MERGE} if $eumm_version < 6.46;
delete $params{META_ADD} if $eumm_version < 6.46;
delete $params{LICENSE} if $eumm_version < 6.31;
delete $params{AUTHOR} if $] < 5.005;
delete $params{ABSTRACT_FROM} if $] < 5.005;
delete $params{BINARY_LOCATION} if $] < 5.005;
WriteMakefile(%params);
}
#- Helper SUBS ---------------------------------------------------------------#
#-- Subs for OS specific setting
sub setup_for_ms_gcc {
# Support for MinGW (still experimental, patches welcome!)
# ActiveState: cc => V:\absolute\path\to\gcc.exe
# Strawberry : cc => gcc
print "Using MinGW gcc\n";
# For ActiveState Perl hardwired MinGW path # other idea?
my $mingw_path = 'C:\Perl\site\lib\auto\MinGW';
# Expecting absolute paths in Straberry Perl
my $mingw_inc = $Config{incpath};
# For ActiveState Perl is \include # always?
if ( $mingw_inc eq '\include' ) {
$mingw_inc = File::Spec->catpath( $mingw_path, $mingw_inc );
}
my $mingw_lib = $Config{libpth};
# For ActiveState Perl is \lib # always?
if ( $mingw_lib eq '\lib' ) {
$mingw_lib = File::Spec->catpath( $mingw_path, $mingw_lib );
}
$INC .= qq{ -I"$mingw_inc"};
my $cur_libs = $Config{libs};
my $cur_lddlflags = $Config{lddlflags};
my $lib;
if ( -f "$FB::LIB/fbclient_ms.lib" ) {
$lib = "$FB::LIB/fbclient_ms.lib";
}
else { $lib = "$FB::LIB/gds32_ms.lib"; }
# This is ugly :)
eval "
sub MY::const_loadlibs {
'
LDLOADLIBS = \"$lib\" $cur_libs
LDDLFLAGS = -L\"$mingw_lib\" $cur_lddlflags
'
} ";
}
sub setup_for_ms_cl {
my $cur_libs = $Config{libs};
my $cur_lddlflags = $Config{lddlflags};
my $lib;
if (-f "$FB::LIB/fbclient_ms.lib")
{ $lib = "$FB::LIB/fbclient_ms.lib"; }
else
{ $lib = "$FB::LIB/gds32_ms.lib"; }
eval "
sub MY::const_loadlibs {
'
LDLOADLIBS = \"$lib\" $cur_libs
LDDLFLAGS = $cur_lddlflags
'
} ";
}
( run in 0.641 second using v1.01-cache-2.11-cpan-4ef0a570458 )