Difference between revisions of "Compilation of Packages"

From redlog.eu
Jump to: navigation, search
m
m
Line 12: Line 12:
 
Now there is a trap in this! There are existing dependency rules that will  
 
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  
 
mean that if you try to do almost anything a full recompilation will be  
triggered (at least in the CSL world). That is safe and to my mind proper.  
+
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  
 
So to let these new "make targets" to just a minimum you are probably  
 
really going to want to go
 
really going to want to go

Revision as of 10:52, 2 August 2011

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 alg, int, solve, redlog or whatever

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
make

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