[petsc-dev] user makefile

Mark Adams mfadams at lbl.gov
Thu Jan 13 20:38:16 CST 2022


I am finding it pretty hard to find an example of a makefile target to
build an app with PETSc.

I can not find it on the docs page.

With Google:

Victor has a little example that looks fine ($PETSC_LIB). (sort of, see
below)

Another one is bigger and has this at the end:

    -${CLINKER} $< -o bin.x $(OBJ_FILES) ${PETSC_KSP_LIB}
-I$(PETSC_DIR)/include

I recall using PETSC_KSP_LIB the last time I wrote a makefile 20 years ago.

Maybe there should be a FAQ that a search would find like "Example of user
makefile" with something like Victor's (dropping v2 and updating it, this
looks wrong):
































*PETSc linkingThe easiest way to link PETSc to your code is to have this
line in your makefile:include ${PETSC_DIR}/conf/baseThis will automatically
give you the compilation rules. For linking you then do:${CLINKER} -o ex1
ex1.o ${PETSC_LIB}(or FLINKER for fortran)You can also use this include
line:include ${PETSC_DIR}/conf/variablesand then you have to give the
compile rules yourself. In this case, dosomething like${CC} -c ex1.c
${PETSC_INCLUDE}to compile. (This is for petsc version 3, for version 2
useinclude ${PETSC_DIR}/bmake/common/baseand replace base by variables to
omit petsc’s make rules.)If you insist on having all the libraries and
includes explicitly, usemake getlinklibsmake getincludedirs*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220113/4ce066ed/attachment.html>


More information about the petsc-dev mailing list