MarpaX-ESLIF
view release on metacpan or search on metacpan
etc/compile_marpaESLIF.pl view on Meta::CPAN
#
# Our distribution have both C and CPP files, and we want to make sure that modifying
# CFLAGS will not affect cpp files. Since we require a version of ExtUtils::CBuilder
# that support the environment variables, explicitely setting the environment variables
# from default ExtUtils::Cbuilder will ensure cc and cpp settings will become independant
# if we are doing to modify any of them.
# We do that for linker settings as well for coherency although we will NEVER touch them.
# OTHERLDFLAGS will be specific to this makefile.
#
# Take care: with ExtUtils::CBuilder, $ENV{CFLAGS} and $ENV{LDFLAGS} are appended to default perl compile flags, not the others
#
#
my %cbuilder_config = ExtUtils::CBuilder->new()->get_config;
$ENV{CC} = $cbuilder_config{cc} // 'cc';
$ENV{CFLAGS} //= '';
$ENV{CFLAGS} .= ' -DNDEBUG -DNTRACE';
$ENV{CXX} = $cbuilder_config{cxx} // $ENV{CC};
$ENV{CXXFLAGS} = $cbuilder_config{cxxflags} // $cbuilder_config{ccflags} // '';
$ENV{LD} = $cbuilder_config{ld} // $ENV{CC};
$ENV{LDFLAGS} //= '';
my @OTHERLDFLAGS = ();
my $optimize = '';
print "==========================================\n";
print "Original compilers and linker settings as per ExtUtils::CBuilder\n";
print "\n";
print "CC (overwrite) $ENV{CC}\n";
print "CFLAGS ( fixed) " . ($cbuilder_config{ccflags} // '') . "\n";
print "CFLAGS ( append) $ENV{CFLAGS}\n";
print "CXX (overwrite) $ENV{CXX}\n";
print "CXXFLAGS (overwrite) $ENV{CXXFLAGS}\n";
print "LD (overwrite) $ENV{LD}\n";
print "LDFLAGS ( fixed) " . ($cbuilder_config{ldflags} // '') . "\n";
print "LDFLAGS ( append) $ENV{LDFLAGS}\n";
print "==========================================\n";
print "\n";
my $ac = Config::AutoConf->new();
# goto jdd;
$ac->check_cc;
#
# Guess CXX configuration
#
# Sun C compiler is a special case, we know that guess_compiler will always get it wrong
etc/compile_marpaESLIF.pl view on Meta::CPAN
print "==========================================\n";
print "Tweaked compilers and linker settings\n";
print "\n";
print "CC (overwrite) $ENV{CC}\n";
print "CFLAGS ( fixed) " . ($cbuilder_config{ccflags} // '') . "\n";
print "CFLAGS ( append) $ENV{CFLAGS}\n";
print "CXX (overwrite) $ENV{CXX}\n";
print "CXXFLAGS (overwrite) $ENV{CXXFLAGS}\n";
print "LD (overwrite) $ENV{LD}\n";
print "LDFLAGS ( fixed) " . ($cbuilder_config{ldflags} // '') . "\n";
print "LDFLAGS ( append) $ENV{LDFLAGS}\n";
print "OTHERLDFLAGS $OTHERLDFLAGS\n";
print "==========================================\n";
print "\n";
my %HAVE_HEADERS = ();
$ac->check_all_headers(
qw{
ctype.h
dlfcn.h
errno.h
etc/compile_marpaESLIF.pl view on Meta::CPAN
process_marpaWrapper($ac);
process_marpaESLIF($ac);
#
# Write LDFLAGS and OTHERLDFLAGS to OTHERLDFLAGS.txt
#
my $otherldflags = 'OTHERLDFLAGS.txt';
open(my $otherldflags_fd, '>', $otherldflags) || die "Cannot open $otherldflags, $!";
foreach (@OTHERLDFLAGS) {
print $otherldflags_fd "$_\n";
}
print $otherldflags_fd "$ENV{LDFLAGS}\n";
close($otherldflags_fd) || warn "Cannot close $otherldflags, $!";
#
# Write CFLAGS to CFLAGS.txt
#
my $cflags = 'CFLAGS.txt';
open(my $cflags_fd, '>', $cflags) || die "Cannot open $cflags, $!";
print $cflags_fd "$ENV{CFLAGS}\n";
close($cflags_fd) || warn "Cannot close $cflags, $!";
etc/compile_marpaESLIF.pl view on Meta::CPAN
#
# log/exp and math lib
#
my $lm = $ac->check_lm() // '';
$ac->msg_checking("for math library:");
if($lm) {
$ac->msg_result("$lm");
$ac->search_libs('log', $lm, { action_on_true => $ac->define_var("HAVE_LOG", 1) });
$ac->search_libs('exp', $lm, { action_on_true => $ac->define_var("HAVE_EXP", 1) });
$ac->msg_notice("Append -l$lm to LDFLAGS");
$ENV{LDFLAGS} .= " -l$lm";
} else {
$ac->msg_result("not needed");
$ac->search_libs('log', { action_on_true => $ac->define_var("HAVE_LOG", 1) });
$ac->search_libs('exp', { action_on_true => $ac->define_var("HAVE_EXP", 1) });
}
}
sub check_ebcdic {
my ($ac) = @_;
#
( run in 2.671 seconds using v1.01-cache-2.11-cpan-817d5f8af8b )