On Wed, Nov 12, 2003 at 11:36:12AM +0000, Tim Bunce wrote:
> I've just tried out ExtUtils::MakeMaker 6.21 with perl 5.8.2 and DBI.
> 
> My DBI Makefile.PL has
> 
>     dist  => {
>         DIST_DEFAULT=> 'clean distcheck disttest ci tardist',
>         PREOP => '$(MAKE) -f Makefile.old distdir',
>         COMPRESS => 'gzip -v9', SUFFIX => 'gz',
>     },
> 
> and when I do a make dist it now ends with:
> 
>     tar cvf DBI-1.39.tar DBI-1.39
>     DBI-1.39/
>     DBI-1.39/t/
>     ...
>     rm -rf DBI-1.39
>     gzip -v9 DBI-1.39.tar
>     DBI-1.39.tar:            71.0% -- replaced with DBI-1.39.tar.gz
>     Makefile out-of-date with respect to Makefile.PL 
> /usr/local/perl582/lib/5.8.2/i386-freebsd/Config.pm 
> /usr/local/perl582/lib/5.8.2/i386-freebsd/CORE/config.h
>     Cleaning current config before rebuilding Makefile...
>     mv: rename Makefile to Makefile.old: No such file or directory
>     *** Error code 1
> 
> (Worked okay with the ExtUtils::MakeMaker supplied with perl 5.8.2)

I can't replicate this with DBI 1.38 and I don't have access to 1.39.

The only change to that logic was to change:

        $(NOECHO) $(MV)   $(MAKEFILE) $(MAKEFILE_OLD)

to

        $(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)

and that was done last December.

Otherwise the only thing which changed that could have effected this was
a slight change in the values of FIRST_MAKEFILE, MAKEFILE and MAKEFILE_OLD
initializing them in the same order they used to be done with before I
screwed with it.

From

    $self->{MAKEFILE}           ||= 'Makefile';
    $self->{FIRST_MAKEFILE}     ||= $self->{MAKEFILE};
    $self->{MAKEFILE_OLD}       ||= '$(FIRST_MAKEFILE).old';
    $self->{MAKE_APERL_FILE}    ||= '$(FIRST_MAKEFILE).aperl';

To

    $self->{FIRST_MAKEFILE}     ||= 'Makefile';
    $self->{MAKEFILE}           ||= $self->{FIRST_MAKEFILE};
    $self->{MAKEFILE_OLD}       ||= $self->{MAKEFILE}.'.old';
    $self->{MAKE_APERL_FILE}    ||= $self->{MAKEFILE}.'.aperl';

but I don't think that would cause your problem.

In fact, I'm scratching my head trying to figure out how you managed not
to have a FIRST_MAKEFILE in the FIRST_MAKEFILE target which should only
be reached if Makefile.PL is newer than FIRST_MAKEFILE... but that would
imply FIRST_MAKEFILE exists.

Unless... did you reinstall 5.8.2 between Makefile.PL runs?

>     Makefile out-of-date with respect to Makefile.PL 
> /usr/local/perl582/lib/5.8.2/i386-freebsd/Config.pm 
> /usr/local/perl582/lib/5.8.2/i386-freebsd/CORE/config.h

Its possible that the FIRST_MAKEFILE cleanup is triggering because Config.pm
or config.h was touched because you reinstalled Perl 5.8.2.  In which
case this should be easily fixed by just rerunning Makefile.PL.  I'll also
change the cleanup logic so it ignores errors when renaming the Makefile.


-- 
Michael G Schwern        [EMAIL PROTECTED]  http://www.pobox.com/~schwern/
11. Every old idea will be proposed again with a different name and
    a different presentation, regardless of whether it works.
     -- RFC 1925

Reply via email to