]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/commitdiff
Allow forcing the PP implementaton by passing PP=1 to Makefile.PL
authorVincent Pit <vince@profvince.com>
Tue, 7 Apr 2015 15:47:32 +0000 (12:47 -0300)
committerVincent Pit <vince@profvince.com>
Tue, 7 Apr 2015 15:47:32 +0000 (12:47 -0300)
Makefile.PL

index 846e489b82688f75755b1c758e242488c6c03817..e519c643a509e52db8813ebbeb0bf6f7a2c82cee 100644 (file)
@@ -61,11 +61,29 @@ sub check_exe {
  return $exe;
 }
 
-my $cc = check_exe('C compiler', 'CC', 'cc', 'CC');
+my ($pp, $skip_arg);
+for my $i (0 .. $#ARGV) {
+ my $arg = $ARGV[$i];
+ if ($arg =~ /^PP=(.*)/) {
+  my $val = $1;
+  if (do { no warnings 'numeric'; int $val } or $val =~ /^(?:y|yes)$/i) {
+   print "Forcing the pure-Perl implementation from the arguments passed to Makefile.PL.\n";
+   $pp       = 1;
+   $skip_arg = $i;
+   last;
+  }
+ }
+}
+if (defined $skip_arg) {
+ splice @ARGV, $skip_arg, 1;
+}
 
-my $ld;
-if (defined $cc) {
- $ld = check_exe('linker', 'LD', 'ld', 'LD');
+my ($cc, $ld);
+unless ($pp) {
+ $cc = check_exe('C compiler', 'CC', 'cc', 'CC');
+ if (defined $cc) {
+  $ld = check_exe('linker', 'LD', 'ld', 'LD');
+ }
 }
 
 sub is_little_endian {
@@ -111,6 +129,7 @@ if (defined $cc and defined $ld) {
  $PARAMS{C}      = [ ];
  $PARAMS{XS}     = { };
  $PARAMS{OBJECT} = '';
+ print "Falling back to the pure-Perl implementation.\n";
 }
 
 $PARAMS{DEFINE} = join ' ', @DEFINES if @DEFINES;