[petsc-users] how to rebuild from updated repo

Barry Smith bsmith at mcs.anl.gov
Mon Nov 7 16:11:30 CST 2011


  With petsc-3.2 if you have a recent version of cmake installed on your machine then it does exactly that and if you, for example, change one file the rebuilding of the library is very fast.

   Barry

On Nov 7, 2011, at 2:07 PM, Shao-Ching Huang wrote:

> Thanks guys.
> 
> I was thinking rebuilding in 5 seconds, if I could reuse most of the
> already-built .o files. (Like in a typical makefile scenario -- only
> the changed source files are re-compiled). It seems that the petsc
> "make" command cleans up all the .o files automatically.
> 
> I have no problem of rebuilding the whole thing afresh. Actually that
> is what I have been doing.
> 
> Thanks,
> 
> Shao-Ching
> 
> On Mon, Nov 7, 2011 at 1:56 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>>  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.
>> 
>>   Barry
>> 
>> On Nov 7, 2011, at 3:52 PM, Satish Balay wrote:
>> 
>>> On Mon, 7 Nov 2011, Shao-Ching Huang wrote:
>>> 
>>>> Hi
>>>> 
>>>> I downloaded petsc using the "hg clone
>>>> http://petsc.cs.iit.edu/petsc/releases/petsc-3.2" method. Now, after
>>>> hg pull/update (some files are changed), do I always have to build
>>>> from scratch (i.e. compiling everything, including the --download-xxx
>>>> stuff)? Is there a short cut to rebuild libpetsc.{so,a} when I have no
>>>> configuration change?
>>> 
>>> This is a tricky thing. Generally updates to petsc-3.2 should not
>>> require a rerun of configure or a rebuild of all library code - but
>>> this is not always true. [sometimes you might have to pull/update
>>> BuildSystem and rerun configure - or rebuild externalpackages - as the
>>> tarballs for these packages get updated].
>>> 
>>> For the generaly case - an update of the libraries can be done with:
>>> 
>>> [for cmake build]
>>> make
>>> 
>>> [for non-cmake build]
>>> make ACTION=lib tree
>>> 
>>> And if a rerun of configure is needed - one can run
>>> ./PETSC_ARCH/conf/reconfigure_PETSC_ARCH.py
>>> 
>>> Satish
>> 
>> 



More information about the petsc-users mailing list