Make target settings are behavior incompatible

Andreas Pakulat apaku at gmx.de
Sun Jan 7 21:38:16 UTC 2007


On 07.01.07 22:31:02, Andras Mantia wrote:
> On Sun Jan 7 2007, Andreas Pakulat wrote:
> > Sorry, we can't fix that. Except you could use a path relative to
> > your project, not the source dir. The prolem here is "guessing", the
> > AM now uses builddir+(projectdir-sourcedir)+relativepath. (the
> > difference means the relative path between project dir and sourcedir,
> > i.e "quanta" in your case). Before it was builddir+relativepath and
> > that could break too.
> 
> When can builddir+relativepath be broken?

If one uses src/quanta as opposed to quanta/src/quanta. Seriously, any
of the two versions can be easily broken by using relative paths. So it
doesn't really matter which one we choose. I mean you can as well change
it to src/quanta can't you?

> > Thats not fixable by us, I think. I didn't look at the code, but this
> > should be using the order that is set via the Makefile.am
> > dependecies.
> 
> Obviosuly the rules are correct there, otherwise the project wouldn't 
> build. The problem seems to be 
> AutoProjectPart::queueInternalLibDependenciesBuild which checks the 
> dependencies for the target, but doesn't check recursively the 
> dependencies for those dependencies.
> In this case the "quanta" target depends on various convenience 
> libraries, including libdebuggermanager.la. In the Makefile.am this is 
> described as 
> quanta_LDADD = [...]
> 	$(top_builddir)/quanta/components/debugger/libdebuggermanager.la \
> [...]
> 
> 
> But libdebuggermanager.la has itself another dependency:
> libdebuggermanager_la_LIBADD = interfaces/libdebuggerinterface.la
> 
> This is ignored.
> 
> I fear that this problem is not specific to the quanta project itself 
> and can happen in other cases as well.

Yeah, we don't recusively calculate those dependecies and actually we
shouldn't calculate this at all, this is something the buildsystem
should handle and not kdevelop (and if it can't its a buildsystem
issue). But we agreed to not remove this "mis-feature" in 3.4 as there
are already a couple of regressions from 3.3. So you have to handle the
deeper depdencies yourself, sorry.

Andreas

-- 
Truth will out this morning.  (Which may really mess things up.)




More information about the KDevelop-devel mailing list