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 > > > > > > >