changes to PETSc-dev bmake system and library locations

Lisandro Dalcin dalcinl at gmail.com
Mon Jun 11 09:24:26 CDT 2007


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...



>    Constraints:
> * Allow skipping the "make install" step and yet having everything
> fully functional even with shared and dynamic libraries
> * Allow multiple builds in the non-"make install" approach which you can
> switch between by changing PETSC_ARCH
> * Not require any file links
> * A system that does not mix generated files and non-generated in the same
> directory in $PETSC_DIR
> * A system no more complicated then the previous version.
>
>   Solution:
>
> In place, before "make install"
>
> petsc-dev/include                  same as now
>          /bin                      same as now
>          /conf                     basically the same as bmake/common was
>          $PETSC_ARCH/include       generated includes: petscconf.h petscfix.h ..
>                      lib           generated libraries
>                      bin           generated programs
>                      conf          basically the same as bmake/$PETSC_ARCH/
>                                       except not the include files
>
> After "make install"
>
> prefix/include                  all includes
>       /bin                      all programs, including mpiexec, mpicc if generated
>       /conf                     the stuff previous in bmake/common and bmake/$PETSC_ARCH
>       /lib                      the libraries, including from external packages
>
> The whole trick is that in the PETSc bmake files (now conf files :-)) the $PETSC_ARCH/
> disappears in the "make install" version.
>
> I have fixed the external packages MPI.py, BlasLapack.py and Chaco.py but the others
> need to be modified to stick their libraries and includes in the new correct place.
>
> The only change you should need to your makefiles is to replace
> include ${PETSC_DIR}/bmake/common/base with
> include ${PETSC_DIR}/conf/base
> Bug reports to petsc-maint at mcs.anl.gov questions to petsc-dev at mcs.anl.gov
>
>    Barry
>
>


-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594




More information about the petsc-dev mailing list