[petsc-dev] Why is -I$PETSC_DIR/src/dm/mesh/sieve in CLINKER even when configured without Sieve?

Satish Balay balay at mcs.anl.gov
Mon Oct 11 22:55:32 CDT 2010

There is no 
On Tue, 12 Oct 2010, Jed Brown wrote:

> Does it even need to be there at all?  Must things like "Map.hh" be in the
> public namespace like this?

PETSC_DIR/src/dm/mesh/sieve is coming from examples/tutorials/makefile
[not configure] - so its always there - irrespective of sieve. [the
public includes should never be in src - so this does need fixing]

>  Do we really need -I/usr/lib?  How about -I/usr/local/include (my
> /usr/local is empty so configure definitely didn't find anything
> there, it's not mentioned in my environment either).

> How about /usr/include (which is a system directory and need not,
> indeed should not, be specified explicitly)

-I/usr/lib -I/usr/include [and perhaps -L/usr/lib] are the artifacts
of '--with-hdf5-dir=/usr --with-parmetis-dir=/usr' etc..

I guess garbage in garbage out here. [not sure if configure should
overide user speified wish here..]

> and /usr/lib/openmpi which has no C headers in it and really
> shouldn't be specified either.

This must be coming from your MPI install. I suspect
/usr/local/include is also from there.  check 'mpicc -show' and
'mpif90 -show'. Configure.log will have details.

>  Why can't I have -I$PETSC_DIR/$PETSC_ARCH/include
> -I$PETSC_DIR/include and *nothing* else unless I have packages in
> non-system directories?

The additonal stuff is the language inter-operability sutff - and some
of the external package dependency stuff.


> This with current -dev, it was cleaner with 3.1 where at least
> /usr/lib and /usr/local/include were not shoved in there.  I haven't
> checked when they crept in.
> /usr/bin/mpicc -o ex51.o -c -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing
> -Wno-unknown-pragmas -g3 -I/home/jed/petsc/src/dm/mesh/sieve
> -I/home/jed/petsc/ompi/include -I/home/jed/petsc/include -I/usr/include
> -I/usr/lib/openmpi -I/home/jed/petsc/ompi/include -I/usr/lib
> -I/usr/local/include -D__INSDIR__=src/ksp/ksp/examples/tutorials/ ex51.c
> #!/usr/bin/python
> if __name__ == '__main__':
>   import sys
>   import os
>   sys.path.insert(0, os.path.abspath('config'))
>   import configure
>   configure_options = [
>     '--with-zoltan-dir=/usr',
>     '--download-ml',
>     '--with-blas-lapack-dir=/usr',
>     '--download-pastix',
>     '--download-blacs',
>     '--download-chaco',
>     '--with-hdf5-dir=/usr',
>     '--with-sowing',
>     '--download-superlu_dist',
>     '--with-cholmod-dir=/usr',
>     '--download-spooles',
>     '--download-sundials',
>     '--download-hypre',
>     '--with-c2html',
>     '--with-mpi-dir=/usr',
>     '--with-umfpack-dir=/usr',
>     '--with-parmetis-dir=/usr',
>     '--with-single-library=0',
>     '--download-scalapack',
>     '--with-java-dir=/usr',
>     '--with-lgrind',
>     '--download-mumps',
>     'PETSC_ARCH=ompi',
>     '--download-superlu',
>     '--download-scotch',
>     '--download-spai',
>     '--with-shared-libraries',
>   ]
>   configure.petsc_configure(configure_options)

More information about the petsc-dev mailing list