[petsc-dev] user makefile
Barry Smith
bsmith at petsc.dev
Thu Jan 13 20:49:33 CST 2022
https://petsc.org/release/docs/manual/getting_started/?highlight=user%20makefile
Search for Writing Application Codes with PETSc
Perhaps this needs to clearer or have links to it from the FAQ.
> On Jan 13, 2022, at 9:38 PM, Mark Adams <mfadams at lbl.gov> wrote:
>
> 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 linking
>
> The easiest way to link PETSc to your code is to have this line in your makefile:
>
> include ${PETSC_DIR}/conf/base
>
> This 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/variables
>
> and then you have to give the compile rules yourself. In this case, do
> something like
>
> ${CC} -c ex1.c ${PETSC_INCLUDE}
>
> to compile. (This is for petsc version 3, for version 2 use
>
> include ${PETSC_DIR}/bmake/common/base
>
> and replace base by variables to omit petsc’s make rules.)
>
> If you insist on having all the libraries and includes explicitly, use
>
> make getlinklibs
> make getincludedirs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220113/b30f7d35/attachment.html>
More information about the petsc-dev
mailing list