On Sat, Feb 16, 2013 at 5:43 PM, Barry Smith <bsmith@mcs.anl.gov> wrote:
There might be a petsconf.h petsc-private/petscconfimpl.h petsc-private/petscconfsys.h petsc-private/petscconfdraw.h petsc-privatre/petscconfPACKAGE.h

Okay, but if we took this route, which of these would have PETSC_HAVE_HYPRE? Would it be petscconfksp.h because Hypre is a preconditioning library? Or petscconfdm.h because KSP depends on DM and there is some structured grid stuff in Hypre? Both of those answers would be wrong because of src/vec/vec/impls/hypre/vhyp.c, but I don't see any good way to locally reason about the link failures that would result from defining the macro at the wrong level.