Difference between revisions of "Compilation of Packages"
Thomas-sturm (Talk | contribs) m (Information taken from a mail by acn on 9/20/2010.) |
Thomas-sturm (Talk | contribs) m |
||
(6 intermediate revisions by one user not shown) | |||
Line 5: | Line 5: | ||
make bootsttraprecompile which=XXX | make bootsttraprecompile which=XXX | ||
</pre> | </pre> | ||
− | where <code>XXX</code> stands for alg, int, solve, redlog | + | where <code>XXX</code> stands for a package name like <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 | ||
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 | + | 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 | ||
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. | + | 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 | ||
− | + | <pre> | |
− | + | make -t reduce.img > /dev/null | |
− | + | make recompile which=mymodule | |
+ | make test1 which=mymodule | ||
+ | </pre> | ||
will be good. | will be good. | ||
Line 37: | Line 39: | ||
would still suggest that a clean tidy full recompile via | would still suggest that a clean tidy full recompile via | ||
<pre> | <pre> | ||
− | + | make clean | |
− | + | make | |
</pre> | </pre> | ||
every so often is a good policy to ensure full consistency. | every so often is a good policy to ensure full consistency. | ||
+ | |||
+ | [[Category:Development]] |
Latest revision as of 10: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.