);
unless(GetOptions(\%options,
- 'target=s', 'jobs|j=i', 'expect-pass=i',
+ 'target=s', 'make=s', 'jobs|j=i', 'expect-pass=i',
'expect-fail' => sub { $options{'expect-pass'} = 0; },
'clean!', 'one-liner|e=s', 'match=s', 'force-manifest',
'force-regen', 'test-build', 'A=s@', 'l', 'w',
=item *
+--make I<make-prog>
+
+The C<make> command to use. If this not set, F<make> is used. If this is
+set, it also adds a C<-Dmake=...> else some recursive make invocations
+in extensions may fail. Typically one would use this as C<--make gmake>
+to use F<gmake> in place of the system F<make>.
+
+=item *
+
--jobs I<jobs>
=item *
$j = "-j$j" if $j =~ /\A\d+\z/;
+if (exists $options{make}) {
+ if (!exists $defines{make}) {
+ $defines{make} = $options{make};
+ }
+} else {
+ $options{make} = 'make';
+}
+
# Sadly, however hard we try, I don't think that it will be possible to build
# modules in ext/ on x86_64 Linux before commit e1666bf5602ae794 on 1999/12/29,
# which updated to MakeMaker 3.7, which changed from using a hard coded ld
patch_ext();
# Parallel build for miniperl is safe
-system "make $j miniperl </dev/null";
+system "$options{make} $j miniperl </dev/null";
my $expected = $target =~ /^test/ ? 't/perl'
: $target eq 'Fcntl' ? "lib/auto/Fcntl/Fcntl.$Config{so}"
}
}
- system "make $j $real_target </dev/null";
+ system "$options{make} $j $real_target </dev/null";
}
my $missing_target = $expected =~ /perl$/ ? !-x $expected : !-r $expected;