> On Apr 25, 2018, at 1:36 PM, Jed Brown <j...@jedbrown.org> wrote: > > It is currently installed to include/petsc/mpiuni/mpi.h and petscsys.h > includes it as <mpi.h>, which means that users of MPIUNI need to put > -I/prefix/include/petsc/mpiuni in their command lines. Matt and I agree > that this is bad. We disagree on the solution. > > He wants to install it to /prefix/include/mpi.h as though the user had > written --download-mpich. This would conflict if a user later installs > a real MPI to that location.
Jed, So you propose in petscsys.h ? #if defined(PETSC_HAVE_MPIUNI) #include <petsc/mpiuni/mpi.h> #else #include <mpi.h> #endif I don't have a problem with this. I notice that the Fortran petscsys.h is scattered full of weird MPIUni specific stuff like #if defined (PETSC_HAVE_MPIUNI) #include "mpiunifdef.h" #endif #if defined(PETSC_HAVE_MPIUNI) #define MPI_Comm PetscFortranInt #define MPI_Group PetscFortranInt #define PetscMPIInt PetscFortranInt #else #define MPI_Comm integer #define MPI_Group integer #define PetscMPIInt integer #endif It seems PETSc Fortran does not use the standard mpif.h file? Barry > > I would rather that petscsys.h include <petsc/mpiuni/mpi.h> because it > can't be used without PETSc and nobody who ever wrote #include <mpi.h> > in their own code will be happy if they get MPIUNI.