···500500501501----
502502./configure # if not already done
503503-make clean && dune build @libs
503503+make clean-for-dune && dune build @libs
504504----
505505506506which will do a bytecode build of all the distribution (without linking
···511511particular, you need to repeat the dune build every time you change the interface
512512of some compilation unit, so that merlin is aware of the new interface.
513513514514-You only need to run `configure` once, but you will need to run `make clean`
515515-every time you want to run `dune` after you built something with `make`;
516516-otherwise dune will complain that build artefacts are present among the sources.
514514+You only need to run `configure` once, but you will need to run `make
515515+clean-for-dune` every time you want to run `dune` after you built
516516+something with `make`; otherwise dune will complain that build
517517+artefacts are present among the sources. (Not all build artifacts need
518518+to be removed, `clean-for-dune` removes less than `clean` or
519519+`partialclean` and thus Make will rebuild faster.)
517520518521Finally, there will be times where the compiler simply cannot be built with an
519522older version of itself. One example of this is when a new primitive is added to