Commit Graph

264 Commits

Author SHA1 Message Date
Ralf Wildenhues
d74ec0eeb3 * doc/libtool.texi (LT_INIT, Using libltdl)
(Module loaders for libltdl, Multiple dependencies)
(libtool script contents): Fix several typos (trivial change).
2004-09-30 21:27:30 +00:00
Ralf Wildenhues
6cc733bc35 * m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): move symcode calculation
to correct place.
* doc/libtool.texi (libtool script contents): update description
of global_symbol_to_cdecl.
2004-09-23 12:26:40 +00:00
Gary V. Vaughan
0158428875 Add a new `-weak' flag to tell libtool when not to propogate
dependency libraries from dlpreopened modules to libraries:

* config/ltmain.in: Support new -weak link mode option.  Adjust
help message.
* libltdl/Makefile.am (libltdlc_la_LDFLAGS): Use it.
* doc/libtool.texi (Linking with dlopened modules): Document it.
(Link mode): Mention -weak.
* NEWS: Updated.
2004-08-29 16:05:34 +00:00
Gary V. Vaughan
1a2b98ffdb * doc/libtool.texi (Cheap tricks): Escape the `@' for texinfo. 2004-08-27 14:27:35 +00:00
Gary V. Vaughan
f9d3dd3c1c * doc/libtool.texi (Cheap tricks): Fix the instructions for making
a ltmain.in wrapping libtool in light of recent changes to the
version checking code.
2004-08-27 13:12:51 +00:00
Gary V. Vaughan
388b7626dc The Grand Renaming. In preparation for libtool-2.0, move all of
the many and varied m4 symbols accumulated by libtool over the
years, considering also that modern autoconf can detect unexpanded
macros even without AC in the macro name:

* bootstrap: Remove libltdl/config.h from previous releases.
* m4/libtool.m4, m4/ltdl.m4, doc/libtool.texi: Basically, run a
giant sed transformation like this:
s,AC_LIB_LTDL,LTDL_INIT,g
s,AC_LIBLTDL_CONVENIENCE,LTDL_CONVENIENCE,g
s,AC_LIBLTDL_INSTALLABLE,LTDL_INSTALLABLE,g
s,AC_WITH_LTDL,LT_WITH_LTDL,g
s,AC_LTDL_ENABLE_INSTALL,_LT_ENABLE_INSTALL,g
s,AC_DEPLIBS_CHECK_METHOD,_LT_CHECK_MAGIC_METHOD,g
s,AC_LIBTOOL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_OBJDIR,_LT_CHECK_OBJDIR,g
s,AC_LTDL_DLPREOPEN,_LT_CHECK_DLPREOPEN,g
s,AC_LIBTOOL_SYS_MAX_CMD_LEN,LT_CMD_MAX_LEN,g
s,AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,_LT_CMD_GLOBAL_SYMBOLS,g
s,AC_LIBTOOL_SYS_OLD_ARCHIVE,_LT_CMD_OLD_ARCHIVE,g
s,AC_PROG_LD_RELOAD_FLAG,_LT_CMD_RELOAD,g
s,AC_LIBTOOL_SYS_LIB_STRIP,_LT_CMD_STRIPLIB,g
s,AC_CHECK_LIBM,LT_LIB_M,g
s,AC_LTDL_DLLIB,LT_LIB_DLLOAD,g
s,AC_LIBTOOL_COMPILER_OPTION,_LT_COMPILER_OPTION,g
s,AC_LIBTOOL_PROG_CC_C_O,_LT_COMPILER_C_O,g
s,AC_LIBTOOL_PROG_COMPILER_NO_RTTI,_LT_COMPILER_NO_RTTI,g
s,AC_LIBTOOL_PROG_COMPILER_PIC,_LT_COMPILER_PIC,g
s,AC_LIBTOOL_SYS_HARD_LINK_LOCKS,_LT_COMPILER_FILE_LOCKS,g
s,AC_LTDL_DLSYM_USCORE,LT_FUNC_DLSYM_USCORE,g
s,AC_LIBTOOL_LINKER_OPTION,_LT_LINKER_OPTION,g
s,AC_LIBTOOL_PROG_LD_SHLIBS,_LT_LINKER_SHLIBS,g
s,AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH,_LT_LINKER_HARDCODE_LIBPATH,g
s,AC_PATH_MAGIC,_LT_PATH_MAGIC,g
s,AC_PATH_TOOL_PREFIX,_LT_PATH_TOOL_PREFIX,g
s,AC_PROG_LD,LT_PATH_LD,g
s,AC_PROG_LD_GNU,_LT_PATH_LD_GNU,g
s,AC_PROG_NM,LT_PATH_NM,g
s,AC_LTDL_SYS_DLOPEN_DEPLIBS,LT_SYS_DLOPEN_DEPLIBS,g
s,AC_LIBTOOL_DLOPEN_SELF,LT_SYS_DLOPEN_SELF,g
s,AC_LIBTOOL_POSTDEP_PREDEP,_LT_SYS_HIDDEN_LIBDEPS,g
s,AC_LTDL_SYSSEARCHPATH,LT_SYS_DLSEARCH_PATH,g
s,AC_LTDL_SHLIBEXT,LT_SYS_MODULE_EXT,g
s,AC_LTDL_SHLIBPATH,LT_SYS_MODULE_PATH,g
s,AC_LTDL_SYMBOL_USCORE,LT_SYS_SYMBOL_USCORE,g
s,AC_LIBTOOL_SYS_DYNAMIC_LINKER,_LT_SYS_DYNAMIC_LINKER,g
s,_LT_AC_TAGVAR,_LT_TAGVAR,g
s,_LT_AC_SYS_COMPILER,_LT_TAG_COMPILER,g
s,_LT_AC_PROG_ECHO_BACKSLASH,_LT_PROG_ECHO_BACKSLASH,g
s,_LT_AC_SYS_LIBPATH_AIX,_LT_SYS_MODULE_PATH_AIX,g
s,_LT_AC_SHELL_INIT,_LT_SHELL_INIT,g
s,_LT_AC_LOCK,_LT_ENABLE_LOCK,g
s,_LT_AC_CHECK_DLFCN,_LT_HEADER_DLFCN,g
s,_LT_AC_TRY_DLOPEN_SELF,_LT_TRY_DLOPEN_SELF,g
s,LT_AC_PROG_EGREP,_LT_DECL_EGREP,g
s,LT_AC_PROG_SED,_LT_DECL_SED,g
* doc/libtool.texi (Autoconf macros): Document exported macros.
* libtoolize.in: Compare ltdl.m4 serial numbers for LTDL_INIT
instead of newly obsoleted AC_LIB_LTDL.
(func_scan_files): Also set seen_ltdl for LTDL_INIT and
LT_WITH_LTDL.


* libltdl/ltdl.c (lt_dlforeachfile): LT_SYS_LIBSEARCH_PATH is not
an environment variable, it is an actual path.
Reported by Noah Mish <noah@cs.caltech.edu>
2004-08-22 22:02:07 +00:00
Alexandre Duret-Lutz
87b91bb4e7 * doc/libtool.texi (Tags): Document CC.
* m4/libtool.m4 (_LT_SETUP): Register CC as supported tag so that
Automake uses it.
2004-07-29 09:34:00 +00:00
Gary V. Vaughan
fc2b1937c8 * libltdl/lt__private.h (lt_dlhandle_struct): Renamed to
lt__handle to better reflect the naming scheme.
* libltdl/ltdl.h (lt_dlhandle): Be truly opaque with a void *.
* libltdl/lt_dlloader.c (lt_dlloader_remove): Party to
lt__private.h, so use internal lt__handle instead of opaque
lt_dlhandle.
* libltdl/ltdl.c (LT_DLGET_FLAG, LT_DLSET_FLAG): Add a cast to
internal lt__handle type.
(try_dlopen, tryall_dlopen, load_deplibs, unload_deplibs): Ditto.
(lt_dlexit, lt_dlclose, lt_dlsym): Use lt__handle to iterate
throught the handle list.
(try_dlopen): Use lt__zalloc instead of MALLOC and memset.
* libltdl/ltdl.h (lt_dlcaller_id): Be truly opaque with a void *.
(lt_dlhandle_interface): New callback type for filtering handles
according to the interface they present.
* libltdl/ltdl.c (lt_dlcaller_register): Take an id and an
interface check callback, and generate a caller_id.
(iterator): New static variable for the use of...
(lt_dlhandle_first): New function.  Set the iterator for
subsequent calls to lt_dlhandle_next.
(lt_dlhandle_next): Either work as before when iterator is unset,
or else skip handles that fail the interface check in iterator set
by lt_dlhandle_first.
* libltdl/ltdl.h (lt_dlhandle_first): Declaration.
* doc/libtool.texi (User defined module data): Document the new
APIs.
* NEWS: Updated.
2004-07-15 12:37:15 +00:00
Gary V. Vaughan
706e672811 This pervasive changeset makes two intertwined deep changes to the
operation of libtool (neither would work alone).  First, there is
a new feature that allows libraries to preopen modules.  This
entails a backwards incompatible change to the libltdl API for
separating out the preloaded symbol lists by owner.  Second, in
the tradition of "eating our own dogfood", libltdl now preloads
its own dlloaders.  The internal API for dlloaders has also had to
change in a backwards incompatible way in support of the new
library preloading feature.  If you don't use preloaded libraries,
you needn't change your project sources, though you will need to
recompile against the new libltdl.  The API changes are mostly
confined to dlloaders, so you probably needn't worry about those
(unless you have written a custom loader that you want libltdl to
use):

* configure.ac (AC_CONFIG_FILES): Add libltdl/loaders/Makefile.
* libltdl/configure.ac (AC_CONFIG_FILES): Add loaders/Makefile.
* libltdl/loaders: New directory for module loaders, to simplify
Makefile rules, and to give the loaders themselves names that are
unique in the first few characters.
* libtoolize.in (func_copy_all_files): Copy recursively to pick up
the loaders directory contents.
* libltdl/loaders/Makefile.am: New file.  Move module building
rules to here...
* libltdl/Makefile.am: ...from here.
(VERSION_INFO): Bumped version info to signify interface changes.
(libltdl_la_CPPFLAGS, libltdlc_la_CPPFLAGS): Set LTDLOPEN
appropriately for each library.
* libltdl/loader-dld_link.c, libltdl/loader-dlopen.c,
libltdl/loader-dyld.c, libltdl/loader-load_add_on.c,
libltdl/loader-loadlibrary.c libltdl/loader-preopen.c,
libltdl/loader-shl_load.c: Moved from here...
* libltdl/loaders/dld_link.c, libltdl/loaders/dlopen.c,
libltdl/loaders/dyld.c, libltdl/loaders/load_add_on.c,
libltdl/loaders/loadlibrary.c libltdl/loaders/preopen.c,
libltdl/loaders/shl_load.c: ...to here.
(get_vtable): New entry function for each.
* libltdl/loaders/preopen.c (lt_dlsymlists_t): Replaced by...
(symlist_chain): ...a new structure which maps lists of preloaded
symbols from the object that loads them.
(lt_dlpreload_open): New function to automatically open all
preloaded modules belonging to a named object (ORIGINATOR).
* libltdl/lt__alloc.c (lt__zalloc): New function to return a block
of zeroed out new memory.
* libltdl/lt__alloc.h (lt__zalloc): Prototype it.
* libltdl/lt__private.h (lt__alloc_die_callback): Add missing
prototype.
(lt__error_strings): Make this opaque to callers.
* libltdl/lt_error.c (lt__error_strings): Move the implementation
to here.
* libltdl/lt_dlloader.h (lt_user_dlloader): Add extra fields to
make originator focused preloading possible.  *BREAKS BACKWARDS
COMPATIBILITY*
(lt_dlloader_add): Take advantage of new fields to simplify
paramater list.
* libltdl/lt_system.h (LT_STR): New ANSI stringification macro.
(LT_CONC): Fix it to work from within macros.
* libltdl/ltdl.c (loader_init, loader_init_callback): Simplify
dlloader loading.
(get_vtable, preloaded_symbols): Point these at the preopen.c
symbols to bootstrap the loader chain.
(lt_dlinit): Load the preopen dlloader manually, and then use it
to load any other preloaded dlloaders.
(lt_dlloader_add): Simplify parameter list. Populate new
fields. Chain new loaders according to priority field.
* libltdl/ltdl.h (lt_dlsymlist): Add a new originator field.
(lt_dlpreload_callback_func): Type of a callback for automatic
lt_dlpreload_open loading.
(LTDL_SET_PRELOADED_SYMBOLS): Adjust to hook into preloaded
symbols from the "@PROGRAM@" originator.
* tests/demo/dlmain.c (main): Use mangled preloaded_symbols symbol.
* tests/pdemo/longer_file_name_dlmain.c (main): Ditto.
* ltmain.in: Don't spew spurious warnings when dlopening and
dlpreopening modules.
(func_generate_dlsyms): Factored out from multiple copies in the
rest of the code. Generate originator keyed symbol lists.
(func_extract_archives): Also factored.  Extract the contents of
convenience archives for linking with dependent libraries when
--whole-archive is not available.
[darwin]: Don't try to link $old_library unless it exists, and
$lib is a bundle.
* m4/ltdl.m4 (AC_LTDL_DLLIB): Check for all possible dynamic
loading libraries/apis rather that stopping when an acceptable one
is discovered.
(LT_DLLOADERS): New variable for holding dlloaders that can be
preloaded.
* doc/libtool.texi: Document interface changes.
* NEWS: Updated.
2004-07-15 12:14:48 +00:00
Gary V. Vaughan
8bd0890c7b * libltdl/ltdl.h (lt_dlinfo): Move private module field to here...
* libltdl/ltdl.c (lt_dlhandle_struct): ...from here.  Changed all
callers.
* libltdl/loader-loadlibrary.c (sys_wll_open): Use new inteface to
scan loaded handle->info.module fields for previously loaded
modules.
* doc/libtool.texi (User defined module data): Document changes to
the interface.
* NEWS: Updated.
Reported by Chuck Wilson <cwilson@ece.gatech.edu>
2004-07-08 09:35:51 +00:00
Gary V. Vaughan
9e0d44f562 * m4/ltdl.m4 (AC_WITH_LTDL): Remove redundant AC_REQUIRE calls.
Either set variables to allow a client to link with the installed
libltdl, or else compile a local libltdl as a convenience library.
* libtoolize.in (opt_ltdl): Removed in favour of...
(ltdldir): ...this, which is defaulted to "libltdl" or can be set
by the user with an argument to --ltdl.
(Main): Use it!
* doc/libtool.texi (Distributing libltdl): Improved documentation
on libltdl.
(Invoking libtoolize): Document new optional --ltdl target
directory argument.
2004-06-21 10:17:27 +00:00
Alexandre Duret-Lutz
639afd859e * doc/libtool.texi (Invoking libtool): Mention --tag=TAG.
(Tags, Trace interface): New nodes.
* m4/libtool.m4 (LT_SUPPORTED_TAG): New macro.
(_LT_LANG): Call it.
* tests/tagtrace.test: New file.
* tests/Makefile.am
(TESTS): Add tagtrace.test.
* tests/defs: Define AUTOCONF.
2004-05-17 17:42:44 +00:00
Gary V. Vaughan
14ae34906f According to Howard Chu <hyc@highlandsun.com>:
Applications should assume that the native dlopen is NOT
thread-safe, and take care of locking themselves. All application
calls into libltdl should thus be protected by the caller.

* libltdl/lt_mutex.c, libltdl/lt_mutex.h: Removed.
* libltdl/Makefile.am (pkginclude_HEADERS): Removed lt_mutex.h.
(libltdl_la_SOURCES): Removed lt_mutex.c and lt_mutex.h.
* libltdl/ltdl.h: Don't include lt_mutex.h.
* libltdl/lt__private.h (LT__MUTEX_GETERROR, LT__MUTEX_SETERROR)
(LT__MUTEX_SETERRORSTR): Renamed to...
(LT__GETERROR, LT__SETERROR, LT__SETERRORSTR): ...this.  Changed
all callers.
(LT__MUTEX_LOCK, LT__MUTEX_UNLOCK, lt_dlmutex_lock)
(lt_dlmutex_unlock, lt_dlmutex_seterror, lt_dlmutex_geterror):
Removed.  Changed all callers.
* doc/libtool.texi (Thread Saftey in libltdl):
* NEWS: Updated.
2004-04-22 22:08:19 +00:00
Alexandre Duret-Lutz
645ce0c48c * doc/libtool.texi (LT_INIT): Properly display options in a table. 2004-04-19 12:57:25 +00:00
Scott James Remnant
51126ba3fd * m4/libtool.m4 (_LT_LANG_DEFAULT_CONFIG): Remove code to handle 'none'
and 'all' options, this now always assumes automatic mode as that
works so well.
(_LT_LANG_DEFAULT): Remove definition
* m4/ltoptions.m4: Remove 'no-lang', 'auto-lang' and 'all-lang' options.
* configure.ac: Invoke LT_LANG for each desired supported language.
* doc/libtool.texi: Remove documentation for the LT_INIT options,
rewrite LT_LANG documentation.
2004-04-15 17:05:26 +00:00
Gary V. Vaughan
e658105eb9 Keywords:
There was no clean separation of abstraction layers in libltdl.
The first step in fixing this is to factor out the memory
management abstraction, making a start on removing promiscuity
from the underlying portability layer:

* doc/libtool.texi (Libltdl interface): Remove lt_dlmalloc,
lt_dlrealloc and lt_dlfree references.  The memory management
layer used by libltdl is now private.
* libltdl/lt_system.h: New installed header for system portability
abstraction.
* libltdl/ltdl.h: Use it.
* libltdl/lt__alloc.c, libltdl/lt__alloc.h: New module above
system portability layer to abstract ltdl's memory management.
* libltdl/ltdl.c: Use lt__alloc.h.
(closedir): Use free.
(opendir): Use malloc/free.
(lt__xalloc_die_callback): Report memory failures through
lt_dlerror.
(lt_dlinit): Use it to initialise memory management.
(LT_DLMALLOC, LT_DLREALLOC, LT_DLFREE, LT_EMALLOC, LT_EREALLOC)
(rpl_strdup, rpl_realloc, lt_estrdup, lt_emalloc, lt_erealloc):
Removed in favour of...
(lt__strdup, lt__memdup, MALLOC, REALLOC, FREE): ...these calls
from libltdl/lt__alloc.h.  Changed all callers.
(rpl_argz_append, rpl_argz_create_sep, rpl_argz_insert): As part
of the portability layer, these functions no longer use libltdl
memory management API.
(free_vars): Factored out.
(LT_DLMEM_REASSIGN): While redoing memory handling, renamed...
* libltdl/lt__alloc.h (MEMREASSIGN): ...to this.
* libltdl/Makefile.am (AUTOMAKE_OPTIONS): Let automake track
dependencies automatically.
(pkgincludedir): Override from parent package's setting.
(pkginclude_HEADERS): Install lt_system.h.
(libltdl_la_SOURCES): Add new files.
* NEWS: Updated.
Reported by Dalibor Topic <robilad@kaffe.org>
2004-04-06 15:42:11 +00:00
Scott James Remnant
0916718260 * NEWS: Explain more fully why we no longer load libraries
with global symbol resolution.
* doc/libtool.texi (libtool script contents): Add missing
documentation for 'inherit_rpath' variable.
2004-03-24 14:23:18 +00:00
Scott James Remnant
0550115589 Further sweeping changes to the user interface to libtool from
`configure.ac' to allow users to better control the list of
supported languages.  Three LT_INIT options 'no-lang', 'all-lang'
and 'auto-lang' (the default) control the initial list and others
may be added with LT_LANG.

* m4/libtool.m4 (_LT_CONFIG): Renamed AC_LIBTOOL_CONFIG to _LT_CONFIG
which is more consistent with our own namespace and gets us further out
of Autoconf's.
(_LT_LIBTOOL_TAGS): Output available_tags variable based entirely
on the value of _LT_TAGS.
(_LT_COPYING): Call _LT_LIBTOOL_TAGS to output available tags,
always append tag configuration if the tag is available.
(LT_LANG): New macro to enable support for a language that accepts
tag names (eg. "CXX") or human language names (eg. "C++").
(_LT_LANG): Internal support macro for above that appends the
tag to _LT_TAGS and calls the appropriate config macro.
(LT_INIT): Ensure that LT_LANG is not called before LT_INIT.
(AC_LIBTOOL_TAGS): Removed, call LT_LANG for each language now.
(_LT_AC_TAG_CHECK): Removed, _LT_LANG handles duplicate calls.
(_LT_LANG_DEFAULT_CONFIG): Macro to set initial language support
based on options passed to LT_INIT.
(_LT_SETUP): Call _LT_LANG_DEFAULT_CONFIG.
(_LT_AC_TAG_CONFIG): Removed, handled by _LT_LANG_DEFAULT_CONFIG.
(_LT_AC_LANG_CXX, _LT_AC_LANG_F77, _LT_AC_LANG_GCJ): Removed,
automatic language support inclusion now handled by
_LT_LANG_DEFAULT_CONFIG.
(AC_LIBTOOL_CXX): Obsolete macro, update to LT_LANG(C++).
(AC_LIBTOOL_F77): Obsolete macro, update to LT_LANG(Fortran 77).
(AC_LIBTOOL_GCJ): Obsolete macro, update to LT_LANG(Java).
(AC_LIBTOOL_LANG_C_CONFIG_: Removed.
(_LT_AC_LANG_C_CONFIG): Renamed to _LT_LANG_C_CONFIG, call
_LT_CONFIG instead of AC_LIBTOOL_CONFIG.
(_LT_SETUP): Replace call to AC_LIBTOOL_LANG_C_CONFIG with call to
new _LT_LANG_C_CONFIG macro.
(AC_LIBTOOL_LANG_CXX_CONFIG): Removed.
(_LT_AC_LANG_CXX_CONFIG): Renamed to _LT_LANG_CXX_CONFIG, call
_LT_CONFIG instead of AC_LIBTOOL_CONFIG.
(AC_LIBTOOL_LANG_F77_CONFIG): Removed.
(_LT_AC_LANG_F77_CONFIG): Renamed to _LT_LANG_F77_CONFIG, call
_LT_CONFIG instead of AC_LIBTOOL_CONFIG.
(AC_LIBTOOL_LANG_GCJ_CONFIG): Removed.
(_LT_AC_LANG_GCJ_CONFIG): Renamed to _LT_LANG_GCJ_CONFIG, call
_LT_CONFIG instead of AC_LIBTOOL_CONFIG.
(AC_LIBTOOL_LANG_RC_CONFIG): Removed.
(_LT_AC_LANG_RC_CONFIG): Renamed to _LT_LANG_RC_CONFIG, call
_LT_CONFIG instead of AC_LIBTOOL_CONFIG.
(LT_AC_PROG_GCJ): Renamed to LT_PROG_GCJ.
(LT_AC_PROG_RC): Renamed to LT_PROG_RC.
* m4/ltoptions.m4: Define new 'no-lang', 'auto-lang' and 'all-lang'
options which set the default for _LT_LANG_DEFAULT_CONFIG.
* m4/lt~obsolete.m4: Removed AC_LIBTOOL_CONFIG, _LT_AC_LANG_C_CONFIG,
_LT_AC_LANG_GCJ_CONFIG, _LT_AC_LANG_RC_CONFIG; all of which are no
long referenced in any way.
* configure.ac: Enable all languages.
* tests/cdemo/configure.ac, tests/demo/configure,ac,
tests/depdemo/configure.ac, tests/f77demo/configure.ac,
tests/mdemo/configure.ac, tests/pdemo/configure,ac,
tests/tagdemo/configure.ac: Remove calls to AC_LIBTOOL_TAGS,
the default 'auto-lang' mode now does the right thing.
* doc/libtool.texi (The LT_INIT macro): Add documentation for
new LT_INIT options and the LT_LANG macro, replacing the old
documentation of AC_LIBTOOL_TAGS which is no more.
* NEWS: Updated.
2004-03-21 16:05:28 +00:00
Gary V. Vaughan
65c6799bfd * doc/libtool.texi (Autoconf and LTLIBOBJS): The correct version
of Autoconf is 2.54.
From Alexandre Duret-Lutz  <adl@src.lip6.fr>
2004-03-14 10:14:32 +00:00
Gary V. Vaughan
56c4b54a3c * doc/libtool.texi (Using Automake): Cite correct Automake version
for -dlopen quoting.
(Autoconf and LTLIBOBJS): Cite correct Autoconf	versions
throughout.
(Distributing libltdl): Use AM_CPPFLAGS; INCLUDES is deprecated.
From Alexandre Duret-Lutz  <adl@src.lip6.fr>
2004-03-14 03:53:50 +00:00
Gary V. Vaughan
6bfa1584cd * libtoolize.in: Remove --ltdl-tar. It doesn't work with the
current implementation, and seems more or less pointless.
* doc/libtool.texi (Invoking libtoolize): Updated.
* NEWS: Updated.
2004-03-05 17:34:25 +00:00
Gary V. Vaughan
157859aa6f * doc/libtool.texi: This manual has not been maintained properly
for a number of years.  Much of what it said was outdated, or
plain wrong with reference to modern autotools.  This change
represents a first pass edit to clean up the obviously wrong.
2004-03-05 12:06:02 +00:00
Patrick Welche
3c4f63167a * doc/libtool.texi (LT_INIT): Dumb typos fixed. 2004-03-02 13:49:38 +00:00
Gary V. Vaughan
f7356d2f61 Sweeping changes to the user interface to libtool from
`configure.ac' to be more like AC_INIT and accept a space
delimited list of options.  Instead of calling `AC_LIBTOOL_DLOPEN;
AC_PROG_LIBTOOL', we now recommend `LT_INIT([dlopen])':

* m4/libtool.m4	(AC_PROG_LIBTOOL, _AC_PROG_LIBTOOL)
(AC_LIBTOOL_SETUP): Removed.  Added AU_DEFUNs.
(LT_INIT): Replace with an Autoconf like interface which accepts a
version number as a minimum required libtool release at configure
time.
* m4/ltoptions.m4: New file inspired by automake/m4/amoptions.m4,
which additionally flags an error if the configuring libtool
macros are not new enough according to LT_INIT.
(LT_OPTION_DEFINE): New macro to declare option handlers.
(dlopen, win32-dll, shared, disable-shared, static)
(disable-static, fast-install, disable-fast-install, pic-only)
(no-pic): Newly LT_OPTION_DEFINEd option handlers that use...
(_LT_ENABLE_SHARED, _LT_ENABLE_STATIC, _LT_ENABLE_FAST_INSTALL)
(_LT_WITH_PIC, _LT_WIN32_DLL): New macros to handle
LT_LIBTOOL_INIT options...
* m4/libtool.m4 (AC_ENABLE_SHARED, AC_ENABLE_STATIC)
(AC_ENABLE_FAST_INSTALL, AC_LIBTOOL_DLOPEN, AC_LIBTOOL_WIN32_DLL):
...to replace these user interface macros, now defined as
AU_DEFUNs.
(AC_DISABLE_SHARED, AC_DISABLE_STATIC, AC_DISABLE_FAST_INSTALL):
Removed.  No longer required with LT_INIT_LIBTOOL interface.
Added AU_DEFUNs.
(AM_ENABLE_SHARED, AM_DISABLE_SHARED, AM_ENABLE_STATIC)
(AM_DISABLE_STATIC): Changed AU_DEFUNs to match new interface.
(_LT_SETUP): Internal to LT_INIT, replaces AC_LIBTOOL_SETUP.
* m4/lt~obsolete.m4 (AC_LIBTOOL_SETUP, _AC_PROG_LIBTOOL)
(_LT_PROG_LTMAIN):  More AC_DEFUNs that have been retracted.
* configure.ac: Use new interface.
* doc/libtool.texi: Document new interface.
* NEWS: Updated.
2004-02-22 11:13:45 +00:00
Gary V. Vaughan
e9b269e4fa * m4/libtool.m4 (LT_PREREQ): Declare the minimum release number
that is required for the calling code.
* doc/libtool.texi (AC_PROG_LIBTOOL): Document it.
* NEWS: Updated.
2004-02-06 13:58:06 +00:00
Scott James Remnant
08e80547ba * ltmain.in: new -precious-files-regex link mode option
to prevent removal of matching files from the temporary
output directory.
(Debian Bug #221420)
* doc/libtool.texi: document the new option.
* NEWS: announce the new option.
2004-01-12 02:32:50 +00:00
Stefan Nordhausen
a8f3df622a Roll back copyright changes. 2004-01-04 20:45:24 +00:00
Scott James Remnant
dff2249409 Updated all copyright notices to include 2004.
* NEWS: Next release will be in 2004.
2004-01-02 01:59:11 +00:00
Gary V. Vaughan
d30b465a54 * bootstrap: Explain automake and autoconf version dependencies
truthfully, and the difference between bootstrap and user
dependencies.
* configure.ac (AM_INIT_AUTOMAKE): List AUTOMAKE_OPTIONS here.
* Makefile.am, doc/Makefile.am, tests/Makefile.am
(AUTOMAKE_OPTIONS): Removed from here.
2003-11-25 15:48:23 +00:00
Gary V. Vaughan
9b5a0f038d * libltdl/ltdl.c (lt_dlhandle_find): New function to find a handle
by module name.
* libltdl/ltdl.h (lt_dlhandle_find): Declare it.
* doc/libtool.texi (User defined module data): Document it.
* NEWS: Updated.
2003-11-18 22:39:39 +00:00
Marius Vollmer
e12f17a713 * doc/libtool.texi (Libltdl interface): libltdl does in fact load
dependency libs for lt_dlopen()ed modules.
2003-11-14 15:14:11 +00:00
Gary V. Vaughan
b28de94488 Start to eliminate the double run of configure in a fresh CVS
checkout by generating ltmain.sh, using that to create libtool,
and then adding the tags to that, all from config.status.

* configure.ac (AC_CONFIG_FILES): Make config/ltmain.sh, and copy
it to libltdl.
* Makefile.am ($(srcdir)/config/ltmain.sh): This file is now
created by config.status.  Adjust this rule.
(libtoolize): Set CONFIG_COMMANDS to empty to prevent regenerating
the libtool script as a side effect of running this rule.
* libtool.m4: Bump serial number.  Fix comment typos.
(_LT_CONFIG_LIBTOOL_INIT, _LT_CONFIG_LIBTOOL,
_LT_CONFIG_SAVE_COMMANDS, _LT_CONFIG_COMMANDS: New macros.  They
don't work for some reason - the variable value quoting in the
init section is all wrong.  Not used at the moment.
(AC_LIBTOOL_CONFIG): Generate libtool from config.status.
(_LT_AC_TAG_CONFIG): Add the tags in config.status.
(compiler_DEFAULT): Save the compiler value for the DEFAULT tag,
or it gets overwritten by the other macros.
(EOF): Globally replace with _LT_EOF to avoid namespace pollution.
* tests/demo/configure.ac (STATIC): Check $enable_static instead
of running ./libtool which doesn't exist yet.
(BINARY_HELLDL): Check $lt_cv_sys_global_symbol_pipe with case
instead of grepping ./libtool which doesn't exist yet.
* tests/pdemo/configure.ac (STATIC, BINARY_HELLDL): Ditto.
* doc/libtool.texi (AC_PROG_LIBTOOL): Add some notes about trying
to get config details from `libtool --config'.
* NEWS: Updated.
2003-10-21 15:03:57 +00:00
Bob Friesenhahn
e508b62dbe * doc/libtool.texi (AC_LIBTOOL_TAGS): Incorporate documentation
for AC_LIBTOOL_TAGS macro to specifify libtool tags. The now
defunct --with-tags option was never documented.


* m4/libtool.m4: Restrict the list of tags that can be created
with a new AC_LIBTOOL_TAGS([tag1 tag2 ...]) macro. Deprecate
--with-tags.
2003-10-15 16:02:04 +00:00
Gary V. Vaughan
1a5dfde5cd * ltmain.in: Don't suppress output of PIC mode compile if
-no-suppress option is given.
* doc/libtool.texi (Invoking libtool): Document it.
* NEWS: Updated.
2003-10-07 17:13:42 +00:00
Ralph Schleicher
3bdc61dbfc * ltmain.in: Do not create .o' objects when -shared' is
specified in compile mode.
Do not make a static library when `-shared' is specified in link
mode.
* doc/libtool.texi (Compile mode): Document it.
* NEWS: Updated.
2003-10-07 16:48:23 +00:00
Ralph Schleicher
331b0b57a5 * doc/libtool.texi (Compile mode): Be more specific about the
effect of `-static'.
* ltmain.in: Do not create `.lo' objects when `-static' is
specified.
* NEWS: Updated.
2003-10-07 16:32:58 +00:00
Gary V. Vaughan
310b8e2d8c * doc/libtool.texi (Invoking libtool): Updated.
* ltmain.in: Add missing clean and finish modes to the shorthand
options.
2003-10-07 14:51:06 +00:00
Robert Millan
68bac5f496 Updated to reflect upcoming autoconf 2.58 and automake 1.8 2003-09-24 17:03:27 +00:00
Jim Pick
522aef6a38 Much as we have tried not to make it the callers' responsibility
to maintain an lt_dlrealloc function pointer, it is too difficult
to implement realloc as malloc/memcpy/free without knowing the
size of the original block.  rpl_realloc has been deprecated since
2002-10-30, but kaffe has real failures with that so it's time to
bite the bullet.  Caller gets to maintain lt_dlrealloc:

* NEWS (1.5.1): Updated.
* libltdl/ltdl.c (LT_DLREALLOC): Use lt_dlrealloc so the user can
update the function pointer to match lt_dlmalloc.
(lt_emalloc): Use lt_dlrealloc rather than hardcoding realloc.
* doc/libtool.texi (Libltdl interface): Describe lt_dlrealloc now
that it too has become part of the exported interface to libltdl.
2003-08-05 16:05:01 +00:00
Richard Dawe
c67e0b02be * doc/libtool.texi: Use @ifnottex instead of @ifinfo,
to allow production of HTML documentation using makeinfo.
2003-04-22 04:57:10 +00:00
Keith Packard
ba98d73f18 * ltmain.in: New flag -version-number to be used for maintaining
compatability with a previously non-Libtool versioning scheme.
* doc/libtool.texi: Document it.
2003-03-31 17:36:01 +00:00
Peter O'Gorman
2a0c045721 * README: Remove "Important" information about patching automake.
* configure.ac: Fix misapplied patch in last commit
* libtool.m4 (darwin): Check compiler is apple gcc, add -single_module
support so that dyloading c++ shared libraries will work.
* libtool.m4 (_LT_AC_TAGCONFIG): Add test -n to the tests so that
it will work outside of libtool.
* doc/PLATFORMS: Add darwin
* f77demo/configure.ac: Add config.h which was misapplied previously.
2003-03-22 06:34:27 +00:00
Ralph Schleicher
72dd3b472d * libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Prepend a dot to
the value of the shrext (aka shared_ext) variable and delete it
from the library_names_spec and soname_spec definitions.  That
way the user can omit the shared library suffix by setting it
to the empty string.
(AC_LIBTOOL_LANG_CXX_CONFIG): Strengthen renaming commands for
the KCC compiler.
* doc/libtool.texi (Link mode): Update the manual.
2003-02-17 21:14:24 +00:00
Ralph Schleicher
46ed70ab97 Rework by Robert Boehne <rboehne@gnu.org>
* ltmain.in: New link option -shrext.
* libtool.m4 (AC_LIBTOOL_CONFIG): New libtool variable shrext.
(AC_LIBTOOL_SYS_DYNAMIC_LINKER): Replace all hard coded shared
library file name extensions in library_names_spec and
soname_spec with $shrext.
* doc/libtool.texi (Link mode): Document it.
2002-12-31 05:43:24 +00:00
Paul Eggert
757646d28b Don't assume that egrep and fgrep exist. POSIX 1003.1-2001 no
longer requires them; you're supposed to use grep -E and grep -F
instead.  Also, don't assume that "test -a" works, since POSIX
doesn't require it.
* libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER, _LT_AC_LANG_C_CONFIG,
_LT_AC_LANG_CXX_CONFIG, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE,
AC_LIBTOOL_PROG_LD_SHLIBS):
egrep -> grep, when that makes no difference.
* libtoolize.in: Likewise.
* ltdl.m4 (AC_LTDL_SYMBOL_USCORE): Likewise.
* ltmain.in: Likewise.
* demo/Makefile.am (hc-direct): Likewise.
* pdemo/Makefile.am (hc-direct): Likewise.
* tests/build-relink.test, tests/build-relink2.test,
tests/cdemo-conf.test, tests/cdemo-shared.test,
tests/cdemo-static.test, tests/demo-conf.test,
tests/demo-nofast.test, tests/demo-shared.test,
tests/demo-static.test, tests/depdemo-conf.test,
tests/depdemo-nofast.test, tests/depdemo-shared.test,
tests/depdemo-static.test, tests/hardcode.test,
tests/mdemo-conf.test, tests/mdemo-shared.test,
tests/mdemo-static.test, tests/pdemo-conf.test,
tests/tagdemo-conf.test, tests/tagdemo-shared.test,
tests/tagdemo-static.test: Likewise.
* libtool.m4 (AC_PROG_EGREP):
New macro, defined if Autoconf doesn't define.
(AC_PATH_TOOL_PREFIX, AC_PROG_LD_GNU): Use it.
(AC_PROG_LD, AC_PROG_NM, AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE):
Use shell pattern matching rather than egrep.
(AC_LIBTOOL_CONFIG): Set lt_EGREP and EGREP.
* demo/Makefile.am (SET_HARDCODE_FLAGS): Use sed instead of egrep.
* pdemo/Makefile.am (SET_HARDCODE_FLAGS): Likewise.
* tests/defs (EGREP, FGREP): New vars.
* ltmain.in: egrep -> $EGREP
* tests/assign.test, tests/demo-exec.test, tests/demo-inst.test,
tests/pdemo-exec.test, tests/pdemo-inst.test, tests/sh.test:
Likewise.
* tests/hardcode.test: fgrep -> $FGREP
* tests/f77demo-exec.test: test -a -> test &&
2002-11-19 09:42:39 +00:00
Kevin Ryde
4551d055b6 * doc/libtool.texi (Library tips): Note array dimensions. 2002-11-18 16:09:42 +00:00
Robert Boehne
f0378efa1f * doc/libtool.texi: Add --mode=* to every example using libtool. 2002-11-08 19:38:42 +00:00
Ossama Othman
d2c4f8f8fc * ltmain.in: add support for installing into temporary
staging area (e.g. 'make install DESTDIR=...')


* libtool.m4 (AC_LIBTOOL_LANG_CXX_CONFIG): restore setting
allow_undefined_flag=unsupported for cygwin and mingw.
(AC_LIBTOOL_PROG_LD_SHLIBS): ditto, for both "normal" gcc/ld
and for the (unmaintained?) MSVC case.


* doc/libtool.texi (Install mode): document new
-inst-prefix option.
2002-11-03 17:35:37 +00:00
Robert Boehne
900d3d6911 * ltmain.in: Print a warning if the mode is not specified.
* doc/libtool.texi: Document the change that the mode must be
specified.
2002-11-03 02:16:06 +00:00
Robert Boehne
4102e43461 * ltmain.in (-XCClinker): New flag passes a linking option
directly to the compiler driver without appending ${wl}.
2002-10-28 15:38:37 +00:00