BuildSystem question

Matthew Knepley knepley at mcs.anl.gov
Mon Sep 26 12:14:37 CDT 2005


S V N Vishwanathan <vishy at mail.rsise.anu.edu.au> writes:
> Ideally, I would like to use your BuildSystem to hack up a quick build
> for Numerix. Then as we add and integrate more tools in, I would work on
> making it fancier. 

  Cool, we can do that.

> Here is the plan I came up with (after sleeping over it for a night):
>
> 1) I assume that the PETSc Framework object can be made modular i.e. can
>    be invoked as long as the PETSC_DIR is set and points to a sane
>    directory. 

  Yes. I currently have nothing that does this, so you sending bug reports
would be fine for now, and I will fix what is wrong.

> 2) I will create a new Configure object for Numerix and add it to the
>    PETSc framework using require(). My configure script will also set
>    the PETSC_DIR env variable to a sane directory. 

  Okay.

> 3) All options that are passed to my build are first passed to the PETSc
>    build. I also pass it
>    --with-external-packages-dir=$LINEAL_DIR/externalpackages 

  Actually, the first thing that happens is all options are stored in the
RDict, so all you have to do is instantiate the Petsc part with the same
RDict. This is what happens with the ParMetis build for instance.

> 4) Any extra flags which are not handled by PETSc (or are shared between
>    packages) will be handled and passed to appropriate builds by the
>    Numerix configure. 

  See above answer.

> Does this make sense?
>
> How do we handle the case when say PETSc libs are installed by using a
> package manager like rpm or apt?

  If they follow the PETSc build process (which they should), the RDict
will be right there waiting for you. Otherwise, we will have to smack them
around for a while. There is code to look for the libraries/includes, but
it also wants the RDict right now.

> I guess my problem at a high level is as follows:
>
> What is the best approach to take for a package which depends on PETSc
> to use 
> a) The BuildSystem module
> b) The PETSc framework object itself
>
> I am sorry if some of my questions are incoherent. I am still trying to
> figure out how to structure out build and I realize it is not an easy
> task. 

  Hmmm, I do not quite understand the question. The framework object does
configuration, and other parts of BuildSystem do build. I admit that the
build stuff is not as good or as mature, but I think it is harder to do.

      Matt
-- 
"Failure has a thousand explanations. Success doesn't need one" -- Sir Alec Guiness




More information about the petsc-dev mailing list