.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.46.4.
.TH LIBTOOL "1" "February 2015" "libtool 2.4.5.7-408c" "User Commands"
.SH NAME
libtool \- manual page for libtool 2.4.5.7-408c
.SH SYNOPSIS
.B libtool
[\fI\,OPTION\/\fR]... [\fI\,MODE-ARG\/\fR]...
.SH DESCRIPTION
Provide generalized library\-building support services.
.SH OPTIONS
.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=\fI\,MODE\/\fR
use operation mode MODE
.TP
\fB\-\-no\-warnings\fR
equivalent to '\-Wnone'
.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\-\-tag\fR=\fI\,TAG\/\fR
use configuration variables from tag TAG
.TP
\fB\-v\fR, \fB\-\-verbose\fR
print more informational messages than default
.TP
\fB\-\-version\fR
print version information
.TP
\fB\-W\fR, \fB\-\-warnings\fR=\fI\,CATEGORY\/\fR
report the warnings falling in CATEGORY [all]
.TP
\fB\-h\fR, \fB\-\-help\fR, \fB\-\-help\-all\fR
print short, long, or detailed help message
.SS "Warning categories include:"
.TP
\&'all'
show all warnings
.TP
\&'none'
turn off all the warnings
.TP
\&'error'
warnings are treated as fatal errors
.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/s/libtool/>.
.PP
When reporting a bug, please describe a test case to reproduce it and
include the following information:
.TP
host\-triplet:
x86_64\-apple\-darwin14.1.0
.TP
shell:
\fI\,/bin/sh\/\fP
.TP
compiler:
gcc
.IP
compiler flags: \fB\-g\fR \fB\-O2\fR
linker:         \fI\,/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld\/\fP (gnu? no)
version:        libtool (GNU libtool) 2.4.5.7\-408c
automake:       automake (GNU automake) 1.15
autoconf:       autoconf (GNU Autoconf) 2.69
.SH AUTHOR
Written by Gordon Matzigkeit, 1996
.SH "REPORTING BUGS"
Report bugs to <bug\-libtool@gnu.org>.
.SH COPYRIGHT
Copyright \(co 2014 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.
