In perl.git, the branch smoke-me/make_ext-ver has been updated <http://perl5.git.perl.org/perl.git/commitdiff/e3bb25ef1e3d5d7aeddb276249002046013e25e1?hp=a11eaecb3511133877ccbbc89337da7a30e8f21b>
- Log ----------------------------------------------------------------- commit e3bb25ef1e3d5d7aeddb276249002046013e25e1 Author: Father Chrysostomos <[email protected]> Date: Sat Jul 28 22:48:27 2012 -0700 Make make_ext delete Makefiles when version changes ----------------------------------------------------------------------- Summary of changes: make_ext.pl | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/make_ext.pl b/make_ext.pl index 28a67a3..3254628 100644 --- a/make_ext.pl +++ b/make_ext.pl @@ -281,6 +281,28 @@ sub build_extension { $makefile = 'Makefile'; } + if (-f $makefile) { + open my $mfh, $makefile or die "Cannot open $makefile: $!"; + while (<$mfh>) { + # Plagiarised from CPAN::Distribution + last if /MakeMaker post_initialize section/; + next unless /^#\s+VERSION_FROM\s+=>\s+(.+)/; + my $vmod = eval $1; + my $oldv; + while (<$mfh>) { + next unless /^XS_VERSION = (\S+)/; + $oldv = $1; + last; + } + last unless defined $oldv; + require ExtUtils::MM_Unix; + defined (my $newv = parse_version MM $vmod) or last; + if ($newv ne $oldv) { + 1 while unlink $makefile + } + } + } + if (!-f $makefile) { if (!-f 'Makefile.PL') { print "\nCreating Makefile.PL in $ext_dir for $mname\n"; -- Perl5 Master Repository
