Is share/petsc/Makefile.user what you are looking for? Best regards,
Jacob Faibussowitsch (Jacob Fai - booss - oh - vitch) > On Jan 13, 2022, at 21:49, Barry Smith <bsm...@petsc.dev> wrote: > > > https://petsc.org/release/docs/manual/getting_started/?highlight=user%20makefile > > <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 <mfad...@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 >> >> >