<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Nov 6, 2017 at 12:49 PM, Franck Houssen <span dir="ltr"><<a href="mailto:franck.houssen@inria.fr" target="_blank">franck.houssen@inria.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">----- Mail original -----<br>
> De: "Satish Balay" <<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>><br>
> À: "Franck Houssen" <<a href="mailto:franck.houssen@inria.fr">franck.houssen@inria.fr</a>><br>
> Cc: "petsc-dev" <<a href="mailto:petsc-dev@mcs.anl.gov">petsc-dev@mcs.anl.gov</a>><br>
> Envoyé: Lundi 6 Novembre 2017 16:08:55<br>
> Objet: Re: [petsc-dev] CMake: make, install, find_package ?<br>
><br>
> On Mon, 6 Nov 2017, Franck Houssen wrote:<br>
><br>
> ><br>
> > Yes ! Your friend let you the keys of his car. The car has no wheel. Why<br>
> > did he gave you his keys ?!... :D (joking)<br>
><br>
> Actually - its more akin to - friend gives you a car - and leaves the<br>
> keys in the console, with instructions there.<br>
<br>
:D<br>
<br>
> However you look arround in the trunk and find something that looks like a key - and assume hay<br>
> - it must start this car - and retool it and start the car with it :)<br>
><br>
> Anyhow - Barry wants to get rid of the cmake related code from petsc..<br>
><br>
<br>
Yeah, that's your decision ! But know that, if you impose a full global ordering of all packages of all possible dependencies (to be done once = associating a unique number to each package), then:<br>
1. "your" configure (python) will probably also benefit of it (less "bugs" when reconfiguring for instance, ...).<br>
2. cmake and find_package will work (with commits in the bundle I sent): this could be nice to lots of people too...<br>
<br>
Dependencies order seems to have been the base line systematic problem you had: neither cmake, nor autotools are meant to deal with the graph of dependencies (no way they can do that), this must be guaranteed by the dev (no choice).<br>
Who was first ? Chicken or Egg ? How to know ? :D CMake/autotools can not know if blas needs lapack or if it is the other way !<br>
<br>
Dependencies order must be imposed : in configure, that's already what you do already (but only locally - scalapack knows it needs mpi and lapack).<br>
If you do that globally, you solve everything at once (in likely 15 to 30 mins !) and avoid cmake to deal with problems (order) he has no way to solve.<br></blockquote><div><br></div><div>That is a terrible model. You have a closed world assumption, which is the opposite of what we want for configure. You would end up renumbering all the</div><div>time. Instead we use topological sort to impose a total order on the fly. This is why we have mathematics, to figure out the right thing to do without</div><div>enumerating everything ahead of time.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> Satish<br>
><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>