RPM building problem (linking libs)

hi, i'm trying to build opencascade rpm but i have the following problem on make install:

as you know libraries linking is done on "make install"

as you could know, rpms install all files in RPM_BUILD_ROOT, the problem is that:

configure i give --prefix/usr --libdir=/usr/lib(64)/OpenCASCADE (that 2 are the most important now) because when the rpm will be installed i whant that... but building rpms linking of libs fail.

only 1 lib (that on what i see have no dependencies from the others) succeded, all others libs looks to search needed libs to be linked in /usr/lib/OpenCASCADE but they are in $RPM_BUILD_ROOT/usr/lib/OpenCASCADE where $RPM_BUILD_ROOT on my pc is /home/anubis/src/tmp (i don't like use root to build)

does exist a workaround or a patch to fix that?

thanks in advance

Andrea's picture

i forgot, to install i use:

make install prefix=$RPM_BUILD_ROOT/usr

Andrea's picture

i cannot edit, but the problem looks to be the same of that one: http://www.opencascade.org/org/forum/thread_14193/

William Jones's picture
Andrea's picture

thanks for link i will try, but is not exactly related... infact:

mv: cannot stat `libTKMath.so.0.0.0': No such file or directory
libtool: install: error: relink `libTKMath.la' with the above command before installing it

as i told the problems looks to be the linking... libTKMath.la for example search for libTKernel.so in /usr/lib but it is installed in $RPM_BUILD_ROOT/usr/lib so it is not able to find it and then fail...

here an extract from make install


as you can see only the first lib succeded (depends from NO others libs)


Denis Barbier's picture


DESTDIR was added for this exact purpose in autotools, one normally runs
make install DESTDIR=/tmp/build/path

Unfortunately ros/Makefile.am is broken, you can get here
a patch I wrote for the Debian package (click on 'raw' to download raw text).

Andrea's picture

thanks, let me try.

Andrea's picture

Hi Denis, thanks for patch but still not works. it allow me to use %makeinstall macro instead of make prefix=/dir/i/whant install

but linking still fail... once i end this new building i'll post full output.

thereis no commands i can pass to libtool to tell it where libs really are?

thanks in advance

Andrea's picture

here you can see some output:


as before the only lib that is able to install is that one:

anubis@HP-Linux:~/src/tmp/OpenCASCADE-6.3.0-build/opt/OpenCASCADE/lib> ls
libTKernel.la libTKernel.so libTKernel.so.0 libTKernel.so.0.0.0

btw. the destdir patch seems to miss something (make intall fail because is not able to "mkdir /opt/openCASCADE"

Denis Barbier's picture

In my original reply, I told you to patch ros/Makefile.am but forgot to mention that you have to regenerate autotools files.
OCC 6.3 ships an ancient libtool, a newer one is needed. To solve both issues, simply put
cd ros && autoreconf -f -i
somewhere in your .spec file after patching files and before running configure script.

Andrea's picture

thanks... let me try.

Andrea's picture

perfectly works! thanks

William Jones's picture