make_ext.pl: Use version.pm for version cmp
authorFather Chrysostomos <sprout@cpan.org>
Mon, 30 Oct 2017 20:37:21 +0000 (13:37 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Mon, 30 Oct 2017 20:38:03 +0000 (13:38 -0700)
We do a version comparison to determine whether Makefile.PL needs to
be run (in case a module version changed).  The simple string compar-
ison we have done up till now fails if the two version numbers differ
simply by a trailing zero (as currently happens with DB_File, which
is at version 1.840, with XS_VERSION set to 1.84.  Since version.pm’s
routines are compiled into miniperl, there is no reason not to do this
‘properly’, and it stops multiple ‘make’ invocations from rebuilding
DB_File again, and again....

make_ext.pl

index 80d8f68..9bc4718 100644 (file)
@@ -303,7 +303,7 @@ sub build_extension {
            last unless defined $oldv;
            require ExtUtils::MM_Unix;
            defined (my $newv = parse_version MM $vmod) or last;
-           if ($newv ne $oldv) {
+           if (version->parse($newv) ne $oldv) {
                close $mfh or die "close $makefile: $!";
                _unlink($makefile);
                {