[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