[petsc-users] Petsc makefile and PETSC_COMPILE variable

Matthew Knepley knepley at gmail.com
Tue Dec 15 11:57:52 CST 2020


On Tue, Dec 15, 2020 at 12:46 PM Alex Koshkarov <okoshkarov at tae.com> wrote:

> Thank you!
>
> It makes sense to use share/petsc/Makefile.user - I will try to understand
> it. However, can you please tell me what is the meaning of "_SINGLE" in
> "PETSC_COMPILE_SINGLE"? Does it mean compile only one source file?
>

Yes.

  Thanks,

     MAtt


> Best regards,
> Alex Koshkarov.
>
> On 12/15/20, 9:25 AM, "Satish Balay" <balay at mcs.anl.gov> wrote:
>
>     On Tue, 15 Dec 2020, Alex Koshkarov wrote:
>
>     > Hi All,
>     >
>     > I have been using trivial makefile (see below) for the code which
> uses petsc. The makefile relies on variable PETSC_COMPILE which disappeared
> in new petsc version (absent in 3.14.2, but present in 3.13.4). What would
> be the right way to fix the makefile? (should I use something like
> PETSC_COMPILE_SINGLE ?).
>
>     Yes - this change was a bugfix.
>
>     > Is it a very bad practice to use such makefile?
>
>     For most use cases the default targets work. However this usage [where
> sources and obj files are in different dirs] is not covered by them.
>
>     So - I think using such targets is appropriate.
>
>     There is also share/petsc/Makefile.user - which attempts to provide a
> portable way to create user makefiles [that don't rely on internals like
> PETSC_COMPILE_SINGLE] - but requires gnumake and pkgconfig
>
>     Satish
>
>
>     >
>     > p.s. sorry if this is a duplicate message, I believe I sent the
> first one to the wrong address.
>     >
>     > Thank you very much,
>     > Alex Koshkarov.
>     >
>     >
>     > Example of makefile, it assumes sources in “src” and creats objects
> in “objects”:
>     >
>     > CPP := $(wildcard src/*.c)
>     > DEP := $(wildcard src/*.h)
>     > OBJ := $(addprefix objects/,$(notdir $(CPP:.c=.o)))
>     >
>     > include ${PETSC_DIR}/lib/petsc/conf/variables
>     > include ${PETSC_DIR}/lib/petsc/conf/rules
>     >
>     > driver: $(OBJ)
>     >                 -${CLINKER} -o $@ $^ ${PETSC_LIB} ${EXTRALIBS}
> ${CFLAGS}
>     >
>     > objects/%.o: src/%.c $(DEP)
>     >                 ${PETSC_COMPILE} -c $< -o $@
>     >
>     >
>
>

-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20201215/29991621/attachment-0001.html>


More information about the petsc-users mailing list