On Tue, Mar 26, 2002 at 09:49:37PM -0600, Craig A. Berry wrote:
> Patch below against what I retrieved from cvs about 7 PM CST.  It
> builds and installs successfully against bleadperl on VMS 7.3 with
> both MMS and MMK.  The biggest issue was that you cannot concatenate
> unexpanded macros as if they were file and directory components.  The
> concatenation routines have to have the delimiters to know what's
> what.

Gotcha.  I'm going to handle this one a little differently.  I like to
avoid pre-expanding make constants.  Makes things less flexible.  So
instead of:

    $(NOECHO) $(PERL) -e "print 'read 
].File::Spec->catfile($self->{PERL_ARCHLIB},'auto','$(FULLEXT)','.packlist').q[ '" 
>.MM_tmp

we'll do:

    $(NOECHO) $(PERL) "-MFile::Spec" -e "print 'read 
'.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist')'" >.MM_tmp

that should do the right thing and still leave $(PERL_ARCHLIB) &
$(FULLEXT) in the descrip.mms, available to be altered by the caller
(for whatever reason).


> There is one remaining cluster of test failures which I
> haven't figured out what to do with yet:
> t/installed......
> #     Failed test (t/installed.t at line 62)
> #          got: '0'
> #     expected: '1'
> #     Failed test (t/installed.t at line 171)
> #          got: '0'
> #     expected: '1'
> #     Failed test (t/installed.t at line 172)
> #                   undef
> #     doesn't match '(?-xism:foobar[>\]]?$)'
> # Looks like you failed 3 tests of 42.
> 
> The basic issue here is that the pieces of the FakeMod module are not
> guaranteed to have the same case when you retrieve their names from
> the file system as they had when you created them.

No, that's a completely different problem (and it's been fixed).
These are something else entirely.

It's these tests.

    # VMS 5.6.1 doesn't seem to have $Config{prefixexp}
    my $prefix = $Config{prefixexp} || $Config{prefix};

    # ActivePerl 5.6.1/631 has $Config{prefixexp} as 'p:' for some reason
    $prefix = $Config{prefix} if $prefix eq 'p:' && $^O eq 'MSWin32';

    is( $ei->_is_type( File::Spec->catfile($prefix, 'bar'), 'prog'), 1, 
            "... should find prog file under $prefix" );

If you'll look at ExtUtils::Installed::_is_type you'll see it calls
_is_prefix.  If you look at _is_prefix you'll see some ugly hackery
for VMS because ExtUtils::Installed wasn't designed with VMS paths in
mind.  If you run it in the debugger it should be pretty obvious from
your end why it's not working.

Show me your $Config{prefix} and $Config{prefixexp}, please.  That
might shed light on the problem.


> The other remaining issue is that we still get a lot of spurious
> newlines with MMS.

Using this descrip.mms

    a :
        @ Write SYS$OUTPUT "It worked!"

I get:

    $ mms

    It worked!
    $ mmk
    It worked!

for some weird reason, mms is throwing extra newlines in.

$ mms/ident
%MMS-I-IDENT, MMS V3.4-3 � Compaq Computer Corporation 2000. � Electronic Data Systems 
Limited 1995, 2000 
$ mmk/ident
%MMK-I-IDENT, this is the MadGoat Make Utility V3.9-2
-MMK-I-COPYRIGHT, Copyright � 1992-2001, MadGoat Software.  All Rights Reserved.


> --- t/installed.t;-0  Mon Mar 25 23:31:20 2002
> +++ t/installed.t     Tue Mar 26 19:13:07 2002
> @@ -56,6 +56,9 @@
>  # ActivePerl 5.6.1/631 has $Config{prefixexp} as 'p:' for some reason
>  $prefix = $Config{prefix} if $prefix eq 'p:' && $^O eq 'MSWin32';
>  
> +# You can concatenate /foo but not foo:, which defaults in the current directory
> +$prefix = VMS::Filespec::unixify($prefix) if $^O eq 'VMS';
> +
>  is( $ei->_is_type( File::Spec->catfile($prefix, 'bar'), 'prog'), 1,
>       "... should find prog file under $prefix" );

What's the above for?  I sort of follow the comment, but it should be
taken care of inside ExtUtils::Installed.


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
I was *meant* to mount your donuts.

Reply via email to