Next: Writing your own aclocal macros, Previous: aclocal Options, Up: Auto-generating aclocal.m4 [Contents][Index]
By default, aclocal
searches for .m4 files in the following
directories, in this order:
acdir-APIVERSION
This is where the .m4 macros distributed with Automake itself
are stored. APIVERSION depends on the Automake release used;
for Automake 1.6.x, APIVERSION = 1.6
.
acdir
This directory is intended for third party .m4 files, and is
configured when automake
itself is built. This is
@datadir@/aclocal/, which typically
expands to ${prefix}/share/aclocal/. To find the compiled-in
value of acdir, use the --print-ac-dir option
(see aclocal Options).
As an example, suppose that automake-1.6.2
was configured with
--prefix=/usr/local. Then, the search path would be:
As explained in (see aclocal Options), there are several options that can be used to change or extend this search path.
The most erroneous option to modify the search path is --acdir=dir, which changes default directory and drops the APIVERSION directory. For example, if one specifies ‘--acdir=/opt/private/’, then the search path becomes:
This option, --acdir, is intended for use by the internal Automake test suite only; it is not ordinarily needed by end-users.
Any extra directories specified using -I options (see aclocal Options) are prepended to this search list. Thus, ‘aclocal -I /foo -I /bar’ results in the following search path:
There is a third mechanism for customizing the search path. If a
dirlist file exists in acdir, then that file is assumed to
contain a list of directory patterns, one per line. aclocal
expands these patterns to directory names, and adds them to the search
list after all other directories. dirlist entries may
use shell wildcards such as ‘*’, ‘?’, or [...]
.
For example, suppose acdir/dirlist contains the following:
/test1 /test2 /test3*
and that aclocal
was called with the ‘-I /foo -I /bar’ options.
Then, the search path would be
/foo
/bar
/test1
/test2
and all directories with path names starting with /test3
.
If the --acdir=dir option is used, then aclocal
will search for the dirlist file in dir. In the
‘--acdir=/opt/private/’ example above, aclocal
would look
for /opt/private/dirlist. Again, however, the --acdir
option is intended for use by the internal Automake test suite only;
--acdir is not ordinarily needed by end-users.
dirlist is useful in the following situation: suppose that
automake
version 1.6.2
is installed with
‘--prefix=/usr’ by the system vendor. Thus, the default search
directories are
/usr/share/aclocal-1.6/
/usr/share/aclocal/
However, suppose further that many packages have been manually installed on the system, with $prefix=/usr/local, as is typical. In that case, many of these “extra” .m4 files are in /usr/local/share/aclocal. The only way to force /usr/bin/aclocal to find these “extra” .m4 files is to always call ‘aclocal -I /usr/local/share/aclocal’. This is inconvenient. With dirlist, one may create a file /usr/share/aclocal/dirlist containing only the single line
/usr/local/share/aclocal
Now, the “default” search path on the affected system is
/usr/share/aclocal-1.6/
/usr/share/aclocal/
/usr/local/share/aclocal/
without the need for -I options; -I options can be reserved for project-specific needs (my-source-dir/m4/), rather than using it to work around local system-dependent tool installation directories.
Similarly, dirlist can be handy if you have installed a local
copy of Automake in your account and want aclocal
to look for
macros installed at other places on the system.
Next: Writing your own aclocal macros, Previous: aclocal Options, Up: Auto-generating aclocal.m4 [Contents][Index]