Since version 1.4, the libtool script is generated by
configure (see section 5.3 Configuring libtool). In earlier versions,
configure achieved this by calling a helper script called
`ltconfig'. From libtool version 0.7 to 1.0, this script
simply set shell variables, then sourced the libtool backend,
ltmain.sh. ltconfig from libtool version 1.1 through 1.3
inlined the contents of ltmain.sh into the generated
libtool, which improved performance on many systems. The tests
that `ltconfig' used to perform are now kept in `libtool.m4'
where thay can be written using Autoconf. This has the runtime
performance benefits of inlined ltmain.sh, and improves
the build time a little while considerably easing the amount of raw
shell code that used to need maintaining.
The convention used for naming variables which hold shell commands for
delayed evaluation, is to use the suffix _cmd where a single
line of valid shell script is needed, and the suffix _cmds where
multiple lines of shell script may be delayed for later
evaluation. By convention, _cmds variables delimit the
evaluation units with the ~ character where necessary.
Here is a listing of each of the configuration variables, and how they
are used within ltmain.sh (see section 5.3 Configuring libtool):
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:NM
The name of a BSD-compatible nm program, which produces listings
of global symbols in one the following formats:
address C global-variable-nameaddress D global-variable-nameaddress 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:always_export_symbols
Whether libtool should automatically generate a list of exported symbols
using export_symbols_cmds before linking an archive.
Set to `yes' or `no'. Default is `no'.
Variable:archive_cmds
Variable:archive_expsym_cmds
Variable:old_archive_cmds
Commands used to create shared libraries, shared libraries with
`-export-symbols' and static libraries, respectively.
Variable:old_archive_from_new_cmds
If the shared library depends on a static library,
`old_archive_from_new_cmds' contains the commands used to create that
static library. If this variable is not empty, `old_archive_cmds' is
not used.
Variable:old_archive_from_expsyms_cmds
If a static library must be created from the export symbol list in order to
correctly link with a shared library, `old_archive_from_expsyms_cmds'
contains the commands needed to create that static library. When these
commands are executed, the variable soname contains the name of the
shared library in question, and the $objdir/$newlib contains the
path of the static library these commands should build. After executing
these commands, libtool will proceed to link against $objdir/$newlib
instead of soname.
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:compiler_c_o
Whether the compiler supports the -c and -o options
simultaneously. Set to `yes' or `no'.
Variable:compiler_o_lo
Whether the compiler supports compiling directly to a ".lo" file,
i.e whether object files do not have to have the suffix ".o".
Set to `yes' or `no'.
Variable:dlopen_support
Whether dlopen is supported on the platform.
Set to `yes' or `no'.
Variable:dlopen_self
Whether it is possible to dlopen the executable itself.
Set to `yes' or `no'.
Variable:dlopen_self_static
Whether it is possible to dlopen the executable itself, when it
is linked statically (`-all-static'). Set to `yes' or
`no'.
Variable:echo
An echo program which does not interpret backslashes as an
escape character.
Variable:exclude_expsyms
List of symbols that should not be listed in the preloaded symbols.
Variable:export_dynamic_flag_spec
Compiler link flag that allows a dlopened shared library to reference
symbols that are defined in the program.
Variable:export_symbols_cmds
Commands to extract exported symbols from libobjs to the
file export_symbols.
Variable:extract_expsyms_cmds
Commands to extract the exported symbols list from a shared library.
These commands are executed if there is no file $objdir/$soname-def,
and should write the names of the exported symbols to that file, for
the use of `old_archive_from_expsyms_cmds'.
Variable:fast_install
Determines whether libtool will privilege the installer or the
developer. The assumption is that installers will seldom run programs
in the build tree, and the developer will seldom install. This is only
meaningful on platforms in which shlibpath_overrides_runpath is
not `yes', so fast_install will be set to `needless' in
this case. If fast_install set to `yes', libtool will create
programs that search for installed libraries, and, if a program is run
in the build tree, a new copy will be linked on-demand to use the
yet-to-be-installed libraries. If set to `no', libtool will create
programs that use the yet-to-be-installed libraries, and will link
a new copy of the program at install time. The default value is
`yes' or `needless', depending on platform and configuration
flags, and it can be turned from `yes' to `no' with the
configure flag `--disable-fast-install'.
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:fix_srcfile_path
Expression to fix the shell variable $srcfile for the compiler.
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:
$ eval "$NM progname | $global_symbol_pipe"
D symbol1C-symbol1
T symbol2C-symbol2
C symbol3C-symbol3
...
$
The first column contains the symbol type (used to tell data from code
on some platforms), but its meaning is system dependent.
Variable:global_symbol_to_cdecl
A pipeline that translates the output of global_symbol_pipe into
proper C declarations. On platforms whose linkers differentiate code
from data, such as HP/UX, data symbols will be declared as such, and
code symbols will be declared as functions. On platforms that don't
care, everything is assumed to be data.
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') when
hardcode_libdir_flag_spec is specified.
Variable:hardcode_into_libs
Whether the platform supports hardcoding of run-paths into libraries.
If enabled, linking of programs will be much simpler but libraries will
need to be relinked during installation. Set to `yes' or `no'.
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.
If it is empty, libtool will try to use some other hardcoding mechanism.
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 when hardcode_libdir_flag_spec is specified.
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 when hardcode_libdir_flag_spec is
specified. 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:include_expsyms
List of symbols that must always be exported when using export_symbols.
Variable:libext
The standard old archive suffix (normally "a").
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_all_deplibs
Whether libtool must link a program against all its dependency libraries.
Set to `yes' or `no'. Default is `unknown', which is
a synonym for `yes'.
Variable:link_static_flag
Linker flag (passed through the C compiler) used to prevent dynamic
linking.
Variable:need_lib_prefix
Whether libtool should automatically prefix module names with 'lib'.
Set to `yes' or `no'. By default, it is `unknown', which
means the same as `yes', but documents that we are not really sure
about it.
`yes' means that it is possible both to dlopen and to
link against a library without 'lib' prefix,
i.e. it requires hardcode_direct to be `yes'.
Variable:need_version
Whether versioning is required for libraries, i.e. whether the
dynamic linker requires a version suffix for all libraries.
Set to `yes' or `no'. By default, it is `unknown', which
means the same as `yes', but documents that we are not really sure
about it.
Variable:need_locks
Whether files must be locked to prevent conflicts when compiling
simultaneously. Set to `yes' or `no'.
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:objdir
The name of the directory that contains temporary libtool files.
Variable:objext
The standard object file suffix (normally "o").
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:postuninstall_cmds
Variable:old_postuninstall_cmds
Commands run after uninstalling 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_overrides_runpath
Indicates whether it is possible to override the hard-coded library
search path of a program with an environment variable. If this is set
to no, libtool may have to create two copies of a program in the build
tree, one to be installed and one to be run in the build tree only.
When each of these copies is created depends on the value of
fast_install. The default value is `unknown', which is
equivalent to `no'.
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:striplib
Variable:old_striplib
Command to strip a shared (striplib) or static (old_striplib)
library, respectively. If these variables are empty, the strip flag
in the install mode will be ignored for libraries (see section 4.4 Install mode).
Variable:sys_lib_dlsearch_path_spec
Expression to get the run-time system library search path. Directories
that appear in this list are never hard-coded into executables.
Variable:sys_lib_search_path_spec
Expression to get the compile-time system library search path. This
variable is used by libtool when it has to test whether a certain
library is shared or static. The directories listed in
shlibpath_var are automatically appended to this list, every time
libtool runs (i.e., not at configuration time), because some linkers use
this variable to extend the library search path. Linker switches such
as -L also augment the search path.
Variable:thread_safe_flag_spec
Linker flag (passed through the C compiler) used to generate thread-safe
libraries.
Variable:version_type
The library version numbering type. One of `libtool',
`freebsd-aout', `freebsd-elf', `irix', `linux',
`osf', `sunos', `windows', or `none'.
Variable:whole_archive_flag_spec
Compiler flag to generate shared objects from convenience archives.
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
`~'-separated list of commands that are evaled 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 evaled before being used by
libtool.
Please take a moment to fill out
this visitor survey You can help support this site by
visiting the advertisers that sponsor it! (only once each, though)