<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 22, 2014 at 11:28 AM, Satish Balay <span dir="ltr"><<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, 22 Jan 2014, Blaise A Bourdin wrote:<br>
<br>
><br>
> On Jan 21, 2014, at 11:01 PM, Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br>
><br>
> > Blaise A Bourdin <<a href="mailto:bourdin@lsu.edu">bourdin@lsu.edu</a>> writes:<br>
> ><br>
> >> Hi,<br>
> >><br>
> >> For some reason, I would need to generate a shared library for<br>
> >> exodusII, but the Makefile included in the source distribution does<br>
> >> not have a rule for this. Is there an easy way to modify the build<br>
> >> system package in order to generate the shared library?<br>
> ><br>
> > The Makefile.standalone does not have rules for shared.  Perhaps<br>
> > upstream exodus (now at version 6.02) is recommending the CMake build?<br>
<br>
</div>If upstream recommends cmake - perhaps we should stick to that? We<br>
already have a bunch of packages that require cmake.<br></blockquote><div><br></div><div>I of course disagree. We can use the PETSc shared build rules.</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">

balay@asterix /home/balay/petsc (master)<br>
$ git grep framework.require |grep PETSc.packages.cmake<br>
config/PETSc/packages/clique.py:    self.cmake           = framework.require('PETSc.packages.cmake',self)<br>
config/PETSc/packages/elemental.py:    self.cmake           = framework.require('PETSc.packages.cmake',self)<br>
config/PETSc/packages/metis.py:    self.cmake           = framework.require('PETSc.packages.cmake',self)<br>
config/PETSc/packages/parmetis.py:    self.cmake           = framework.require('PETSc.packages.cmake',self)<br>
config/cmakeboot.py:   self.cmake         = self.framework.require('PETSc.packages.cmake',       None)<br>
<div class="im"><br>
<br>
> > I'd rather not have exodusii.py depend on CMake if we can help it<br>
> > (buggy, bad logging, another thing to compile), so maybe we need to add<br>
> > a shared rule?  Or embrace the beast?<br>
><br>
> let’s say we do want to mess with cmake. What is the typical way to add the shared rule?<br>
>    - patch Makefile.standalone in exodusii.py?<br>
>    - repackage exodus and serve it from the petsc servers?<br>
<br>
</div>Perhaps upstream exodus tarball should support sharedlibrary/static<br>
library as a build option? elemental.py appears to have the followig<br>
code commented..<br>
<br>
if self.sharedLibraries.useShared:<br>
  args.append('-DSHARE_LIBRARIES=ON')<br>
<span class="HOEnZb"><font color="#888888"><br>
Satish<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Is there a BuildSystem way to know that the linker flag to build a shared library is -shared under linux and -dynamiclib under mac OS? If so, can we simply build the shared library in exodusii.py?<br>
><br>
> Blaise<br>
><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>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>