[jamming] Clean actions on VMS

Abbate, Joseph M Joseph.Abbate at ca.com
Wed Nov 24 06:55:49 PST 2004

Hi Jammers,

I was wondering if any of you with VMS experience have run across the
Clean problem or, better yet, have a fix for it.

The Clean actions are defined as

$(RM) $(>[1]);* ,$(>[2-]);*

The problem is that if some targets have full paths and others don't,
DCL uses the full path of a previous argument to complete the incomplete
path(s) of subsequent arguments. For example, if you place an executable
in BINDEV:[bin]prog.exe and the source together with the object are in
[.srcdir1.dir2]prog.c/.obj (i.e., the full path is something like
TOP:[srcdir1.dir2]prog.obj), the Clean invocation becomes

delete BINDEV:[bin]prog.exe;* ,[.srcdir1.dir2]prog.obj;*

DCL delete the prog.exe properly, but then attempts to delete something
like BINDEV:[dir_to_top.src.srcdir1.dir2]prog.obj;*, which does NOT
exist and fails. A second invocation of "jam clean" is an inelegant
workaround because the second time around the prog.obj is by itself so
the relative path completion is successful.

Has anyone seen this and/or have any fixes (switching to UNIX is not an
option, nor is it rewriting DCL to change its command line argument
rules :-)?

Joe Abbate
Senior Software Engineer
Computer Associates
joseph.abbate at ca.com

More information about the jamming mailing list