<div dir="ltr"><div><div>OK, thank you.<br><br></div>Regarding point 3, no I didn't realize this was dangerous. But reconfiguring petsc everytime is quite lengthy. How to do if you just want to test a few compilation options, before knowing what you need?<br><br></div>Timothée<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-09-13 19:56 GMT+02:00 Satish Balay <span dir="ltr"><<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, 13 Sep 2016, Matthew Knepley wrote:<br>
<br>
> On Tue, Sep 13, 2016 at 12:16 PM, Timothée Nicolas <<br>
> <a href="mailto:timothee.nicolas@gmail.com">timothee.nicolas@gmail.com</a>> wrote:<br>
><br>
> > Hi all,<br>
> ><br>
> > I can't seem to figure out how to specify my compilation options with<br>
> > PETSc. For my makefiles, I've always been using Petsc examples inspired<br>
> > makefiles, just tuning them to my needs, and I have never played with<br>
> > compilation options so far. Now, I am trying to add some compilation<br>
> > options, but they are not taken into account by the compiler. My makefile<br>
> > looks like this<br>
> ><br>
> > all: energy<br>
> ><br>
> ><br>
> > include ${PETSC_DIR}/lib/petsc/conf/<wbr>variables<br>
> ><br>
> > include ${PETSC_DIR}/lib/petsc/conf/<wbr>rules<br>
> ><br>
> ><br>
> > #FLAGS = -g -O0 -fbounds-check<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > MYFLAGS = -mcmodel=medium -shared-intel<br>
> ><br>
> ><br>
> > OBJS =  main.o \<br>
> ><br>
> >         modules.o \<br>
> ><br>
> >         diags.o \<br>
> ><br>
> >         functions.o \<br>
> ><br>
> >         conservation.o \<br>
> ><br>
> ><br>
> > EXEC = energy<br>
> ><br>
> ><br>
> > main.o: modules.o \<br>
> ><br>
> >         functions.o \<br>
> ><br>
> >         conservation.o \<br>
> ><br>
> >         diags.o \<br>
> ><br>
> ><br>
> > energy: $(OBJS)  chkopts<br>
> ><br>
> >         -$(FLINKER) -o $(EXEC) $(MYFLAGS) $(FLAGS) $(OBJS) $(<br>
> > PETSC_SNES_LIB)<br>
> ><br>
> ><br>
> > clean_all:<br>
> ><br>
> >         $(RM) $(OBJS) $(EXEC)<br>
> ><br>
> ><br>
> > The compiler then executes things like<br>
> ><br>
> > /opt/mpi/bullxmpi/<a href="http://1.2.8.4/bin/mpif90" rel="noreferrer" target="_blank">1.2.8.4/bin/<wbr>mpif90</a> -c -fPIC -g -O3<br>
> > -I/ccc/scratch/cont003/<wbr>gen0198/lutjensh/Timothee/<wbr>petsc-3.7.3/include<br>
> > -I/ccc/scratch/cont003/<wbr>gen0198/lutjensh/Timothee/<br>
> > petsc-3.7.3/arch-linux2-c-<wbr>debug/include -I/opt/mpi/bullxmpi/<a href="http://1.2.8.4/" rel="noreferrer" target="_blank">1.2.8.4/</a><br>
</div></div>> > include    -o modules.o modules.F90<br>
<span class="">> ><br>
> ><br>
> > without taking my variable MYFLAGS into account. What may be the reason?<br>
> > Also, what does "chkopts" mean ?<br>
> ><br>
><br>
> 1) You want to change CFLAGS or FFLAGS<br>
><br>
> 2) 'chkopts' is an internal check for PETSc<br>
><br>
> 3) You realize that it is very dangerous to compile with options not<br>
> configure with.<br>
<br>
</span>And generally - you have to declare FFLAGS - before the 'include'<br>
statement You can set:<br>
<br>
FPPFLAGS - for preprocessing [or compile only flags]<br>
FFLAGS  - for compile & link flags<br>
<br>
For link only flags - you can add them to the link command - as you've done with MYFLAGS..<br>
<span class="HOEnZb"><font color="#888888"><br>
Satish</font></span></blockquote></div><br></div>