Either use the PETSc makefiles or use pkg-config.  This is a pretty
comprehensive makefile you can use:


PETSc.pc := $(PETSC_DIR)/$(PETSC_ARCH)/lib/pkgconfig/PETSc.pc

CC := $(shell pkg-config --variable=ccompiler $(PETSc.pc))
CXX := $(shell pkg-config --variable=cxxcompiler $(PETSc.pc))
FC := $(shell pkg-config --variable=fcompiler $(PETSc.pc))
CFLAGS := $(shell pkg-config --variable=cflags_extra $(PETSc.pc)) $(shell 
pkg-config --cflags-only-other $(PETSc.pc))
CPPFLAGS := $(shell pkg-config --cflags-only-I $(PETSc.pc))
LDFLAGS := $(shell pkg-config --libs-only-L --libs-only-other $(PETSc.pc))
LDFLAGS += $(patsubst -L%, $(shell pkg-config --variable=ldflag_rpath 
$(PETSc.pc))%, $(shell pkg-config --libs-only-L $(PETSc.pc)))
LDLIBS := $(shell pkg-config --libs-only-l $(PETSc.pc)) -lm

print:
        @echo CC=$(CC)
        @echo CFLAGS=$(CFLAGS)
        @echo CPPFLAGS=$(CPPFLAGS)
        @echo LDFLAGS=$(LDFLAGS)
        @echo LDLIBS=$(LDLIBS)


Klaus Burkart <[email protected]> writes:

> I installed petsc and the tests were successful on Ubuntu 16.04
>
> PETSC_DIR points to the install directory in my home directory and is in my 
> .bashrc  export PETSC_DIR=/home/klaus/petsc-3.7.6
>
>
> Now I want to link it and use it with the standard linux compiler to use the 
> functionality in my application but I encounter several issues leading to 
> compiler errors when I try to compile my own application including petsc 
> functionality.
>
> I must use absolute path to petsc header files in my source code, Makefile 
> entries to the install directors are not recognized.  Even then, header files 
> referenced in petsc.h are not found leading to the following error .. 
> petsc-3.7.6/include/petsc.h:5:22: fatal error: petscbag.h: file or directory 
> not found  but the file is in the same directory. Adding the other header 
> files also with the absolute path doesn't work, it's not going beyond 
> petsc.h, the error remains
>
>
>
> What's the correct setup to be able to compile applications including petsc 
> functionality?

Reply via email to