Anders Logg wrote:
> On Thu, Mar 13, 2008 at 11:26:53AM +0000, Garth N. Wells wrote:
>>
>> Åsmund Ødegård wrote:
>>>
>>> On Thu, Mar 13, 2008 at 12:17 PM, Anders Logg <[EMAIL PROTECTED] 
>>> <mailto:[EMAIL PROTECTED]>> wrote:
>>>
>>>     On Wed, Mar 12, 2008 at 08:43:25PM +0100, Åsmund Ødegård wrote:
>>>      > On Wed, Mar 12, 2008 at 6:56 PM, Anders Logg <[EMAIL PROTECTED]
>>>     <mailto:[EMAIL PROTECTED]>> wrote:
>>>      > >
>>>      > > On Wed, Mar 12, 2008 at 11:48:19AM +0100, Johan Hake wrote:
>>>      > >  > On Tuesday 11 March 2008 17:47:09 Matthew Knepley wrote:
>>>      > [snip
>>>      > >
>>>      > >  Does PyDOLFIN work for anyone else with the new build system?
>>>      > >
>>>      >
>>>      > import dolfin works just fine at least! I compile with both petsc and
>>>      > umfpack enabled, fwiw.
>>>
>>>     Where is your PETSc installation and did you add it to your
>>>     LD_LIBRARY_PATH?
>>>
>>>
>>> It's in non-standard places. And I add the lib-thing  (lib/arch) in 
>>> LD_LIBRARY_PATH.
>>>
>> I don't really like having to do this. Why can't we just get the compile 
>> flags from PETSc as we did with the old build system? It's not uncommon 
>> to have more than one version of PETSc installed, so I would rather just 
>> set PETSC_DIR and be done.
>>
>> Garth
> 
> I had a discussion about this with Åsmund who straightened out some
> question marks.
> 
> We rely on pkg-config when building applications against DOLFIN, so
> when a user calls
> 
>   pkg-config --libs dolfin
> 
> that should spit out all the libraries needed to build something
> against DOLFIN.
> 
> In particular, when DOLFIN depends on PETSc, it should also spit out
> all the libraries and paths needed for that to work.
> 
> Now, there are two ways to handle this in the pkg-config files.
> One way is to do as we did before, which is to list all the PETSc
> stuff in the dolfin.pc file. This becomes messy and not very
> modular.
> 
> The other (right) way to handle this is to use the built-in support in
> pkg-config to handle dependencies. If you look in the dolfin.pc file
> generated by the new build system, it contains the following line:
> 
>   Libs: -L${libdir} -ldolfin
> 
> So, it just lists the DOLFIN part, nothing about PETSc.
> 
> But then there's also the following line:
> 
>   Requires: numpy-1 ufc-1 umfpack python-2 petsc gts boost libxml-2.0
> 
> This tells pkg-config that DOLFIN depends on all these other packages,
> so to link something against DOLFIN, pkg-config should also look
> (recursively) in the pkg-config files for these other packages and
> concatenate the flags to get one big list of flags that contains
> everything needed.
> 
> The reason this does not work is that the generated PETSc pkg-config
> file does not get installed so pkg-config will never find the libs for
> PETSc and add those.
> 
> The solution to this problem is to let the build system
> 
> 1. Generate all the needed pkg-config files and put them somewhere
> under /scons.
> 
> 2. Then install all those files in $prefix/lib/pkgconfig (as specified
> by the user) when running scons install.
> 
> I think Åsmund (or Johannes?) is working on 2?
> 

OK, great. I'll try it out when it's done.

Garth
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to