[petsc-dev] user makefile

Jacob Faibussowitsch jacob.fai at gmail.com
Thu Jan 13 20:54:24 CST 2022


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 <bsmith at 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 <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/546275e6/attachment.html>


More information about the petsc-dev mailing list