<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Mar 18, 2016 at 9:49 AM, Matthew Overholt <span dir="ltr"><<a href="mailto:overholt@capesim.com" target="_blank">overholt@capesim.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’m just getting started with PETSc and have been able to configure and run the examples, but as I’m starting to put together a more substantial code with multiple source files I haven’t been able to find or create a makefile which works and follows PETSc guidelines.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’ve configured and am building with the Intel compilers and MKL for blas & lapack, as per the installation example, and with the C++ language.</p></div></div></blockquote><div><br></div><div>Use this:</div><div><br></div><div><div>CFLAGS     =</div><div>CPPFLAGS   =</div><div>LIBFILES   = </div><div>TARGET     = femex1</div><div>OBJFILES   = femex1.o shapes.o</div><div>CLEANFILES = $(TARGET)</div><div><br></div><div>include ${PETSC_DIR}/lib/petsc/conf/variables</div><div>include ${PETSC_DIR}/lib/petsc/conf/rules</div><div><br></div><div>all: $(TARGET)</div><div> </div><div>$(TARGET) : $(OBJFILES)</div><div>       ${CLINKER} -o $(TARGET) $(OBJFILES) ${PETSC_KSP_LIB}</div></div><div><br></div><div><br></div><div>and do not mess around with putting in header file dependencies yourself, use <a href="https://ccache.samba.org/">https://ccache.samba.org/</a></div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">Here’s my makefile --------------------------------------<u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># makefile for femex1 - PETSc/kde/ex1.c adapted for FEA<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">#<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># Usage: make all<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">#        make clean<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">#<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># PETSc was configured using the Intel Compilers, MKL, and C++<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">#<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">CFLAGS        = <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">CPPFLAGS     = <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">CLFLAGS      = <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">LIBFILES      = ${PETSC_KSP_LIB}<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">TARGET        = femex1<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">CLEANFILES   = $(TARGET)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">include ${PETSC_DIR}/lib/petsc/conf/variables<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">include ${PETSC_DIR}/lib/petsc/conf/rules<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">OBJFILES = femex1.o \<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">           shapes.o<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">all: $(TARGET)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">$(TARGET) : $(OBJFILES) $(LIBFILES)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">       ${CLINKER} -o $(TARGET) $(OBJFILES) $(LIBFILES)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># femex1.cpp has 'main' and PETSc calls<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">femex1.o: femex1.cpp lists.h shapes.h  chkopts<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">       ${PETSC_CXXCOMPILE} femex1.cpp<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"># shapes.cpp does not have any PETSc calls<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">shapes.o: shapes.cpp shapes.h<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">       icpc -c shapes.cpp<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">And here’s the result ------------------------------------<u></u><u></u></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">[Matt@HPCL1 mycode]$ make all<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">/opt/petsc/petsc-3.6.3/linux-gnu-intel/bin/mpicxx -c -wd1572 -g  -fPIC    -I/opt/petsc/petsc-3.6.3/include -I/opt/petsc/petsc-3.6.3/linux-gnu-intel/include      femex1.cpp<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">icpc -c shapes.cpp<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">make: *** No rule to make target `-Wl,-rpath,/opt/petsc/petsc-3.6.3/linux-gnu-intel/lib', needed by `femex1'.  Stop.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:9pt;font-family:'Courier New'">---------------------------------------------------------------<u></u><u></u></span></p><p class="MsoNormal">So it compiles the two sources, but then fails on the linking step.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks in advance.<u></u><u></u></p><p class="MsoNormal">Matt Overholt<u></u><u></u></p><p class="MsoNormal">CapeSym, Inc.<u></u><u></u></p></div><br>
<table style="border-top-width:1px;border-top-style:solid;border-top-color:rgb(170,171,182)">
        <tbody><tr>
      <td style="width:55px;padding-top:18px"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient&utm_term=oa-2115-d" target="_blank"><img src="https://ipmcdn.avast.com/images/2016/icons/icon-envelope-tick-round-orange-v1.png"></a></td>
                <td style="width:470px;padding-top:20px;color:rgb(65,66,78);font-size:13px;font-family:Arial,Helvetica,sans-serif;line-height:18px">This email is safe. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient&utm_term=oa-2115-d" style="color:rgb(68,83,234)" target="_blank">www.avast.com</a>
                </td>
        </tr>
</tbody></table></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="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>