develooper Front page | perl.perl5.porters | Postings from March 2014

Re: smoke-me/nicholas/fake-pm_to_blib on VMS

Thread Previous | Thread Next
From:
Craig A. Berry
Date:
March 1, 2014 15:56
Subject:
Re: smoke-me/nicholas/fake-pm_to_blib on VMS
Message ID:
CA+vYcVzUbTvUbn1hE84Ne4G6wx8VVAAYX-Ha54VtXDdGxBbU=g@mail.gmail.com
On Sat, Mar 1, 2014 at 6:35 AM, Nicholas Clark <nick@ccl4.org> wrote:
> On Fri, Feb 28, 2014 at 09:44:21PM -0600, Craig A. Berry wrote:
>
>> Hmm.  It ran a lot faster because the build failed.   The first sign
>> of trouble was this:
>>
>>         Making Carp (all)
>> %DCL-W-IVVERB, unrecognized command verb - check validity and spelling
>>  \GIT\
>> WARNING - make_ext.pl is building Carp using EU::MM, as it found file
>> 'lib.DIR' at make_ext.pl line 476.
>
> I think I can see what two things I need to fix here are. Got the first
> done (it's 'lib.DIR', not 'lib' etc).

Yes, this seems to do the trick:

--- make_ext.pl;-1 2014-02-27 11:19:57 -0600
+++ make_ext.pl 2014-02-28 21:55:35 -0600
@@ -591,6 +591,7 @@ sub just_pm_to_blib {

     foreach my $leaf (<*>) {
         if (-d $leaf) {
+            $leaf =~ s/\.DIR\z//i if $is_VMS;
             next if $leaf =~ /\A(?:\.|\.\.|t|demo)\z/;
             if ($leaf eq 'lib') {
                 ++$has_lib;
[end]

>> Running Makefile.PL in dist/PathTools
>> MDA0:[CRAIG.smoke.][fake-pm_to_blib]MINIPERL.EXE;2 "-I../../lib"
>> "Makefile.PL" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
>> "PERL_CORE=1"
>> Can't locate ExtUtils/MakeMaker.pm in @INC (you may need to install
>> the ExtUtils::MakeMaker module) (@INC contains: .) at Makefile.PL line
>> 5.
>> BEGIN failed--compilation aborted at Makefile.PL line 5.
>> %SYSTEM-F-ABORT, abort
>> %SYSTEM-F-ABORT, abort
>> 1024 from dist/PathTools's Makefile.PL at make_ext.pl line 499.
>> Warning: No Makefile!
>> %MMK-F-NOOPNDSC, could not open description file descrip.mms
>> %MMK-F-NOOPNDSC, could not open description file descrip.mms
>> -RMS-E-FNF, file not found
>> -RMS-E-FNF, file not found
>
> That doesn't make sense. Effectively what happens is if the code figures that
> it has to use Makefile.PL (and therefore mmk), then it drops down into the
> existing code. So everything should still build (which it did for me on HP's
> system)
>
> The above looks like 'perl' is being used to run Makefile.PL, not 'miniperl'.
> miniperl is using lib/buildcustomize.pl to set up @INC to include all the
> toolchain modules. perl isn't (so it won't work)
>
> But it doesn't make sense to me why make_ext.pl *seems* to be running
> `perl -I../../lib Makefile.PL` instead of `miniperl -I../../lib Makefile.PL`

Trimming .DIR makes that one go away too, which also doesn't make
sense.  But all is not well as running mmk test reruns all of the
Makefile.PLs.  It likely has something to do with the fact that the
VMS make utilities do not leave anything behind in the filesystem for
a target with no extension, and for that very reason MakeMaker uses
'pm_to_blib.ts' rather than 'pm_to_blib' on VMS (or rather defines the
latter in terms of the former).  So make_ext.pl probably needs to be
looking for pm_to_blib.ts on VMS.

Thread Previous | Thread Next


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