.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.8.
.TH AUTOMAKE "1" "September 2014" "automake 1.14.1" "User Commands"
.SH NAME
automake \- manual page for automake 1.14.1
.SH SYNOPSIS
.B automake-1.14
[\fIOPTION\fR]... [\fIMakefile\fR]...
.SH DESCRIPTION
Generate Makefile.in for configure from Makefile.am.
.SS "Operation modes:"
.TP
\fB\-\-help\fR
print this help, then exit
.TP
\fB\-\-version\fR
print version number, then exit
.TP
\fB\-v\fR, \fB\-\-verbose\fR
verbosely list files processed
.TP
\fB\-\-no\-force\fR
only update Makefile.in's that are out of date
.TP
\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR
report the warnings falling in CATEGORY
.SS "Dependency tracking:"
.TP
\fB\-i\fR, \fB\-\-ignore\-deps\fR
disable dependency tracking code
.TP
\fB\-\-include\-deps\fR
enable dependency tracking code
.SS "Flavors:"
.TP
\fB\-\-foreign\fR
set strictness to foreign
.TP
\fB\-\-gnits\fR
set strictness to gnits
.TP
\fB\-\-gnu\fR
set strictness to gnu
.SS "Library files:"
.TP
\fB\-a\fR, \fB\-\-add\-missing\fR
add missing standard files to package
.TP
\fB\-\-libdir\fR=\fIDIR\fR
set directory storing library files
.TP
\fB\-\-print\-libdir\fR
print directory storing library files
.TP
\fB\-c\fR, \fB\-\-copy\fR
with \fB\-a\fR, copy missing files (default is symlink)
.TP
\fB\-f\fR, \fB\-\-force\-missing\fR
force update of standard files
.SS "Warning categories include:"
.TP
gnu
GNU coding standards (default in gnu and gnits modes)
.TP
obsolete
obsolete features or constructions
.TP
override
user redefinitions of Automake rules or variables
.TP
portability
portability issues (default in gnu and gnits modes)
.TP
extra\-portability
extra portability issues related to obscure tools
.TP
syntax
dubious syntactic constructs (default)
.TP
unsupported
unsupported or incomplete features (default)
.TP
all
all the warnings
.TP
no\-CATEGORY
turn off warnings in CATEGORY
.TP
none
turn off all the warnings
.TP
error
treat warnings as errors
.SS "Files automatically distributed if found (always):"
.TP
ABOUT\-GNU
INSTALL             config.rpath        ltconfig
.TP
ABOUT\-NLS
NEWS                config.sub          ltmain.sh
.TP
AUTHORS
README              depcomp             mdate\-sh
.TP
BACKLOG
THANKS              install\-sh          missing
.TP
COPYING
TODO                libversion.in       mkinstalldirs
.TP
COPYING.DOC
ar\-lib              ltcf\-c.sh           py\-compile
.TP
COPYING.LESSER
compile             ltcf\-cxx.sh         texinfo.tex
.TP
COPYING.LIB
config.guess        ltcf\-gcj.sh         ylwrap
.IP
ChangeLog
.SS "Files automatically distributed if found (under certain conditions):"
.TP
acconfig.h
config.h.bot        configure           configure.in
.TP
aclocal.m4
config.h.top        configure.ac        stamp\-vti
.SH AUTHOR
Written by Tom Tromey <tromey@redhat.com>
.IP
and Alexandre Duret\-Lutz <adl@gnu.org>.
.SH "REPORTING BUGS"
Report bugs to <bug\-automake@gnu.org>.
.br
GNU Automake home page: <http://www.gnu.org/software/automake/>.
.br
General help using GNU software: <http://www.gnu.org/gethelp/>.
.SH COPYRIGHT
Copyright \(co 2013 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl\-2.0.html>
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
The full documentation for
.B automake
is maintained as a Texinfo manual.  If the
.B info
and
.B automake
programs are properly installed at your site, the command
.IP
.B info automake
.PP
should give you access to the complete manual.
