[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU Coding standards and 'datarootdir'

From: Eric Blake
Subject: GNU Coding standards and 'datarootdir'
Date: Fri, 10 Oct 2003 07:14:28 -0600
User-agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

I have noticed an inconsistency between autoconf and the GNU Coding Standards. According to the standards,, Makefiles should provide $(datarooddir) which defaults to `$(prefix)/share', so that $(datadir) [`$(datarooddir)'], $(infodir) [`$(datarooddir)/info'], and $(mandir) [`$(datarooddir)/man'] can all use this location. These defaults also match with the FHS, which recommends /usr/share/{info,man} for info and man files, respectively, rather than /usr/{info,man} which occur with a default of $(prefix)/man.

However, section 4.7.2 of the autoconf manual version 2.57 makes no mention of the datarooddir variable, and does not list defaults for the variables that it does mention. It would be nice if the documentation would list the defaults of these variables, but I found the defaults by running autoconf on a trivial, then calling `configure --help':

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --infodir=DIR          info documentation [PREFIX/info]
  --mandir=DIR           man documentation [PREFIX/man]

Notice that infodir and mandir are still using PREFIX, rather than DATAROOTDIR.

The GNU Coding Standards also mention lispdir and localedir, which do not show up in the configure documentation (and in fact, the Coding Standards have to give a workaround for how to properly define lispdir when using Autoconf).

While I am on the topic, it looks like a couple of years ago, a similar conversation was held over whether autoconf should provide a docdir, so that non-standard things like html files could go in $(docdir)/html/, rather than $(datadir)/doc/html:
But it looks like nothing ever came of that conversation.

Whether or not you decide to add a $(docdir), $(lispdir), and $(localedir), I would like to see $(datarootdir) added to autoconf, with the proper updates to $(mandir) and $(infodir), so that my Makefiles can better follow the GNU Coding Standards.

Someday, I might put a cute statement here.

Eric Blake             address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]