SparkBuild Community

Pushing the envelope of build performance

I have installed SparkBuild and ran a build but could not find the annotation file.
emake help sais that it only created when running under Accelerator.
Am I missing something?

Views: 3

Replies are closed for this discussion.

Replies to This Discussion

You'll need to take two additional steps to get the annotation file. First, you have to set --emake-annodetail=(basic,env,waiting). Second, you'll have to redirect or tee stdout to a file - the annotation output is written to stdout.

Here's an example:

emake --emake-subbuild-db=my.db --emake-annodetail=basic,waiting,env | tee anno.xml
Will --emake-annofile=PATH eliminate the need for tee?
Hi Yuri,

Unfortunately in local mode emake does not support the --emake-annofile=PATH argument: annotation can only be written to stdout. We hope to remove that limitation in the future, but for now that's how it works.

Eric Melski
Architect, ElectricAccelerator
Electric Cloud, Inc.
What if the makefiles emit stuff on stdout? How do I prevent it from getting into the xml file?
SparkBuild will handle this case just fine. All the output from the build which would normally be printed to the console will end up in sections of the appropriate block in the annotation.
Great.
Our build uses a script that sets the environment and calls make twice.
Each make calls itself recursively etc.
I am not sure if the recursive make uses $(MAKE) or just make.
Will emake catch all this?
If we change each top make to emake, will it append to the same .db and .xml?
The recursive make needs to use $(MAKE), otherwise you'll get gmake for those submakes. (If it is hard to change them by hand, you could always rename emake to make instead and put it early in $PATH)

If you change each top-level make to emake, you'll need to have two separate .db files - one for each top-level build. (Neither the db nor the anno file can be appended to) You'll also want to store the anno data in two separate files.

Your commands might look like this:

build.cmd:

(setup stuff...)
emake --emake-subbuild-db=phase1.db | tee phase1.xml
(interim stuff)
emake --emake-subbuild-db=phase2.db | tee phase2.xml
(teardown)

RSS

Share

© 2012   Created by Electric Cloud Administrator.

Badges  |  Report an Issue  |  Terms of Service