changes to PETSc-dev bmake system and library locations

Satish Balay balay at mcs.anl.gov
Mon Jun 11 09:43:18 CDT 2007


On Mon, 11 Jun 2007, Lisandro Dalcin wrote:

> On 6/8/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >    Goal:  Support the GNU; config/configure.py; make; make install model
> > including all external packages PETSc builds for you. After "make install"
> > PETSC_ARCH should not be needed.
> 
> Barry, I really do not like this... this approach does not permit to
> have many configurations installed under a common $PERSC_DIR.
> Futhermore, the 'build' directory does not have de same structure as
> the 'install' directory.
> 
> I have to strongly ask you for revert this and review the patch I
> sended to petsc-maint. The 'bmake' plus 'lib/$PETSC_ARCH' approach was
> really good for me. I know, following the GNU model is interesting and
> compatible with normal practice... but I am definitely not sure if it
> is the right way for a complex package like PETSc, were you can
> compile it with many config options and many optional packages, and
> have all this variantas fully functionaly available in a central
> location...

Lisandro,

There is nothing sepcial about having all installs inside a single
PETSC_DIR. However you can still have multiple configure installs by
specifying different 'prefix' for each configure. I believe this is
how autoconf/gnu install model is supporsed to work.

The way the 2 models [install and non-install] are equivalent is:

in the prefix model - the user specifies prefix just like any other
package. For eg:

--prefix=/usr/local --download-mpich

This should install both the packages [PETSc & MPI] in
/usr/local/[bin,include,lib]

In the non-prefix mode, this 'prefix' path '/usr/local/ is eqivalent
to $PETSC_DIR/$PETSC_ARCH. i.e all packages [PETSc & MPI] should be
installed inside:

$PETSC_DIR/$PETSC_ARCH/[bin,include,lib] etc..

I agree that there is a now a difference in usage in the install mode.
The user could switch between different configured builds by changing
PETSC_ARCH in the non-prefix model. In the install model, now the user
has to change PETSC_DIR to acomplish the same.

If you wish to have all all the libs inside a single PETSC_DIR, then
there is no reason to use 'install' model. [i.e you can install PETSc
in /usr/local/petsc using the non-install model. The sources take
extra speace. But at the same time, you benefit from them being
available during debugging]

Satish




More information about the petsc-dev mailing list