RE: simultaneous builds in jam?
Hoff, Todd <Todd.Hoff <at> ciena.com>
1999-12-01 23:19:55 GMT
Steve Babiak suggested changing the make directory rule to:
actions MkDir1
{
if not exist $(1)\nul $(MKDIR) $(1)
}
This gates the make directory and works for me! Steve's explanation is:
The "if not exist" is understood to test for existence of a file, not
a directory, in NT. That is why the "nul" file is tacked onto the end
of $(1). So, if the nul file does not exist in the directory, then
call MKDIR. The MKDIR on NT creates a directory _and _ that directory
will contain a nul file always!
Much appreciated!!
> -----Original Message-----
> From: Hoff, Todd [mailto:Todd.Hoff <at> ciena.com]
> Sent: Monday, November 29, 1999 8:47 AM
> To: 'jamming <at> perforce.com'
> Subject: [jamming] simultaneous builds in jam?
>
>
> Can jam handle builds from multiple CPUs in the same
> directory tree? I've parallelized our build into 3 simultaneous
> phases and i'm seeing build failures i don't see when
> the build is done serially. I'm wondering if this a jam
> issue or something we have done.
>
> The first step is to completely sync the build area with sources.
> Then 3 build targets are executed in jam simultaneously
> on 3 different hosts. So, multiple builds are running
> at the same time in the same tree. The build targets
> should be non-overlapping. For example, windoze libraries
> and vxworks libraries are built at the same time. There
> shouldn't be a conflict.
>
> The problem i'm seeing is:
>
> MkDir1 Z:\x\build\obj\Actor
>
> mkdir Z:\x\build\obj\Actor
>
> A subdirectory or file Z:\x\build\obj\Actor already exists.
>
> mkdir Z:\x\build\obj\Actor
>
> ...failed MkDir1 Z:\x\build\obj\Actor ...
> ...skipped Z:\x\build\obj\Actor\win32 for lack of
> Z:\x\build\obj\Actor...
> ...skipped Z:\x\build\obj\Actor\win32\debug for lack of
> Z:\x\build\obj\Actor\win32...
> ...skipped <Build!obj!Actor!win32!debug>Actor.obj for lack of
> Z:\x\build\obj\Actor\win32\debug...
> ...skipped lib_Actor_win32_dbg.lib for lack of
> <Build!obj!Actor!win32!debug>Actor.obj...
>
> What seems to be happening is the first target to reach a
> certain directory
> wins. The other
> two targets will not be built. In the above example the
> vxworks release
> target was built, but
> the win32 and vxworks debug targets were skipped.
>
> Any thoughts?
>
> thanx
>
> -----------------------------------------
> todd.hoff <at> lightera.com
> Time is a debt i pay only momentarily.
>
>
> _______________________________________________
> jamming mailing list - jamming <at> perforce.com
> http://maillist.perforce.com/mailman/listinfo/jamming
>