On Mon, Nov 7, 2011 at 10:07 PM, Shao-Ching Huang <span dir="ltr">&lt;<a href="mailto:huangsc@gmail.com">huangsc@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Thanks guys.<br>
<br>
I was thinking rebuilding in 5 seconds, if I could reuse most of the<br>
already-built .o files. (Like in a typical makefile scenario -- only<br>
the changed source files are re-compiled). It seems that the petsc<br>
&quot;make&quot; command cleans up all the .o files automatically.<br></blockquote><div><br></div><div>Ah, this is a different discussion. We have no good dependencies that signal a</div><div>reconfigure. It is complicated.</div>
<div><br></div><div>However, if you only care about rebuilding, both CMake (the &#39;make&#39; command)</div><div>and Python (the builder2.py build command) take into account dependencies,</div><div>so they will only rebuild what changes.</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;">
I have no problem of rebuilding the whole thing afresh. Actually that<br>
is what I have been doing.<br>
<br>
Thanks,<br>
<br>
Shao-Ching<br>
<br>
On Mon, Nov 7, 2011 at 1:56 PM, Barry Smith &lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt; wrote:<br>
&gt;<br>
&gt;  If you find that ./configure or the make are taking a huge amount of time you might investigate where the files are stored. If, for example, they are stored on a separate file server it may be most of the time is due to the file server. For example configuring and compiling each take me about 5 minutes on my laptop; on a desktop using a file server might take 1/2 an hour.<br>

&gt;<br>
&gt;   Barry<br>
&gt;<br>
&gt; On Nov 7, 2011, at 3:52 PM, Satish Balay wrote:<br>
&gt;<br>
&gt;&gt; On Mon, 7 Nov 2011, Shao-Ching Huang wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Hi<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I downloaded petsc using the &quot;hg clone<br>
&gt;&gt;&gt; <a href="http://petsc.cs.iit.edu/petsc/releases/petsc-3.2" target="_blank">http://petsc.cs.iit.edu/petsc/releases/petsc-3.2</a>&quot; method. Now, after<br>
&gt;&gt;&gt; hg pull/update (some files are changed), do I always have to build<br>
&gt;&gt;&gt; from scratch (i.e. compiling everything, including the --download-xxx<br>
&gt;&gt;&gt; stuff)? Is there a short cut to rebuild libpetsc.{so,a} when I have no<br>
&gt;&gt;&gt; configuration change?<br>
&gt;&gt;<br>
&gt;&gt; This is a tricky thing. Generally updates to petsc-3.2 should not<br>
&gt;&gt; require a rerun of configure or a rebuild of all library code - but<br>
&gt;&gt; this is not always true. [sometimes you might have to pull/update<br>
&gt;&gt; BuildSystem and rerun configure - or rebuild externalpackages - as the<br>
&gt;&gt; tarballs for these packages get updated].<br>
&gt;&gt;<br>
&gt;&gt; For the generaly case - an update of the libraries can be done with:<br>
&gt;&gt;<br>
&gt;&gt; [for cmake build]<br>
&gt;&gt; make<br>
&gt;&gt;<br>
&gt;&gt; [for non-cmake build]<br>
&gt;&gt; make ACTION=lib tree<br>
&gt;&gt;<br>
&gt;&gt; And if a rerun of configure is needed - one can run<br>
&gt;&gt; ./PETSC_ARCH/conf/reconfigure_PETSC_ARCH.py<br>
&gt;&gt;<br>
&gt;&gt; Satish<br>
&gt;<br>
&gt;<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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<br>