[Libreoffice] how to 'make' a single target?

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Sat Oct 29 18:29:34 PDT 2011


Hi,

On Sat, Oct 29, 2011 at 06:17:09PM -0400, Kevin Hunter wrote:
> I'm currently working in the sc/ module, and I'm in the "make small
> change, re-compile, make small change, re-compile" stage.  This is
> proving very cumbersome, however, as I'm unable to re-make just the
> affected files.  For instance, note my attached output, showing the
> output of
> 
> $ make -j1 | head; sleep; make -j1 | head

The attached output indeed should never happen. What file did you touch to
generate it?

> Should not at least the first 3 completed executions no longer need
> to be re-executed?

Yes. Could you check the timestamps of
 /home/kevin/devel/libreoffice/workdir/unxlngx6.pro/Dep/CxxObject/sc/source/filter/dif/difexp.d
being newer than
 /home/kevin/devel/libreoffice/workdir/unxlngx6.pro/CxxObject/sc/source/filter/dif/difexp.o
and that again being newer than
 /home/kevin/devel/libreoffice/sc/source/filter/dif/difexp.cxx
, please?

> Are there any pointers for me on how I can compile _just the exact_
> piece of code on which I'm working (and affected other snippets, of
> course)?

You can build without unitchecks by doing a:
 (. ../Env.Host.sh && make build)
You make it ignore header dependencies by doing a:
 (. ../Env.Host.sh && make gb_FULLDEPS= build)
Then only objects get rebuild if you touched the cxx directly.
If you do a:
 (. ../Env.Host.sh && make gb_FULLDEPS= -W `readlink -f source/filter/dif/difexp.cxx` build)
only difexp.cxx gets recompiled and relinked, even if it wasnt directly
changed.

Best,

Bjoern


More information about the LibreOffice mailing list