Hi,
The only way to do this, in my experience, is if the package manager has
something like 'variants' (macports and homebrew have it, at least, I
don't know about others):
port install petsc +superlu +mumps +mpich +hdf5 +hypre ... etc.
I think variants are a crutch for poor plugin support. I would prefer
for PETSc to offer these as plugins that can be built and distributed
separately. Then one can install petsc-superlu, petsc-mumps, etc.
I cannot agree more with Jed on this. Although defining a sufficiently
powerful plugin system for this isn't easy and would require us to
rethink the whole build process, it has the potential of reducing the
number of support requests on building PETSc substantially, just because
inexperienced users can then rely on package managers to setup a PETSc
tailored to their needs.
Ideally we could preserve the following two options:
a) building a 'fat' PETSc lib with packages compiled into libpetsc.so
b) a 'slim' libpetsc.so which loads additional packages from e.g. a
plugin folder.
We already have a), but I'm not entirely sure whether we can (and want
to?) reasonably support option b) without giving up parts of a).
Best regards,
Karli