Wmake

From OpenFOAMWiki
Revision as of 14:16, 3 August 2007 by Mattijs (Talk | contribs)

Valid versions: OF version 14.png

wmake tips:

- all invocations can have an optional directory:

 wmake $FOAM_UTILITIES/mesh/manipulation/checkMesh
 wmake libso $FOAM_SRC/finiteVolume

- wmake all

 wmake all <dir>

will recursively build all applications in current or specified directory.

- wmake <target>, e.g.

  wmake Make/linux64Gcc4DPOpt/meshBb.o

will build just that taget

- distributed building: wmake comes with a simple scheduler, wmakeScheduler, which spawns a job on a free machine. It is currently set up to distribute only compilation of c,c++. Dependency building and linking gets done on the local machine.

It is set up with three environment variables: WM_SCHEDULER : the name of the scheduler to use WM_HOSTS  : the list of cores to use WM_NCOMPROCS : the number of parallel builds (usually the size of WM_HOSTS)

Example to build on 1 processor of dm and 4 processors of noisy:

Valid versions: OF version 141.png:

export WM_SCHEDULER=wmakeScheduler

export WM_HOSTS="dm:1 noisy:4"

export WM_NCOMPPROCS=$($WM_SCHEDULER -count)


Valid versions: OF version 14.png:

export WM_SCHEDULER=wmakeScheduler

export WM_HOSTS="(dm:0 noisy:1 noisy:2 noisy:3 noisy:4)"

eval "hosts=$WM_HOSTS"

export WM_NCOMPPROCS=${#hosts[@]}