changes to PETSc-dev bmake system and library locations

Barry Smith bsmith at mcs.anl.gov
Sun Jun 10 11:16:14 CDT 2007



On Sun, 10 Jun 2007, Matthew Knepley wrote:

> This is very vague concerning the structure of exernalpackages. I cannot tell
> where libraries are supposed to end up, and how/when/why they might be moved.

  They end up in

   $PETSC_ARCH/lib (same place as PETSc libraries, without a make install) and
   prefix/lib  (with a make install)

> It seems that the directory information coming from PETSc/package.py
> has also changed.

   Yes. package.py had a /lib hardwired to the end of the install directory
returned by the particular package. Now the particular packages set the
entire path where the library goes (that is a /lib is not automatically 
appended).

   Barry

> 
>   Matt
> 
> On 6/8/07, Barry Smith <bsmith at mcs.anl.gov> wrote:
> > 
> >   PETSc-dev users,
> > 
> >     After picking Satish's brain, I have made a set of changes to
> > petsc-dev related to compiling and linking programs.
> > 
> >    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.
> > 
> >    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
> > 
> > 
> 
> 
> 




More information about the petsc-dev mailing list