Difference between revisions of "Compilation of Packages"

From redlog.eu
Jump to: navigation, search
m
m
 
Line 22: Line 22:
  
 
If you change any source files and try to use reduce.img then it is  
 
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
+
probable that <code>bootstrapreduce.img</code> will be regenerated, all the stages of
 
compilation into C reactivated and so on before <code>reduce.img</code> can be  
 
compilation into C reactivated and so on before <code>reduce.img</code> can be  
 
considered up to date. So possibly even
 
considered up to date. So possibly even

Latest revision as of 11:28, 23 April 2012

CSL

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 a package name like 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.img 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
make

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