If the current directory contains Texinfo source, you must declare it
TEXINFOS primary. Generally Texinfo files are converted
into info, and thus the
info_TEXINFOS variable is most commonly used
here. Any Texinfo source file should have the .texi extension.
Automake also accepts .txi or .texinfo extensions, but their
use is discouraged now, and will elicit runtime warnings.
Automake generates rules to build .info, .dvi, .ps, .pdf and .html files from your Texinfo sources. Following the GNU Coding Standards, only the .info files are built by ‘make all’ and installed by ‘make install’ (unless you use no-installinfo, see below). Furthermore, .info files are automatically distributed so that Texinfo is not a prerequisite for installing your package.
It is worth noting that, contrary to what happens with the other formats,
the generated .info files are by default placed in
rather than in the
builddir. This can be changed with the
Other documentation formats can be built on request by ‘make dvi’, ‘make ps’, ‘make pdf’ and ‘make html’, and they can be installed with ‘make install-dvi’, ‘make install-ps’, ‘make install-pdf’ and ‘make install-html’ explicitly. ‘make uninstall’ will remove everything: the Texinfo documentation installed by default as well as all the above optional formats.
All of these targets can be extended using ‘-local’ rules (see Extending).
If the .texi file
@includes version.texi, then
that file will be automatically generated. The file version.texi
defines four Texinfo flag you can reference using
Both of these flags hold the version number of your program. They are kept separate for clarity.
This holds the date the primary .texi file was last modified.
This holds the name of the month in which the primary .texi file was last modified.
The version.texi support requires the
script; this script is supplied with Automake and automatically
automake is invoked with the
If you have multiple Texinfo files, and you want to use the version.texi feature, then you have to have a separate version file for each Texinfo file. Automake will treat any include in a Texinfo file that matches vers*.texi just as an automatically generated version file.
Sometimes an info file actually depends on more than one .texi
file. For instance, in GNU Hello, hello.texi includes the file
fdl.texi. You can tell Automake about these dependencies using
texi_TEXINFOS variable. Here is how GNU Hello does it:
info_TEXINFOS = hello.texi hello_TEXINFOS = fdl.texi
By default, Automake requires the file texinfo.tex to appear in
the same directory as the Makefile.am file that lists the
.texi files. If you used
configure.ac (see Finding ‘configure’ Input in The Autoconf Manual), then texinfo.tex is looked for
there. In both cases,
automake then supplies texinfo.tex if
--add-missing is given, and takes care of its distribution.
However, if you set the
TEXINFO_TEX variable (see below),
it overrides the location of the file and turns off its installation
into the source as well as its distribution.
The option no-texinfo.tex can be used to eliminate the
requirement for the file texinfo.tex. Use of the variable
TEXINFO_TEX is preferable, however, because that allows the
Automake generates an
install-info rule; some people apparently
use this. By default, info pages are installed by ‘make
install’, so running
make install-info is pointless. This can
be prevented via the
no-installinfo option. In this case,
.info files are not installed by default, and user must
request this explicitly using ‘make install-info’.
make install-info and
will try to run the
install-info program (if available) to
update (or create/remove) the
If this is undesired, it can be prevented by exporting the
AM_UPDATE_INFO_DIR variable to "
The following variables are used by the Texinfo build rules.
The name of the program invoked to build .info files. This
variable is defined by Automake. If the
makeinfo program is
found on the system then it will be used by default; otherwise
missing will be used instead.
The command invoked to build .html files. Automake defines this to ‘$(MAKEINFO) --html’.
User flags passed to each invocation of ‘$(MAKEINFO)’ and ‘$(MAKEINFOHTML)’. This user variable (see User Variables) is not expected to be defined in any Makefile; it can be used by users to pass extra flags to suit their needs.
Maintainer flags passed to each
makeinfo invocation. Unlike
MAKEINFOFLAGS, these variables are meant to be defined by
maintainers in Makefile.am. ‘$(AM_MAKEINFOFLAGS)’ is
makeinfo when building .info files; and
‘$(AM_MAKEINFOHTMLFLAGS)’ is used when building .html
For instance, the following setting can be used to obtain one single .html file per manual, without node separators.
AM_MAKEINFOHTMLFLAGS = --no-headers --no-split
AM_MAKEINFOHTMLFLAGS defaults to ‘$(AM_MAKEINFOFLAGS)’.
This means that defining
AM_MAKEINFOFLAGS without defining
AM_MAKEINFOHTMLFLAGS will impact builds of both .info
and .html files.
The name of the command that converts a .texi file into a .dvi file. This defaults to ‘texi2dvi’, a script that ships with the Texinfo package.
The name of the command that translates a .texi file into a .pdf file. This defaults to ‘$(TEXI2DVI) --pdf --batch’.
The name of the command that builds a .ps file out of a .dvi file. This defaults to ‘dvips’.
If your package has Texinfo files in many directories, you can use the
TEXINFO_TEX to tell Automake where to find the canonical
texinfo.tex for your package. The value of this variable should
be the relative path from the current Makefile.am to
TEXINFO_TEX = ../doc/texinfo.tex