FFI::Build::MM3pm
Ffi::build installer code for extutils::makemaker
Usage
In your Makefile.PL:
use ExtUtils::MakeMaker;use FFI::Build::MM;my $fbmm = FFI::Build::MM->new;WriteMakefile($fbmm->mm_args(ABSTRACT => 'My FFI extension',DISTNAME => 'Foo-Bar-Baz-FFI',NAME => 'Foo::Bar::Baz::FFI',VERSION_FROM => 'lib/Foo/Bar/Baz/FFI.pm',...));sub MY::postamble {$fbmm->mm_postamble;}
Then put the C, C++ or Fortran files in "./ffi" for your runtime library and "./t/ffi" for your test time library.
Version
version 2.10
Overview
This module provides a thin layer between FFI::Build and ExtUtils::MakeMaker. Its interface is influenced by the design of Alien::Build::MM. The idea is that for your distribution you throw some C, C++ or Fortran source files into a directory called "ffi" and these files will be compiled and linked into a library that can be used by your module. There is a control file "ffi/*.fbx" which can be used to control the compiler and linker options. (options passed directly into FFI::Build). The interface for this file is still under development.
Constructor
new
my $fbmm = FFI::Build::MM->new;
Create a new instance of FFI::Build::MM.
Methods
mm_args
my %new_args = $fbmm->mm_args(%old_args);
This method does two things:
- reads the arguments to determine sensible defaults (library name, install location, etc).
- adjusts the arguments as necessary and returns an updated set of arguments.
mm_postamble
my $postamble = $fbmm->mm_postamble;
This returns the Makefile postamble used by ExtUtils::MakeMaker. The synopsis above for how to invoke it properly. It adds the following Make targets:
fbx_build / ffi
|
build the main runtime library in |
|---|---|
fbx_test / ffi-test
|
Build the test library in |
fbx_clean / ffi-clean
|
Clean any runtime or test libraries already built. |
Normally you do not need to build these targets manually, they will be built automatically at the appropriate stage.
Copyright and license
This software is copyright (c) 2015-2022 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.
Releases
4 releases since Debian 10 (Buster); the text changed 3 times.