GEOS-5 Software Engineering: Difference between revisions
Line 222: | Line 222: | ||
In case of errors, <tt>gmh</tt> summarizes exactly where it happens by indicating the package where it occured. Caveat: it does not work in parallel (output is scrambled). So, if the parallel build fails, rerun it sequentially (it will go quickly and die in the same place) and run gmh on the output for a summary. | In case of errors, <tt>gmh</tt> summarizes exactly where it happens by indicating the package where it occured. Caveat: it does not work in parallel (output is scrambled). So, if the parallel build fails, rerun it sequentially (it will go quickly and die in the same place) and run gmh on the output for a summary. | ||
===== Advanced features ===== | |||
======Check load balance of build====== | |||
The model includes useful tools like build timers, Config/esma_timer.sh, Config/esma_tgraph.pl. These are useful to time the build and check the load balance of the build, process. There is a way to hook these timers to the build process by setting | |||
ESMA_base.mk:ESMA_TIMER = # command to time build steps (for compilation) | |||
ESMA_base.mk:ESMA_TIMER_CI = # command to start timer (for user to backet code segments) | |||
ESMA_base.mk:ESMA_TIMER_CO = # command to end timer (for user to backet code segments) | |||
======Customize build====== | |||
A build can be customized by using <tt>$HOME/.esma_xxxx.mk</tt> | |||
ESMA_BASE = ESMA_base.mk $(wildcard $(HOME)/.esma_base.mk) | |||
ESMA_ARCH = ESMA_arch.mk $(wildcard $(HOME)/.esma_arch.mk) | |||
ESMA_POST = ESMA_post.mk $(wildcard $(HOME)/.esma_post.mk) | |||
These effectively let you change whatever you want - useful for debugging, etc. For example, you can set your timers in ~/.esma_base.mk. | |||
<!-- | <!-- |