4.7.3 Changed Directory Variables
In Autoconf 2.60, the set of directory variables has changed, and the
defaults of some variables have been adjusted
(see Installation Directory Variables) to changes in the
GNU Coding Standards. Notably, datadir, infodir, and
mandir are now expressed in terms of datarootdir. If you are
upgrading from an earlier Autoconf version, you may need to adjust your files
to ensure that the directory variables are substituted correctly
(see Defining Directories), and that a definition of datarootdir is
in place. For example, in a Makefile.in, adding
datarootdir = @datarootdir@
is usually sufficient. If you use Automake to create Makefile.in,
it will add this for you.
To help with the transition, Autoconf warns about files that seem to use
datarootdir without defining it. In some cases, it then expands
the value of $datarootdir in substitutions of the directory
variables. The following example shows such a warning:
$ cat configure.ac
AC_INIT
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
$ cat Makefile.in
prefix = @prefix@
datadir = @datadir@
$ autoconf
$ configure
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING:
Makefile.in seems to ignore the --datarootdir setting
$ cat Makefile
prefix = /usr/local
datadir = ${prefix}/share
Usually one can easily change the file to accommodate both older and newer
Autoconf releases:
$ cat Makefile.in
prefix = @prefix@
datarootdir = @datarootdir@
datadir = @datadir@
$ configure
configure: creating ./config.status
config.status: creating Makefile
$ cat Makefile
prefix = /usr/local
datarootdir = ${prefix}/share
datadir = ${datarootdir}
In some cases, however, the checks may not be able to detect that a suitable
initialization of datarootdir is in place, or they may fail to detect
that such an initialization is necessary in the output file. If, after
auditing your package, there are still spurious configure warnings about
datarootdir , you may add the line
AC_DEFUN([AC_DATAROOTDIR_CHECKED])
to your configure.ac to disable the warnings. This is an exception
to the usual rule that you should not define a macro whose name begins with
AC_ (see Macro Names).
|