.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
.TH LIBTOOL "1" "October 2011" "libtool 2.4.2" "User Commands"
.SH NAME
libtool \- manual page for libtool 2.4.2
.SH SYNOPSIS
.B libtool
[\fIOPTION\fR]... [\fIMODE-ARG\fR]...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=compile COMPILE-COMMAND\fR... \fISOURCEFILE\fR
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=link LINK-COMMAND\fR...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=execute COMMAND \fR[\fIARGS\fR]...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=install INSTALL-COMMAND\fR...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=finish \fR[\fILIBDIR\fR]...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=uninstall RM \fR[\fIRM-OPTION\fR]... \fIFILE\fR...
.br
.B libtool
[\fIOPTION\fR]... \fI--mode=clean RM \fR[\fIRM-OPTION\fR]... \fIFILE\fR...
.SH DESCRIPTION
Provide generalized library\-building support services.
.TP
\fB\-\-config\fR
show all configuration variables
.TP
\fB\-\-debug\fR
enable verbose shell tracing
.TP
\fB\-n\fR, \fB\-\-dry\-run\fR
display commands without modifying any files
.TP
\fB\-\-features\fR
display basic configuration information and exit
.TP
\fB\-\-mode\fR=\fIMODE\fR
use operation mode MODE
.TP
\fB\-\-preserve\-dup\-deps\fR
don't remove duplicate dependency libraries
.TP
\fB\-\-quiet\fR, \fB\-\-silent\fR
don't print informational messages
.TP
\fB\-\-no\-quiet\fR, \fB\-\-no\-silent\fR
print informational messages (default)
.TP
\fB\-\-no\-warn\fR
don't display warning messages
.TP
\fB\-\-tag\fR=\fITAG\fR
use configuration variables from tag TAG
.TP
\fB\-v\fR, \fB\-\-verbose\fR
print more informational messages than default
.TP
\fB\-\-no\-verbose\fR
don't print the extra informational messages
.TP
\fB\-\-version\fR
print version information
.TP
\fB\-h\fR, \fB\-\-help\fR, \fB\-\-help\-all\fR
print short, long, or detailed help message
.PP
MODE must be one of the following:
.TP
clean
remove files from the build directory
.TP
compile
compile a source file into a libtool object
.TP
execute
automatically set library path, then run a program
.TP
finish
complete the installation of libtool libraries
.TP
install
install libraries or executables
.TP
link
create a library or an executable
.TP
uninstall
remove libraries from an installed directory
.PP
MODE\-ARGS vary depending on the MODE.  When passed as first option,
`\-\-mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
.PP
GNU libtool home page: <http://www.gnu.org/software/libtool/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
.PP
Description of compile mode:
.PP
Compile a source file into a libtool library object.
.PP
This mode accepts the following additional options:
.TP
\fB\-o\fR OUTPUT\-FILE
set the output file name to OUTPUT\-FILE
.TP
\fB\-no\-suppress\fR
do not suppress compiler output for multiple passes
.TP
\fB\-prefer\-pic\fR
try to build PIC objects only
.TP
\fB\-prefer\-non\-pic\fR
try to build non\-PIC objects only
.TP
\fB\-shared\fR
do not build a `.o' file suitable for static linking
.TP
\fB\-static\fR
only build a `.o' file suitable for static linking
.TP
\fB\-Wc\fR,FLAG
pass FLAG directly to the compiler
.PP
COMPILE\-COMMAND is a command to be used in creating a `standard' object file
from the given SOURCEFILE.
.PP
The output file name is determined by removing the directory component from
SOURCEFILE, then substituting the C source code suffix `.c' with the
library object suffix, `.lo'.
.PP
Description of link mode:
.PP
Link object files or libraries together to form another library, or to
create an executable program.
.PP
LINK\-COMMAND is a command using the C compiler that you would use to create
a program from several object files.
.PP
The following components of LINK\-COMMAND are treated specially:
.TP
\fB\-all\-static\fR
do not do any dynamic linking at all
.TP
\fB\-avoid\-version\fR
do not add a version suffix if possible
.TP
\fB\-bindir\fR BINDIR
specify path to binaries directory (for systems where
libraries must be found in the PATH setting at runtime)
.TP
\fB\-dlopen\fR FILE
`\-dlpreopen' FILE if it cannot be dlopened at runtime
.TP
\fB\-dlpreopen\fR FILE
link in FILE and add its symbols to lt_preloaded_symbols
.TP
\fB\-export\-dynamic\fR
allow symbols from OUTPUT\-FILE to be resolved with dlsym(3)
.TP
\fB\-export\-symbols\fR SYMFILE
try to export only the symbols listed in SYMFILE
.TP
\fB\-export\-symbols\-regex\fR REGEX
try to export only the symbols matching REGEX
.TP
\fB\-LLIBDIR\fR
search LIBDIR for required installed libraries
.TP
\fB\-lNAME\fR
OUTPUT\-FILE requires the installed library libNAME
.TP
\fB\-module\fR
build a library that can dlopened
.TP
\fB\-no\-fast\-install\fR
disable the fast\-install mode
.TP
\fB\-no\-install\fR
link a not\-installable executable
.TP
\fB\-no\-undefined\fR
declare that a library does not refer to external symbols
.TP
\fB\-o\fR OUTPUT\-FILE
create OUTPUT\-FILE from the specified objects
.TP
\fB\-objectlist\fR FILE
Use a list of object files found in FILE to specify objects
.TP
\fB\-precious\-files\-regex\fR REGEX
don't remove output files matching REGEX
.TP
\fB\-release\fR RELEASE
specify package release information
.TP
\fB\-rpath\fR LIBDIR
the created library will eventually be installed in LIBDIR
.TP
\fB\-R[\fR ]LIBDIR
add LIBDIR to the runtime path of programs and libraries
.TP
\fB\-shared\fR
only do dynamic linking of libtool libraries
.TP
\fB\-shrext\fR SUFFIX
override the standard shared library file extension
.TP
\fB\-static\fR
do not do any dynamic linking of uninstalled libtool libraries
.TP
\fB\-static\-libtool\-libs\fR
do not do any dynamic linking of libtool libraries
.TP
\fB\-version\-info\fR CURRENT[:REVISION[:AGE]]
specify library version info [each variable defaults to 0]
.TP
\fB\-weak\fR LIBNAME
declare that the target provides the LIBNAME interface
.HP
\fB\-Wc\fR,FLAG
.TP
\fB\-Xcompiler\fR FLAG
pass linker\-specific FLAG directly to the compiler
.HP
\fB\-Wl\fR,FLAG
.TP
\fB\-Xlinker\fR FLAG
pass linker\-specific FLAG directly to the linker
.TP
\fB\-XCClinker\fR FLAG
pass link\-specific FLAG to the compiler driver (CC)
.PP
All other options (arguments beginning with `\-') are ignored.
.PP
Every other argument is treated as a filename.  Files ending in `.la' are
treated as uninstalled libtool libraries, other files are standard or library
object files.
.PP
If the OUTPUT\-FILE ends in `.la', then a libtool library is created,
only library objects (`.lo' files) may be specified, and `\-rpath' is
required, except when creating a convenience library.
.PP
If OUTPUT\-FILE ends in `.a' or `.lib', then a standard library is created
using `ar' and `ranlib', or on Windows using `lib'.
.PP
If OUTPUT\-FILE ends in `.lo' or `.o', then a reloadable object file
is created, otherwise an executable program is created.
.PP
Description of execute mode:
.PP
Automatically set library path, then run a program.
.PP
This mode accepts the following additional options:
.TP
\fB\-dlopen\fR FILE
add the directory containing FILE to the library path
.PP
This mode sets the library path environment variable according to `\-dlopen'
flags.
.PP
If any of the ARGS are libtool executable wrappers, then they are translated
into their corresponding uninstalled binary, and any of their required library
directories are added to the library path.
.PP
Then, COMMAND is executed, with ARGS as arguments.
.PP
Description of install mode:
.PP
Install executables or libraries.
.PP
INSTALL\-COMMAND is the installation command.  The first component should be
either the `install' or `cp' program.
.PP
The following components of INSTALL\-COMMAND are treated specially:
.TP
\fB\-inst\-prefix\-dir\fR PREFIX\-DIR
Use PREFIX\-DIR as a staging area for installation
.PP
The rest of the components are interpreted as arguments to that command (only
BSD\-compatible install options are recognized).
.PP
Description of finish mode:
.PP
Complete the installation of libtool libraries.
.PP
Each LIBDIR is a directory that contains libtool libraries.
.PP
The commands that this mode executes may require superuser privileges.  Use
the `\-\-dry\-run' option if you just want to see what would be executed.
.PP
Description of uninstall mode:
.PP
Remove libraries from an installation directory.
.PP
RM is the name of the program to use to delete files associated with each FILE
(typically `/bin/rm').  RM\-OPTIONS are options (such as `\-f') to be passed
to RM.
.PP
If FILE is a libtool library, all the files associated with it are deleted.
Otherwise, only FILE itself is deleted using RM.
.PP
Description of clean mode:
.PP
Remove files from the build directory.
.PP
RM is the name of the program to use to delete files associated with each FILE
(typically `/bin/rm').  RM\-OPTIONS are options (such as `\-f') to be passed
to RM.
.PP
If FILE is a libtool library, object or program, all the files associated
with it are deleted. Otherwise, only FILE itself is deleted using RM.
.PP
When reporting a bug, please describe a test case to reproduce it and
include the following information:
.TP
host\-triplet:
x86_64\-apple\-darwin11.2.0
.TP
shell:
/bin/sh
.TP
compiler:
gcc
.TP
compiler flags:
\fB\-g\fR \fB\-O2\fR
.TP
linker:
/usr/llvm\-gcc\-4.2/libexec/gcc/i686\-apple\-darwin11/4.2.1/ld (gnu? no)
.TP
libtool:
(GNU libtool) 2.4.2
.TP
automake:
automake (GNU automake) 1.11.1
.TP
autoconf:
autoconf (GNU Autoconf) 2.68
.SH AUTHOR
Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
.SH "REPORTING BUGS"
Report bugs to <bug\-libtool@gnu.org>.
.SH COPYRIGHT
Copyright \(co 2011 Free Software Foundation, Inc.
.br
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
The full documentation for
.B libtool
is maintained as a Texinfo manual.  If the
.B info
and
.B libtool
programs are properly installed at your site, the command
.IP
.B info libtool
.PP
should give you access to the complete manual.
