This is Info file libtool.info, produced by Makeinfo version 1.67 from the input file libtool.texi. INFO-DIR-SECTION GNU programming tools START-INFO-DIR-ENTRY * Libtool: (libtool). Generic shared library support script. END-INFO-DIR-ENTRY INFO-DIR-SECTION Individual utilities START-INFO-DIR-ENTRY * libtoolize: (libtool)Invoking libtoolize. Adding libtool support. END-INFO-DIR-ENTRY This file documents GNU Libtool 1.2 Copyright (C) 1996-1998 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.  File: libtool.info, Node: libtool script contents, Prev: Platform quirks, Up: Maintaining `libtool' script contents ========================= The `libtool' script is generated by `ltconfig' (*note Configuring::.). Ever since libtool version 0.7, this script simply sets shell variables, then sources the libtool backend, `ltmain.sh'. Here is a listing of each of these variables, and how they are used within `ltmain.sh': - Variable: AR The name of the system library archiver. - Variable: CC The name of the C compiler used to configure libtool. - Variable: LD The name of the linker that libtool should use internally for reloadable linking and possibly shared libraries. - Variable: LTCONFIG_VERSION This is set to the version number of the `ltconfig' script, to prevent mismatches between the configuration information in `libtool', and how that information is used in `ltmain.sh'. - Variable: NM The name of a BSD-compatible `nm' program, which produces listings of global symbols in one the following formats: ADDRESS C GLOBAL-VARIABLE-NAME ADDRESS D GLOBAL-VARIABLE-NAME ADDRESS T GLOBAL-FUNCTION-NAME - Variable: RANLIB Set to the name of the ranlib program, if any. - Variable: allow_undefined_flag The flag that is used by `archive_cmds' in order to declare that there will be unresolved symbols in the resulting shared library. Empty, if no such flag is required. Set to `unsupported' if there is no way to generate a shared library with references to symbols that aren't defined in that library. - Variable: archive_cmds - Variable: old_archive_cmds Commands used to create shared and static libraries, respectively. - Variable: build_libtool_libs Whether libtool should build shared libraries on this system. Set to `yes' or `no'. - Variable: build_old_libs Whether libtool should build static libraries on this system. Set to `yes' or `no'. - Variable: echo An `echo(1)' program which does not interpret backslashes as an escape character. - Variable: export_dynamic_flag_spec Compiler link flag that allows a dlopened shared library to reference symbols that are defined in the program. - Variable: finish_cmds Commands to tell the dynamic linker how to find shared libraries in a specific directory. - Variable: finish_eval Same as FINISH_CMDS, except the commands are not displayed. - Variable: global_symbol_pipe A pipeline that takes the output of NM, and produces a listing of raw symbols followed by their C names. For example: $ $NM | $global_symbol_pipe SYMBOL1 C-SYMBOL1 SYMBOL2 C-SYMBOL2 SYMBOL3 C-SYMBOL3 ... $ - Variable: hardcode_action Either `immediate' or `relink', depending on whether shared library paths can be hardcoded into executables before they are installed, or if they need to be relinked. - Variable: hardcode_direct Set to `yes' or `no', depending on whether the linker hardcodes directories if a library is directly specified on the command line (such as `DIR/libNAME.a'). - Variable: hardcode_libdir_flag_spec Flag to hardcode a LIBDIR variable into a binary, so that the dynamic linker searches LIBDIR for shared libraries at runtime. - Variable: hardcode_libdir_separator If the compiler only accepts a single HARDCODE_LIBDIR_FLAG, then this variable contains the string that should separate multiple arguments to that flag. - Variable: hardcode_minus_L Set to `yes' or `no', depending on whether the linker hardcodes directories specified by `-L' flags into the resulting executable. - Variable: hardcode_shlibpath_var Set to `yes' or `no', depending on whether the linker hardcodes directories by writing the contents of `$shlibpath_var' into the resulting executable. Set to `unsupported' if directories specified by `$shlibpath_var' are searched at run time, but not at link time. - Variable: host - Variable: host_alias For information purposes, set to the specified and canonical names of the system that libtool was configured for. - Variable: libname_spec The format of a library name prefix. On all Unix systems, static libraries are called `libNAME.a', but on some systems (such as OS/2 or MS-DOS), the library is just called `NAME.a'. - Variable: library_names_spec A list of shared library names. The first is the name of the file, the rest are symbolic links to the file. The name in the list is the file name that the linker finds when given `-lNAME'. - Variable: link_static_flag Linker flag (passed through the C compiler) used to prevent dynamic linking. - Variable: no_builtin_flag Compiler flag to disable builtin functions that conflict with declaring external global symbols as `char'. - Variable: no_undefined_flag The flag that is used by `archive_cmds' in order to declare that there will be no unresolved symbols in the resulting shared library. Empty, if no such flag is required. - Variable: pic_flag Any additional compiler flags for building library object files. - Variable: postinstall_cmds - Variable: old_postinstall_cmds Commands run after installing a shared or static library, respectively. - Variable: reload_cmds - Variable: reload_flag Commands to create a reloadable object. - Variable: runpath_var The environment variable that tells the linker which directories to hardcode in the resulting executable. - Variable: shlibpath_var The environment variable that tells the dynamic linker where to find shared libraries. - Variable: soname_spec The name coded into shared libraries, if different from the real name of the file. - Variable: version_type The library version numbering type. One of `libtool', `linux', `osf', `sunos', or `none'. - Variable: wl The C compiler flag that allows libtool to pass a flag directly to the linker. Used as: `${wl}SOME-FLAG'. Variables ending in `_cmds' or `_eval' contain a semicolon-separated list of commands that are `eval'ed one after another. If any of the commands return a nonzero exit status, libtool generally exits with an error message. Variables ending in `_spec' are `eval'ed before being used by libtool.  File: libtool.info, Node: Index, Prev: Maintaining, Up: Top Index ***** * Menu: * .la files: Linking libraries. * .libs subdirectory: Linking libraries. * .lo files: Creating object files. * AC_CONFIG_AUX_DIR: Invoking libtoolize. * AC_FUNC_ALLOCA: Autoconf .o macros. * AC_REPLACE_FUNCS: Autoconf .o macros. * aclocal: AM_PROG_LIBTOOL. * allow_undefined_flag: libtool script contents. * AM_DISABLE_SHARED: AM_PROG_LIBTOOL. * AM_DISABLE_STATIC: AM_PROG_LIBTOOL. * AM_PROG_LIBTOOL: AM_PROG_LIBTOOL. * Application-level dynamic linking: Dlopened modules. * AR: libtool script contents. * ar: Linking libraries. * archive_cmds: libtool script contents. * Avoiding shared libraries: Static-only libraries. * Bug reports: Reporting bugs. * Buggy system linkers: Linking executables. * Bugs, subtle ones caused by buggy linkers: Linking executables. * build_libtool_libs: libtool script contents. * build_old_libs: libtool script contents. * C header files, portable: C header files. * C++, pitfalls: C++ libraries. * C++, using: Other languages. * C, not using: Other languages. * CC <1>: libtool script contents. * CC: Invoking ltconfig. * CFLAGS: Invoking ltconfig. * Command options, libtool: Invoking libtool. * Command options, libtoolize: Invoking libtoolize. * Command options, ltconfig: Invoking ltconfig. * Compile mode: Compile mode. * Compiling object files: Creating object files. * Complexity of library systems: Postmortem. * config.guess: Distributing. * config.sub: Distributing. * Configuring libtool: Configuring. * Convenience libraries: Static libraries. * CPPFLAGS: Invoking ltconfig. * Debugging libraries: Static-only libraries. * Definition of libraries: Libtool paradigm. * demo-conf.test: Test descriptions. * demo-exec.test: Test descriptions. * demo-inst.test: Test descriptions. * demo-make.test: Test descriptions. * demo-unst.test: Test descriptions. * Dependencies between libraries: Inter-library dependencies. * Dependency versioning: Versioning. * Design issues: Issues. * Design of library interfaces: Library tips. * Design philosophy: Motivation. * Developing libraries: Static-only libraries. * dlclose(3): Dlopened modules. * dld_preloaded_symbol_count: Dlpreopening. * dld_preloaded_symbols: Dlpreopening. * dlopen(3): Dlopened modules. * dlopening modules: Dlopened modules. * Dlopening, pitfalls: Dlopen issues. * dlsym(3): Dlopened modules. * Double-compilation, avoiding: Static-only libraries. * Dynamic dependencies: Versioning. * Dynamic linking, applications: Dlopened modules. * Dynamic modules, names: Finding the dlname. * echo: libtool script contents. * Eliding shared libraries: Static-only libraries. * Examples of using libtool: Using libtool. * Execute mode: Execute mode. * export_dynamic_flag_spec: libtool script contents. * Failed tests: When tests fail. * Finish mode: Finish mode. * finish_cmds: libtool script contents. * finish_eval: libtool script contents. * Formal versioning: Libtool versioning. * Global functions: Library tips. * global_symbol_pipe: libtool script contents. * hardcode.test: Test descriptions. * hardcode_action: libtool script contents. * hardcode_direct: libtool script contents. * hardcode_libdir_flag_spec: libtool script contents. * hardcode_libdir_separator: libtool script contents. * hardcode_minus_L: libtool script contents. * hardcode_shlibpath_var: libtool script contents. * Header files: Library tips. * host: libtool script contents. * host_alias: libtool script contents. * Implementation of libtool: libtool script contents. * Include files, portable: C header files. * install: Installing libraries. * Install mode: Install mode. * Installation, finishing: Installing libraries. * Inter-library dependencies: Inter-library dependencies. * Languages, non-C: Other languages. * LD <1>: libtool script contents. * LD: Invoking ltconfig. * libname_spec: libtool script contents. * Libraries, definition of: Libtool paradigm. * Libraries, finishing installation: Installing libraries. * Libraries, stripping: Installing libraries. * Library interfaces: Interfaces. * Library interfaces, design: Library tips. * Library object file: Creating object files. * library_names_spec: libtool script contents. * libtool: Invoking libtool. * libtool command options: Invoking libtool. * Libtool examples: Using libtool. * libtool implementation: libtool script contents. * Libtool libraries: Linking libraries. * Libtool library versions: Libtool versioning. * Libtool specifications: Motivation. * libtoolize: Invoking libtoolize. * libtoolize command options: Invoking libtoolize. * Link mode: Link mode. * link-2.test: Test descriptions. * link.test: Test descriptions. * link_static_flag: libtool script contents. * Linking against installed libraries: Linking executables. * Linking against uninstalled libraries: Linking executables. * Linking, partial: Link mode. * LTALLOCA: Autoconf .o macros. * ltconfig: Invoking ltconfig. * ltconfig command options: Invoking ltconfig. * LTCONFIG_VERSION: libtool script contents. * LTLIBOBJS: Autoconf .o macros. * LTLIBRARIES: Using Automake. * ltmain.sh: Distributing. * Makefile: Makefile rules. * Makefile.am: Makefile rules. * Makefile.in: Makefile rules. * Mode, compile: Compile mode. * Mode, execute: Execute mode. * Mode, finish: Finish mode. * Mode, install: Install mode. * Mode, link: Link mode. * Mode, uninstall: Uninstall mode. * Modules, dynamic: Dlopened modules. * Motivation for writing libtool: Motivation. * Names of dynamic modules: Finding the dlname. * NM: libtool script contents. * no_builtin_flag: libtool script contents. * no_undefined_flag: libtool script contents. * Object files, compiling: Creating object files. * Object files, library: Creating object files. * old_archive_cmds: libtool script contents. * old_postinstall_cmds: libtool script contents. * Opaque data types: Library tips. * Options, libtool command: Invoking libtool. * Options, libtoolize command: Invoking libtoolize. * Options, ltconfig command: Invoking ltconfig. * Other implementations, flaws in: Postmortem. * Partial linking: Link mode. * PIC (position-independent code): Creating object files. * pic_flag: libtool script contents. * Pitfalls using C++: C++ libraries. * Pitfalls with dlopen: Dlopen issues. * Portable C headers: C header files. * Position-independent code: Creating object files. * postinstall_cmds: libtool script contents. * Postinstallation: Installing libraries. * Problem reports: Reporting bugs. * Problems, blaming somebody else for: Troubleshooting. * Problems, solving: Troubleshooting. * Program wrapper scripts: Linking executables. * RANLIB <1>: libtool script contents. * RANLIB: Invoking ltconfig. * ranlib: Linking libraries. * reload_cmds: libtool script contents. * reload_flag: libtool script contents. * Renaming interface functions: Library tips. * Reporting bugs: Reporting bugs. * Reusability of library systems: Postmortem. * runpath_var: libtool script contents. * Saving time: Static-only libraries. * Security problems with buggy linkers: Linking executables. * Shared libraries, not using: Static-only libraries. * Shared library versions: Versioning. * shl_load(3): Dlopened modules. * shlibpath_var: libtool script contents. * Solving problems: Troubleshooting. * soname_spec: libtool script contents. * Specifications for libtool: Motivation. * Standalone binaries: Static libraries. * Static linking: Static libraries. * strip: Installing libraries. * Stripping libraries: Installing libraries. * su: Installing libraries. * suffix.test: Test descriptions. * Test suite: Libtool test suite. * test-e.test: Test descriptions. * Tests, failed: When tests fail. * Time, saving: Static-only libraries. * Tricky design issues: Issues. * Trouble with C++: C++ libraries. * Trouble with dlopen: Dlopen issues. * Troubleshooting: Troubleshooting. * Undefined symbols, allowing: Link mode. * Uninstall mode: Uninstall mode. * Unresolved symbols, allowing: Link mode. * Using shared libraries, not: Static-only libraries. * version_type: libtool script contents. * Versioning, formal: Libtool versioning. * wl: libtool script contents. * Wrapper scripts for programs: Linking executables.