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