one option would be to split deps/Makefile into N different deps/ABC.make
files (one for each dependency), so that each makefile could have a
dependency on itself

otherwise, authors just need to be careful to introduce a makefile
dependency on the new build artifact whenever they add a patch file, or a
different output, etc.

On Thu, Oct 30, 2014 at 1:46 AM, Tony Kelman <t...@kelman.net> wrote:

> > Anyone have a dependency graph in mind?
>
> I think a dozen or so of us have the dependency graph more or less
> memorized.
>
> Since I'm pseudo-patching arpack via command-line -D flags, a stale copy
> of it seems to reuse cached autotools-generated copies of the makefiles. I
> think what we would effectively need to make rebuilds happen reliably would
> be some way of having any git pull that modifies the relevant flags or
> section of deps/Makefile also touch the corresponding configure scripts to
> make them rerun. And any time we add or modify a patch to a dependency, the
> only reliable ways I've found of forcing them to apply are either manually
> applying them, or cleaning out the existing sources which requires make -C
> deps distclean-xyz (and hence a re-downloading of the tarball and complete
> rebuild of that dependency).
>
> I'm sort of wishing we could do out-of-tree builds for some of this, to
> better separate sources from build objects. But some of the deps like
> openblas don't really support out-of-tree builds at all. Grand plan would
> be rewriting the thousands of lines of Makefile logic into CMake, which
> might handle all of this better with its caching mechanism. That might be a
> terrible idea and not work at all though, someone probably just has to try
> it and see whether it ends up better or worse. Cross-compilation (which
> only a few of us do very often) with CMake was... difficult... initially,
> but I eventually changed my mind on it and came to the conclusion that it
> just takes a really verbose invocation (or a toolchain file where you write
> down the long set of flags you need) to get working.
>
>
>

Reply via email to