fix ->VERSION calls to query version in newer perls
[p5sagit/strictures.git] / Makefile.PL
index 2bb28b9..cfb4e6d 100644 (file)
@@ -4,6 +4,28 @@ use ExtUtils::MakeMaker;
 
 (do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
 
+my %extra_prereqs = (
+  indirect => 0,
+  multidimensional => 0,
+  'bareword::filehandles' => 0,
+);
+
+use Text::ParseWords;
+sub parse_args {
+  # copied from EUMM
+  ExtUtils::MakeMaker::parse_args(
+    my $tmp = {},
+    Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''),
+    @ARGV,
+  );
+  return $tmp->{ARGS} || {};
+}
+
+my $have_compiler
+  = ! parse_args()->{PUREPERL_ONLY}
+  &&  eval { require ExtUtils::CBuilder; 1 }
+  && ExtUtils::CBuilder->new->have_compiler;
+
 WriteMakefile(
   NAME => 'strictures',
   VERSION_FROM => 'lib/strictures.pm',
@@ -11,7 +33,7 @@ WriteMakefile(
 
   META_MERGE => {
     'meta-spec' => { version => 2 },
-    dynamic_config => 0,
+    dynamic_config => 1,
 
     resources => {
       # r/w: p5sagit@git.shadowcat.co.uk:strictures.git
@@ -27,22 +49,18 @@ WriteMakefile(
     },
 
     prereqs => {
-      runtime => {
-        recommends => {
-          indirect => 0,
-          multidimensional => 0,
-          'bareword::filehandles' => 0,
+      configure => {
+        requires => {
+          'ExtUtils::CBuilder' => 0,
         },
       },
+      runtime => {
+        ( $] >= 5.008004 && !$have_compiler
+          ? ( recommends => \%extra_prereqs ) : () ),
+      },
     },
   },
 
-  (eval { require ExtUtils::CBuilder; 1 }
-      and ExtUtils::CBuilder->new->have_compiler)
-      ? (PREREQ_PM => {
-            indirect => 0,
-            multidimensional => 0,
-            'bareword::filehandles' => 0,
-      })
-      : (),
+  ($] >= 5.008004 && $have_compiler
+    ? ( PREREQ_PM => \%extra_prereqs ) : () ),
 );