mirror of
https://https.git.savannah.gnu.org/git/libtool.git
synced 2026-01-26 15:39:10 +00:00
* syncronized with HEAD
* depdemo/Makefile.am: merged rest of my ILD patch * ltmain.in: export shlibpath before linking libraries, create the .lai file in link mode
This commit is contained in:
parent
c61b75ee1e
commit
b1dd35bb1a
@ -1,3 +1,10 @@
|
||||
1999-02-13 Thomas Tanner <tanner@gmx.de>
|
||||
|
||||
* syncronized with HEAD
|
||||
* depdemo/Makefile.am: merged rest of my ILD patch
|
||||
* ltmain.in: export shlibpath before linking libraries,
|
||||
create the .lai file in link mode
|
||||
|
||||
1999-02-12 Gary V. Vaughan <gvaughan@oranda.demon.co.uk>
|
||||
|
||||
* ltmain.in (deplib): The cygwin environment doesn't actually have
|
||||
|
||||
10
Makefile.am
10
Makefile.am
@ -58,7 +58,7 @@ update-timestamps:
|
||||
|
||||
# Do line number substitution, as well as PACKAGE, VERSION and TIMESTAMP.
|
||||
# Line numbering transliterated from a section in autoconf (Autoconf 2.12).
|
||||
$(srcdir)/ltconfig: $(srcdir)/ltconfig.in $(top_srcdir)/configure.in $(TSDEPS)
|
||||
@srcdir@/ltconfig: $(srcdir)/ltconfig.in $(top_srcdir)/configure.in $(TSDEPS)
|
||||
rm -f ltconfig.T
|
||||
date=`$(SHELL) $(srcdir)/mkstamp < $(srcdir)/ChangeLog` && \
|
||||
$(AWK) '/@LINENO@/ { printf "%d:", NR } { print }' $(srcdir)/ltconfig.in | \
|
||||
@ -70,7 +70,7 @@ $(srcdir)/ltconfig: $(srcdir)/ltconfig.in $(top_srcdir)/configure.in $(TSDEPS)
|
||||
mv -f ltconfig.T $@ || \
|
||||
(rm -f $@ && cp ltconfig.T $@ && rm -f ltconfig.T)
|
||||
|
||||
$(srcdir)/ltmain.sh: $(srcdir)/ltmain.in $(top_srcdir)/configure.in $(TSDEPS)
|
||||
@srcdir@/ltmain.sh: $(srcdir)/ltmain.in $(top_srcdir)/configure.in $(TSDEPS)
|
||||
rm -f ltmain.shT
|
||||
date=`$(SHELL) $(srcdir)/mkstamp < $(srcdir)/ChangeLog` && \
|
||||
sed -e 's/@''PACKAGE@/@PACKAGE@/' -e 's/@''VERSION@/@VERSION@/' \
|
||||
@ -96,12 +96,14 @@ configure-subdirs distdir: $(DIST_MAKEFILE_LIST)
|
||||
|
||||
# Create and install libltdl.tar.gz
|
||||
install-data-hook: libltdl/Makefile
|
||||
if (cd libltdl && $(MAKE) distdir distdir=libltdl && \
|
||||
@echo 'cd libltdl && $(MAKE) distdir distdir=libltdl && tar -cf libltdl.tar libltdl && gzip $(GZIP_ENV) libltdl.tar'
|
||||
@if (cd libltdl && $(MAKE) distdir distdir=libltdl && \
|
||||
tar -cf libltdl.tar libltdl && \
|
||||
gzip $(GZIP_ENV) libltdl.tar); then \
|
||||
echo "$(INSTALL_DATA) libltdl/libltdl.tar.gz $(pkgdatadir)/libltdl.tar.gz"; \
|
||||
$(INSTALL_DATA) libltdl/libltdl.tar.gz $(pkgdatadir)/libltdl.tar.gz; \
|
||||
else \
|
||||
echo Warning: without gzip, libtool cannot install libltdl.tar.gz; \
|
||||
echo "Warning: without gzip, libtool cannot install libltdl.tar.gz"; \
|
||||
fi; \
|
||||
rm -rf libltdl/libltdl libltdl/libltdl.tar libltdl/libltdl.tar.gz
|
||||
|
||||
|
||||
2
NEWS
2
NEWS
@ -3,7 +3,7 @@ NEWS - list of user-visible changes between releases of GNU Libtool
|
||||
New in 1.2e: CVS version:
|
||||
* Support -R for specifying run-time path of programs and library dependencies
|
||||
* Support for BeOS
|
||||
* Improved support for Win32, aix3, aix4, SysV 4.3, BSD/OS 4.x and NetBSD
|
||||
* Improved support for aix3, aix4, SysV 4.3, BSD/OS 4.x and NetBSD
|
||||
* New -avoid-version option to avoid versioning for libraries
|
||||
* Various bugfixes
|
||||
|
||||
|
||||
19
THANKS
19
THANKS
@ -2,7 +2,9 @@ Libtool would not be what it is today without the invaluable help of
|
||||
these people:
|
||||
|
||||
Everybody who was kind enough to spend time testing libtool, use it in
|
||||
their packages and report bugs.
|
||||
their packages and report bugs, who are too numerous to mention here.
|
||||
Many people who have kindly submitted bug reports and small patches
|
||||
are credited for their contributions in the ChangeLogs.
|
||||
|
||||
The following people made especially gracious contributions of their
|
||||
time and energy in helping to track down bugs, port to new systems,
|
||||
@ -10,39 +12,24 @@ and generally assist in the libtool maintainership process:
|
||||
|
||||
Akim Demaille <demaille@inf.enst.fr>
|
||||
Andrey Slepuhin <pooh@msu.ru>
|
||||
Axel Thimm <Axel.Thimm@physik.fu-berlin.de>
|
||||
Bruno Haible <haible@ilog.fr>
|
||||
Carl D. Roth <roth@cse.ucsc.edu>
|
||||
Charles S. Kerr <cskerr@delenn.jccbi.gov>
|
||||
Chris Laas <golem@MIT.EDU>
|
||||
Chris P. Ross <cross@eng.us.uu.net>
|
||||
Edouard G. Parmelan <Edouard.Parmelan@France.NCR.COM>
|
||||
Eric Estievenart <eric@via.ecp.fr>
|
||||
Erez Zadok <ezk@shekel.mcl.cs.columbia.edu>
|
||||
H.J. Lu <hjl@gnu.org>
|
||||
Ian Lance Taylor <ian@cygnus.com>
|
||||
Joel Cannon <cannon@alpha.centenary.edu>
|
||||
Joel Klecker <espy@debian.org>
|
||||
Joel N. Weber II <devnull@gnu.org>
|
||||
Joseph Beckenbach III <jrb3@best.com>
|
||||
Karl Berry <kb@cs.umb.edu>
|
||||
Kenneth Albanowski <kjahds@kjahds.com>
|
||||
Kurt D. Zeilenga <Kurt@OpenLDAP.Org>
|
||||
Manfred Weichel <Manfred.Weichel@pdb.siemens.de>
|
||||
Marc J. Fraioli <fraioli@dg-rtp.dg.com>
|
||||
Mark Elbrecht <snowball3@usa.net>
|
||||
Mark Kettenis <kettenis@phys.uva.nl>
|
||||
Mimi Burbank <mimi@scri.fsu.edu>
|
||||
Oliver Guntermann <og@informatik.uni-hannover.de>
|
||||
Raffaele Sena <raff@aromatic.com>
|
||||
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||
Ron O'Hara <rono@sentuny.com.au>
|
||||
Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
Stephan Kulow <coolo@kde.org>
|
||||
Steven M. Schultz <sms@wlv.iipo.gtegsc.com>
|
||||
Thomas Esser <te@informatik.uni-hannover.de>
|
||||
Todd Vierling <tv@pobox.com>
|
||||
Tom Tromey <tromey@cygnus.com>
|
||||
Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
|
||||
Vladimir Kushnir <kushn@mail.kar.net>
|
||||
Volker Kuhlmann <kuhlmav@elec.canterbury.ac.nz>
|
||||
|
||||
1
autogen
1
autogen
@ -19,6 +19,7 @@ for sub in demo depdemo libltdl mdemo cdemo; do
|
||||
rm -f acinclude.m4
|
||||
cp ../libtool.m4 acinclude.m4
|
||||
aclocal
|
||||
autoheader
|
||||
automake --gnits --add-missing
|
||||
autoconf
|
||||
cd ..
|
||||
|
||||
12
commit
12
commit
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
# commit version 0.9.1
|
||||
# commit version 0.9.2
|
||||
|
||||
# Copyright (C) 1999, Free Software Foundation
|
||||
|
||||
@ -171,7 +171,7 @@ $repeat && break
|
||||
|
||||
$update && \
|
||||
if echo "$name: checking for conflicts..." >&2
|
||||
(cvs $cvsopt -n update $updateopt ${1+"$@"} 2>/dev/null\
|
||||
(cvs $cvsopt -q -n update $updateopt ${1+"$@"} 2>/dev/null \
|
||||
| while read line; do
|
||||
echo "$line"
|
||||
echo "$line" >&3
|
||||
@ -187,10 +187,10 @@ if test ! -f "$log_file"; then
|
||||
case "$line" in
|
||||
"--- ChangeLog"*) :;;
|
||||
"-"*)
|
||||
echo "$name: the following line in ChangeLog diff is suspicious:" >&2
|
||||
echo "$name: *** Warning: the following line in ChangeLog diff is suspicious:" >&2
|
||||
echo "$line" | sed 's/^.//' >&2;;
|
||||
"+ "*)
|
||||
echo "$name: lines should start with tabs, not spaces; ignoring line:" >&2
|
||||
echo "$name: *** Warning: lines should start with tabs, not spaces; ignoring line:" >&2
|
||||
echo "$line" | sed 's/^.//' >&2;;
|
||||
"+") echo;;
|
||||
"+ "*) echo "$line";;
|
||||
@ -208,8 +208,8 @@ if grep '[^ ]' < "$log_file" > /dev/null; then :; else
|
||||
fi
|
||||
|
||||
if grep '^$' < "$log_file" > /dev/null; then
|
||||
echo "$name: blank lines should not appear within a commit messages" >&2
|
||||
echo "$name: they should be used to separate distinct commits" >&2
|
||||
echo "$name: *** Warning: blank lines should not appear within a commit messages." >&2
|
||||
echo "$name: *** They should be used to separate distinct commits." >&2
|
||||
fi
|
||||
|
||||
${PAGER-more} "$log_file" || break
|
||||
|
||||
@ -20,16 +20,16 @@ else
|
||||
BUILD_helldl =
|
||||
endif
|
||||
|
||||
bin_PROGRAMS = hell hell.debug $(BUILD_helldl)
|
||||
bin_PROGRAMS = hell hell.static $(BUILD_helldl)
|
||||
|
||||
# Build hell from main.c and libhello.la
|
||||
hell_SOURCES = main.c
|
||||
hell_LDADD = -lhello
|
||||
hell_LDADD = libhello.la
|
||||
|
||||
# Create an easier-to-debug version of hell.
|
||||
hell_debug_SOURCES = main.c
|
||||
hell_debug_LDADD = -lhello
|
||||
hell_debug_LDFLAGS = $(STATIC)
|
||||
# Create a statically linked version of hell.
|
||||
hell_static_SOURCES = main.c
|
||||
hell_static_LDADD = libhello.la
|
||||
hell_static_LDFLAGS = $(STATIC)
|
||||
|
||||
if BINARY_HELLDL
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ libl3_la_LIBADD = libl1.la libl2.la
|
||||
libl4_la_SOURCES = l4.c l4.h sysdep.h
|
||||
libl4_la_LIBADD = libl3.la $(LIBADD_M)
|
||||
|
||||
bin_PROGRAMS = depdemo.static depdemo
|
||||
bin_PROGRAMS = depdemo depdemo.static
|
||||
|
||||
depdemo_SOURCES = main.c
|
||||
depdemo_LDADD = libl1.la libl2.la libl4.la
|
||||
@ -20,5 +20,4 @@ depdemo_DEPENDENCIES = libl1.la libl2.la libl4.la
|
||||
depdemo_static_SOURCES = $(depdemo_SOURCES)
|
||||
depdemo_static_LDADD = $(depdemo_LDADD)
|
||||
depdemo_static_DEPENDENCIES = $(depdemo_DEPENDENCIES)
|
||||
depdemo_static_LDFLAGS = -static
|
||||
|
||||
depdemo_static_LDFLAGS = $(STATIC)
|
||||
|
||||
@ -46,7 +46,6 @@ i586-pc-linux-gnulibc1 gcc 1.2e ok
|
||||
i686-pc-linux-gnu gcc 1.2e ok
|
||||
i686-pc-linux-gnu egcs 1.2e ok egcs 1.1.1
|
||||
i686-pc-linux-gnulibc1 gcc 1.2e ok
|
||||
i686-pc-cygwin32 egcs 1.2e ok
|
||||
m68k-next-nextstep3 gcc 1.2e ok static
|
||||
m68k-sun-sunos4.1.1 gcc 1.2e NS
|
||||
m88k-dg-dguxR4.12TMU01** gcc 1.2 ok
|
||||
|
||||
@ -2291,7 +2291,7 @@ in order to guarantee that all the required libraries are found. This
|
||||
restriction is only necessary to preserve compatibility with static
|
||||
library systems and simple dynamic library systems.
|
||||
|
||||
Some platforms, such as AIX and Windows 95, do not even allow you this
|
||||
Some platforms, such as AIX, do not even allow you this
|
||||
flexibility. In order to build a shared library, it must be entirely
|
||||
self-contained (that is, have references only to symbols that are found
|
||||
in the @samp{.lo} files or the specified @samp{-l} libraries), and you
|
||||
@ -2612,7 +2612,8 @@ Return 0 on success, otherwise the number of errors.
|
||||
@deftypefun lt_dlhandle lt_dlopen (const char *@var{filename})
|
||||
Open the module with the file name @var{filename} and return a
|
||||
handle for it. @code{lt_dlopen} is able to open libtool dynamic
|
||||
modules, preloaded static modules and native dynamic libraries.
|
||||
modules, preloaded static modules, the program itself and
|
||||
native dynamic libraries.
|
||||
|
||||
Unresolved symbols in the module are resolved using its dependency
|
||||
libraries and previously dlopened modules. If the executable using this
|
||||
@ -2621,6 +2622,10 @@ symbols in the executable will also be used to resolve references in the
|
||||
module. Libltdl tries to resolve the symbols immediately and returns
|
||||
@code{NULL} if that fails.
|
||||
|
||||
If @var{filename} is NULL @code{lt_dlopen} will return a handle
|
||||
for the program itself, which can be used to access its symbols
|
||||
if it was linked with @code{-export-dynamic}.
|
||||
|
||||
If libltdl cannot find the library and the file name @var{filename} does
|
||||
not have a directory component it will additionally search in the
|
||||
following search paths for the module (in the order as follows):
|
||||
@ -2903,7 +2908,7 @@ uninstalled correctly.
|
||||
The @file{mdemo} subdirectory contains a demonstration of a package that
|
||||
uses libtool and the system independent dlopen wrapper @file{libltdl} to
|
||||
load modules. The library @file{libltdl} provides an experimental
|
||||
dlopen wrapper for various platforms (Linux, Solaris, HP/UX, Win32 etc.)
|
||||
dlopen wrapper for various platforms (Linux, Solaris, HP/UX etc.)
|
||||
including support for dlpreopened modules (@pxref{Dlpreopening}).
|
||||
|
||||
The tests @file{mdemo-make.test}, @file{mdemo-exec.test},
|
||||
|
||||
@ -9,3 +9,4 @@ conftest*
|
||||
libtool
|
||||
*.lo
|
||||
*.la
|
||||
stamp-h*
|
||||
|
||||
@ -5,25 +5,26 @@ AUTOMAKE_OPTIONS = no-dependencies foreign
|
||||
LTDL_VERSION = -version-info 1:1:1
|
||||
|
||||
if INSTALL_LTDL
|
||||
LTDL_FLAGS = $(LTDL_VERSION) -rpath $(libdir)
|
||||
include_HEADERS = ltdl.h
|
||||
else
|
||||
LTDL_FLAGS =
|
||||
noinst_HEADERS = ltdl.h
|
||||
endif
|
||||
|
||||
EXTRA_LTLIBRARIES = libltdl.la libltdlc.la
|
||||
|
||||
lib_LTLIBRARIES = @LIBLIBS@
|
||||
noinst_LTLIBRARIES = @NOINSTLIBS@
|
||||
noinst_LTLIBRARIES = libltdl.la
|
||||
|
||||
libltdl_la_SOURCES = ltdl.c
|
||||
libltdl_la_LDFLAGS = $(LTDL_FLAGS)
|
||||
libltdl_la_LIBADD = $(LIBADD_DL)
|
||||
|
||||
libltdlc_la_SOURCES = $(libltdl_la_SOURCES)
|
||||
libltdlc_la_LDFLAGS =
|
||||
libltdlc_la_LIBADD = $(libltdl_la_LIBADD)
|
||||
lib_LTLIBRARIES = @LIBLIBS@
|
||||
EXTRA_LTLIBRARIES =
|
||||
|
||||
@TOINST@/libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES)
|
||||
@test -d $(TOINST) || mkdir $(TOINST)
|
||||
$(LINK) -o $@ $(libltdl_la_OBJECTS) \
|
||||
-rpath $(libdir) $(LTDL_VERSION) $(libltdl_la_LIBADD)
|
||||
|
||||
distclean-local:
|
||||
test -z $(TOINST) || rm -rf $(TOINST)
|
||||
|
||||
libtool: $(LIBTOOL_DEPS)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
@ -2,21 +2,22 @@ dnl Process this file with autoconf to create configure.
|
||||
dnl Initialize the libltdl package.
|
||||
AC_INIT(ltdl.c)
|
||||
AM_INIT_AUTOMAKE(libltdl,1.0,-)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
TOINST=toinst
|
||||
AC_SUBST(TOINST)
|
||||
|
||||
AC_ARG_ENABLE(ltdl-install,
|
||||
[--enable-ltdl-install install libltdl])
|
||||
AM_CONDITIONAL(INSTALL_LTDL, test x$enable_ltdl_install = xyes)
|
||||
if test x$enable_ltdl_install = xyes; then
|
||||
LIBLIBS=libltdl.la
|
||||
NOINSTLIBS=
|
||||
LIBLIBS=$TOINST/libltdl.la
|
||||
else
|
||||
LIBLIBS=
|
||||
NOINSTLIBS=libltdl.la
|
||||
fi
|
||||
AC_SUBST(LIBLIBS)
|
||||
AC_SUBST(NOINSTLIBS)
|
||||
|
||||
AC_PROG_CC
|
||||
AC_C_CONST
|
||||
@ -84,11 +85,19 @@ AC_CHECK_FUNCS(strdup strchr strrchr index rindex)
|
||||
|
||||
AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
|
||||
libltdl_cv_preloaded_symbols, [dnl
|
||||
if grep '^global_symbol_pipe=..*$' ./libtool >/dev/null; then
|
||||
libltdl_cv_preloaded_symbols=yes
|
||||
else
|
||||
libltdl_cv_preloaded_symbols=no
|
||||
fi
|
||||
(
|
||||
rm -f conftest
|
||||
./libtool --config > conftest
|
||||
. ./conftest
|
||||
rm -f conftest
|
||||
if test -n "$global_symbol_pipe"; then
|
||||
echo yes > conftest
|
||||
else
|
||||
echo no > conftest
|
||||
fi
|
||||
)
|
||||
libltdl_cv_preloaded_symbols=`cat conftest`
|
||||
rm -f conftest
|
||||
])
|
||||
if test x"$libltdl_cv_preloaded_symbols" = x"yes"; then
|
||||
AC_DEFINE(HAVE_PRELOADED_SYMBOLS)
|
||||
@ -112,7 +121,7 @@ if test "$test_dlerror" = yes; then
|
||||
LIBS="$LIBS_SAVE"
|
||||
fi
|
||||
|
||||
AM_SYS_SYMBOL_UNDERSCORE
|
||||
AC_SYS_SYMBOL_UNDERSCORE
|
||||
if test x"$USE_SYMBOL_UNDERSCORE" = xyes; then
|
||||
if test x"$ac_cv_func_dlopen" = xyes ||
|
||||
test x"$ac_cv_lib_dl_dlopen" = xyes ; then
|
||||
|
||||
413
libltdl/ltdl.c
413
libltdl/ltdl.c
@ -20,6 +20,10 @@ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
#define _LTDL_COMPILE_
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#endif
|
||||
@ -75,18 +79,18 @@ Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
/* This accounts for the _LTX_ separator */
|
||||
#define LTDL_SYMBOL_OVERHEAD 5
|
||||
|
||||
static const char *objdir = LTDL_OBJDIR;
|
||||
static const char *shlib_ext = LTDL_SHLIB_EXT;
|
||||
static const char objdir[] = LTDL_OBJDIR;
|
||||
static const char shlib_ext[] = LTDL_SHLIB_EXT;
|
||||
|
||||
static const char *unknown_error = "unknown error";
|
||||
static const char *dlopen_not_supported_error = "dlopen support not available";
|
||||
static const char *file_not_found_error = "file not found";
|
||||
static const char *no_symbols_error = "no symbols defined";
|
||||
static const char *symbol_error = "symbol not found";
|
||||
static const char *memory_error = "not enough memory";
|
||||
static const char *invalid_handle_error = "invalid handle";
|
||||
static const char *buffer_overflow_error = "internal buffer overflow";
|
||||
static const char *shutdown_error = "library already shutdown";
|
||||
static const char unknown_error[] = "unknown error";
|
||||
static const char dlopen_not_supported_error[] = "dlopen support not available";
|
||||
static const char file_not_found_error[] = "file not found";
|
||||
static const char no_symbols_error[] = "no symbols defined";
|
||||
static const char symbol_error[] = "symbol not found";
|
||||
static const char memory_error[] = "not enough memory";
|
||||
static const char invalid_handle_error[] = "invalid handle";
|
||||
static const char buffer_overflow_error[] = "internal buffer overflow";
|
||||
static const char shutdown_error[] = "library already shutdown";
|
||||
|
||||
#ifndef HAVE_PRELOADED_SYMBOLS
|
||||
/* If libtool won't define it, we'd better do */
|
||||
@ -114,7 +118,7 @@ typedef struct lt_dlhandle_t {
|
||||
char *name; /* module name */
|
||||
int usage; /* usage */
|
||||
int depcount; /* number of dependencies */
|
||||
lt_dlhandle *deps; /* dependencies */
|
||||
lt_dlhandle *deplibs; /* dependencies */
|
||||
lt_ptr_t handle; /* system handle */
|
||||
lt_ptr_t system; /* system specific data */
|
||||
} lt_dlhandle_t;
|
||||
@ -124,7 +128,7 @@ typedef struct lt_dlhandle_t {
|
||||
#undef strdup
|
||||
#define strdup xstrdup
|
||||
|
||||
static char *
|
||||
static inline char *
|
||||
strdup(str)
|
||||
const char *str;
|
||||
{
|
||||
@ -132,7 +136,7 @@ strdup(str)
|
||||
|
||||
if (!str)
|
||||
return str;
|
||||
tmp = malloc(strlen(str)+1);
|
||||
tmp = (char*) malloc(strlen(str)+1);
|
||||
if (tmp)
|
||||
strcpy(tmp, str);
|
||||
return tmp;
|
||||
@ -150,7 +154,7 @@ strdup(str)
|
||||
|
||||
# define strchr xstrchr
|
||||
|
||||
static const char*
|
||||
static inline const char*
|
||||
strchr(str, ch)
|
||||
const char *str;
|
||||
int ch;
|
||||
@ -177,7 +181,7 @@ strchr(str, ch)
|
||||
|
||||
# define strrchr xstrrchr
|
||||
|
||||
static const char*
|
||||
static inline const char*
|
||||
strrchr(str, ch)
|
||||
const char *str;
|
||||
int ch;
|
||||
@ -608,14 +612,19 @@ presym_open (handle, filename)
|
||||
{
|
||||
lt_dlsymlists_t *lists = preloaded_symbols;
|
||||
|
||||
if (!filename) {
|
||||
last_error = file_not_found_error;
|
||||
return 1;
|
||||
}
|
||||
if (!lists) {
|
||||
last_error = no_symbols_error;
|
||||
return 1;
|
||||
}
|
||||
if (!filename) {
|
||||
if (!default_preloaded_symbols) {
|
||||
last_error = file_not_found_error;
|
||||
return 1;
|
||||
} else {
|
||||
handle->handle = (lt_ptr_t) default_preloaded_symbols;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
while (lists) {
|
||||
const lt_dlsymlist *syms = lists->syms;
|
||||
|
||||
@ -765,28 +774,37 @@ tryall_dlopen (handle, filename)
|
||||
|
||||
/* check whether the module was already opened */
|
||||
cur = handles;
|
||||
while (cur && strcmp(cur->filename, filename))
|
||||
while (cur) {
|
||||
if (!cur->filename && !filename)
|
||||
break;
|
||||
if (cur->filename && filename &&
|
||||
strcmp(cur->filename, filename) == 0)
|
||||
break;
|
||||
cur = cur->next;
|
||||
}
|
||||
if (cur) {
|
||||
cur->usage++;
|
||||
free(*handle);
|
||||
*handle = cur;
|
||||
return 0;
|
||||
}
|
||||
|
||||
cur = *handle;
|
||||
cur->filename = strdup(filename);
|
||||
if (!cur->filename) {
|
||||
last_error = memory_error;
|
||||
return 1;
|
||||
}
|
||||
if (filename) {
|
||||
cur->filename = strdup(filename);
|
||||
if (!cur->filename) {
|
||||
last_error = memory_error;
|
||||
return 1;
|
||||
}
|
||||
} else
|
||||
cur->filename = 0;
|
||||
while (type) {
|
||||
if (type->lib_open(cur, filename) == 0)
|
||||
break;
|
||||
type = type->next;
|
||||
}
|
||||
if (!type) {
|
||||
free(cur->filename);
|
||||
if (cur->filename)
|
||||
free(cur->filename);
|
||||
return 1;
|
||||
}
|
||||
cur->type = type;
|
||||
@ -803,8 +821,6 @@ find_module (handle, dir, libdir, dlname, old_name, installed)
|
||||
const char *old_name;
|
||||
int installed;
|
||||
{
|
||||
char filename[LTDL_FILENAME_MAX];
|
||||
|
||||
/* try to open the old library first; if it was dlpreopened,
|
||||
we want the preopened version of it, even if a dlopenable
|
||||
module is available */
|
||||
@ -813,29 +829,61 @@ find_module (handle, dir, libdir, dlname, old_name, installed)
|
||||
/* try to open the dynamic library */
|
||||
if (dlname) {
|
||||
/* try to open the installed module */
|
||||
if (installed &&
|
||||
strlen(libdir)+1+strlen(dlname) < LTDL_FILENAME_MAX) {
|
||||
if (installed && libdir) {
|
||||
int ret;
|
||||
char *filename = (char*)
|
||||
malloc(strlen(libdir)+1+strlen(dlname)+1);
|
||||
|
||||
if (!filename) {
|
||||
last_error = memory_error;
|
||||
return 1;
|
||||
}
|
||||
strcpy(filename, libdir);
|
||||
strcat(filename, "/");
|
||||
strcat(filename, dlname);
|
||||
if (tryall_dlopen(handle, filename) == 0)
|
||||
ret = tryall_dlopen(handle, filename) == 0;
|
||||
free(filename);
|
||||
if (ret)
|
||||
return 0;
|
||||
}
|
||||
/* try to open the not-installed module */
|
||||
if (!installed &&
|
||||
strlen(dir)+strlen(objdir)+strlen(dlname)
|
||||
< LTDL_FILENAME_MAX) {
|
||||
strcpy(filename, dir);
|
||||
if (!installed) {
|
||||
int ret;
|
||||
char *filename = (char*)
|
||||
malloc((dir ? strlen(dir) : 0)
|
||||
+ strlen(objdir) + strlen(dlname) + 1);
|
||||
|
||||
if (!filename) {
|
||||
last_error = memory_error;
|
||||
return 1;
|
||||
}
|
||||
if (dir)
|
||||
strcpy(filename, dir);
|
||||
else
|
||||
*filename = 0;
|
||||
strcat(filename, objdir);
|
||||
strcat(filename, dlname);
|
||||
if (tryall_dlopen(handle, filename) == 0)
|
||||
|
||||
ret = tryall_dlopen(handle, filename) == 0;
|
||||
free(filename);
|
||||
if (ret)
|
||||
return 0;
|
||||
}
|
||||
/* hmm, maybe it was moved to another directory */
|
||||
if (strlen(dir)+strlen(dlname) < LTDL_FILENAME_MAX) {
|
||||
strcpy(filename, dir);
|
||||
/* hmm, maybe it was moved to another directory.
|
||||
Should we really support this? */
|
||||
{
|
||||
int ret;
|
||||
char *filename = (char*)
|
||||
malloc((dir ? strlen(dir) : 0)
|
||||
+ strlen(dlname) + 1);
|
||||
if (dir)
|
||||
strcpy(filename, dir);
|
||||
else
|
||||
*filename = 0;
|
||||
strcat(filename, dlname);
|
||||
if (tryall_dlopen(handle, filename) == 0)
|
||||
ret = tryall_dlopen(handle, filename) == 0;
|
||||
free(filename);
|
||||
if (ret)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -847,62 +895,74 @@ static lt_ptr_t
|
||||
find_file (basename, search_path, pdir, handle)
|
||||
const char *basename;
|
||||
const char *search_path;
|
||||
char *pdir;
|
||||
char **pdir;
|
||||
lt_dlhandle *handle;
|
||||
{
|
||||
/* when handle != NULL search a library, otherwise a file */
|
||||
/* return NULL on failure, otherwise the file/handle */
|
||||
|
||||
char filename[LTDL_FILENAME_MAX];
|
||||
const char *cur, *next;
|
||||
FILE *file;
|
||||
int lendir;
|
||||
char *filename = 0;
|
||||
int filenamesize = 0;
|
||||
const char *next = search_path;
|
||||
int lenbase = strlen(basename);
|
||||
|
||||
if (!search_path || !strlen(search_path)) {
|
||||
if (!next || !*next) {
|
||||
last_error = file_not_found_error;
|
||||
return 0;
|
||||
}
|
||||
cur = search_path;
|
||||
while (cur) {
|
||||
while (next) {
|
||||
int lendir;
|
||||
const char *cur = next;
|
||||
|
||||
next = strchr(cur, ':');
|
||||
if (next) {
|
||||
if (next - cur + 1 >= LTDL_FILENAME_MAX) {
|
||||
last_error = buffer_overflow_error;
|
||||
return 0;
|
||||
}
|
||||
strncpy(filename, cur, next - cur);
|
||||
filename[next - cur] = '\0';
|
||||
cur = next+1;
|
||||
} else {
|
||||
if (strlen(cur)+1 >= LTDL_FILENAME_MAX) {
|
||||
last_error = buffer_overflow_error;
|
||||
return 0;
|
||||
}
|
||||
strcpy(filename, cur);
|
||||
cur = 0;
|
||||
}
|
||||
if (!*filename)
|
||||
if (!next)
|
||||
next = cur + strlen(cur);
|
||||
lendir = next - cur;
|
||||
if (*next == ':')
|
||||
++next;
|
||||
else
|
||||
next = 0;
|
||||
if (lendir == 0)
|
||||
continue;
|
||||
lendir = strlen(filename);
|
||||
if (filename[lendir-1] != '/') {
|
||||
strcat(filename, "/");
|
||||
lendir++;
|
||||
if (lendir + 1 + lenbase >= filenamesize) {
|
||||
if (filename)
|
||||
free(filename);
|
||||
filenamesize = lendir + 1 + lenbase + 1;
|
||||
filename = (char*) malloc(filenamesize);
|
||||
if (!filename) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (lendir+strlen(basename) < LTDL_FILENAME_MAX) {
|
||||
strcat(filename, basename);
|
||||
if (handle) {
|
||||
if (tryall_dlopen(handle, filename) == 0)
|
||||
return (lt_ptr_t) handle;
|
||||
} else {
|
||||
file = fopen(filename, LTDL_READTEXT_MODE);
|
||||
if (file) {
|
||||
filename[lendir] = '\0';
|
||||
strcpy(pdir, filename);
|
||||
return (lt_ptr_t) file;
|
||||
}
|
||||
strncpy(filename, cur, lendir);
|
||||
if (filename[lendir-1] != '/')
|
||||
filename[lendir++] = '/';
|
||||
strcpy(filename+lendir, basename);
|
||||
if (handle) {
|
||||
if (tryall_dlopen(handle, filename) == 0) {
|
||||
free(filename);
|
||||
return (lt_ptr_t) handle;
|
||||
}
|
||||
} else {
|
||||
FILE *file = fopen(filename, LTDL_READTEXT_MODE);
|
||||
if (file) {
|
||||
if (*pdir)
|
||||
free(*pdir);
|
||||
filename[lendir] = '\0';
|
||||
*pdir = strdup(filename);
|
||||
if (!*pdir) {
|
||||
/* We could have even avoided the
|
||||
strdup, but there would be some
|
||||
memory overhead. */
|
||||
*pdir = filename;
|
||||
} else
|
||||
free(filename);
|
||||
return (lt_ptr_t) file;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (filename)
|
||||
free(filename);
|
||||
last_error = file_not_found_error;
|
||||
return 0;
|
||||
}
|
||||
@ -914,7 +974,7 @@ load_deplibs(handle, deplibs)
|
||||
{
|
||||
/* FIXME: load deplibs */
|
||||
handle->depcount = 0;
|
||||
handle->deps = 0;
|
||||
handle->deplibs = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -926,7 +986,7 @@ unload_deplibs(handle)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static inline int
|
||||
trim (dest, s)
|
||||
char **dest;
|
||||
const char *s;
|
||||
@ -938,7 +998,7 @@ trim (dest, s)
|
||||
if (*dest)
|
||||
free(*dest);
|
||||
if (len > 3 && s[0] == '\'') {
|
||||
tmp = malloc(i - s);
|
||||
tmp = (char*) malloc(i - s);
|
||||
if (!tmp) {
|
||||
last_error = memory_error;
|
||||
return 1;
|
||||
@ -951,13 +1011,19 @@ trim (dest, s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
free_vars(dlname, oldname, libdir, deplibs)
|
||||
static inline int
|
||||
free_vars(dir, name, dlname, oldname, libdir, deplibs)
|
||||
char *dir;
|
||||
char *name;
|
||||
char *dlname;
|
||||
char *oldname;
|
||||
char *libdir;
|
||||
char *deplibs;
|
||||
{
|
||||
if (dir)
|
||||
free(dir);
|
||||
if (name)
|
||||
free(name);
|
||||
if (dlname)
|
||||
free(dlname);
|
||||
if (oldname)
|
||||
@ -969,37 +1035,47 @@ free_vars(dlname, oldname, libdir, deplibs)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lt_dlhandle
|
||||
lt_dlopen (filename)
|
||||
const char *filename;
|
||||
{
|
||||
lt_dlhandle handle;
|
||||
char dir[LTDL_FILENAME_MAX];
|
||||
lt_dlhandle handle, newhandle;
|
||||
const char *basename, *ext;
|
||||
const char *saved_error = last_error;
|
||||
char *name = 0;
|
||||
char *dir = 0, *name = 0;
|
||||
|
||||
if (!filename) {
|
||||
last_error = file_not_found_error;
|
||||
return 0;
|
||||
handle = (lt_dlhandle) malloc(sizeof(lt_dlhandle_t));
|
||||
if (!handle) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
handle->usage = 0;
|
||||
newhandle = handle;
|
||||
if (tryall_dlopen(handle, 0) != 0) {
|
||||
free(newhandle);
|
||||
return 0;
|
||||
}
|
||||
if (newhandle != handle)
|
||||
free(newhandle);
|
||||
return handle;
|
||||
}
|
||||
basename = strrchr(filename, '/');
|
||||
if (basename)
|
||||
if (basename) {
|
||||
basename++;
|
||||
else
|
||||
dir = (char*) malloc(basename - filename + 1);
|
||||
if (!dir) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
strncpy(dir, filename, basename - filename);
|
||||
dir[basename - filename] = '\0';
|
||||
} else
|
||||
basename = filename;
|
||||
if (basename - filename >= LTDL_FILENAME_MAX) {
|
||||
last_error = buffer_overflow_error;
|
||||
return 0;
|
||||
}
|
||||
strncpy(dir, filename, basename - filename);
|
||||
dir[basename - filename] = '\0';
|
||||
/* check whether we open a libtool module (.la extension) */
|
||||
ext = strrchr(basename, '.');
|
||||
if (ext && strcmp(ext, ".la") == 0) {
|
||||
/* this seems to be a libtool module */
|
||||
char tmp[LTDL_FILENAME_MAX];
|
||||
FILE *file;
|
||||
int i;
|
||||
char *dlname = 0, *old_name = 0;
|
||||
@ -1011,68 +1087,71 @@ lt_dlopen (filename)
|
||||
int installed = 1;
|
||||
|
||||
/* extract the module name from the file name */
|
||||
if (strlen(basename) >= sizeof(tmp)) {
|
||||
last_error = buffer_overflow_error;
|
||||
name = (char*) malloc(ext - basename + 1);
|
||||
if (!name) {
|
||||
last_error = memory_error;
|
||||
if (dir)
|
||||
free(dir);
|
||||
return 0;
|
||||
}
|
||||
/* canonicalize the module name */
|
||||
for (i = 0; i < ext - basename; i++)
|
||||
if (isalnum(basename[i]))
|
||||
tmp[i] = basename[i];
|
||||
name[i] = basename[i];
|
||||
else
|
||||
tmp[i] = '_';
|
||||
tmp[ext - basename] = '\0';
|
||||
name = strdup(tmp);
|
||||
if (!name) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
name[i] = '_';
|
||||
name[ext - basename] = '\0';
|
||||
/* now try to open the .la file */
|
||||
file = fopen(filename, LTDL_READTEXT_MODE);
|
||||
if (!file)
|
||||
last_error = file_not_found_error;
|
||||
if (!file && !*dir) {
|
||||
if (!file && !dir) {
|
||||
/* try other directories */
|
||||
file = (FILE*) find_file(basename,
|
||||
user_search_path,
|
||||
dir, 0);
|
||||
&dir, 0);
|
||||
if (!file)
|
||||
file = (FILE*) find_file(basename,
|
||||
getenv("LTDL_LIBRARY_PATH"),
|
||||
dir, 0);
|
||||
&dir, 0);
|
||||
#ifdef LTDL_SHLIBPATH_VAR
|
||||
if (!file)
|
||||
file = (FILE*) find_file(basename,
|
||||
getenv(LTDL_SHLIBPATH_VAR),
|
||||
dir, 0);
|
||||
&dir, 0);
|
||||
#endif
|
||||
}
|
||||
if (!file) {
|
||||
free(name);
|
||||
if (name)
|
||||
free(name);
|
||||
if (dir)
|
||||
free(dir);
|
||||
return 0;
|
||||
}
|
||||
/* read the .la file */
|
||||
while (!feof(file)) {
|
||||
if (!fgets(tmp, sizeof(tmp), file))
|
||||
char line[LTDL_FILENAME_MAX];
|
||||
|
||||
if (!fgets(line, sizeof(line), file))
|
||||
break;
|
||||
if (tmp[0] == '\n' || tmp[0] == '#')
|
||||
if (line[0] == '\n' || line[0] == '#')
|
||||
continue;
|
||||
if (strncmp(tmp, "dlname=", 7) == 0)
|
||||
error = trim(&dlname, &tmp[7]);
|
||||
if (strncmp(line, "dlname=", 7) == 0)
|
||||
error = trim(&dlname, &line[7]);
|
||||
else
|
||||
if (strncmp(tmp, "old_library=", 12) == 0)
|
||||
error = trim(&old_name, &tmp[12]);
|
||||
if (strncmp(line, "old_library=", 12) == 0)
|
||||
error = trim(&old_name, &line[12]);
|
||||
else
|
||||
if (strncmp(tmp, "libdir=", 7) == 0)
|
||||
error = trim(&libdir, &tmp[7]);
|
||||
if (strncmp(line, "libdir=", 7) == 0)
|
||||
error = trim(&libdir, &line[7]);
|
||||
else
|
||||
if (strncmp(tmp, "dl_dependency_libs=", 20) == 0)
|
||||
error = trim(&deplibs, &tmp[20]);
|
||||
if (strncmp(line, "dl_dependency_libs=", 20) == 0)
|
||||
error = trim(&deplibs, &line[20]);
|
||||
else
|
||||
if (strcmp(tmp, "installed=yes\n") == 0)
|
||||
if (strcmp(line, "installed=yes\n") == 0)
|
||||
installed = 1;
|
||||
else
|
||||
if (strcmp(tmp, "installed=no\n") == 0)
|
||||
if (strcmp(line, "installed=no\n") == 0)
|
||||
installed = 0;
|
||||
if (error)
|
||||
break;
|
||||
@ -1085,13 +1164,14 @@ lt_dlopen (filename)
|
||||
free(handle);
|
||||
if (!error)
|
||||
last_error = memory_error;
|
||||
free_vars(dlname, old_name, libdir, deplibs);
|
||||
free(name);
|
||||
free_vars(name, dir, dlname, old_name, libdir, deplibs);
|
||||
return 0;
|
||||
}
|
||||
handle->usage = 0;
|
||||
if (load_deplibs(handle, deplibs) == 0) {
|
||||
if (find_module(&handle, dir, libdir,
|
||||
newhandle = handle;
|
||||
/* find_module may replace newhandle */
|
||||
if (find_module(&newhandle, dir, libdir,
|
||||
dlname, old_name, installed)) {
|
||||
unload_deplibs(handle);
|
||||
error = 1;
|
||||
@ -1100,37 +1180,57 @@ lt_dlopen (filename)
|
||||
error = 1;
|
||||
if (error) {
|
||||
free(handle);
|
||||
free_vars(dlname, old_name, libdir, deplibs);
|
||||
free(name);
|
||||
free_vars(name, dir, dlname, old_name, libdir, deplibs);
|
||||
return 0;
|
||||
}
|
||||
if (handle != newhandle) {
|
||||
unload_deplibs(handle);
|
||||
}
|
||||
} else {
|
||||
/* not a libtool module */
|
||||
handle = (lt_dlhandle) malloc(sizeof(lt_dlhandle_t));
|
||||
if (!handle) {
|
||||
last_error = memory_error;
|
||||
if (dir)
|
||||
free(dir);
|
||||
return 0;
|
||||
}
|
||||
handle->usage = 0;
|
||||
if (tryall_dlopen(&handle, filename) && (!*dir
|
||||
|| (find_file(basename, user_search_path, 0, &handle)
|
||||
&& find_file(basename, getenv("LTDL_LIBRARY_PATH"),
|
||||
0, &handle)
|
||||
/* non-libtool modules don't have dependencies */
|
||||
handle->depcount = 0;
|
||||
handle->deplibs = 0;
|
||||
newhandle = handle;
|
||||
if (tryall_dlopen(&handle, filename)
|
||||
&& (!dir
|
||||
|| (!find_file(basename, user_search_path, 0, &handle)
|
||||
&& !find_file(basename,
|
||||
getenv("LTDL_LIBRARY_PATH"),
|
||||
0, &handle)
|
||||
#ifdef LTDL_SHLIBPATH_VAR
|
||||
&& find_file(basename, getenv(LTDL_SHLIBPATH_VAR),
|
||||
0, &handle)
|
||||
&& !find_file(basename,
|
||||
getenv(LTDL_SHLIBPATH_VAR),
|
||||
0, &handle)
|
||||
#endif
|
||||
))) {
|
||||
))) {
|
||||
free(handle);
|
||||
if (dir)
|
||||
free(dir);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (newhandle != handle) {
|
||||
free(handle);
|
||||
handle = newhandle;
|
||||
}
|
||||
if (!handle->usage) {
|
||||
handle->usage = 1;
|
||||
handle->name = name;
|
||||
handle->next = handles;
|
||||
handles = handle;
|
||||
}
|
||||
} else if (name)
|
||||
free(name);
|
||||
if (dir)
|
||||
free(dir);
|
||||
last_error = saved_error;
|
||||
return handle;
|
||||
}
|
||||
@ -1140,7 +1240,7 @@ lt_dlopenext (filename)
|
||||
const char *filename;
|
||||
{
|
||||
lt_dlhandle handle;
|
||||
char tmp[LTDL_FILENAME_MAX];
|
||||
char *tmp;
|
||||
int len;
|
||||
const char *saved_error = last_error;
|
||||
|
||||
@ -1158,8 +1258,9 @@ lt_dlopenext (filename)
|
||||
if (handle)
|
||||
return handle;
|
||||
/* try "filename.la" */
|
||||
if (len+3 >= sizeof(tmp)) {
|
||||
last_error = buffer_overflow_error;
|
||||
tmp = (char*) malloc(len+4);
|
||||
if (!tmp) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
strcpy(tmp, filename);
|
||||
@ -1167,23 +1268,31 @@ lt_dlopenext (filename)
|
||||
handle = lt_dlopen(tmp);
|
||||
if (handle) {
|
||||
last_error = saved_error;
|
||||
free(tmp);
|
||||
return handle;
|
||||
}
|
||||
#ifdef LTDL_SHLIB_EXT
|
||||
/* try "filename.EXT" */
|
||||
tmp[len] = '\0';
|
||||
if (len+strlen(shlib_ext) >= sizeof(tmp)) {
|
||||
last_error = buffer_overflow_error;
|
||||
return 0;
|
||||
}
|
||||
if (strlen(shlib_ext) > 3) {
|
||||
free(tmp);
|
||||
tmp = (char*) malloc(len + strlen(shlib_ext) + 1);
|
||||
if (!tmp) {
|
||||
last_error = memory_error;
|
||||
return 0;
|
||||
}
|
||||
strcpy(tmp, filename);
|
||||
} else
|
||||
tmp[len] = '\0';
|
||||
strcat(tmp, shlib_ext);
|
||||
handle = lt_dlopen(tmp);
|
||||
if (handle) {
|
||||
last_error = saved_error;
|
||||
free(tmp);
|
||||
return handle;
|
||||
}
|
||||
#endif
|
||||
last_error = file_not_found_error;
|
||||
free(tmp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1248,7 +1357,7 @@ lt_dlsym (handle, symbol)
|
||||
if (lensym + LTDL_SYMBOL_OVERHEAD < LTDL_SYMBOL_LENGTH)
|
||||
sym = lsym;
|
||||
else
|
||||
sym = malloc(lensym + LTDL_SYMBOL_OVERHEAD + 1);
|
||||
sym = (char*) malloc(lensym + LTDL_SYMBOL_OVERHEAD + 1);
|
||||
if (!sym) {
|
||||
last_error = buffer_overflow_error;
|
||||
return 0;
|
||||
|
||||
138
libtool.m4
vendored
138
libtool.m4
vendored
@ -21,19 +21,19 @@
|
||||
## configuration script generated by Autoconf, you may include it under
|
||||
## the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# serial 30 AM_PROG_LIBTOOL
|
||||
AC_DEFUN(AM_PROG_LIBTOOL,
|
||||
# serial 31 AC_PROG_LIBTOOL
|
||||
AC_DEFUN(AC_PROG_LIBTOOL,
|
||||
[AC_PREREQ(2.12.2)dnl
|
||||
AC_REQUIRE([AM_ENABLE_SHARED])dnl
|
||||
AC_REQUIRE([AM_ENABLE_STATIC])dnl
|
||||
AC_REQUIRE([AC_ENABLE_SHARED])dnl
|
||||
AC_REQUIRE([AC_ENABLE_STATIC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
|
||||
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AM_PROG_LD])dnl
|
||||
AC_REQUIRE([AM_PROG_NM])dnl
|
||||
AC_REQUIRE([AM_SYS_NM_PARSE])dnl
|
||||
AC_REQUIRE([AM_SYS_SYMBOL_UNDERSCORE])dnl
|
||||
AC_REQUIRE([AC_PROG_LD])dnl
|
||||
AC_REQUIRE([AC_PROG_NM])dnl
|
||||
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
|
||||
AC_REQUIRE([AC_SYS_SYMBOL_UNDERSCORE])dnl
|
||||
AC_REQUIRE([AC_PROG_LN_S])dnl
|
||||
dnl
|
||||
# Always use our own libtool.
|
||||
@ -83,7 +83,7 @@ case "$host" in
|
||||
;;
|
||||
|
||||
*-*-cygwin32*)
|
||||
AM_SYS_LIBTOOL_CYGWIN32
|
||||
AC_SYS_LIBTOOL_CYGWIN32
|
||||
;;
|
||||
|
||||
esac
|
||||
@ -116,15 +116,15 @@ LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
|
||||
exec 5>>./config.log
|
||||
])
|
||||
|
||||
# AM_ENABLE_SHARED - implement the --enable-shared flag
|
||||
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
|
||||
# AC_ENABLE_SHARED - implement the --enable-shared flag
|
||||
# Usage: AC_ENABLE_SHARED[(DEFAULT)]
|
||||
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
||||
# `yes'.
|
||||
AC_DEFUN(AM_ENABLE_SHARED,
|
||||
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_DEFUN(AC_ENABLE_SHARED,
|
||||
[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_ARG_ENABLE(shared,
|
||||
changequote(<<, >>)dnl
|
||||
<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT],
|
||||
<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
|
||||
changequote([, ])dnl
|
||||
[p=${PACKAGE-default}
|
||||
case "$enableval" in
|
||||
@ -142,26 +142,26 @@ no) enable_shared=no ;;
|
||||
IFS="$ac_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
|
||||
enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
|
||||
])
|
||||
|
||||
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
|
||||
AC_DEFUN(AM_DISABLE_SHARED,
|
||||
[AM_ENABLE_SHARED(no)])
|
||||
# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
|
||||
AC_DEFUN(AC_DISABLE_SHARED,
|
||||
[AC_ENABLE_SHARED(no)])
|
||||
|
||||
# AM_DISABLE_STATIC - set the default static flag to --disable-static
|
||||
AC_DEFUN(AM_DISABLE_STATIC,
|
||||
[AM_ENABLE_STATIC(no)])
|
||||
# AC_DISABLE_STATIC - set the default static flag to --disable-static
|
||||
AC_DEFUN(AC_DISABLE_STATIC,
|
||||
[AC_ENABLE_STATIC(no)])
|
||||
|
||||
# AM_ENABLE_STATIC - implement the --enable-static flag
|
||||
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
|
||||
# AC_ENABLE_STATIC - implement the --enable-static flag
|
||||
# Usage: AC_ENABLE_STATIC[(DEFAULT)]
|
||||
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
|
||||
# `yes'.
|
||||
AC_DEFUN(AM_ENABLE_STATIC,
|
||||
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_DEFUN(AC_ENABLE_STATIC,
|
||||
[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
|
||||
AC_ARG_ENABLE(static,
|
||||
changequote(<<, >>)dnl
|
||||
<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT],
|
||||
<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
|
||||
changequote([, ])dnl
|
||||
[p=${PACKAGE-default}
|
||||
case "$enableval" in
|
||||
@ -179,12 +179,12 @@ no) enable_static=no ;;
|
||||
IFS="$ac_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
|
||||
enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_PROG_LD - find the path to the GNU or non-GNU linker
|
||||
AC_DEFUN(AM_PROG_LD,
|
||||
# AC_PROG_LD - find the path to the GNU or non-GNU linker
|
||||
AC_DEFUN(AC_PROG_LD,
|
||||
[AC_ARG_WITH(gnu-ld,
|
||||
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
|
||||
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
|
||||
@ -284,10 +284,10 @@ else
|
||||
fi
|
||||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
AC_SUBST(LD)
|
||||
AM_PROG_LD_GNU
|
||||
AC_PROG_LD_GNU
|
||||
])
|
||||
|
||||
AC_DEFUN(AM_PROG_LD_GNU,
|
||||
AC_DEFUN(AC_PROG_LD_GNU,
|
||||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
|
||||
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
||||
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
|
||||
@ -297,8 +297,8 @@ else
|
||||
fi])
|
||||
])
|
||||
|
||||
# AM_PROG_NM - find the path to a BSD-compatible name lister
|
||||
AC_DEFUN(AM_PROG_NM,
|
||||
# AC_PROG_NM - find the path to a BSD-compatible name lister
|
||||
AC_DEFUN(AC_PROG_NM,
|
||||
[AC_MSG_CHECKING([for BSD-compatible nm])
|
||||
AC_CACHE_VAL(ac_cv_path_NM,
|
||||
[if test -n "$NM"; then
|
||||
@ -332,11 +332,11 @@ AC_MSG_RESULT([$NM])
|
||||
AC_SUBST(NM)
|
||||
])
|
||||
|
||||
# AM_SYS_NM_PARSE - Check for command ro grab the raw symbol name followed
|
||||
# AC_SYS_NM_PARSE - Check for command ro grab the raw symbol name followed
|
||||
# by C symbol name from nm.
|
||||
AC_DEFUN(AM_SYS_NM_PARSE,
|
||||
AC_DEFUN(AC_SYS_NM_PARSE,
|
||||
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AM_PROG_NM])dnl
|
||||
AC_REQUIRE([AC_PROG_NM])dnl
|
||||
# Check for command to grab the raw symbol name followed by C symbol from nm.
|
||||
AC_MSG_CHECKING([command to parse $NM output])
|
||||
AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
|
||||
@ -345,7 +345,7 @@ AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe,
|
||||
|
||||
changequote(,)dnl
|
||||
# Character class describing NM global symbol codes.
|
||||
ac_symcode='[BCDEGRSTU]'
|
||||
ac_symcode='[BCDEGRST]'
|
||||
|
||||
# Regexp to match symbols that can be accessed directly from C.
|
||||
ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
|
||||
@ -356,29 +356,23 @@ ac_symxfrm='\1 \1'
|
||||
# Define system-specific variables.
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
ac_symcode='[BCDTU]'
|
||||
ac_symcode='[BCDT]'
|
||||
;;
|
||||
cygwin32* | mingw32*)
|
||||
ac_symcode='[ABCDGISTW]'
|
||||
;;
|
||||
irix*)
|
||||
# Cannot use undefined symbols on IRIX because inlined functions mess us up.
|
||||
ac_symcode='[BCDEGRST]'
|
||||
;;
|
||||
solaris*)
|
||||
ac_symcode='[BDTU]'
|
||||
ac_symcode='[BDT]'
|
||||
;;
|
||||
esac
|
||||
|
||||
# If we're using GNU nm, then use its standard symbol codes.
|
||||
if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
|
||||
ac_symcode='[ABCDGISTUW]'
|
||||
fi
|
||||
|
||||
case "$host_os" in
|
||||
cygwin32* | mingw32*)
|
||||
# We do not want undefined symbols on cygwin32. The user must
|
||||
# arrange to define them via -l arguments.
|
||||
ac_symcode='[ABCDGISTW]'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
# Try without a prefix undercore, then with it.
|
||||
@ -386,11 +380,12 @@ for ac_symprfx in "" "_"; do
|
||||
|
||||
# Write the raw and C identifiers.
|
||||
# Unlike in ltconfig.in, we need $ac_symprfx before $ac_symxfrm here,
|
||||
# otherwise AM_SYS_SYMBOL_UNDERSCORE will always be false
|
||||
ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* $ac_symcode $ac_symprfx$ac_sympat$/$ac_symprfx$ac_symxfrm/p'"
|
||||
# otherwise AC_SYS_SYMBOL_UNDERSCORE will always be false
|
||||
ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]$ac_symcode[ ][ ]*$ac_symprfx$ac_sympat$/$ac_symprfx$ac_symxfrm/p'"
|
||||
|
||||
# Check to see that the pipe works correctly.
|
||||
ac_pipe_works=no
|
||||
rm -f conftest.$ac_ext
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -402,6 +397,7 @@ void nm_test_func(){}
|
||||
#endif
|
||||
int main(){nm_test_var='a';nm_test_func;return 0;}
|
||||
EOF
|
||||
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
# Now try to grab the symbols.
|
||||
ac_nlist=conftest.nm
|
||||
@ -411,14 +407,8 @@ EOF
|
||||
# Try sorting and uniquifying the output.
|
||||
if sort "$ac_nlist" | uniq > "$ac_nlist"T; then
|
||||
mv -f "$ac_nlist"T "$ac_nlist"
|
||||
ac_wcout=`wc "$ac_nlist" 2>/dev/null`
|
||||
changequote(,)dnl
|
||||
ac_count=`echo "X$ac_wcout" | sed -e 's,^X,,' -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'`
|
||||
changequote([,])dnl
|
||||
(test "$ac_count" -ge 0) 2>/dev/null || ac_count=-1
|
||||
else
|
||||
rm -f "$ac_nlist"T
|
||||
ac_count=-1
|
||||
fi
|
||||
|
||||
# Make sure that we snagged all the symbols we need.
|
||||
@ -438,18 +428,16 @@ EOF
|
||||
# define lt_ptr_t void *
|
||||
#else
|
||||
# define lt_ptr_t char *
|
||||
# define const
|
||||
#endif
|
||||
|
||||
/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */
|
||||
int dld_preloaded_symbol_count = $ac_count;
|
||||
|
||||
/* The mapping between symbol names and symbols. */
|
||||
struct {
|
||||
char *name;
|
||||
const struct {
|
||||
const char *name;
|
||||
lt_ptr_t address;
|
||||
}
|
||||
changequote(,)dnl
|
||||
dld_preloaded_symbols[] =
|
||||
lt_preloaded_symbols[] =
|
||||
changequote([,])dnl
|
||||
{
|
||||
EOF
|
||||
@ -512,17 +500,17 @@ fi
|
||||
AC_MSG_RESULT($ac_result)
|
||||
])
|
||||
|
||||
# AM_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
|
||||
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32,
|
||||
# AC_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
|
||||
AC_DEFUN(AC_SYS_LIBTOOL_CYGWIN32,
|
||||
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
AC_CHECK_TOOL(AS, as, false)
|
||||
])
|
||||
|
||||
# AM_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
|
||||
# AC_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols
|
||||
# with an underscore?
|
||||
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE,
|
||||
[AC_REQUIRE([AM_PROG_NM])dnl
|
||||
AC_REQUIRE([AM_SYS_NM_PARSE])dnl
|
||||
AC_DEFUN(AC_SYS_SYMBOL_UNDERSCORE,
|
||||
[AC_REQUIRE([AC_PROG_NM])dnl
|
||||
AC_REQUIRE([AC_SYS_NM_PARSE])dnl
|
||||
AC_MSG_CHECKING([for _ prefix in compiled symbols])
|
||||
AC_CACHE_VAL(ac_cv_sys_symbol_underscore,
|
||||
[ac_cv_sys_symbol_underscore=no
|
||||
@ -557,3 +545,15 @@ AC_MSG_RESULT($ac_cv_sys_symbol_underscore)
|
||||
USE_SYMBOL_UNDERSCORE=${ac_cv_sys_symbol_underscore=no}
|
||||
AC_SUBST(USE_SYMBOL_UNDERSCORE)dnl
|
||||
])
|
||||
|
||||
dnl old names
|
||||
AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
|
||||
AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
|
||||
AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
|
||||
AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
|
||||
AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
|
||||
AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
|
||||
AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
|
||||
AC_DEFUN(AM_SYS_NM_PARSE, [indir([AC_SYS_NM_PARSE])])dnl
|
||||
AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, [indir([AC_SYS_SYMBOL_UNDERSCORE])])dnl
|
||||
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32, [indir([AC_SYS_LIBTOOL_CYGWIN32])])dnl
|
||||
|
||||
@ -184,7 +184,7 @@ else
|
||||
fi
|
||||
|
||||
if test -z "$automake"; then
|
||||
if egrep '^AM_PROG_LIBTOOL' configure.in >/dev/null 2>&1; then :
|
||||
if egrep '^A[MC]_PROG_LIBTOOL' configure.in >/dev/null 2>&1; then :
|
||||
else
|
||||
echo "Remember to add \`AM_PROG_LIBTOOL' to \`configure.in'."
|
||||
fi
|
||||
@ -199,15 +199,15 @@ if test -z "$automake"; then
|
||||
updatemsg="add the contents of \`$libtool_m4' to \`aclocal.m4'"
|
||||
fi
|
||||
|
||||
if egrep '^AC_DEFUN\(AM_PROG_LIBTOOL' aclocal.m4 >/dev/null 2>&1; then
|
||||
if egrep '^AC_DEFUN\(A[MC]_PROG_LIBTOOL' aclocal.m4 >/dev/null 2>&1; then
|
||||
# Check the version number on libtool.m4 and the one used in aclocal.m4.
|
||||
instserial=`grep '^# serial ' $libtool_m4 | grep 'AM_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
|
||||
instserial=`grep '^# serial ' $libtool_m4 | grep 'A[MC]_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
|
||||
|
||||
if test -z "$instserial"; then
|
||||
echo "$progname: warning: no serial number on \`$libtool_m4'" 1>&2
|
||||
else
|
||||
# If the local macro has no serial number, we assume it's ancient.
|
||||
localserial=`grep '^# serial ' aclocal.m4 | grep 'AM_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
|
||||
localserial=`grep '^# serial ' aclocal.m4 | grep 'A[MC]_PROG_LIBTOOL' | sed -e 's/^# serial \([0-9][0-9]*\).*$/\1/; q'`
|
||||
|
||||
test -z "$localserial" && localserial=0
|
||||
|
||||
|
||||
144
ltconfig.in
144
ltconfig.in
@ -106,7 +106,7 @@ if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
|
||||
exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
|
||||
else
|
||||
# Try using printf.
|
||||
echo='printf %s\n'
|
||||
echo='printf "%s\n"'
|
||||
if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
|
||||
test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
|
||||
# Cool, printf works
|
||||
@ -999,11 +999,14 @@ allow_undefined_flag=
|
||||
no_undefined_flag=
|
||||
need_lib_prefix=unknown
|
||||
need_version=unknown
|
||||
# when you set need_version to no, make sure it does not cause -set_version
|
||||
# flags to be left without arguments
|
||||
archive_cmds=
|
||||
archive_sym_cmds=
|
||||
old_archive_from_new_cmds=
|
||||
export_dynamic_flag_spec=
|
||||
whole_archive_flag_spec=
|
||||
thread_safe_flag_spec=
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
@ -1041,7 +1044,7 @@ if test "$with_gnu_ld" = yes; then
|
||||
;;
|
||||
|
||||
sunos4*)
|
||||
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
|
||||
wlarc=
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
@ -1050,7 +1053,7 @@ if test "$with_gnu_ld" = yes; then
|
||||
|
||||
beos*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
archive_cmds='$CC -nostart ${wl}-soname $wl$soname -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$CC -nostart ${wl}-soname $wl$soname -o $lib $libobjs $deplibs $linkopts'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
@ -1067,30 +1070,30 @@ if test "$with_gnu_ld" = yes; then
|
||||
(cd $objdir && $CC -c $soname-ltdll.c)~
|
||||
echo EXPORTS > $objdir/$soname-def~
|
||||
$DLLTOOL --export-all --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
||||
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
||||
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
||||
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs'
|
||||
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
|
||||
|
||||
archive_sym_cmds='rm -f $objdir/$soname-ltdll.c~
|
||||
sed -e "/^# \/\* ltdll.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
|
||||
(cd $objdir && $CC -c $soname-ltdll.c)~
|
||||
echo EXPORTS > $objdir/$soname-def~
|
||||
cat "$export_symbols" >> $objdir/$soname-def~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
||||
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs~
|
||||
$CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
|
||||
$DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
|
||||
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs'
|
||||
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
|
||||
|
||||
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
|
||||
old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
|
||||
;;
|
||||
|
||||
*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib $libobjs $deplibs'
|
||||
archive_sym_cmds='$CC -shared ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib $libobjs $deplibs $linkopts'
|
||||
archive_sym_cmds='$CC -shared ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib $libobjs $deplibs $linkopts'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
@ -1109,8 +1112,8 @@ else
|
||||
aix3*)
|
||||
allow_undefined_flag=unsupported
|
||||
archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~
|
||||
$LD -o $objdir/$soname $libobjs $deplibs -bE:$lib.exp -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
|
||||
archive_sym_cmds='$LD -o $objdir/$soname $libobjs $deplibs -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
|
||||
$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$lib.exp -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
|
||||
archive_sym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
@ -1125,19 +1128,19 @@ else
|
||||
allow_undefined_flag=
|
||||
if test "$with_gcc" = yes; then
|
||||
if strings `${CC} -print-prog-name=collect2` | \
|
||||
grep resolve_lib_name >/dev/null
|
||||
grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
hardcode_direct=yes
|
||||
# We have reworked collect2
|
||||
hardcode_direct=yes
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
archive_cmds='$CC -shared ${wl}-bnoentry -o $objdir/$soname $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared ${wl}-bnoentry -o $objdir/$soname $libobjs $deplibs $linkopts'
|
||||
else
|
||||
archive_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~
|
||||
$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry'
|
||||
archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry'
|
||||
$CC -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry'
|
||||
archive_sym_cmds='$CC -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry'
|
||||
hardcode_direct=yes
|
||||
fi
|
||||
hardcode_minus_L=yes
|
||||
@ -1164,7 +1167,7 @@ else
|
||||
# Tell ltmain to make .lib files, not .a files.
|
||||
libext=lib
|
||||
# FIXME: Setting linknames here is a bad hack.
|
||||
archive_cmds='$CC -o $lib $libobjs `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
|
||||
archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
|
||||
# The linker will automatically build a .lib file if we build a DLL.
|
||||
old_archive_from_new_cmds='true'
|
||||
# FIXME: Should let the user specify the lib program.
|
||||
@ -1182,7 +1185,7 @@ else
|
||||
# does not break anything, and helps significantly (at the cost of a little
|
||||
# extra space).
|
||||
freebsd2.2*)
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs /usr/lib/c++rt0.o'
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=no # verified on 2.2.6
|
||||
@ -1191,7 +1194,7 @@ else
|
||||
|
||||
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
|
||||
freebsd2*)
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
hardcode_shlibpath_var=no
|
||||
@ -1199,7 +1202,7 @@ else
|
||||
|
||||
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
|
||||
freebsd*)
|
||||
archive_cmds='$CC -shared -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=no
|
||||
@ -1207,7 +1210,7 @@ else
|
||||
;;
|
||||
|
||||
hpux9*)
|
||||
archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname $libobjs $deplibs~test $objdir/$soname = $lib || mv $objdir/$soname $lib'
|
||||
archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib'
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
@ -1215,7 +1218,7 @@ else
|
||||
;;
|
||||
|
||||
hpux10* | hpux11*)
|
||||
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
@ -1224,18 +1227,19 @@ else
|
||||
|
||||
irix5* | irix6*)
|
||||
if test "$with_gcc" = yes; then
|
||||
archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` $libobjs $deplibs $linkopts'
|
||||
else
|
||||
archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring $libobjs $deplibs'
|
||||
archive_cmds='$LD -shared -o $lib -soname $soname `test -n "$verstring" && echo -set_version $verstring` $libobjs $deplibs $linkopts'
|
||||
fi
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
|
||||
netbsd*)
|
||||
if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs' # a.out
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out
|
||||
else
|
||||
archive_cmds='$LD -shared -o $lib $libobjs $deplibs' # ELF
|
||||
archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF
|
||||
fi
|
||||
hardcode_libdir_flag_spec='${wl}-R$libdir'
|
||||
hardcode_direct=yes
|
||||
@ -1243,7 +1247,7 @@ else
|
||||
;;
|
||||
|
||||
openbsd*)
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_shlibpath_var=no
|
||||
@ -1253,24 +1257,24 @@ else
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
allow_undefined_flag=unsupported
|
||||
archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $objdir/$libname.def'
|
||||
archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
|
||||
old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
|
||||
;;
|
||||
|
||||
osf3* | osf4*)
|
||||
if test "$with_gcc" = yes; then
|
||||
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
|
||||
archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` $libobjs $deplibs $linkopts'
|
||||
else
|
||||
allow_undefined_flag=' -expect_unresolved \*'
|
||||
archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring $libobjs $deplibs'
|
||||
archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname `test -n "$verstring" && echo -set_version $verstring` $libobjs $deplibs $linkopts'
|
||||
fi
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
|
||||
sco3.2v5*)
|
||||
archive_cmds='$LD -G -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
|
||||
@ -1278,9 +1282,9 @@ else
|
||||
no_undefined_flag=' -z text'
|
||||
# $CC -shared without GNU ld will not create a library from C++
|
||||
# object files and a static libstdc++, better avoid it by now
|
||||
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs'
|
||||
archive_sym_cmds='$echo "{ global:" > $lib.exp~sed $export_symbols -e "s/.*/\1;/" >> $lib.exp~$echo "local: * }" >> $lib.exp~
|
||||
$LD -G${allow_undefined_flag} -M $export_symbols -h $soname -o $lib $libobjs $deplibs~$rm $lib.exp'
|
||||
archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
|
||||
archive_sym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
|
||||
$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_shlibpath_var=no
|
||||
;;
|
||||
@ -1289,9 +1293,9 @@ else
|
||||
# Why do we need -Bstatic? To avoid inter-library dependencies, maybe...
|
||||
if test "$with_gcc" = yes; then
|
||||
# Use -fPIC here because libgcc is multilibbed
|
||||
archive_cmds='$CC -shared ${wl}-Bstatic -fPIC -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$CC -shared ${wl}-Bstatic -fPIC -o $lib $libobjs $deplibs $linkopts'
|
||||
else
|
||||
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
|
||||
fi
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
@ -1300,7 +1304,7 @@ else
|
||||
;;
|
||||
|
||||
sysv4.3*)
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
hardcode_shlibpath_var=no
|
||||
@ -1308,7 +1312,7 @@ else
|
||||
;;
|
||||
|
||||
uts4*)
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
@ -1316,7 +1320,7 @@ else
|
||||
;;
|
||||
|
||||
dgux*)
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs'
|
||||
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
@ -1402,7 +1406,7 @@ fi
|
||||
for ac_symprfx in "" "_"; do
|
||||
|
||||
# Write the raw and C identifiers.
|
||||
global_symbol_pipe="sed -n -e 's/^.* $symcode $ac_symprfx$sympat$/$symxfrm/p'"
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]$symcode[ ][ ]*$ac_symprfx$sympat$/$symxfrm/p'"
|
||||
|
||||
# Check to see that the pipe works correctly.
|
||||
pipe_works=no
|
||||
@ -1604,7 +1608,7 @@ bsdi4*)
|
||||
soname_spec='${libname}.so'
|
||||
finish_cmds='PATH="$PATH:/sbin" ldconfig $libdir'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
check_shared_deplibs_method='file_magic ELF 32-bit LSB shared object'
|
||||
deplibs_check_method='file_magic ELF 32-bit LSB shared object'
|
||||
sys_lib_search_path="/shlib /usr/lib /usr/local/lib"
|
||||
;;
|
||||
|
||||
@ -1656,6 +1660,8 @@ hpux9* | hpux10* | hpux11*)
|
||||
# link against other versions.
|
||||
dynamic_linker="$host_os dld.sl"
|
||||
version_type=sunos
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
shlibpath_var=SHLIB_PATH
|
||||
library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
|
||||
soname_spec='${libname}${release}.sl$major'
|
||||
@ -1666,15 +1672,28 @@ hpux9* | hpux10* | hpux11*)
|
||||
irix5*)
|
||||
version_type=osf
|
||||
soname_spec='${libname}${release}.so'
|
||||
library_names_spec='${libname}${release}.so$versuffix $libname.so'
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" # or should it be pass_all?
|
||||
file_magic_command=file
|
||||
;;
|
||||
|
||||
irix6*)
|
||||
version_type=osf
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
soname_spec='${libname}${release}.so'
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
|
||||
shlibpath_var=LD_LIBRARYN32_PATH
|
||||
case "$LD" in # libtool.m4 will add one of these switches to LD
|
||||
*-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
|
||||
*-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
|
||||
*-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
|
||||
*) libsuff= shlibsuff= libmagic=never-match;;
|
||||
esac
|
||||
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
|
||||
sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
|
||||
deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" # or should it be pass_all?
|
||||
file_magic_command=file
|
||||
;;
|
||||
|
||||
# No shared lib support for Linux oldld, aout, or coff.
|
||||
@ -1721,6 +1740,10 @@ netbsd*)
|
||||
|
||||
openbsd*)
|
||||
version_type=sunos
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
fi
|
||||
library_names_spec='${libname}${release}.so$versuffix'
|
||||
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
@ -1767,6 +1790,9 @@ sunos4*)
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
|
||||
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
need_lib_prefix=no
|
||||
fi
|
||||
need_version=yes
|
||||
;;
|
||||
|
||||
@ -1784,13 +1810,15 @@ sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
|
||||
uts4*)
|
||||
version_type=linux
|
||||
library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so$major $libname.so'
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
||||
soname_spec='${libname}${release}.so$major'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
;;
|
||||
|
||||
dgux*)
|
||||
version_type=linux
|
||||
need_lib_prefix=no
|
||||
need_version=no
|
||||
library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
|
||||
soname_spec='${libname}${release}.so$major'
|
||||
shlibpath_var=LD_LIBRARY_PATH
|
||||
@ -1852,20 +1880,23 @@ if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
|
||||
fi
|
||||
LTSHELL="$SHELL"
|
||||
|
||||
LTCONFIG_VERSION="$VERSION"
|
||||
|
||||
# Only quote variables if we're using ltmain.sh.
|
||||
case "$ltmain" in
|
||||
*.sh)
|
||||
# Now quote all the things that may contain metacharacters.
|
||||
for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \
|
||||
old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL VERSION \
|
||||
old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
|
||||
reload_flag reload_cmds wl \
|
||||
pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
|
||||
whole_archive_flag_spec libname_spec library_names_spec soname_spec \
|
||||
thread_safe_flag_spec whole_archive_flag_spec libname_spec \
|
||||
library_names_spec soname_spec \
|
||||
RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
|
||||
old_postuninstall_cmds archive_cmds archive_sym_cmds postinstall_cmds postuninstall_cmds \
|
||||
file_magic_command deplibs_check_method allow_undefined_flag no_undefined_flag \
|
||||
finish_cmds finish_eval global_symbol_pipe \
|
||||
hardcode_libdir_flag_spec hardcode_libdir_separator sys_lib_search_path_spec \
|
||||
finish_cmds finish_eval global_symbol_pipe hardcode_libdir_flag_spec \
|
||||
hardcode_libdir_separator sys_lib_search_path_spec \
|
||||
compiler_c_o compiler_o_lo need_locks; do
|
||||
|
||||
case "$var" in
|
||||
@ -1965,7 +1996,7 @@ cat <<EOF >> "$cfgfile"
|
||||
# debugging $progname, is in ./config.log if it exists.
|
||||
|
||||
# The version of $progname that generated this script.
|
||||
LTCONFIG_VERSION="$VERSION"
|
||||
LTCONFIG_VERSION=$LTCONFIG_VERSION
|
||||
|
||||
# Shell to use when invoking shell scripts.
|
||||
SHELL=$LTSHELL
|
||||
@ -2050,6 +2081,9 @@ export_dynamic_flag_spec=$export_dynamic_flag_spec
|
||||
# Compiler flag to generate shared objects directly from archives.
|
||||
whole_archive_flag_spec=$whole_archive_flag_spec
|
||||
|
||||
# Compiler flag to generate thread-safe objects.
|
||||
thread_safe_flag_spec=$thread_safe_flag_spec
|
||||
|
||||
# Library versioning type.
|
||||
version_type=$version_type
|
||||
|
||||
|
||||
28
ltmain.in
28
ltmain.in
@ -1501,8 +1501,6 @@ compiler."
|
||||
fi
|
||||
|
||||
name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
|
||||
# FIXME: libraries without lib prefix require direct hardcoding
|
||||
# i.e. for need_lib_prefix=no we require hardcode_direct=yes
|
||||
|
||||
if test -z "$libdir"; then
|
||||
# It is a libtool convenience library.
|
||||
@ -1688,8 +1686,6 @@ compiler."
|
||||
deplibs=`$echo "X$deplibs" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"`
|
||||
fi
|
||||
|
||||
# FIXME: shlibpath must be set in archive_cmds
|
||||
|
||||
# Restore the variables
|
||||
link_dir=$link_dir_save
|
||||
link_command=$link_command_save
|
||||
@ -1971,6 +1967,9 @@ EOF
|
||||
eval cmds=\"$archive_cmds\"
|
||||
fi
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
|
||||
if test -n "$shlibpath"; then
|
||||
eval "export $shlibpath_var='$shlibpath\$$shlibpath_var'"
|
||||
fi
|
||||
for cmd in $cmds; do
|
||||
IFS="$save_ifs"
|
||||
$show "$cmd"
|
||||
@ -2687,8 +2686,8 @@ static const void *lt_preloaded_setup() {
|
||||
# Delete the old output file.
|
||||
$run $rm $output
|
||||
|
||||
if test -n "$compile_shlibpath"; then
|
||||
compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command"
|
||||
if test -n "$shlibpath"; then
|
||||
compile_command="$shlibpath_var=\"$shlibpath\$$shlibpath_var\" $compile_command"
|
||||
fi
|
||||
|
||||
if test -n "$runpath_var"; then
|
||||
@ -2964,6 +2963,12 @@ libdir='$install_libdir'
|
||||
link_command=\"$link_command\"
|
||||
link_dir=\"$link_dir\"\
|
||||
"
|
||||
|
||||
$rm "$output_objdir/$outputname"i
|
||||
sed -e 's/^installed=no$/installed=yes/' \
|
||||
-e "s%^dependency_libs=\(.*\)%dependency_libs='$newdependency_libs'%" \
|
||||
-e 's/^link_\(.*\)//' \
|
||||
< "$output" > "$output_objdir/$outputname"i || exit 1
|
||||
fi
|
||||
|
||||
# Do a symbolic link so that the libtool archive can be found in
|
||||
@ -3229,7 +3234,7 @@ link_dir=\"$link_dir\"\
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
fi
|
||||
|
||||
|
||||
# Replace all uninstalled libtool libraries with the installed ones
|
||||
newdependency_libs=
|
||||
for deplib in $dependency_libs; do
|
||||
@ -3248,19 +3253,12 @@ link_dir=\"$link_dir\"\
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# Install the pseudo-library for information purposes.
|
||||
name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
|
||||
instname="$dir/$name"i
|
||||
$show "Creating $instname"
|
||||
$rm "$instname"
|
||||
sed -e 's/^installed=no$/installed=yes/' \
|
||||
-e "s%^dependency_libs=\(.*\)%dependency_libs='$newdependency_libs'%" \
|
||||
-e 's/^link_\(.*\)//' "$file" > "$instname"
|
||||
$show "$install_prog $instname $destdir/$name"
|
||||
$run eval "$install_prog $instname $destdir/$name" || exit $?
|
||||
$show "$rm $instname"
|
||||
$rm "$instname"
|
||||
|
||||
# Maybe install the static library, too.
|
||||
test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
|
||||
|
||||
@ -16,11 +16,11 @@ libfoo2_la_LDFLAGS = $(LIBADD_M) -module
|
||||
|
||||
noinst_HEADERS = foo.h
|
||||
|
||||
bin_PROGRAMS = mdemo mdemo.debug
|
||||
bin_PROGRAMS = mdemo mdemo.static
|
||||
|
||||
../libltdl/libltdlc.la: ../libtool ../libltdl/libtool \
|
||||
../libltdl/libltdl.la: ../libtool ../libltdl/libtool \
|
||||
$(srcdir)/../libltdl/ltdl.c $(srcdir)/../libltdl/ltdl.h
|
||||
(cd ../libltdl; $(MAKE) libltdlc.la)
|
||||
(cd ../libltdl; $(MAKE) libltdl.la)
|
||||
# Without the following line, the check may fail if libltdl/libtool is
|
||||
# removed after libltdl is configured
|
||||
../libltdl/libtool:
|
||||
@ -30,11 +30,11 @@ mdemo_SOURCES = main.c
|
||||
mdemo_LDFLAGS = -export-dynamic ## FIXME: remove this when libtool and libltdl
|
||||
## handle dependencies of modules
|
||||
## The quotes around -dlopen below fool automake into accepting it
|
||||
mdemo_LDADD = ../libltdl/libltdlc.la "-dlopen" foo1.la "-dlopen" libfoo2.la
|
||||
mdemo_DEPENDENCIES = ../libltdl/libltdlc.la foo1.la libfoo2.la
|
||||
mdemo_LDADD = ../libltdl/libltdl.la "-dlopen" foo1.la "-dlopen" libfoo2.la
|
||||
mdemo_DEPENDENCIES = ../libltdl/libltdl.la foo1.la libfoo2.la
|
||||
|
||||
# Create an easier-to-debug version of mdemo.
|
||||
mdemo_debug_SOURCES = $(mdemo_SOURCES)
|
||||
mdemo_debug_LDFLAGS = $(STATIC) $(mdemo_LDFLAGS)
|
||||
mdemo_debug_LDADD = $(mdemo_LDADD)
|
||||
mdemo_debug_DEPENDENCIES = $(mdemo_DEPENDENCIES)
|
||||
# Create a statically linked version of mdemo.
|
||||
mdemo_static_SOURCES = $(mdemo_SOURCES)
|
||||
mdemo_static_LDFLAGS = $(STATIC) $(mdemo_LDFLAGS)
|
||||
mdemo_static_LDADD = $(mdemo_LDADD)
|
||||
mdemo_static_DEPENDENCIES = $(mdemo_DEPENDENCIES)
|
||||
|
||||
@ -20,9 +20,9 @@ fi
|
||||
echo "Executing uninstalled programs in ../demo"
|
||||
|
||||
status=0
|
||||
if ../demo/hell.debug| grep 'Welcome to GNU Hell'; then :
|
||||
if ../demo/hell.static| grep 'Welcome to GNU Hell'; then :
|
||||
else
|
||||
echo "$0: cannot execute ../demo/hell.debug" 1>&2
|
||||
echo "$0: cannot execute ../demo/hell.static" 1>&2
|
||||
status=1
|
||||
fi
|
||||
|
||||
|
||||
@ -25,9 +25,9 @@ $make install || exit 1
|
||||
|
||||
echo "= Executing installed programs"
|
||||
status=0
|
||||
if $prefix/bin/hell.debug | grep 'Welcome to GNU Hell'; then :
|
||||
if $prefix/bin/hell.static | grep 'Welcome to GNU Hell'; then :
|
||||
else
|
||||
echo "$0: cannot execute $prefix/bin/hell.debug" 1>&2
|
||||
echo "$0: cannot execute $prefix/bin/hell.static" 1>&2
|
||||
status=1
|
||||
fi
|
||||
|
||||
|
||||
@ -55,7 +55,8 @@ fi
|
||||
|
||||
if $prefix/bin/hell | grep 'GNU Hell'; then :
|
||||
else
|
||||
echo "$0: warning: cannot execute $prefix/bin/hell" 1>&2
|
||||
echo "$0: cannot execute $prefix/bin/hell" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "= Running make uninstall in ../demo"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# mdemo-conf.test - try configuring the ../libltdl and ../mdemo subdirectories
|
||||
# mdemo-conf.test - try configuring the ../mdemo subdirectory
|
||||
|
||||
# Test script header.
|
||||
need_prefix=yes
|
||||
|
||||
@ -20,9 +20,9 @@ fi
|
||||
echo "Executing uninstalled programs in ../mdemo"
|
||||
|
||||
status=0
|
||||
if ../mdemo/mdemo.debug ../mdemo/foo1.la ../mdemo/libfoo2.la; then :
|
||||
if ../mdemo/mdemo.static ../mdemo/foo1.la ../mdemo/libfoo2.la; then :
|
||||
else
|
||||
echo "$0: cannot execute ../mdemo/mdemo.debug" 1>&2
|
||||
echo "$0: cannot execute ../mdemo/mdemo.static" 1>&2
|
||||
status=1
|
||||
fi
|
||||
|
||||
|
||||
@ -26,9 +26,9 @@ $make install || exit 1
|
||||
echo "= Executing installed programs"
|
||||
|
||||
status=0
|
||||
if $prefix/bin/mdemo.debug $prefix/lib/foo1.la $prefix/lib/libfoo2.la; then :
|
||||
if $prefix/bin/mdemo.static $prefix/lib/foo1.la $prefix/lib/libfoo2.la; then :
|
||||
else
|
||||
echo "$0: cannot execute $prefix/bin/mdemo.debug" 1>&2
|
||||
echo "$0: cannot execute $prefix/bin/mdemo.static" 1>&2
|
||||
status=1
|
||||
fi
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# mdemo-conf.test - try configuring the ../libltdl and ../mdemo subdirectories
|
||||
# mdemo-conf.test - try configuring the ../mdemo subdirectory
|
||||
|
||||
# Test script header.
|
||||
need_prefix=yes
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# mdemo-conf.test - try configuring the ../libltdl and ../mdemo subdirectories
|
||||
# mdemo-conf.test - try configuring the ../mdemo subdirectory
|
||||
|
||||
# Test script header.
|
||||
need_prefix=yes
|
||||
|
||||
@ -31,15 +31,15 @@ make || exit 1
|
||||
|
||||
# Try running the program.
|
||||
echo "= Executing uninstalled programs"
|
||||
if ./hell.debug | grep 'GNU Hell'; then :
|
||||
if ./mdemo.static foo1.la libfoo2.la; then :
|
||||
else
|
||||
echo "$0: cannot execute ./hell.debug" 1>&2
|
||||
echo "$0: cannot execute ./mdemo.static" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ./hell | grep 'GNU Hell'; then :
|
||||
if ./mdemo foo1.la libfoo2.la; then :
|
||||
else
|
||||
echo "$0: cannot execute ./hell" 1>&2
|
||||
echo "$0: cannot execute ./mdemo" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -47,15 +47,16 @@ echo "= Running make install in ../mdemo"
|
||||
make install || exit 1
|
||||
|
||||
echo "= Executing installed programs"
|
||||
if $prefix/bin/hell.debug | grep 'GNU Hell'; then :
|
||||
if $prefix/bin/mdemo.static $prefix/lib/foo1.la $prefix/lib/libfoo2.la; then :
|
||||
else
|
||||
echo "$0: cannot execute $prefix/bin/hell.debug" 1>&2
|
||||
echo "$0: cannot execute $prefix/bin/mdemo.static" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if $prefix/bin/hell | grep 'GNU Hell'; then :
|
||||
if $prefix/bin/mdemo $prefix/lib/foo1.la $prefix/lib/libfoo2.la; then :
|
||||
else
|
||||
echo "$0: warning: cannot execute $prefix/bin/hell" 1>&2
|
||||
echo "$0: cannot execute $prefix/bin/mdemo" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "= Running make uninstall in ../mdemo"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user