and added support for queue scheduling option '-q', '-queue'
Now the 'Allwmake' scripts execute 'wmake -all' to handle parallel
processing in a general way, avoiding code duplication.
wmakeCollect collects the compilation commands for the all of the object
files to be compiled into a single makefile which is passed to make to
schedule the compilations in parallel efficiently.
Before wmakeCollect can be called the lnInclude directories must be
up-to-date and after wmakeCollect the linkage stage of the compilation
must executed using wmake.
This entire process is now handled by wmake using the new '-queue' or
'-q' option to compile sections of the OpenFOAM source tree or the
entire tree efficiently. The number of cores the compilation executes
on may be specified either using the WM_NCOMPPROCS variable or the '-j'
option.
To efficiently compile OpenFOAM after a 'git pull' the '-update' option
is provided which updates lnInclude directories, dep files and removes
deprecated files and directories. This option may be used with '-q':
wmake -q -update
The Makefiles are now in the makefiles sub-directory
The "-f | -force" option in wmakeLnInclude is now "-u | -update" for
consistency with the other scripts.
The "Usage" entry in the headers is now consistently formatted in all
scripts.
wcleanPlatform is a more general and cleaner version of wcleanMachine
supporting the "-all" option to provide the equivalent of wcleanAll.
Both wcleanMachine and wcleanAll are now deprecated and will be removed
for the next major release.
- adds more DWIM (do what I mean) intelligence to wmake
ENH: use ~/.OpenFOAM/.wmake instead of ~/.wmakeScheduler for the lock dir
- keeps more of the OpenFOAM bits together
- send error messages to stderr
- added -h/-help options where some were missing
- changed 3-space to 4-space indentation
- where possible, allow multiple directories from the command-line
This substantially eases enabling/disabling distributed compiling
For example,
- export WM_HOSTS="host1:N ... hostN:N" as usual
- simply set/unset WM_SCHEDULER
etc/aliases.{sh,csh} added aliases for enabling/disabling wmakeScheduler
- alias wmSchedON='export WM_SCHEDULER=$WM_PROJECT_DIR/wmake/wmakeScheduler'
- alias wmSchedOFF='unset WM_SCHEDULER'
Removed wmakeLockScheduler, identical to wmakeScheduler except a 'sleep'