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