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