[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,
http://www.gnu.org/prep/standards_54.html#SEC54, 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 configure.ac, 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:
http://mail.gnu.org/archive/html/autoconf/2001-06/msg00233.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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- GNU Coding standards and 'datarootdir',
Eric Blake <=