[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: changes to PETSc-dev bmake system and library locations



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@xxxxxxxxxxx> 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@xxxxxxxxxxx questions to petsc-dev@xxxxxxxxxxx

   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