On Wed, May 16, 2012 at 04:34:18PM +0000, Craig A. Berry wrote:

[snip useful answers which aren't directly blocking]

> > 8: The Alpha machine fails the build because the target is converted to
> > uppercase. How come no-one else has this problem?
>  
> I'm going to punt on the MMS issues for the moment.  The short answer is you 
> cannot build Perl with MMS currently but must use MMK, available here: 
> <http://www.kednos.com/kednos/Open_Source/MMK>.

In which case, README.vms needs some updating :-)

I've downloaded it, built it and "installed" it by copying to
PTAC$DKA0:[NCLARK.bin]mmk

(This probably isn't the best idea, as that directory is on the cluster,
hence common to the IA64 and alpha machines, so really I'm going to need
to figure out a better way of keeping binaries from the two architectures
segregated.)

In turn, I configure.com, I can't specify MCR PTAC$DKA0:[NCLARK.bin]mmk
as my make utility, because this ends up with configure.com bombing out
with the current directory as [.UU], having produced a Descrip.MMS which
is (IIRC) solely 2 lines of errors about files it can't open. Nor does
specifying "make" work (GNU make 3.78.something is installed)

If I specify mmk then configure.com does build a Descrip.MMS correctly.
However, just running MRC PTAC$DKA0:[NCLARK.bin]mmk soon fails to build
further.

Doing *this* gets me a lot further:

MMK := mcr PTAC$DKA0:[NCLARK.bin]mmk

However, the build fails at a subdirectory of Encode:

Making all in cpan/Digest-MD5
 MMK all /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1")
        Making Digest::SHA (all)
Making all in cpan/Digest-SHA
 MMK all /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1")
        Making Encode (all)
Making all in cpan/Encode
 MMK all /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1")
Set Default [.byte]
MMK/DESCRIPTION=DESCRIP.MMS/MACRO=(PERL_CORE="1") /Descrip= Descrip.MMS all
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
 \MMK\
%MMK-F-ERRUPD, error status %X00038090 occurred when updating target SUBDIRS
%MMK-F-ERRUPD, error status %X00038090 occurred when updating target SUBDIRS
Unsuccessful make(cpan/Encode): code=1024 at make_ext.pl line 466.
%NONAME-F-NOMSG, Message number 0C14803C
%MMK-F-ERRUPD, error status %X0C14803C occurred when updating target DYNEXT


This seems to have a lot to do with Encode having subdirectories that also
contain F<Makefile.PL>s. In that, if I try to build SDBM_File:

$ mcr []miniperl.exe "-Ilib" make_ext.pl "MAKE=mmk" "SDBM_File"
        Making SDBM_File (all)

Running Makefile.PL in ext/SDBM_File
ptac$dka0:[nclark.i.perl5160-rc2-mmk]miniperl.exe;1 "-I../../lib" "Makefile.PL"
"INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" "PERL_CORE=1"
Writing Descrip.MMS for sdbm
Writing Descrip.MMS for SDBM_File
Making all in ext/SDBM_File
 mmk all /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1")
cp sdbm_file.pm [--.lib]sdbm_file.pm
set def [.sdbm]
MMK all
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
 \MMK\
%MMK-F-ERRUPD, error status %X00038090 occurred when updating target [.SDBM]LIBS
DBM.OLB
%MMK-F-ERRUPD, error status %X00038090 occurred when updating target [.SDBM]LIBS
DBM.OLB
Unsuccessful make(ext/SDBM_File): code=1024 at make_ext.pl line 466.
%NONAME-F-NOMSG, Message number 0C14803C

Same failure. The logical "mmk" is getting forgotten by the time the outer
Descrip.MMS is attempting to recurse to the inner Descrip.MMS

So, I'm a bit stuck again.

When I last build on VMS (back on Testdrive. I liked Testdrive) IIRC it
worked fairly smoothly. Or at least, I got it to a point of reliably
working. Maybe I forgot the speed bumps on the way.

Nicholas Clark

PS The above already proves one simplification I can make
   mcr []miniperl.exe "-Ilib" make_ext.pl .... works
   No need for "-I[.dist.Cwd]" "-I[.dist.Cwd.lib]" too.
   This is why I'm keen to get myself building VMS longer term.
   Shorter term, it would be nice to verify the perl-5.16.0 release candidate:
   http://www.cpan.org/src/5.0/perl-5.16.0-RC2.tar.gz

Reply via email to