[petsc-dev] PETSc-3.4 PR open at https://github.com/Homebrew/homebrew-science/pull/343

Barry Smith bsmith at mcs.anl.gov
Sat Oct 12 14:47:54 CDT 2013


1)  So what directories should we be generating in the prefix location and

2)  exactly what files should we be copying over (currently I think we just copy entire directories worth of material which results in garbage being moved over)

1)    prefix/bin
       prefix/share
       prefix/include    prefix/include/mpiuni (when needed)  prefix/include/petsc-private      prefix/include/finclude  and various other subdirectories for f90?
       prefix/lib   prefix/lib/modules  (Jed says prefix/lib/petsc/modules)   I see a lib/modules/3.4.2 why does this have a version number and nothing else?
       prefix/conf ?

    What is the rule for putting a "petsc" subdirectory in the middle?  My guess is that it is being put in whenever a "nonstandard" subdirectory is put in. What defines a "nonstandard" subdirectory? Isn't mpiuni a nonstandard subdirectory? What about finclude? What about conf? What is the standard for where module files are put, not allowed directly in the lib directory? But not in a "standard" modules subdirectory? Some people advocate modules in prefix/finclude.  Since include is supposed to be reserved for C includes should our finclude directory not be under the include directory?

  We should try to be as "standard" compliant as reasonable.  Should we be adjusting the non-prefix installs as well?


   Barry





On Oct 12, 2013, at 10:26 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> Aron Ahmadia <aron at ahmadia.net> writes:
> 
>> Hi All,
>> 
>> The PR has raised a few issues in what PETSc does when it performs a
>> prefix install.  In particular, PETSc generates the following files:
>> 
>> $PREFIX/include/makefile
>> $PREFIX/lib/modules/3.4.1
>> 
>> Neither of these have been properly namespaced.  I'd suggest changing these to:
>> 
>> $PREFIX/include/petsc/makefile
>> $PREFIX/lib/modules/petsc/3.4.1
> 
> Hmm, prefix install looks like a mess.
> 
> * all the ftn-auto tmpdir stuff should _not_ be installed
> * include/mpiuni should only be installed when mpiuni is selected
> * the HTML files should never be installed
> * makefiles in the include directories should never be installed
> * conf/ stuff should only install rules and variables, but need to namespace
> * bin/maint/* cannot be installed under those names
> * same story with bin/matlab; it should go in $prefix/share/petsc/
> * non-namespaced stuff in bin/ must be eradicated
> * lib/modules should be lib/petsc/modules or similar
> * lib/.DIR must not be installed
> * $prefix/.nagged must not be installed
> 
> We really need to fix all of this for v3.5.
> 
>> I'm not sure about the latter, I really don't know how package
>> managers deal with local modules install, or if it's worth even
>> putting it in if the user is requesting a PREFIX install.
>> 
>> Another option would be to include the PETSc ARCH in the directory namespacing:
>> 
>> $PREFIX/include/petsc/linux-gnu/makefile
>> $PREFIX/lib/modules/petsc/linux-gnu/3.4.1
> 
> I think we decided that with prefix installs, people use a different
> prefix to distinguish different PETSC_ARCH.  Do you want to revisit that
> choice?  I'm not sure about versioning, but it seems to me that it's
> moot until we start using soname versioning.  How would the user select
> which version of PETSc they want to use?




More information about the petsc-dev mailing list