Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FFI::Build::Platform(3User Contributed Perl DocumentatiFFI::Build::Platform(3)

NAME
       FFI::Build::Platform - Platform specific	configuration.

VERSION
       version 1.31

SYNOPSIS
	use FFI::Build::Platform;

DESCRIPTION
       This class is used to abstract out the platform specific	parts of the
       FFI::Build system.  You shouldn't need to use it	directly in most
       cases, unless you are working on	FFI::Build itself.

CONSTRUCTOR
   new
	my $platform = FFI::Build::Platform->new;

       Create a	new instance of	FFI::Build::Platform.

   default
	my $platform = FFI::Build::Platform->default;

       Returns the default instance of FFI::Build::Platform.

METHODS
       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.

   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.

AUTHOR
       Author: Graham Ollis <plicease@cpan.org>

       Contributors:

       Bakkiaraj Murugesan (bakkiaraj)

       Dylan Cali (calid)

       pipcet

       Zaki Mughal (zmughal)

       Fitz Elliott (felliott)

       Vickenty	Fesunov	(vyf)

       Gregor Herrmann (gregoa)

       Shlomi Fish (shlomif)

       Damyan Ivanov

       Ilya Pavlov (Ilya33)

       Petr Pisar (ppisar)

       Mohammad	S Anwar	(MANWAR)

       HAYkon HA|gland (hakonhagland, HAKONH)

       Meredith	(merrilymeredith, MHOWARD)

       Diab Jerius (DJERIUS)

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2015,2016,2017,2018,2019,2020 by Graham
       Ollis.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.0			  2020-07-01	       FFI::Build::Platform(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | CONSTRUCTOR | METHODS | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=FFI::Build::Platform&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help