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