[jamming] Cygwin MkDir rule is broken in 5.2 Jam

Mark Evans evans_mark at yahoo.com
Thu Jan 12 05:04:17 PST 2006

Hi all,
 I am evaluating Jam 5.2 for usage in PC/Cygwin and HP NonStop/OSS environments.  (The latter is not supported by Jam 5.2 but I don't anticipate major porting problems.)  On Cygwin, I tried setting up a simple multi-architecture build demo where C++ objects are generated in a tree outside of a read-only source tree.   The target directory path assigned to LOCATE_TARGET does not exist before the first build.  The MkDir rule fires to create the target directory path, but fails when the path is absolute, containing a leading "c:/" or "/cygdrive/c/" .  In searching the mail archives it is apparent that other users have run into this problem.  Niklaus Giger suggested a patch Tue, 18 Nov 2003 that addresses the problem with "c:/" but does not address the problem with "/cygdrive/c/".  (The suggested patch below addresses both cases.)  Nevertheless Giger's suggestion was not incorporated in 5.2 which leads me to some (newbie) questions:
 Is Perforce Jam still being maintained?   
 Is it reasonable to expect problems such as the one I encountered on Cygwin to be fixed in a forthcoming release?  
 What is the proper way to report problems and suggest patches?
 Is there a roadmap for future releases?  
 Should I evaluate variants of Perforce Jam such as Boost Jam?  
 If so which variant would you experts recommend?
 Here is my patch to Jambase that fixes the MkDir/MkDir1 problem for Cygwin.
 --- Jambase.orig    2003-04-22 22:45:50.000000000 -0500
 +++ Jambase    2006-01-12 04:46:36.781250000 -0600
 @@ -1002,6 +1002,16 @@
          case *:\\ : s = ;
 +        if $(UNIX) && $(OS) = CYGWIN
 +        {
 +            switch $(s)
 +        {
 +        case *:   : s = ;
 +        case *:/  : s = ;
 +        case <dir>/cygdrive   : s = ;
 +        case <dir>/cygdrive/  : s = ;
 +        }
 +        }
          if $(s) = $(<)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.perforce.com/pipermail/jamming/attachments/20060112/60677744/attachment-0001.html>

More information about the jamming mailing list