On Tue, Jan 04, 2005 at 04:56:28PM -0500, [EMAIL PROTECTED] 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 [EMAIL PROTECTED] http://www.pobox.com/~schwern/
Make it too tough for the enemy to get in and you can't get out.