Well I'm a VMS guy, but I don't know what catfile does. I'll see what I can
find out about it, but I'd also like to know what you need it to do.

JB

-----Original Message-----
From: Michael G Schwern [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 26, 2002 9:57 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: VMS (non-perl) File::Spec->catfile equivalent?


This is the code to generate the pure_perl_install target on VMS.

# This hack brought to you by DCL's 255-character command line limit
pure_perl_install ::
        $(NOECHO) $(PERL) -e "print 'read
].File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q[
'" >.MM_tmp
        $(NOECHO) $(PERL) -e "print 'write
].File::Spec->catfile('$(INSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q
[ '" >>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_LIB) $(INSTALLPRIVLIB) '"
>>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_ARCHLIB) $(INSTALLARCHLIB) '"
>>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_BIN) $(INSTALLBIN) '" >>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_SCRIPT) $(INSTALLSCRIPT) '"
>>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_MAN1DIR) $(INSTALLMAN1DIR) '"
>>.MM_tmp
        $(NOECHO) $(PERL) -e "print '$(INST_MAN3DIR) $(INSTALLMAN3DIR) '"
>>.MM_tmp
        $(MOD_INSTALL) <.MM_tmp
        $(NOECHO) Delete/NoLog/NoConfirm .MM_tmp;


all it's really doing is creatinga file (.MM_tmp) full of filenames
and feeding that to $(MOD_INSTALL).  There's two reasons it's so
complicated.

1) DCL'S 255 character limit.
2) Constructing the .packlist paths in PERL_ARCHLIB.

It's #2 I want to talk about.  Normally I'd just toss all those one
liners and throw in this:

pure_perl_install ::
     $(NOECHO) OPEN/APPEND TMP .MM_tmp
     $(NOECHO) WRITE TMP "$(INST_LIB)     $(INSTALLPRIVLIB)"
     $(NOECHO) WRITE TMP "$(INST_ARCHLIB) $(INSTALLARCHLIB)"
     $(NOECHO) WRITE TMP "$(INST_BIN)     $(INSTALLBIN)"
     ...etc...
     $(NOECHO) CLOSE TMP
     $(MOD_INSTALL) <.MM_tmp
     $(NOECHO) Delete/NoLog/NoConfirm .MM_tmp;

since it's a VMS specific module, that should be fine.

Except for the file path concatination parts.  There's *got* to be
some simple VMS equivalent of File::Spec->catfile we can use instead
of all these one-liners.  What is it?


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
some sniff tubes of glue,
but I prefer to rub it in my poo,
and read Whinny and Tigger, too
like ODB at the Brooklyn Zoo.
        -- Ubergirl's beau

Reply via email to