changes to PETSc-dev bmake system and library locations
Todd Munson
tmunson at mcs.anl.gov
Mon Jun 11 08:58:08 CDT 2007
I just downloaded the new updates and tried configuring the development
version and get the following python errors...It may be a problem on my
side. I'll try with a new clone of the repository...
akita % ./config/configure.py --with-c++
=================================================================================
Configuring PETSc to compile on your system
=================================================================================*********************************************************************************
UNABLE to FIND MODULE for config/configure.py
---------------------------------------------------------------------------------------
No module named Fiat
*********************************************************************************
File "./config/configure.py", line 175, in petsc_configure
framework =
config.framework.Framework(sys.argv[1:]+['--configModules=PETSc.Configure','--optionsModule=PETSc.compilerOptions'],
loadArgDB = 0)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 91, in __init__
self.createChildren()
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 317, in createChildren
self.getChild(moduleName)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 302, in getChild
config.setupDependencies(self)
File "/sandbox/tmunson/projects/petsc-dev/python/PETSc/Configure.py",
line 44, in setupDependencies
utilityObj =
self.framework.require('PETSc.'+d+'.'+utilityName, self)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 322, in require
config = self.getChild(moduleName, keywordArgs)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 302, in getChild
config.setupDependencies(self)
File "/sandbox/tmunson/projects/petsc-dev/python/PETSc/packages/FFC.py",
line 11, in setupDependencies
self.fiat = self.framework.require('config.packages.Fiat', self)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 322, in require
config = self.getChild(moduleName, keywordArgs)
File
"/sandbox/tmunson/projects/petsc-dev/python/BuildSystem/config/framework.py",
line 275, in getChild
type = __import__(moduleName, globals(), locals(),
['Configure']).Configureakita %
!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!+-+!
Todd Munson (630) 252-4279 office
Argonne National Laboratory (630) 252-5986 fax
9700 S. Cass Ave. tmunson at mcs.anl.gov
Argonne, IL 60439 http://www.mcs.anl.gov/~tmunson
On Sun, 10 Jun 2007, Barry Smith wrote:
>
>
> 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
> > >
> > >
> >
> >
> >
>
>
More information about the petsc-dev
mailing list