Devel-NYTProf
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
DIST_DEFAULT => 'clean distcheck disttest_author tardist',
PREOP => '$(MAKE) -f Makefile.old distdir',
COMPRESS => 'gzip -v9',
SUFFIX => 'gz',
},
%mm_opts,
);
exit 0;
# --- Utility functions ---
sub find_h_files {
my @dirs = @_;
my %h_files;
foreach my $dir (@dirs) {
next unless $dir;
opendir(DIR, $dir)
or next; # silently ignore missing directories
while (my $file = readdir(DIR)) {
next unless $file =~ /\.h$/;
$h_files{$file} ||= $dir; # record first found
}
}
close DIR;
return \%h_files;
}
sub search_h_file {
my ($h_file, $regex) = @_;
my $dir = $h_files->{$h_file}
or return undef;
open H, "$cpp $dir/$h_file |";
while (<H>) {
return $1 if m/$regex/;
}
close H;
return undef;
}
# --- MakeMaker overrides ---
package MY;
# add some extra utility targets to the make file
sub post_constants {
q{
ptest prove:: pure_all
time nice prove -b -j 9 --shuffle
# not require because it confuses the call-graph
# not dofile because it's an alias for require
# (and causes problems like http://www.nntp.perl.org/group/perl.cpan.testers/2009/12/msg6409150.html)
# not fork because it doesn't make much sense
slowops::
$(NOECHO) $(PERL) -e 'require v5.10.0; # only regenerate with 5.10+ to get all ops'
$(PERL) -MOpcode=opset_to_ops,opset \
-e 'print "/* generated by Makefile.PL for perl $$] */\n";' \
-e 'my @ops = opset_to_ops(opset(":base_io",":filesys_read",":filesys_write",":filesys_open",":sys_db",":subprocess",":others",qw(match subst substcont qr regcomp prtf crypt chdir flock ioctl socket getpeername ssockopt bind connect listen accep...
-e 'print "PL_ppaddr[OP_\U$$_\E] = pp_slowop_profiler;\n" for sort @ops;' \
> slowops.h
$(PERL) -e "warn qq{NOTE: slowops.h will need manual editing to restore lost #ifdef's around some opcodes!\n}";
PERLTIDY=perltidy --profile=.perltidyrc -nst -b
perltidy:
$(PERLTIDY) bin/nytprofhtml bin/nytprofcsv
$(PERLTIDY) lib/Devel/NYTProf.pm lib/Devel/NYTProf/*.pm
# the XS portion of the file will be mangled and require manual fixup
ctidy_bcpp:
bcpp -f 2 -i 4 -bcl -qb 10 -ylcnc -yb NYTProf.xs
test_short:
NYTPROF_TEST_SHORT=1 NYTPROF_AUTHOR_TESTING=1 make test
test_author:
NYTPROF_AUTHOR_TESTING=1 make test
atest: test_author
disttest_author :: distdir
cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL
cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
cd $(DISTVNAME) && $(MAKE) test_author $(PASTHRU)
}
}
sub dynamic {
my $make = shift->SUPER::dynamic(@_);
my $xsl_dest_dir = File::Spec->catdir('$(INST_LIB)', '$(PARENT_NAME)', 'auto', '$(FULLEXT)');
my $xsl_dest = File::Spec->catdir('$(XSL_DEST_DIR)', '$(DLBASE).$(DLEXT)');
if($^O eq 'VMS'){
$xsl_dest_dir = File::Spec->catdir('blib','lib','Devel','auto','Devel','NYTProf');
$xsl_dest = File::Spec->catfile('blib','lib','Devel','auto','Devel','NYTProf','PL_Devel__NYTProf'.'.exe');
}
$make .= join "\n",
'# Copy extension to where XSLoader looks to avoid fallback to DynaLoader',
'# See t/test14.p for more details',
"XSL_DEST_DIR = $xsl_dest_dir",
"XSL_DEST = $xsl_dest",
'',
'dynamic :: $(INST_DYNAMIC)',
"\t" . '$(NOECHO) $(MKPATH) $(XSL_DEST_DIR)',
"\t" . '$(CP) $(INST_DYNAMIC) $(XSL_DEST)',
'';
return $make;
}
# vim:ts=8:sw=4:sts=0:noexpandtab
( run in 2.062 seconds using v1.01-cache-2.11-cpan-71847e10f99 )