1Alien::Build::MM(3) User Contributed Perl Documentation Alien::Build::MM(3)
2
3
4
6 Alien::Build::MM - Alien::Build installer code for ExtUtils::MakeMaker
7
9 version 1.93
10
12 In your "Makefile.PL":
13
14 use ExtUtils::MakeMaker;
15 use Alien::Build::MM;
16
17 my $abmm = Alien::Build::MM->new;
18
19 WriteMakefile($abmm->mm_args(
20 ABSTRACT => 'Discover or download and install libfoo',
21 DISTNAME => 'Alien-Libfoo',
22 NAME => 'Alien::Libfoo',
23 VERSION_FROM => 'lib/Alien/Libfoo.pm',
24 ...
25 ));
26
27 sub MY::postamble {
28 $abmm->mm_postamble(@_);
29 }
30
31 sub MY::install {
32 $abmm->mm_install(@_);
33 }
34
35 In your "lib/Alien/Libfoo.pm":
36
37 package Alien::Libfoo;
38 use base qw( Alien::Base );
39 1;
40
41 In your alienfile (needs to be named "alienfile" and should be in the
42 root of your dist):
43
44 use alienfile;
45
46 plugin 'PkgConfig' => 'libfoo';
47
48 share {
49 start_url 'http://libfoo.org';
50 ...
51 };
52
54 This class allows you to use Alien::Build and Alien::Base with
55 ExtUtils::MakeMaker. It load the alienfile recipe in the root of your
56 Alien dist, updates the prereqs passed into "WriteMakefile" if any are
57 specified by your alienfile or its plugins, and adds a postamble to the
58 "Makefile" that will download/build/test the alienized package as
59 appropriate.
60
61 The alienfile must be named "alienfile".
62
63 If you are using Dist::Zilla to author your Alien dist, you should
64 consider using the Dist::Zilla::Plugin::AlienBuild plugin.
65
66 I personally don't recommend it, but if you want to use Module::Build
67 instead, you can use Alien::Build::MB.
68
70 new
71 my $abmm = Alien::Build::MM->new;
72
73 Create a new instance of Alien::Build::MM.
74
76 build
77 my $build = $abmm->build;
78
79 The Alien::Build instance.
80
81 alienfile_meta
82 my $bool = $abmm->alienfile_meta
83
84 Set to a false value, in order to turn off the x_alienfile meta
85
86 clean_install
87 my $bool = $abmm->clean_install;
88
89 Set to a true value, in order to clean the share directory prior to
90 installing. If you use this you have to make sure that you install the
91 install handler in your "Makefile.PL":
92
93 $abmm = Alien::Build::MM->new(
94 clean_install => 1,
95 );
96
97 ...
98
99 sub MY::install {
100 $abmm->mm_install(@_);
101 }
102
104 mm_args
105 my %args = $abmm->mm_args(%args);
106
107 Adjust the arguments passed into "WriteMakefile" as needed by
108 Alien::Build.
109
110 mm_postamble
111 my $postamble $abmm->mm_postamble;
112 my $postamble $abmm->mm_postamble($mm);
113
114 Returns the postamble for the "Makefile" needed for Alien::Build. This
115 adds the following "make" targets which are normally called when you
116 run "make all", but can be run individually if needed for debugging.
117
118 alien_prefix
119 Determines the final install prefix ("%{.install.prefix}").
120
121 alien_version
122 Determine the perl_module_version
123 ("%{.runtime.perl_module_version}")
124
125 alien_download
126 Downloads the source from the internet. Does nothing for a system
127 install.
128
129 alien_build
130 Build from source (if a share install). Gather configuration (for
131 either system or share install).
132
133 alien_prop, alien_prop_meta, alien_prop_install, alien_prop_runtime
134 Prints the meta, install and runtime properties for the Alien.
135
136 alien_realclean, alien_clean
137 Removes the alien specific files. These targets are executed when
138 you call the "realclean" and "clean" targets respectively.
139
140 alien_clean_install
141 Cleans out the Alien's share directory. Caution should be used in
142 invoking this target directly, as if you do not understand what you
143 are doing you are likely to break your already installed Alien.
144
145 mm_install
146 sub MY::install {
147 $abmm->mm_install(@_);
148 }
149
150 EXPERIMENTAL
151
152 Adds an install rule to clean the final install dist directory prior to
153 installing.
154
156 Alien::Build, Alien::Base, Alien, Dist::Zilla::Plugin::AlienBuild,
157 Alien::Build::MB
158
160 Author: Graham Ollis <plicease@cpan.org>
161
162 Contributors:
163
164 Diab Jerius (DJERIUS)
165
166 Roy Storey (KIWIROY)
167
168 Ilya Pavlov
169
170 David Mertens (run4flat)
171
172 Mark Nunberg (mordy, mnunberg)
173
174 Christian Walde (Mithaldu)
175
176 Brian Wightman (MidLifeXis)
177
178 Zaki Mughal (zmughal)
179
180 mohawk (mohawk2, ETJ)
181
182 Vikas N Kumar (vikasnkumar)
183
184 Flavio Poletti (polettix)
185
186 Salvador Fandiño (salva)
187
188 Gianni Ceccarelli (dakkar)
189
190 Pavel Shaydo (zwon, trinitum)
191
192 Kang-min Liu (劉康民, gugod)
193
194 Nicholas Shipp (nshp)
195
196 Juan Julián Merelo Guervós (JJ)
197
198 Joel Berger (JBERGER)
199
200 Petr Pisar (ppisar)
201
202 Lance Wicks (LANCEW)
203
204 Ahmad Fatoum (a3f, ATHREEF)
205
206 José Joaquín Atria (JJATRIA)
207
208 Duke Leto (LETO)
209
210 Shoichi Kaji (SKAJI)
211
212 Shawn Laffan (SLAFFAN)
213
214 Paul Evans (leonerd, PEVANS)
215
217 This software is copyright (c) 2011-2019 by Graham Ollis.
218
219 This is free software; you can redistribute it and/or modify it under
220 the same terms as the Perl 5 programming language system itself.
221
222
223
224perl v5.30.1 2019-12-10 Alien::Build::MM(3)