<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 13, 2016 at 5:28 PM, Timothée Nicolas <span dir="ltr"><<a href="mailto:timothee.nicolas@gmail.com" target="_blank">timothee.nicolas@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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></div></div></blockquote><div><br></div><div>It dangerous because you can make source incompatible with the previously compiled libraries. You can insert other</div><div>headers in front of those used by the libraries, change type size, name mangling, etc.</div><div><br></div><div>Configuring should not take that long. A complete configure and build takes about 8min at the Bitbucket regression</div><div>tests. Are you running on a slow file system?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></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><div>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" target="_blank">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/va<wbr>riables<br>
> ><br>
> > include ${PETSC_DIR}/lib/petsc/conf/ru<wbr>les<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/gen0198<wbr>/lutjensh/Timothee/petsc-3.7.<wbr>3/include<br>
> > -I/ccc/scratch/cont003/gen0198<wbr>/lutjensh/Timothee/<br>
> > petsc-3.7.3/arch-linux2-c-debu<wbr>g/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>> ><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><font color="#888888"><br>
Satish</font></span></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>