At 2:51 AM -0500 12/20/04, Michael G Schwern wrote:

>So one could say...
>
>INST_LIBDIR = [.blib.lib.Some]
>
>INST_LIBDIR_DIR = [.blib.lib]Some.dir
>
>$(INST_LIBDIR) : $(INST_LIBDIR_DIR)
>       $(NOOP)
>
>$(INST_LIBDIR_DIR)
>       $(MKDIR) $@
>
>$(INST_LIBDIR) is still useful in the Makefile like always
>(ie. "$(INST_LIBDIR)file" which is like "$(INST_LIBDIR)/file" on Unix)
>and $(INST_LIBDIR_DIR) can be used to ensure the directory is created.
>
>I think this will work out.  The previously deprecated dir_target() method
>can be reinstated to generate these targets.
>
>So.  Thoughts?

That should work, depending on the value of $(MKDIR).  Using the
native method, you have to use the directory-as-directory syntax
rather than the directory-as-file syntax:

$ create/directory/log foo.dir
%CREATE-E-DIRNOTCRE, FOO.DIR directory file not created
-LIB-F-INVFILSPE, invalid file specification
$ create/directory/log [.foo]
%CREATE-I-CREATED, DISK1:[MYDIR.FOO] created
$

Perl's mkdir seems to allow either syntax, though I don't know
whether that's true for all versions of Perl and VMS.

>[1] For those who don't know, VMS file paths basically work like this.
>
>Unix                   Windows                 VMS                     
>/usr/local/bin/perl    \usr\local\bin\perl     [usr.local.bin]perl

I think that would actually be usr:[local.bin]perl

>./dir/dir/dir          dir\dir\dir             [.dir.dir.dir]  
>./dir/dir/file         .\dir\dir\file          [.dir.dir]file
>../dir/dir/file                ..\dir\dir\file         [-dir.dir]file
>../../dir/dir/file     ..\..\dir\dir\file      [--dir.dir]file

You've got some dots missing -- that would be [-.dir.dir]file and 
[--.dir.dir]file.

>N/A                    C:\dir\dir\file         C:[dir.dir]file

-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to