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.

Reply via email to