develooper Front page | perl.perl5.porters | Postings from January 2005

Re: [ANNOUNCE] ExtUtils::MakeMaker 6.25_06

From:
Michael G Schwern
Date:
January 4, 2005 14:12
Subject:
Re: [ANNOUNCE] ExtUtils::MakeMaker 6.25_06
Message ID:
20050104221232.GA8609@windhund.schwern.org
On Tue, Jan 04, 2005 at 04:56:28PM -0500, PPrymmer@factset.com wrote:
> > Why would removing it as a dependency matter?
> 
> Because of the subsequent action command:
> 
> $ search descrip.mms "library/object/replace"/window
> $(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
>         If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create
> $(MMS$TARGET)
>         Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)
>         $(NOECHO) $(PERL) -e 1 >$(INST_ARCHAUTODIR)extralibs.ld
> 
> The library/object command knows when it is being
> asked to insert a non *.OBJ file into an OLB library
> because of the different file attributes that a text file
> like .exists has.

Ahh, $(MMS$SOURCE_LIST) is a list of all dependencies. I think it can be 
safely removed.  The logic is this:

    if ($self->{MYEXTLIB}) {
      push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(OBJECT)',"\n"); 
    } else {
      push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)',"\n");
    }

Since the only time $(MMS$SOURCE_LIST) is used is when $(MYEXTLIB) is empty
and the only important dependencies are $(OBJECT) and $(MYEXTLIB) the list is
always going to be $(OBJECT) so both branches are effectively the same.  So 
this should solve the problem while keeping the dependency.


--- lib/ExtUtils/MM_VMS.pm  (revision 4204)
+++ lib/ExtUtils/MM_VMS.pm  (local)
@@ -994,11 +991,7 @@
     # if there was a library to copy, then we can't use MMS$SOURCE_LIST,
     # 'cause it's a library and you can't stick them in other libraries.
     # In that case, we use $OBJECT instead and hope for the best
-    if ($self->{MYEXTLIB}) {
-      push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(OBJECT)',"\n"); 
-    } else {
-      push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)',"\
n");
-    }
+    push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(OBJECT)',"\n"); 
     
     push @m, "\t\$(NOECHO) \$(PERL) -e 1 >\$(INST_ARCHAUTODIR)extralibs.ld\n";
     foreach $lib (split ' ', $self->{EXTRALIBS}) {



-- 
Michael G Schwern     schwern@pobox.com     http://www.pobox.com/~schwern/
Make it too tough for the enemy to get in and you can't get out.



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About