On 6/8/07, Barry Smith <bsmith at mcs.anl.gov> wrote: > 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.
Barry, I really do not like this... this approach does not permit to have many configurations installed under a common $PERSC_DIR. Futhermore, the 'build' directory does not have de same structure as the 'install' directory. I have to strongly ask you for revert this and review the patch I sended to petsc-maint. The 'bmake' plus 'lib/$PETSC_ARCH' approach was really good for me. I know, following the GNU model is interesting and compatible with normal practice... but I am definitely not sure if it is the right way for a complex package like PETSc, were you can compile it with many config options and many optional packages, and have all this variantas fully functionaly available in a central location... > 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 > > -- Lisandro Dalc?n --------------- Centro Internacional de M?todos Computacionales en Ingenier?a (CIMEC) Instituto de Desarrollo Tecnol?gico para la Industria Qu?mica (INTEC) Consejo Nacional de Investigaciones Cient?ficas y T?cnicas (CONICET) PTLC - G?emes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594