On Sep 6, 2007, at 7:52 PM, James Keenan via RT wrote:
On Fri Jun 08 06:48:12 2007, ptc wrote:
In the file config/inter/make.pm, there is the following todo item:
# FIXME this is an ugly hack
# replace the value for $(MAKE) with the actual path or we'll
end up
# with a variable that recursively refers to itself
This problem needs to be corrected.
Problem: It can only be corrected by someone who does NOT have any
version of gmake on his/her box. Why? Look at the block of code in
which this comment is embedded:
if ( $conf->data->get('gmake_version') ) {
$conf->data->set( make_c => "$prog -C" );
}
else {
# get the default value
my $make_c = $conf->data->get('make_c');
# RT#43171 this is an ugly hack
# replace the value for $(MAKE) with the actual path or we'll
end up
# with a variable that recursively refers to itself
$make_c =~ s/\$\(MAKE\)/$prog/;
$conf->data->set( make_c => $make_c );
}
Only someone completely lacking a gmake would reach the 'else' block,
and only such a person would be in a position to write a test for
anything that would replace \$\(MAKE\).
Can anyone do that? Otherwise, I will mark the ticket as STALLED.
kid51
How does $(MAKE) get into make_c anyway? Here's a couple prints I
added.
Before substitution:
prog = make
make_c = $(PERL) -e 'chdir shift @ARGV; system q{$(MAKE)}, @ARGV; exit
$$? >> 8;'
After substitution:
make_c = $(PERL) -e 'chdir shift @ARGV; system q{make}, @ARGV; exit
$$? >> 8;'
Oh, and I do have gmake installed, I just don't use it.