Difference between revisions of "Compilation of Packages"

From redlog.eu
Jump to: navigation, search
Line 5: Line 5:
make bootsttraprecompile which=XXX
make bootsttraprecompile which=XXX
where <code>XXX</code> stands for alg, int, solve, redlog or whatever
where <code>XXX</code> stands for <code>alg</code>, <code>int</code>, <code>solve</code>, <code>redlog</code> etc.
Similarly <code>make recompile which=XXX</code> recompiles just that module in the  
Similarly <code>make recompile which=XXX</code> recompiles just that module in the  

Revision as of 10:53, 2 August 2011


Select the directory that has the reduce executable and image in it (e.g. cslbuild/i686-pc-windows/csl) and try

make bootsttraprecompile which=XXX

where XXX stands for alg, int, solve, redlog etc.

Similarly make recompile which=XXX recompiles just that module in the main image.

Now there is a trap in this! There are existing dependency rules that will mean that if you try to do almost anything a full recompilation will be triggered (at least in the CSL world). That is a safe solution, and it is considered proper. So to let these new "make targets" to just a minimum you are probably really going to want to go

# ensure that bootstrapreduce.img or reduce.img had been made already
make -t bootstrapreduce.img
make bootstraprecompile which=mymodule

If you change any source files and try to use reduce.img then it is probable that bootstrapreduce.im will be regenerated, all the stages of compilation into C reactivated and so on before reduce.img can be considered up to date. So possibly even

make -t reduce.img > /dev/null
make recompile which=mymodule
make test1 which=mymodule

will be good.

The output from the compilation run comes to the screen as well as being put in a log file buildlogs/mymodule.log.

This may be useful to people doing active development or testing on a single module since it will be cheaper than recompiling everything. I would still suggest that a clean tidy full recompile via

make clean

every so often is a good policy to ensure full consistency.