← Back to team overview

dolfin team mailing list archive

Re: [PETSC #13298] Re: installation of DOLFIN 0.5.7 on Debian

 



On Tue, 5 Jul 2005, Barry Smith wrote:


If you use dynamic libraries with PETSc, then the load paths are compiled in (you can redirect them with command-line arguments, but this is the default). Thus, moving them from the directory into which the package installs them breaks the load. There a couple ways to fix this. I will think about it (since I have to leave for dinner now).

 Matt,

  This is very likely not the problem. When a --prefix is used the libraries are
built with the correct paths for the dynamic libraries.

No, actually I think that *is* the problem.

Here is what I have in my debian/rules file (this is really just a makefile which uses some macros etc.)

./config/configure.py -PETSC_DIR=`pwd` --prefix=$(CURDIR)/debian/tmp/usr/lib

The way a Debian build works is that you unzip the sources into some directory, which is then CURDIR.

On my machine it is /usr/local/src/petsc/petsc/petsc-2.2.1.

Then the sources are built, where the build dir is /debian/tmp. This is default behaviour, I think.

Then the build system for the package grabs the resulting files and wraps it into a package, in this case a .deb package.

This is pretty standard behaviour for building packages, at least on the operating systems I'm familiar with, basically the BSDs and Linux.

Now, if the location of the binaries is hardwired into them at compile time using --prefix as the location, which seems to be what is going on, then this would explain my problems.

I'm not sure how this was done, though. Rpath is similar, but that is typically for hardwiring the location of libraries into an executable.

Since changing the build system outlined above is not an option, the only possibility is to somehow switch off or modify this behaviour.

Can you suggest a simple way to do so?

Thanks.                                                          Faheem.




Follow ups

References