[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Understanding the Octave build process: a small change to one DLD-FUNCTI
From: |
John W. Eaton |
Subject: |
Understanding the Octave build process: a small change to one DLD-FUNCTION source caused massive relinking |
Date: |
Thu, 23 Sep 2010 14:56:29 -0400 |
On 23-Sep-2010, John Swensen wrote:
| I have been hacking on the
| __magick_read__.cc file in the DLD-FUNCTIONS direectory and have
| noticed that the build process seems to be re-linking every single
| DLD-FUNCTION regardless of whether the underlying sources were
| edited. For example, I only edited __magick_read__.cc, but when I
| run 'make' I get output similar to what is listed at the end of this
| message for each file in DLD-FUNCTIONS.
Oops. This is happening because builtins.cc depends on $(DEF_FILES)
(the generated .df files that contain extracted docstrings and other
info) and that list mistakenly included the .df files generated from
the dynamically-linked files in the DLD-FUNCTIONS directory.
I checked in the following change, which seems to fix the problem for me:
http://hg.savannah.gnu.org/hgweb/octave/rev/0c752b657217
Note however, that changing any file that causes libcruft, liboctave,
or liboctinterp to be rebuilt will result in relinking (but not
recompiling) all the .oct files. I see no good way around that as
some systems require that shared libraries be linked with all the
libraries they depend on, even if only indirectly. I think that to
fix this problem for systems that do not have this requirement
requires some changes to libtool and/or automake.
Thanks for prompting me to take another look at this, and my apologies
for the gazillions of CPU cycles wasted as a result of this mistake.
jwe