1FFI::Build::MM(3) User Contributed Perl Documentation FFI::Build::MM(3)
2
3
4
6 FFI::Build::MM - FFI::Build installer code for ExtUtils::MakeMaker
7
9 version 1.58
10
12 In your Makefile.PL:
13
14 use ExtUtils::MakeMaker;
15 use FFI::Build::MM;
16
17 my $fbmm = FFI::Build::MM->new;
18
19 WriteMakefile($fbmm->mm_args(
20 ABSTRACT => 'My FFI extension',
21 DISTNAME => 'Foo-Bar-Baz-FFI',
22 NAME => 'Foo::Bar::Baz::FFI',
23 VERSION_FROM => 'lib/Foo/Bar/Baz/FFI.pm',
24 ...
25 ));
26
27 sub MY::postamble {
28 $fbmm->mm_postamble;
29 }
30
31 Then put the C, C++ or Fortran files in "./ffi" for your runtime
32 library and "./t/ffi" for your test time library.
33
35 This module provides a thin layer between FFI::Build and
36 ExtUtils::MakeMaker. Its interface is influenced by the design of
37 Alien::Build::MM. The idea is that for your distribution you throw
38 some C, C++ or Fortran source files into a directory called "ffi" and
39 these files will be compiled and linked into a library that can be used
40 by your module. There is a control file "ffi/*.fbx" which can be used
41 to control the compiler and linker options. (options passed directly
42 into FFI::Build). The interface for this file is still under
43 development.
44
46 new
47 my $fbmm = FFI::Build::MM->new;
48
49 Create a new instance of FFI::Build::MM.
50
52 mm_args
53 my %new_args = $fbmm->mm_args(%old_args);
54
55 This method does two things:
56
57 reads the arguments to determine sensible defaults (library name,
58 install location, etc).
59 adjusts the arguments as necessary and returns an updated set of
60 arguments.
61
62 mm_postamble
63 my $postamble = $fbmm->mm_postamble;
64
65 This returns the Makefile postamble used by ExtUtils::MakeMaker. The
66 synopsis above for how to invoke it properly. It adds the following
67 Make targets:
68
69 fbx_build / ffi
70 build the main runtime library in "./ffi".
71
72 fbx_test / ffi-test
73 Build the test library in "./t/ffi".
74
75 fbx_clean / ffi-clean
76 Clean any runtime or test libraries already built.
77
78 Normally you do not need to build these targets manually, they will be
79 built automatically at the appropriate stage.
80
82 Author: Graham Ollis <plicease@cpan.org>
83
84 Contributors:
85
86 Bakkiaraj Murugesan (bakkiaraj)
87
88 Dylan Cali (calid)
89
90 pipcet
91
92 Zaki Mughal (zmughal)
93
94 Fitz Elliott (felliott)
95
96 Vickenty Fesunov (vyf)
97
98 Gregor Herrmann (gregoa)
99
100 Shlomi Fish (shlomif)
101
102 Damyan Ivanov
103
104 Ilya Pavlov (Ilya33)
105
106 Petr Písař (ppisar)
107
108 Mohammad S Anwar (MANWAR)
109
110 Håkon Hægland (hakonhagland, HAKONH)
111
112 Meredith (merrilymeredith, MHOWARD)
113
114 Diab Jerius (DJERIUS)
115
116 Eric Brine (IKEGAMI)
117
118 szTheory
119
120 José Joaquín Atria (JJATRIA)
121
122 Pete Houston (openstrike, HOUSTON)
123
125 This software is copyright (c) 2015-2022 by Graham Ollis.
126
127 This is free software; you can redistribute it and/or modify it under
128 the same terms as the Perl 5 programming language system itself.
129
130
131
132perl v5.34.1 2022-06-20 FFI::Build::MM(3)