bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DESTDIR support within libtool


From: Mark Flacy
Subject: DESTDIR support within libtool
Date: Mon, 8 Oct 2001 11:02:33 -0500

Version: ltmain.sh (GNU libtool) 1.4 (1.920 2001/04/24 23:26:18)

Problem:  When building a shared library that depends upon another shared
          library created in the same source tree, the second shared
          library never uses DESTDIR to search.

Here's a trace of what happens during the install phase of the build.  The
libraries are destined for /opt/cs3000/sctp/lib; the staging area is
/tmp/build/opt/cs3000/sctp/lib.

I've attached the top-level Makefile.am and the jni subdirectory's
Makefile.am to this e-mail.

SUBDIRS = . jni test

sbin_PROGRAMS = sctpmain

sctpmain_SOURCES = BasicSctp.c
sctpmain_LDADD = libSCTP.la
# sctpmain_LDFLAGS = -static


lib_LTLIBRARIES = libSCTP.la
libSCTP_la_SOURCES = Adler32.c MD5Gen.c OSQueue.c \
                SctpInput.c SctpOutput.c SctpTimeOut.c \
                SctpStdWrapper.c SctpUtils.c sctpTool.c SctpUNIX.c \
                SctpTapi.c SctpAssoc.c SctpMailbox.c SctpGlbs.c \
                SctpInputDemux.c SctpTimer.c SctpOutputMux.c memwatch.c

libSCTP_la_LDFLAGS = -version-info 1:0:0

#   If you want to use libtool's versioning system, then you must specify
#the version information to libtool using the `-version-info' flag
#during link mode (*note Link mode::).
#
#   This flag accepts an argument of the form
#`CURRENT[:REVISION[:AGE]]'.  So, passing `-version-info 3:12:1' sets
#CURRENT to 3, REVISION to 12, and AGE to 1.
#
#   If either REVISION or AGE are omitted, they default to 0.  Also note
#that AGE must be less than or equal to the CURRENT interface number.
#
#   Here are a set of rules to help you update your library version
#information:
#
#  1. Start with version information of `0:0:0' for each libtool library.
#
#  2. Update the version information only immediately before a public
#     release of your software.  More frequent updates are unnecessary,
#     and only guarantee that the current interface number gets larger
#     faster.
#
#  3. If the library source code has changed at all since the last
#     update, then increment REVISION (`C:R:A' becomes `C:r+1:A').
#
#  4. If any interfaces have been added, removed, or changed since the
#     last update, increment CURRENT, and set REVISION to 0.
#
#  5. If any interfaces have been added since the last public release,
#     then increment AGE.
#
#  6. If any interfaces have been removed since the last public release,
#     then set AGE to 0.
#

noinst_PROGRAMS = client client1 clienta server

client_SOURCES = client.c
client_LDADD = libSCTP.la
client_LDFLAGS = -static

client1_SOURCES = client1.c
client1_LDADD = libSCTP.la
client1_LDFLAGS = -static

clienta_SOURCES = clienta.c
clienta_LDADD = libSCTP.la
clienta_LDFLAGS = -static

server_SOURCES = server.c
server_LDADD = libSCTP.la
server_LDFLAGS = -static

EXTRA_DIST = autogen.sh macros *.h
## $Id: Makefile.am,v 1.5 2001/10/08 12:50:02 flacy Exp $


lib_LTLIBRARIES = libjniSctp.la

EXTRA_DIST = *.h

libjniSctp_la_SOURCES = \
        com_nortel_foundation_io_sctp_Association.c \
        com_nortel_foundation_io_sctp_SCTPCallbackMeister.c \
        com_nortel_foundation_io_sctp_SCTPInstance.c \
        JNICodec.c \
        JNISctpEventCallback.c \
        JNISctpLib.c

libjniSctp_la_LIBADD = $(top_srcdir)/libSCTP.la @LIBS@
libjniSctp_la_LDFLAGS = -L$(DESTDIR)@libdir@

MOSTLYCLEANFILES= *.rpo

# CFLAGS = -g -O2 -W -Wall -pipe -fstrict-aliasing
# CFLAGS = -O2 -W -Wall -pipe -fstrict-aliasing -D_REENTRANT


# NOTE: I should use autoconf to determine the jni path instead of
# hardcoding the paths.
INCLUDES = -I$(top_srcdir) -I$(jdkhome)/include 
-I$(jdkhome)/include/$(jdk_sysdir) 

# LDADD = $(top_srcdir)/lib/libSCTP.a
# LIBS = -L$(top_srcdir)/lib -lSCTP
# LDADD = $(top_srcdir)/libSCTP.la @LIBS@ 


## $Log: Makefile.am,v $
## Revision 1.5  2001/10/08 12:50:02  flacy
## Makefile changes to handle DESTDIR correctly.
## Streamlined SACK handling code.
## JNI changes.
##
## Revision 1.4  2001/10/03 02:10:16  flacy
## unknown changes.
##
## Revision 1.3  2001/09/20 03:04:22  flacy
## Realignment to allow compiling under Solaris.
##
## Revision 1.2  2001/09/17 14:52:52  flacy
## Various changes.  The capacity server and client can run for a certain
## length of time, but the timer system needs rework.
##
## Revision 1.10  2000/06/11 15:49:17  jwolf
## Changing shared library name to jniSctp.
##
## Revision 1.9  2000/05/18 18:42:01  jwolf
## Updating JNI classes to agree with Java classes that were changed
## to integrate with the CS2k Sctp stack.
##

address@hidden:/usr/local/src/sctp-1.0$ make DESTDIR=/tmp/build install
Making install in .
make[1]: Entering directory `/usr/local/src/sctp-1.0'
make[2]: Entering directory `/usr/local/src/sctp-1.0'
/bin/sh ./mkinstalldirs /tmp/build/opt/cs3000/sctp/lib
/bin/sh ./libtool  --mode=install /usr/bin/ginstall -c libSCTP.la 
/tmp/build/opt/cs3000/sctp/lib/libSCTP.la
/usr/bin/ginstall -c .libs/libSCTP.so.1.0.0 
/tmp/build/opt/cs3000/sctp/lib/libSCTP.so.1.0.0
(cd /tmp/build/opt/cs3000/sctp/lib && rm -f libSCTP.so.1 && ln -s 
libSCTP.so.1.0.0 libSCTP.so.1)
(cd /tmp/build/opt/cs3000/sctp/lib && rm -f libSCTP.so && ln -s 
libSCTP.so.1.0.0 libSCTP.so)
/usr/bin/ginstall -c .libs/libSCTP.lai 
/tmp/build/opt/cs3000/sctp/lib/libSCTP.la/usr/bin/ginstall -c .libs/libSCTP.a 
/tmp/build/opt/cs3000/sctp/lib/libSCTP.a
ranlib /tmp/build/opt/cs3000/sctp/lib/libSCTP.a
chmod 644 /tmp/build/opt/cs3000/sctp/lib/libSCTP.a
libtool: install: warning: remember to run `libtool --finish 
/opt/cs3000/sctp/lib'
/bin/sh ./mkinstalldirs /tmp/build/opt/cs3000/sctp/sbin
 /bin/sh ./libtool  --mode=install /usr/bin/ginstall -c  sctpmain 
/tmp/build/opt/cs3000/sctp/sbin/sctpmain
libtool: install: warning: `libSCTP.la' has not been installed in 
`/opt/cs3000/sctp/lib'
/usr/bin/ginstall -c .libs/sctpmain /tmp/build/opt/cs3000/sctp/sbin/sctpmain
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/local/src/sctp-1.0'
make[1]: Leaving directory `/usr/local/src/sctp-1.0'
Making install in jni
make[1]: Entering directory `/usr/local/src/sctp-1.0/jni'
Making install in src
make[2]: Entering directory `/usr/local/src/sctp-1.0/jni/src'
make[3]: Entering directory `/usr/local/src/sctp-1.0/jni/src'
/bin/sh ../../mkinstalldirs /tmp/build/opt/cs3000/sctp/lib

/bin/sh ../../libtool  --mode=install /usr/bin/ginstall -c libjniSctp.la 
/tmp/build/opt/cs3000/sctp/lib/libjniSctp.la
libtool: install: warning: relinking `libjniSctp.la'
cd /usr/local/src/sctp-1.0/jni/src; /bin/sh ../../libtool --mode=relink gcc -g 
-O2 -o libjniSctp.la -rpath /opt/cs3000/sctp/lib -L/opt/cs3000/sctp/lib 
com_nortel_foundation_io_sctp_Association.lo 
com_nortel_foundation_io_sctp_SCTPCallbackMeister.lo 
com_nortel_foundation_io_sctp_SCTPInstance.lo JNICodec.lo 
JNISctpEventCallback.lo JNISctpLib.lo ../../libSCTP.la -lpthread -lnsl 
-lpthread -lnsl
mv: libjniSctp.so.0.0.0: No such file or directory
libtool: install: error: relink `libjniSctp.la' with the above command before 
installing it
libtool: install: warning: remember to run `libtool --finish 
/opt/cs3000/sctp/lib'
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/local/src/sctp-1.0/jni/src'
make[2]: Leaving directory `/usr/local/src/sctp-1.0/jni/src'
Making install in tests
make[2]: Entering directory `/usr/local/src/sctp-1.0/jni/tests'
Making install in .
make[3]: Entering directory `/usr/local/src/sctp-1.0/jni/tests'
make[4]: Entering directory `/usr/local/src/sctp-1.0/jni/tests'
/bin/sh ../../mkinstalldirs /tmp/build/opt/cs3000/sctp/lib
/bin/sh ../../libtool  --mode=install /usr/bin/ginstall -c libtestJniSctp.la 
/tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.la
libtool: install: warning: relinking `libtestJniSctp.la'
cd /usr/local/src/sctp-1.0/jni/tests; /bin/sh ../../libtool --mode=relink gcc 
-g -O2 -o libtestJniSctp.la -rpath /opt/cs3000/sctp/lib 
com_nortel_foundation_io_sctp_JNICodecTestHead.lo -L../../jni/src -ljniSctp
gcc -shared  com_nortel_foundation_io_sctp_JNICodecTestHead.lo  -Wl,--rpath 
-Wl,/opt/cs3000/sctp/lib  -L/usr/local/src/sctp-1.0/.libs 
-L/usr/local/src/sctp-1.0/jni/src -L/opt/cs3000/sctp/lib -ljniSctp   
-Wl,-soname -Wl,libtestJniSctp.so.0 -o .libs/libtestJniSctp.so.0.0.0
/usr/bin/ginstall -c .libs/libtestJniSctp.so.0.0.0T 
/tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.so.0.0.0
(cd /tmp/build/opt/cs3000/sctp/lib && rm -f libtestJniSctp.so.0 && ln -s 
libtestJniSctp.so.0.0.0 libtestJniSctp.so.0)
(cd /tmp/build/opt/cs3000/sctp/lib && rm -f libtestJniSctp.so && ln -s 
libtestJniSctp.so.0.0.0 libtestJniSctp.so)
/usr/bin/ginstall -c .libs/libtestJniSctp.lai 
/tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.la
/usr/bin/ginstall -c .libs/libtestJniSctp.a 
/tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.a
ranlib /tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.a
chmod 644 /tmp/build/opt/cs3000/sctp/lib/libtestJniSctp.a
libtool: install: warning: remember to run `libtool --finish 
/opt/cs3000/sctp/lib'
make[4]: Nothing to be done for `install-data-am'.
make[4]: Leaving directory `/usr/local/src/sctp-1.0/jni/tests'
make[3]: Leaving directory `/usr/local/src/sctp-1.0/jni/tests'
Making install in sctp
make[3]: Entering directory `/usr/local/src/sctp-1.0/jni/tests/sctp'
make[4]: Entering directory `/usr/local/src/sctp-1.0/jni/tests/sctp'
make[4]: Nothing to be done for `install-exec-am'.
make[4]: Nothing to be done for `install-data-am'.
make[4]: Leaving directory `/usr/local/src/sctp-1.0/jni/tests/sctp'
make[3]: Leaving directory `/usr/local/src/sctp-1.0/jni/tests/sctp'
make[2]: Leaving directory `/usr/local/src/sctp-1.0/jni/tests'
make[2]: Entering directory `/usr/local/src/sctp-1.0/jni'
make[3]: Entering directory `/usr/local/src/sctp-1.0/jni'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/local/src/sctp-1.0/jni'
make[2]: Leaving directory `/usr/local/src/sctp-1.0/jni'
make[1]: Leaving directory `/usr/local/src/sctp-1.0/jni'
Making install in test
make[1]: Entering directory `/usr/local/src/sctp-1.0/test'
make[2]: Entering directory `/usr/local/src/sctp-1.0/test'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/local/src/sctp-1.0/test'
make[1]: Leaving directory `/usr/local/src/sctp-1.0/test'

-- 
 Mark A. Flacy   Architect Weasel CS3K Solution OAM&P, Group B824 
 address@hidden   (972) 685-8347  (ESN) 445-8347
 Any opinions expressed above are my own.  Any facts expressed above
 that you could detect means my weasel wording needs work.
"My dream may be your nightmare."
 -- B.O.C 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]