Filename | C:/tmp64ng/perl/lib/ExtUtils/MM_Win32.pm |
Statements | Executed 6644 statements in 15.6ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1554 | 7 | 1 | 15.6ms | 15.6ms | CORE:subst (opcode) | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | BEGIN@22 | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | BEGIN@23 | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | BEGIN@24 | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | BEGIN@25 | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | BEGIN@3 | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | CORE:ftis (opcode) | ExtUtils::MM_Win32::
1105 | 7 | 1 | 0s | 0s | CORE:match (opcode) | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | CORE:regcomp (opcode) | ExtUtils::MM_Win32::
29 | 1 | 1 | 0s | 0s | CORE:substcont (opcode) | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | _identify_compiler_environment | ExtUtils::MM_Win32::
6 | 1 | 1 | 0s | 0s | _normalize_path_name | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | arch_check | ExtUtils::MM_Win32::
0 | 0 | 0 | 0s | 0s | can_dep_space | ExtUtils::MM_Win32::
23 | 8 | 2 | 0s | 4.27s | cd | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | cflags | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 562ms | constants | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | dlsyms | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | dynamic_lib | ExtUtils::MM_Win32::
94 | 2 | 2 | 0s | 0s | escape_newlines | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | extra_clean_files | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 1.11s | init_DIRFILESEP | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | init_linker | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 46.8ms | init_others | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | init_platform | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 10.4s | init_tools | ExtUtils::MM_Win32::
15 | 1 | 1 | 0s | 0s | max_exec_len | ExtUtils::MM_Win32::
1 | 1 | 1 | 0s | 0s | maybe_command | ExtUtils::MM_Win32::
79 | 26 | 2 | 0s | 14.5s | oneliner | ExtUtils::MM_Win32::
1002 | 1 | 1 | 0s | 0s | os_flavor | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 546ms | pasthru | ExtUtils::MM_Win32::
0 | 0 | 0 | 0s | 0s | perl_script | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | platform_constants | ExtUtils::MM_Win32::
13 | 3 | 1 | 0s | 0s | quote_dep | ExtUtils::MM_Win32::
292 | 2 | 2 | 0s | 54.2s | quote_literal | ExtUtils::MM_Win32::
0 | 0 | 0 | 0s | 0s | replace_manpage_separator | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 562ms | special_targets | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | static_lib | ExtUtils::MM_Win32::
3 | 1 | 1 | 0s | 0s | xs_o | ExtUtils::MM_Win32::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package ExtUtils::MM_Win32; | ||||
2 | |||||
3 | 2 | 0s | 2 | 0s | # spent 0s within ExtUtils::MM_Win32::BEGIN@3 which was called:
# once (0s+0s) by main::BEGIN@1 at line 3 # spent 0s making 1 call to ExtUtils::MM_Win32::BEGIN@3
# spent 0s making 1 call to strict::import |
4 | |||||
5 | |||||
6 | =head1 NAME | ||||
7 | |||||
8 | ExtUtils::MM_Win32 - methods to override UN*X behaviour in ExtUtils::MakeMaker | ||||
9 | |||||
10 | =head1 SYNOPSIS | ||||
11 | |||||
12 | use ExtUtils::MM_Win32; # Done internally by ExtUtils::MakeMaker if needed | ||||
13 | |||||
14 | =head1 DESCRIPTION | ||||
15 | |||||
16 | See ExtUtils::MM_Unix for a documentation of the methods provided | ||||
17 | there. This package overrides the implementation of these methods, not | ||||
18 | the semantics. | ||||
19 | |||||
20 | =cut | ||||
21 | |||||
22 | 2 | 0s | 2 | 0s | # spent 0s within ExtUtils::MM_Win32::BEGIN@22 which was called:
# once (0s+0s) by main::BEGIN@1 at line 22 # spent 0s making 1 call to ExtUtils::MM_Win32::BEGIN@22
# spent 0s making 1 call to ExtUtils::MakeMaker::Config::import |
23 | 2 | 0s | 2 | 0s | # spent 0s within ExtUtils::MM_Win32::BEGIN@23 which was called:
# once (0s+0s) by main::BEGIN@1 at line 23 # spent 0s making 1 call to Exporter::import
# spent 0s making 1 call to ExtUtils::MM_Win32::BEGIN@23 |
24 | 2 | 0s | 1 | 0s | # spent 0s within ExtUtils::MM_Win32::BEGIN@24 which was called:
# once (0s+0s) by main::BEGIN@1 at line 24 # spent 0s making 1 call to ExtUtils::MM_Win32::BEGIN@24 |
25 | 2 | 0s | 2 | 0s | # spent 0s within ExtUtils::MM_Win32::BEGIN@25 which was called:
# once (0s+0s) by main::BEGIN@1 at line 25 # spent 0s making 1 call to Exporter::import
# spent 0s making 1 call to ExtUtils::MM_Win32::BEGIN@25 |
26 | |||||
27 | 1 | 0s | require ExtUtils::MM_Any; | ||
28 | 1 | 0s | require ExtUtils::MM_Unix; | ||
29 | 1 | 0s | our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); | ||
30 | 1 | 0s | our $VERSION = '7.04'; | ||
31 | |||||
32 | 1 | 0s | $ENV{EMXSHELL} = 'sh'; # to run `commands` | ||
33 | |||||
34 | 1 | 0s | 1 | 0s | my ( $BORLAND, $GCC, $DLLTOOL ) = _identify_compiler_environment( \%Config ); # spent 0s making 1 call to ExtUtils::MM_Win32::_identify_compiler_environment |
35 | |||||
36 | # spent 0s within ExtUtils::MM_Win32::_identify_compiler_environment which was called:
# once (0s+0s) by main::BEGIN@1 at line 34 | ||||
37 | 1 | 0s | my ( $config ) = @_; | ||
38 | |||||
39 | 1 | 0s | 1 | 0s | my $BORLAND = $config->{cc} =~ /^bcc/i ? 1 : 0; # spent 0s making 1 call to ExtUtils::MM_Win32::CORE:match |
40 | 1 | 0s | 1 | 0s | my $GCC = $config->{cc} =~ /\bgcc\b/i ? 1 : 0; # spent 0s making 1 call to ExtUtils::MM_Win32::CORE:match |
41 | 1 | 0s | my $DLLTOOL = $config->{dlltool} || 'dlltool'; | ||
42 | |||||
43 | 1 | 0s | return ( $BORLAND, $GCC, $DLLTOOL ); | ||
44 | } | ||||
45 | |||||
46 | |||||
47 | =head2 Overridden methods | ||||
48 | |||||
49 | =over 4 | ||||
50 | |||||
51 | =item B<dlsyms> | ||||
52 | |||||
53 | =cut | ||||
54 | |||||
55 | # spent 0s within ExtUtils::MM_Win32::dlsyms which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
56 | 3 | 0s | my($self,%attribs) = @_; | ||
57 | |||||
58 | 3 | 0s | my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}; | ||
59 | 3 | 0s | my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || []; | ||
60 | 3 | 0s | my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || []; | ||
61 | 3 | 0s | my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {}; | ||
62 | 3 | 0s | my(@m); | ||
63 | |||||
64 | 3 | 0s | 12 | 0s | if (not $self->{SKIPHASH}{'dynamic'}) { # spent 0s making 12 calls to ExtUtils::MakeMaker::neatvalue, avg 0s/call |
65 | push(@m," | ||||
66 | $self->{BASEEXT}.def: Makefile.PL | ||||
67 | ", | ||||
68 | q! $(PERLRUN) -MExtUtils::Mksymlists \\ | ||||
69 | -e "Mksymlists('NAME'=>\"!, $self->{NAME}, | ||||
70 | q!\", 'DLBASE' => '!,$self->{DLBASE}, | ||||
71 | # The above two lines quoted differently to work around | ||||
72 | # a bug in the 4DOS/4NT command line interpreter. The visible | ||||
73 | # result of the bug was files named q('extension_name',) *with the | ||||
74 | # single quotes and the comma* in the extension build directories. | ||||
75 | q!', 'DL_FUNCS' => !,neatvalue($funcs), | ||||
76 | q!, 'FUNCLIST' => !,neatvalue($funclist), | ||||
77 | q!, 'IMPORTS' => !,neatvalue($imports), | ||||
78 | q!, 'DL_VARS' => !, neatvalue($vars), q!);" | ||||
79 | !); | ||||
80 | } | ||||
81 | 3 | 0s | join('',@m); | ||
82 | } | ||||
83 | |||||
84 | =item replace_manpage_separator | ||||
85 | |||||
86 | Changes the path separator with . | ||||
87 | |||||
88 | =cut | ||||
89 | |||||
90 | sub replace_manpage_separator { | ||||
91 | my($self,$man) = @_; | ||||
92 | $man =~ s,/+,.,g; | ||||
93 | $man; | ||||
94 | } | ||||
95 | |||||
96 | |||||
97 | =item B<maybe_command> | ||||
98 | |||||
99 | Since Windows has nothing as simple as an executable bit, we check the | ||||
100 | file extension. | ||||
101 | |||||
102 | The PATHEXT env variable will be used to get a list of extensions that | ||||
103 | might indicate a command, otherwise .com, .exe, .bat and .cmd will be | ||||
104 | used by default. | ||||
105 | |||||
106 | =cut | ||||
107 | |||||
108 | # spent 0s within ExtUtils::MM_Win32::maybe_command which was called:
# once (0s+0s) by ExtUtils::MM_Unix::find_perl at line 1064 of ExtUtils/MM_Unix.pm | ||||
109 | 1 | 0s | my($self,$file) = @_; | ||
110 | 1 | 0s | my @e = exists($ENV{'PATHEXT'}) | ||
111 | ? split(/;/, $ENV{PATHEXT}) | ||||
112 | : qw(.com .exe .bat .cmd); | ||||
113 | 1 | 0s | my $e = ''; | ||
114 | 12 | 0s | for (@e) { $e .= "\Q$_\E|" } | ||
115 | 1 | 0s | chop $e; | ||
116 | # see if file ends in one of the known extensions | ||||
117 | 1 | 0s | 3 | 0s | if ($file =~ /($e)$/i) { # spent 0s making 1 call to ExtUtils::MM_Win32::CORE:ftis
# spent 0s making 1 call to ExtUtils::MM_Win32::CORE:match
# spent 0s making 1 call to ExtUtils::MM_Win32::CORE:regcomp |
118 | return $file if -e $file; | ||||
119 | } | ||||
120 | else { | ||||
121 | for (@e) { | ||||
122 | return "$file$_" if -e "$file$_"; | ||||
123 | } | ||||
124 | } | ||||
125 | return; | ||||
126 | } | ||||
127 | |||||
128 | |||||
129 | =item B<init_DIRFILESEP> | ||||
130 | |||||
131 | Using \ for Windows, except for "gmake" where it is /. | ||||
132 | |||||
133 | =cut | ||||
134 | |||||
135 | # spent 1.11s (0+1.11) within ExtUtils::MM_Win32::init_DIRFILESEP which was called 3 times, avg 369ms/call:
# 3 times (0s+1.11s) by ExtUtils::MakeMaker::new at line 661 of ExtUtils/MakeMaker.pm, avg 369ms/call | ||||
136 | 3 | 0s | my($self) = shift; | ||
137 | |||||
138 | # The ^ makes sure its not interpreted as an escape in nmake | ||||
139 | 3 | 0s | 9 | 1.11s | $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : # spent 1.11s making 9 calls to ExtUtils::MM_Any::is_make_type, avg 123ms/call |
140 | $self->is_make_type('dmake') ? '\\\\' : | ||||
141 | $self->is_make_type('gmake') ? '/' | ||||
142 | : '\\'; | ||||
143 | } | ||||
144 | |||||
145 | =item init_tools | ||||
146 | |||||
147 | Override some of the slower, portable commands with Windows specific ones. | ||||
148 | |||||
149 | =cut | ||||
150 | |||||
151 | # spent 10.4s (0+10.4) within ExtUtils::MM_Win32::init_tools which was called 3 times, avg 3.46s/call:
# 3 times (0s+10.4s) by ExtUtils::MakeMaker::new at line 670 of ExtUtils/MakeMaker.pm, avg 3.46s/call | ||||
152 | 3 | 0s | my ($self) = @_; | ||
153 | |||||
154 | 3 | 0s | $self->{NOOP} ||= 'rem'; | ||
155 | 3 | 0s | $self->{DEV_NULL} ||= '> NUL'; | ||
156 | |||||
157 | 3 | 0s | $self->{FIXIN} ||= $self->{PERL_CORE} ? | ||
158 | "\$(PERLRUN) $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : | ||||
159 | 'pl2bat.bat'; | ||||
160 | |||||
161 | 3 | 0s | 3 | 10.4s | $self->SUPER::init_tools; # spent 10.4s making 3 calls to ExtUtils::MM_Any::init_tools, avg 3.46s/call |
162 | |||||
163 | # Setting SHELL from $Config{sh} can break dmake. Its ok without it. | ||||
164 | 3 | 0s | delete $self->{SHELL}; | ||
165 | |||||
166 | 3 | 0s | return; | ||
167 | } | ||||
168 | |||||
169 | |||||
170 | =item init_others | ||||
171 | |||||
172 | Override the default link and compile tools. | ||||
173 | |||||
174 | LDLOADLIBS's default is changed to $Config{libs}. | ||||
175 | |||||
176 | Adjustments are made for Borland's quirks needing -L to come first. | ||||
177 | |||||
178 | =cut | ||||
179 | |||||
180 | # spent 46.8ms (0s+46.8) within ExtUtils::MM_Win32::init_others which was called 3 times, avg 15.6ms/call:
# 3 times (0s+46.8ms) by ExtUtils::MakeMaker::new at line 671 of ExtUtils/MakeMaker.pm, avg 15.6ms/call | ||||
181 | 3 | 0s | my $self = shift; | ||
182 | |||||
183 | 3 | 0s | $self->{LD} ||= 'link'; | ||
184 | 3 | 0s | $self->{AR} ||= 'lib'; | ||
185 | |||||
186 | 3 | 0s | 3 | 46.8ms | $self->SUPER::init_others; # spent 46.8ms making 3 calls to ExtUtils::MM_Any::init_others, avg 15.6ms/call |
187 | |||||
188 | 3 | 0s | $self->{LDLOADLIBS} ||= $Config{libs}; | ||
189 | # -Lfoo must come first for Borland, so we put it in LDDLFLAGS | ||||
190 | 3 | 0s | if ($BORLAND) { | ||
191 | my $libs = $self->{LDLOADLIBS}; | ||||
192 | my $libpath = ''; | ||||
193 | while ($libs =~ s/(?:^|\s)(("?)-L.+?\2)(?:\s|$)/ /) { | ||||
194 | $libpath .= ' ' if length $libpath; | ||||
195 | $libpath .= $1; | ||||
196 | } | ||||
197 | $self->{LDLOADLIBS} = $libs; | ||||
198 | $self->{LDDLFLAGS} ||= $Config{lddlflags}; | ||||
199 | $self->{LDDLFLAGS} .= " $libpath"; | ||||
200 | } | ||||
201 | |||||
202 | 3 | 0s | return; | ||
203 | } | ||||
204 | |||||
205 | |||||
206 | =item init_platform | ||||
207 | |||||
208 | Add MM_Win32_VERSION. | ||||
209 | |||||
210 | =item platform_constants | ||||
211 | |||||
212 | =cut | ||||
213 | |||||
214 | # spent 0s within ExtUtils::MM_Win32::init_platform which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 672 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
215 | 3 | 0s | my($self) = shift; | ||
216 | |||||
217 | 3 | 0s | $self->{MM_Win32_VERSION} = $VERSION; | ||
218 | |||||
219 | 3 | 0s | return; | ||
220 | } | ||||
221 | |||||
222 | # spent 0s within ExtUtils::MM_Win32::platform_constants which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
223 | 3 | 0s | my($self) = shift; | ||
224 | 3 | 0s | my $make_frag = ''; | ||
225 | |||||
226 | 3 | 0s | foreach my $macro (qw(MM_Win32_VERSION)) | ||
227 | { | ||||
228 | 3 | 0s | next unless defined $self->{$macro}; | ||
229 | 3 | 0s | $make_frag .= "$macro = $self->{$macro}\n"; | ||
230 | } | ||||
231 | |||||
232 | 3 | 0s | return $make_frag; | ||
233 | } | ||||
234 | |||||
235 | |||||
236 | =item constants | ||||
237 | |||||
238 | Add MAXLINELENGTH for dmake before all the constants are output. | ||||
239 | |||||
240 | =cut | ||||
241 | |||||
242 | # spent 562ms (0s+562) within ExtUtils::MM_Win32::constants which was called 3 times, avg 187ms/call:
# 3 times (0s+562ms) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 187ms/call | ||||
243 | 3 | 0s | my $self = shift; | ||
244 | |||||
245 | 3 | 0s | 3 | 0s | my $make_text = $self->SUPER::constants; # spent 0s making 3 calls to ExtUtils::MM_Unix::constants, avg 0s/call |
246 | 3 | 0s | 3 | 562ms | return $make_text unless $self->is_make_type('dmake'); # spent 562ms making 3 calls to ExtUtils::MM_Any::is_make_type, avg 187ms/call |
247 | |||||
248 | # dmake won't read any single "line" (even those with escaped newlines) | ||||
249 | # larger than a certain size which can be as small as 8k. PM_TO_BLIB | ||||
250 | # on large modules like DateTime::TimeZone can create lines over 32k. | ||||
251 | # So we'll crank it up to a <ironic>WHOPPING</ironic> 64k. | ||||
252 | # | ||||
253 | # This has to come here before all the constants and not in | ||||
254 | # platform_constants which is after constants. | ||||
255 | my $size = $self->{MAXLINELENGTH} || 800000; | ||||
256 | my $prefix = qq{ | ||||
257 | # Get dmake to read long commands like PM_TO_BLIB | ||||
258 | MAXLINELENGTH = $size | ||||
259 | |||||
260 | }; | ||||
261 | |||||
262 | return $prefix . $make_text; | ||||
263 | } | ||||
264 | |||||
265 | |||||
266 | =item special_targets | ||||
267 | |||||
268 | Add .USESHELL target for dmake. | ||||
269 | |||||
270 | =cut | ||||
271 | |||||
272 | # spent 562ms (0s+562) within ExtUtils::MM_Win32::special_targets which was called 3 times, avg 187ms/call:
# 3 times (0s+562ms) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 187ms/call | ||||
273 | 3 | 0s | my($self) = @_; | ||
274 | |||||
275 | 3 | 0s | 3 | 0s | my $make_frag = $self->SUPER::special_targets; # spent 0s making 3 calls to ExtUtils::MM_Any::special_targets, avg 0s/call |
276 | |||||
277 | 3 | 0s | 3 | 562ms | $make_frag .= <<'MAKE_FRAG' if $self->is_make_type('dmake'); # spent 562ms making 3 calls to ExtUtils::MM_Any::is_make_type, avg 187ms/call |
278 | .USESHELL : | ||||
279 | MAKE_FRAG | ||||
280 | |||||
281 | 3 | 0s | return $make_frag; | ||
282 | } | ||||
283 | |||||
284 | |||||
285 | =item static_lib | ||||
286 | |||||
287 | Changes how to run the linker. | ||||
288 | |||||
289 | The rest is duplicate code from MM_Unix. Should move the linker code | ||||
290 | to its own method. | ||||
291 | |||||
292 | =cut | ||||
293 | |||||
294 | # spent 0s within ExtUtils::MM_Win32::static_lib which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
295 | 3 | 0s | my($self) = @_; | ||
296 | 3 | 0s | 3 | 0s | return '' unless $self->has_link_code; # spent 0s making 3 calls to ExtUtils::MM_Unix::has_link_code, avg 0s/call |
297 | |||||
298 | 3 | 0s | my(@m); | ||
299 | 3 | 0s | push(@m, <<'END'); | ||
300 | $(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists | ||||
301 | $(RM_RF) $@ | ||||
302 | END | ||||
303 | |||||
304 | # If this extension has its own library (eg SDBM_File) | ||||
305 | # then copy that to $(INST_STATIC) and add $(OBJECT) into it. | ||||
306 | 3 | 0s | push @m, <<'MAKE_FRAG' if $self->{MYEXTLIB}; | ||
307 | $(CP) $(MYEXTLIB) $@ | ||||
308 | MAKE_FRAG | ||||
309 | |||||
310 | 3 | 0s | push @m, | ||
311 | q{ $(AR) }.($BORLAND ? '$@ $(OBJECT:^"+")' | ||||
312 | : ($GCC ? '-ru $@ $(OBJECT)' | ||||
313 | : '-out:$@ $(OBJECT)')).q{ | ||||
314 | $(CHMOD) $(PERM_RWX) $@ | ||||
315 | $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)\extralibs.ld | ||||
316 | }; | ||||
317 | |||||
318 | # Old mechanism - still available: | ||||
319 | 3 | 0s | push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS}; | ||
320 | $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)\ext.libs | ||||
321 | MAKE_FRAG | ||||
322 | |||||
323 | 3 | 0s | join('', @m); | ||
324 | } | ||||
325 | |||||
326 | |||||
327 | =item dynamic_lib | ||||
328 | |||||
329 | Complicated stuff for Win32 that I don't understand. :( | ||||
330 | |||||
331 | =cut | ||||
332 | |||||
333 | # spent 0s within ExtUtils::MM_Win32::dynamic_lib which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
334 | 3 | 0s | my($self, %attribs) = @_; | ||
335 | 3 | 0s | 3 | 0s | return '' unless $self->needs_linking(); #might be because of a subdir # spent 0s making 3 calls to ExtUtils::MM_Unix::needs_linking, avg 0s/call |
336 | |||||
337 | 3 | 0s | 3 | 0s | return '' unless $self->has_link_code; # spent 0s making 3 calls to ExtUtils::MM_Unix::has_link_code, avg 0s/call |
338 | |||||
339 | 3 | 0s | my($otherldflags) = $attribs{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': ''); | ||
340 | 3 | 0s | my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || ""; | ||
341 | 3 | 0s | my($ldfrom) = '$(LDFROM)'; | ||
342 | 3 | 0s | my(@m); | ||
343 | |||||
344 | 3 | 0s | push(@m,' | ||
345 | # This section creates the dynamically loadable $(INST_DYNAMIC) | ||||
346 | # from $(OBJECT) and possibly $(MYEXTLIB). | ||||
347 | OTHERLDFLAGS = '.$otherldflags.' | ||||
348 | INST_DYNAMIC_DEP = '.$inst_dynamic_dep.' | ||||
349 | |||||
350 | $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP) | ||||
351 | '); | ||||
352 | 3 | 0s | if ($GCC) { | ||
353 | push(@m, | ||||
354 | q{ }.$DLLTOOL.q{ --def $(EXPORT_LIST) --output-exp dll.exp | ||||
355 | $(LD) -o $@ -Wl,--base-file -Wl,dll.base $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp | ||||
356 | }.$DLLTOOL.q{ --def $(EXPORT_LIST) --base-file dll.base --output-exp dll.exp | ||||
357 | $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp }); | ||||
358 | } elsif ($BORLAND) { | ||||
359 | push(@m, | ||||
360 | q{ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) }.$ldfrom.q{,$@,,} | ||||
361 | .($self->is_make_type('dmake') | ||||
362 | ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) } | ||||
363 | .q{$(MYEXTLIB:s,/,\,),$(EXPORT_LIST:s,/,\,)} | ||||
364 | : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) } | ||||
365 | .q{$(subst /,\,$(MYEXTLIB)),$(subst /,\,$(EXPORT_LIST))}) | ||||
366 | .q{,$(RESFILES)}); | ||||
367 | } else { # VC | ||||
368 | push(@m, | ||||
369 | q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) } | ||||
370 | .q{$(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:$(EXPORT_LIST)}); | ||||
371 | |||||
372 | # Embed the manifest file if it exists | ||||
373 | push(@m, q{ | ||||
374 | if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2 | ||||
375 | if exist $@.manifest del $@.manifest}); | ||||
376 | } | ||||
377 | 3 | 0s | push @m, ' | ||
378 | $(CHMOD) $(PERM_RWX) $@ | ||||
379 | '; | ||||
380 | |||||
381 | 3 | 0s | join('',@m); | ||
382 | } | ||||
383 | |||||
384 | =item extra_clean_files | ||||
385 | |||||
386 | Clean out some extra dll.{base,exp} files which might be generated by | ||||
387 | gcc. Otherwise, take out all *.pdb files. | ||||
388 | |||||
389 | =cut | ||||
390 | |||||
391 | # spent 0s within ExtUtils::MM_Win32::extra_clean_files which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MM_Any::clean at line 707 of ExtUtils/MM_Any.pm, avg 0s/call | ||||
392 | 3 | 0s | my $self = shift; | ||
393 | |||||
394 | 3 | 0s | return $GCC ? (qw(dll.base dll.exp)) : ('*.pdb'); | ||
395 | } | ||||
396 | |||||
397 | =item init_linker | ||||
398 | |||||
399 | =cut | ||||
400 | |||||
401 | # spent 0s within ExtUtils::MM_Win32::init_linker which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 662 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
402 | 3 | 0s | my $self = shift; | ||
403 | |||||
404 | 3 | 0s | $self->{PERL_ARCHIVE} = "\$(PERL_INC)\\$Config{libperl}"; | ||
405 | 3 | 0s | $self->{PERL_ARCHIVEDEP} = "\$(PERL_INCDEP)\\$Config{libperl}"; | ||
406 | 3 | 0s | $self->{PERL_ARCHIVE_AFTER} = ''; | ||
407 | 3 | 0s | $self->{EXPORT_LIST} = '$(BASEEXT).def'; | ||
408 | } | ||||
409 | |||||
410 | |||||
411 | =item perl_script | ||||
412 | |||||
413 | Checks for the perl program under several common perl extensions. | ||||
414 | |||||
415 | =cut | ||||
416 | |||||
417 | sub perl_script { | ||||
418 | my($self,$file) = @_; | ||||
419 | return $file if -r $file && -f _; | ||||
420 | return "$file.pl" if -r "$file.pl" && -f _; | ||||
421 | return "$file.plx" if -r "$file.plx" && -f _; | ||||
422 | return "$file.bat" if -r "$file.bat" && -f _; | ||||
423 | return; | ||||
424 | } | ||||
425 | |||||
426 | sub can_dep_space { | ||||
427 | my $self = shift; | ||||
428 | 1; # with Win32::GetShortPathName | ||||
429 | } | ||||
430 | |||||
431 | =item quote_dep | ||||
432 | |||||
433 | =cut | ||||
434 | |||||
435 | # spent 0s within ExtUtils::MM_Win32::quote_dep which was called 13 times, avg 0s/call:
# 6 times (0s+0s) by ExtUtils::MM_Unix::constants at line 426 of ExtUtils/MM_Unix.pm, avg 0s/call
# 4 times (0s+0s) by ExtUtils::MM_Unix::tool_xsubpp at line 3611 of ExtUtils/MM_Unix.pm, avg 0s/call
# 3 times (0s+0s) by ExtUtils::MM_Unix::tool_xsubpp at line 3627 of ExtUtils/MM_Unix.pm, avg 0s/call | ||||
436 | 13 | 0s | my ($self, $arg) = @_; | ||
437 | 13 | 0s | 13 | 0s | if ($arg =~ / / and not $self->is_make_type('gmake')) { # spent 0s making 13 calls to ExtUtils::MM_Win32::CORE:match, avg 0s/call |
438 | require Win32; | ||||
439 | $arg = Win32::GetShortPathName($arg); | ||||
440 | die <<EOF if not defined $arg or $arg =~ / /; | ||||
441 | Tried to use make dependency with space for non-GNU make: | ||||
442 | '$arg' | ||||
443 | Fallback to short pathname failed. | ||||
444 | EOF | ||||
445 | return $arg; | ||||
446 | } | ||||
447 | 13 | 0s | 13 | 0s | return $self->SUPER::quote_dep($arg); # spent 0s making 13 calls to ExtUtils::MM_Any::quote_dep, avg 0s/call |
448 | } | ||||
449 | |||||
450 | =item xs_o | ||||
451 | |||||
452 | This target is stubbed out. Not sure why. | ||||
453 | |||||
454 | =cut | ||||
455 | |||||
456 | # spent 0s within ExtUtils::MM_Win32::xs_o which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
457 | 3 | 0s | return '' | ||
458 | } | ||||
459 | |||||
460 | |||||
461 | =item pasthru | ||||
462 | |||||
463 | All we send is -nologo to nmake to prevent it from printing its damned | ||||
464 | banner. | ||||
465 | |||||
466 | =cut | ||||
467 | |||||
468 | # spent 546ms (0s+546) within ExtUtils::MM_Win32::pasthru which was called 3 times, avg 182ms/call:
# 3 times (0s+546ms) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 182ms/call | ||||
469 | 3 | 0s | my($self) = shift; | ||
470 | 3 | 0s | 3 | 546ms | return "PASTHRU = " . ($self->is_make_type('nmake') ? "-nologo" : ""); # spent 546ms making 3 calls to ExtUtils::MM_Any::is_make_type, avg 182ms/call |
471 | } | ||||
472 | |||||
473 | |||||
474 | =item arch_check (override) | ||||
475 | |||||
476 | Normalize all arguments for consistency of comparison. | ||||
477 | |||||
478 | =cut | ||||
479 | |||||
480 | # spent 0s within ExtUtils::MM_Win32::arch_check which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 665 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
481 | 3 | 0s | my $self = shift; | ||
482 | |||||
483 | # Win32 is an XS module, minperl won't have it. | ||||
484 | # arch_check() is not critical, so just fake it. | ||||
485 | 3 | 0s | 3 | 0s | return 1 unless $self->can_load_xs; # spent 0s making 3 calls to ExtUtils::MM_Any::can_load_xs, avg 0s/call |
486 | 9 | 0s | 9 | 0s | return $self->SUPER::arch_check( map { $self->_normalize_path_name($_) } @_); # spent 0s making 3 calls to ExtUtils::MM_Any::arch_check, avg 0s/call
# spent 0s making 6 calls to ExtUtils::MM_Win32::_normalize_path_name, avg 0s/call |
487 | } | ||||
488 | |||||
489 | # spent 0s within ExtUtils::MM_Win32::_normalize_path_name which was called 6 times, avg 0s/call:
# 6 times (0s+0s) by ExtUtils::MM_Win32::arch_check at line 486, avg 0s/call | ||||
490 | 6 | 0s | my $self = shift; | ||
491 | 6 | 0s | my $file = shift; | ||
492 | |||||
493 | 6 | 0s | require Win32; | ||
494 | 6 | 0s | 6 | 0s | my $short = Win32::GetShortPathName($file); # spent 0s making 6 calls to Win32::GetShortPathName, avg 0s/call |
495 | 6 | 0s | return defined $short ? lc $short : lc $file; | ||
496 | } | ||||
497 | |||||
498 | |||||
499 | =item oneliner | ||||
500 | |||||
501 | These are based on what command.com does on Win98. They may be wrong | ||||
502 | for other Windows shells, I don't know. | ||||
503 | |||||
504 | =cut | ||||
505 | |||||
506 | # spent 14.5s (0+14.5) within ExtUtils::MM_Win32::oneliner which was called 79 times, avg 184ms/call:
# 6 times (0s+1.11s) by ExtUtils::MM_Any::distmeta_target at line 1416 of ExtUtils/MM_Any.pm, avg 185ms/call
# 4 times (0s+749ms) by ExtUtils::MM_Any::realclean_subdirs_target at line 1610 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+609ms) by ExtUtils::MM_Unix::pm_to_blib at line 2910 of ExtUtils/MM_Unix.pm, avg 203ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2214 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2190 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2193 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2206 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2200 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::init_tools at line 2196 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::tool_autosplit at line 2540 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2198 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2205 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2199 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2197 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2203 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2194 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::distsignature_target at line 1658 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2212 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::init_tools at line 2208 of ExtUtils/MM_Any.pm, avg 182ms/call
# 3 times (0s+530ms) by ExtUtils::MM_Any::init_tools at line 2201 of ExtUtils/MM_Any.pm, avg 177ms/call
# 3 times (0s+530ms) by ExtUtils::MM_Any::init_tools at line 2195 of ExtUtils/MM_Any.pm, avg 177ms/call
# 3 times (0s+530ms) by ExtUtils::MM_Any::init_tools at line 2217 of ExtUtils/MM_Any.pm, avg 177ms/call
# 3 times (0s+530ms) by ExtUtils::MM_Any::init_tools at line 2191 of ExtUtils/MM_Any.pm, avg 177ms/call
# 3 times (0s+530ms) by ExtUtils::MM_Any::init_tools at line 2213 of ExtUtils/MM_Any.pm, avg 177ms/call
# 2 times (0s+359ms) by ExtUtils::MM_Any::clean_subdirs_target at line 750 of ExtUtils/MM_Any.pm, avg 179ms/call
# once (0s+187ms) by ExtUtils::MM_Unix::dist_target at line 726 of ExtUtils/MM_Unix.pm | ||||
507 | 79 | 0s | my($self, $cmd, $switches) = @_; | ||
508 | 79 | 0s | $switches = [] unless defined $switches; | ||
509 | |||||
510 | # Strip leading and trailing newlines | ||||
511 | 79 | 0s | 79 | 0s | $cmd =~ s{^\n+}{}; # spent 0s making 79 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call |
512 | 79 | 0s | 79 | 0s | $cmd =~ s{\n+$}{}; # spent 0s making 79 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call |
513 | |||||
514 | 79 | 0s | 79 | 14.5s | $cmd = $self->quote_literal($cmd); # spent 14.5s making 79 calls to ExtUtils::MM_Win32::quote_literal, avg 184ms/call |
515 | 79 | 0s | 79 | 0s | $cmd = $self->escape_newlines($cmd); # spent 0s making 79 calls to ExtUtils::MM_Win32::escape_newlines, avg 0s/call |
516 | |||||
517 | 79 | 0s | $switches = join ' ', @$switches; | ||
518 | |||||
519 | 79 | 0s | return qq{\$(ABSPERLRUN) $switches -e $cmd --}; | ||
520 | } | ||||
521 | |||||
522 | |||||
523 | # spent 54.2s (0+54.2) within ExtUtils::MM_Win32::quote_literal which was called 292 times, avg 186ms/call:
# 213 times (0s+39.7s) by ExtUtils::MM_Any::echo at line 376 of ExtUtils/MM_Any.pm, avg 186ms/call
# 79 times (0s+14.5s) by ExtUtils::MM_Win32::oneliner at line 514, avg 184ms/call | ||||
524 | 292 | 0s | my($self, $text, $opts) = @_; | ||
525 | 292 | 0s | $opts->{allow_variables} = 1 unless defined $opts->{allow_variables}; | ||
526 | |||||
527 | # See: http://www.autohotkey.net/~deleyd/parameters/parameters.htm#CPP | ||||
528 | |||||
529 | # Apply the Microsoft C/C++ parsing rules | ||||
530 | 292 | 0s | 292 | 0s | $text =~ s{\\\\"}{\\\\\\\\\\"}g; # \\" -> \\\\\" # spent 0s making 292 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call |
531 | 292 | 0s | 292 | 0s | $text =~ s{(?<!\\)\\"}{\\\\\\"}g; # \" -> \\\" # spent 0s making 292 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call |
532 | 292 | 15.6ms | 292 | 15.6ms | $text =~ s{(?<!\\)"}{\\"}g; # " -> \" # spent 15.6ms making 292 calls to ExtUtils::MM_Win32::CORE:subst, avg 53µs/call |
533 | 292 | 0s | 292 | 0s | $text = qq{"$text"} if $text =~ /[ \t]/; # spent 0s making 292 calls to ExtUtils::MM_Win32::CORE:match, avg 0s/call |
534 | |||||
535 | # Apply the Command Prompt parsing rules (cmd.exe) | ||||
536 | 292 | 0s | my @text = split /("[^"]*")/, $text; | ||
537 | # We should also escape parentheses, but it breaks one-liners containing | ||||
538 | # $(MACRO)s in makefiles. | ||||
539 | 1074 | 0s | 1237 | 0s | s{([<>|&^@!])}{^$1}g foreach grep { !/^"[^"]*"$/ } @text; # spent 0s making 782 calls to ExtUtils::MM_Win32::CORE:match, avg 0s/call
# spent 0s making 426 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call
# spent 0s making 29 calls to ExtUtils::MM_Win32::CORE:substcont, avg 0s/call |
540 | 292 | 0s | $text = join('', @text); | ||
541 | |||||
542 | # dmake expands {{ to { and }} to }. | ||||
543 | 292 | 0s | 292 | 54.2s | if( $self->is_make_type('dmake') ) { # spent 54.2s making 292 calls to ExtUtils::MM_Any::is_make_type, avg 186ms/call |
544 | $text =~ s/{/{{/g; | ||||
545 | $text =~ s/}/}}/g; | ||||
546 | } | ||||
547 | |||||
548 | 292 | 0s | 292 | 0s | $text = $opts->{allow_variables} # spent 0s making 210 calls to ExtUtils::MM_Any::escape_all_dollarsigns, avg 0s/call
# spent 0s making 82 calls to ExtUtils::MM_Any::escape_dollarsigns, avg 0s/call |
549 | ? $self->escape_dollarsigns($text) : $self->escape_all_dollarsigns($text); | ||||
550 | |||||
551 | 292 | 0s | return $text; | ||
552 | } | ||||
553 | |||||
554 | |||||
555 | # spent 0s within ExtUtils::MM_Win32::escape_newlines which was called 94 times, avg 0s/call:
# 79 times (0s+0s) by ExtUtils::MM_Win32::oneliner at line 515, avg 0s/call
# 15 times (0s+0s) by ExtUtils::MM_Any::split_command at line 325 of ExtUtils/MM_Any.pm, avg 0s/call | ||||
556 | 94 | 0s | my($self, $text) = @_; | ||
557 | |||||
558 | # Escape newlines | ||||
559 | 94 | 0s | 94 | 0s | $text =~ s{\n}{\\\n}g; # spent 0s making 94 calls to ExtUtils::MM_Win32::CORE:subst, avg 0s/call |
560 | |||||
561 | 94 | 0s | return $text; | ||
562 | } | ||||
563 | |||||
564 | |||||
565 | =item cd | ||||
566 | |||||
567 | dmake can handle Unix style cd'ing but nmake (at least 1.5) cannot. It | ||||
568 | wants: | ||||
569 | |||||
570 | cd dir1\dir2 | ||||
571 | command | ||||
572 | another_command | ||||
573 | cd ..\.. | ||||
574 | |||||
575 | =cut | ||||
576 | |||||
577 | # spent 4.27s (0+4.27) within ExtUtils::MM_Win32::cd which was called 23 times, avg 186ms/call:
# 6 times (0s+1.11s) by ExtUtils::MM_Any::distmeta_target at line 1429 of ExtUtils/MM_Any.pm, avg 185ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::distsignature_target at line 1663 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Any::distsignature_target at line 1667 of ExtUtils/MM_Any.pm, avg 187ms/call
# 3 times (0s+562ms) by ExtUtils::MM_Unix::perldepend at line 2867 of ExtUtils/MM_Unix.pm, avg 187ms/call
# 3 times (0s+546ms) by ExtUtils::MM_Any::distsignature_target at line 1668 of ExtUtils/MM_Any.pm, avg 182ms/call
# 2 times (0s+374ms) by ExtUtils::MM_Unix::test at line 3504 of ExtUtils/MM_Unix.pm, avg 187ms/call
# 2 times (0s+374ms) by ExtUtils::MM_Unix::subdir_x at line 3426 of ExtUtils/MM_Unix.pm, avg 187ms/call
# once (0s+187ms) by ExtUtils::MM_Any::dist_test at line 840 of ExtUtils/MM_Any.pm | ||||
578 | 23 | 0s | my($self, $dir, @cmds) = @_; | ||
579 | |||||
580 | 23 | 0s | 46 | 4.27s | return $self->SUPER::cd($dir, @cmds) unless $self->is_make_type('nmake'); # spent 4.27s making 23 calls to ExtUtils::MM_Any::is_make_type, avg 186ms/call
# spent 0s making 23 calls to ExtUtils::MM_Unix::cd, avg 0s/call |
581 | |||||
582 | my $cmd = join "\n\t", map "$_", @cmds; | ||||
583 | |||||
584 | my $updirs = $self->catdir(map { $self->updir } $self->splitdir($dir)); | ||||
585 | |||||
586 | # No leading tab and no trailing newline makes for easier embedding. | ||||
587 | my $make_frag = sprintf <<'MAKE_FRAG', $dir, $cmd, $updirs; | ||||
588 | cd %s | ||||
589 | %s | ||||
590 | cd %s | ||||
591 | MAKE_FRAG | ||||
592 | |||||
593 | chomp $make_frag; | ||||
594 | |||||
595 | return $make_frag; | ||||
596 | } | ||||
597 | |||||
598 | |||||
599 | =item max_exec_len | ||||
600 | |||||
601 | nmake 1.50 limits command length to 2048 characters. | ||||
602 | |||||
603 | =cut | ||||
604 | |||||
605 | # spent 0s within ExtUtils::MM_Win32::max_exec_len which was called 15 times, avg 0s/call:
# 15 times (0s+0s) by ExtUtils::MM_Any::split_command at line 302 of ExtUtils/MM_Any.pm, avg 0s/call | ||||
606 | 15 | 0s | my $self = shift; | ||
607 | |||||
608 | 15 | 0s | return $self->{_MAX_EXEC_LEN} ||= 2 * 1024; | ||
609 | } | ||||
610 | |||||
611 | |||||
612 | =item os_flavor | ||||
613 | |||||
614 | Windows is Win32. | ||||
615 | |||||
616 | =cut | ||||
617 | |||||
618 | # spent 0s within ExtUtils::MM_Win32::os_flavor which was called 1002 times, avg 0s/call:
# 1002 times (0s+0s) by ExtUtils::MM_Any::os_flavor_is at line 107 of ExtUtils/MM_Any.pm, avg 0s/call | ||||
619 | 1002 | 0s | return('Win32'); | ||
620 | } | ||||
621 | |||||
622 | |||||
623 | =item cflags | ||||
624 | |||||
625 | Defines the PERLDLL symbol if we are configured for static building since all | ||||
626 | code destined for the perl5xx.dll must be compiled with the PERLDLL symbol | ||||
627 | defined. | ||||
628 | |||||
629 | =cut | ||||
630 | |||||
631 | # spent 0s within ExtUtils::MM_Win32::cflags which was called 3 times, avg 0s/call:
# 3 times (0s+0s) by ExtUtils::MakeMaker::new at line 745 of ExtUtils/MakeMaker.pm, avg 0s/call | ||||
632 | 3 | 0s | my($self,$libperl)=@_; | ||
633 | 3 | 0s | return $self->{CFLAGS} if $self->{CFLAGS}; | ||
634 | 3 | 0s | 3 | 0s | return '' unless $self->needs_linking(); # spent 0s making 3 calls to ExtUtils::MM_Unix::needs_linking, avg 0s/call |
635 | |||||
636 | 3 | 0s | 3 | 0s | my $base = $self->SUPER::cflags($libperl); # spent 0s making 3 calls to ExtUtils::MM_Unix::cflags, avg 0s/call |
637 | 3 | 0s | foreach (split /\n/, $base) { | ||
638 | 15 | 0s | 15 | 0s | /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; # spent 0s making 15 calls to ExtUtils::MM_Win32::CORE:match, avg 0s/call |
639 | }; | ||||
640 | 3 | 0s | $self->{CCFLAGS} .= " -DPERLDLL" if ($self->{LINKTYPE} eq 'static'); | ||
641 | |||||
642 | 3 | 0s | return $self->{CFLAGS} = qq{ | ||
643 | CCFLAGS = $self->{CCFLAGS} | ||||
644 | OPTIMIZE = $self->{OPTIMIZE} | ||||
645 | PERLTYPE = $self->{PERLTYPE} | ||||
646 | }; | ||||
647 | |||||
648 | } | ||||
649 | |||||
650 | 1 | 0s | 1; | ||
651 | __END__ | ||||
# spent 0s within ExtUtils::MM_Win32::CORE:ftis which was called:
# once (0s+0s) by ExtUtils::MM_Win32::maybe_command at line 117 | |||||
# spent 0s within ExtUtils::MM_Win32::CORE:match which was called 1105 times, avg 0s/call:
# 782 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 539, avg 0s/call
# 292 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 533, avg 0s/call
# 15 times (0s+0s) by ExtUtils::MM_Win32::cflags at line 638, avg 0s/call
# 13 times (0s+0s) by ExtUtils::MM_Win32::quote_dep at line 437, avg 0s/call
# once (0s+0s) by ExtUtils::MM_Win32::_identify_compiler_environment at line 40
# once (0s+0s) by ExtUtils::MM_Win32::maybe_command at line 117
# once (0s+0s) by ExtUtils::MM_Win32::_identify_compiler_environment at line 39 | |||||
# spent 0s within ExtUtils::MM_Win32::CORE:regcomp which was called:
# once (0s+0s) by ExtUtils::MM_Win32::maybe_command at line 117 | |||||
# spent 15.6ms within ExtUtils::MM_Win32::CORE:subst which was called 1554 times, avg 10µs/call:
# 426 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 539, avg 0s/call
# 292 times (15.6ms+0s) by ExtUtils::MM_Win32::quote_literal at line 532, avg 53µs/call
# 292 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 530, avg 0s/call
# 292 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 531, avg 0s/call
# 94 times (0s+0s) by ExtUtils::MM_Win32::escape_newlines at line 559, avg 0s/call
# 79 times (0s+0s) by ExtUtils::MM_Win32::oneliner at line 511, avg 0s/call
# 79 times (0s+0s) by ExtUtils::MM_Win32::oneliner at line 512, avg 0s/call | |||||
# spent 0s within ExtUtils::MM_Win32::CORE:substcont which was called 29 times, avg 0s/call:
# 29 times (0s+0s) by ExtUtils::MM_Win32::quote_literal at line 539, avg 0s/call |