changes to PETSc-dev bmake system and library locations
Matthew Knepley
knepley at gmail.com
Sun Jun 10 09:52:02 CDT 2007
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.
It seems that the directory information coming from PETSc/package.py
has also changed.
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
>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
More information about the petsc-dev
mailing list