(autoconf.info)Changed Directory Variables


Next: Build Directories Prev: Installation Directory Variables Up: Makefile Substitutions

4.8.3 Changed Directory Variables
---------------------------------

In Autoconf 2.60, the set of directory variables has changed, and the
defaults of some variables have been adjusted (Note: 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 (Note: 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_' (Note: Macro Names).


automatically generated by info2www