Guess c++ compiler and flags
With Extutils::MakeMaker:
use ExtUtils::CppGuess; my $guess = ExtUtils::CppGuess->new; WriteMakefile ( # MakeMaker args, $guess->makemaker_options, );
With Module::Build:
my $guess = ExtUtils::CppGuess->new;
my $build = Module::Build->new ( # Module::Build arguments $guess->module_build_options, ); $build->create_build_script;
\*(C`ExtUtils::CppGuess\*(C' attempts to guess the system's \*(C+ compiler that is compatible with the C compiler that your perl was built with.
It can generate the necessary options to the Module::Build constructor or to ExtUtils::MakeMaker's \*(C`WriteMakefile\*(C' function.
Creates a new \*(C`ExtUtils::CppGuess\*(C' object. Takes the path to the C compiler as the \*(C`cc\*(C' argument, but falls back to the value of $Config{cc}, which should be what you want anyway.
You can specify \*(C`extra_compiler_flags\*(C' and \*(C`extra_linker_flags\*(C' (as strings) which will be merged in with the auto-detected ones.
Returns the correct options to the constructor of \*(C`Module::Build\*(C'. These are:
extra_compiler_flags extra_linker_flags
Returns the correct options to the \*(C`WriteMakefile\*(C' function of \*(C`ExtUtils::MakeMaker\*(C'. These are:
CCFLAGS dynamic_lib => { OTHERLDFLAGS => ... }
If you specify the extra compiler or linker flags in the constructor, they'll be merged into \*(C`CCFLAGS\*(C' or \*(C`OTHERLDFLAGS\*(C' respectively.
Returns true if the detected compiler is in the gcc family.
Returns true if the detected compiler is in the \s-1MS\s0 \s-1VC\s0 family.
Takes a string as argument that is added to the string of extra compiler flags.
Takes a string as argument that is added to the string of extra linker flags.
Mattia Barbon <[email protected]>
Steffen Mueller <[email protected]>
Tobias Leich <[email protected]>
Copyright 2010, 2011 by Mattia Barbon.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.