All of these methods may be called either as instance or classes methods. If called as a class method,
the default instance will be used.
osname
my $osname = $platform->osname;
The "os name" as understood by Perl. This is the same as $^O.
object_suffix
my $suffix = $platform->object_suffix;
The object suffix for the platform. On UNIX this is usually ".o". On Windows this is usually ".obj".
library_suffix
my(@suffix) = $platform->library_suffix;
my $suffix = $platform->library_suffix;
The library suffix for the platform. On Linux and some other UNIX this is often ".so". On OS X, this is
".dylib" and ".bundle". On Windows this is ".dll".
library_prefix
my $prefix = $platform->library_prefix;
The library prefix for the platform. On Unix this is usually "lib", as in "libfoo".
cc
my @cc = @{ $platform->cc };
The C compiler
cpp
my @cpp = @{ $platform->cpp };
The C pre-processor
cxx
my @cxx = @{ $platform->cxx };
The C++ compiler that naturally goes with the C compiler.
cxxld
my @cxxld = @{ $platform->cxxld };
The C++ linker that naturally goes with the C compiler.
for
my @for = @{ $platform->for };
The Fortran compiler that naturally goes with the C compiler.
ld
my $ld = $platform->ld;
The C linker
shellwords
my @words = $platform->shellwords(@strings);
This is a wrapper around Text::ParseWords's "shellwords" with some platform workarounds applied.
ccflags
my @ccflags = @{ $platform->cflags};
The compiler flags, including those needed to compile object files that can be linked into a dynamic
library. On Linux, for example, this is usually includes "-fPIC".
ldflags
my @ldflags = @{ $platform->ldflags };
The linker flags needed to link object files into a dynamic library. This is NOT the "libs" style
library flags that specify the location and name of a library to link against, this is instead the flags
that tell the linker to generate a dynamic library. On Linux, for example, this is usually "-shared".
cc_mm_works
my $bool = $platform->cc_mm_works;
Returns the flags that can be passed into the C compiler to compute dependencies.
flag_object_output
my @flags = $platform->flag_object_output($object_filename);
Returns the flags that the compiler recognizes as being used to write out to a specific object filename.
flag_library_output
my @flags = $platform->flag_library_output($library_filename);
Returns the flags that the compiler recognizes as being used to write out to a specific library filename.
flag_exe_output
my @flags = $platform->flag_exe_output($library_filename);
Returns the flags that the compiler recognizes as being used to write out to a specific exe filename.
flag_export
my @flags = $platform->flag_export(@symbols);
Returns the flags that the linker recognizes for exporting functions.
which
my $path = $platform->which($command);
Returns the full path of the given command, if it is available, otherwise "undef" is returned.
run
$platform->run(@command);
diag
Diagnostic for the platform as a string. This is for human consumption only, and the format may and will
change over time so do not attempt to use is programmatically.