[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Libtool and staged installs (-L$install-libdir before -L$staged-install-
From: |
Ulrik Petersen |
Subject: |
Libtool and staged installs (-L$install-libdir before -L$staged-install-libdir) |
Date: |
15 May 2003 14:08:59 +0200 |
Hello,
I'm using a fairly recent CVS snapshot of libtool (April 25, 2003),
along with a CVS snapshot of autoconf from the same day, and Automake
1.7.4.
Automake allows "staged installs". A description of how to do "staged
installs" could be as follows (taking my Emdros software package as an
example):
-- example description begins --
The following assumes that you want to install in /opt/Emdros and build
the package in /var/tmp/Emdros before installing.
1. ./configure --prefix=/opt/EmdrosPQ
2. make
3. mkdir /tmp/EmdrosPQ
4. make DESTDIR=/tmp/EmdrosPQ install
5. build package in /tmp/EmdrosPQ for installation in /opt/EmdrosPQ
-- example description ends --
When running
$ make DESTDIR=/tmp/EmdrosPQ install
libtool relinks the shared libraries. Below I have reproduced four
lines of the output from this command, with most spaces converted to
newlines + indentation. The lines are numbered.
1. /bin/bash ../libtool --mode=install .././install-sh -c libmql.la
/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros/libmql.la
2. libtool: install: warning: relinking `libmql.la'
3. (cd /var/tmp/emdros-1.1.11.pre31/MQL; /bin/bash ../libtool
--mode=relink CC -g
-L/opt/PostgreSQL/lib
-o libmql.la
-rpath /opt/EmdrosPQ/lib/emdros
-version-info 2:0:0
-R/opt/PostgreSQL/lib
-R/opt/EmdrosPQ/lib/emdros
-L/opt/WS6/SUNWspro/lib
emdros_environment.lo
mql_database_statements.lo
mql_enumeration_statements.lo
mql_error.lo
mql_execute.lo
mql_execution_environment.lo
mql_features_statements.lo
mql_helper_classes.lo
mql_meta_statements.lo
mql_monads_statements.lo
mql_mo_nr.lo
mql_object.lo
mql_object_statements.lo
mql_object_type_statements.lo
mql_query.lo
mql_R.lo
mql_result.lo
mql_segment_statements.lo
mql_select_statements.lo
mql_sheaf.lo
mql_statement.lo
mql_symboltable.lo
mql_utility.lo
mql_yylex.lo
mql_parser.lo
mql_lexer.lo
mql_get_query.lo
../EMdF/libpgemdf.la
../EMdF/libemdf.la
-inst-prefix-dir /tmp/EmdrosPQ)
4. CC -G -nolib -hlibmql.so.2 -o .libs/libmql.so.2.0.0
.libs/emdros_environment.o
.libs/mql_database_statements.o
.libs/mql_enumeration_statements.o
.libs/mql_error.o
.libs/mql_execute.o
.libs/mql_execution_environment.o
.libs/mql_features_statements.o
.libs/mql_helper_classes.o
.libs/mql_meta_statements.o
.libs/mql_monads_statements.o
.libs/mql_mo_nr.o
.libs/mql_object.o
.libs/mql_object_statements.o
.libs/mql_object_type_statements.o
.libs/mql_query.o
.libs/mql_R.o
.libs/mql_result.o
.libs/mql_segment_statements.o
.libs/mql_select_statements.o
.libs/mql_sheaf.o
.libs/mql_statement.o
.libs/mql_symboltable.o
.libs/mql_utility.o
.libs/mql_yylex.o
.libs/mql_parser.o
.libs/mql_lexer.o
.libs/mql_get_query.o
-R/opt/EmdrosPQ/lib/emdros
-R/opt/PostgreSQL/lib
-L/opt/PostgreSQL/lib
-L/opt/WS6/SUNWspro/lib
-L/opt/EmdrosPQ/lib/emdros
-L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros
-lpgemdf
-lemdf
Problem is, libtool (in line 4.) adds a -L/opt/EmdrosPQ/lib/emdros
switch before the -L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros switch:
-L/opt/EmdrosPQ/lib/emdros
-L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros
(see the last four "lines" of line 4.)
This means that if there was an old version of the package lying around
in the installation directory (/opt/EmdrosPQ/lib/emdros), the old
versions of any dependency-libraries (in this case -lpgemdf and -lemdf)
are linked against rather than the ones in
-L/tmp/EmdrosPQ/opt/EmdrosPQ/lib/emdros
I hope you will take the time to fix this, if you agree with me that it
is a bug. Perhaps it is automake that is at fault.
Regards,
Ulrik Petersen
--
Ulrik Petersen, Denmark
Emdros - the database engine for analyzed or annotated text
http://emdros.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Libtool and staged installs (-L$install-libdir before -L$staged-install-libdir),
Ulrik Petersen <=