autoconf
[Top][All Lists]
Advanced

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

autoconf defaults v.s. tradition


From: Chad Walstrom
Subject: autoconf defaults v.s. tradition
Date: Wed, 28 Dec 2005 14:03:52 -0600

(Please Cc: me, I'm not subscribed.)

I've been having a bit of a debate with people lately about the
expected behavior of autoconf v.s. "traditional" placement of
configuration files.  I'm in the middle (well, toward the end) of the
migration of GNATS from hand-crafted Makefile.in files to automake
driven files, and subsequently updating configure.ac.  Traditionally,
GNATS installation method is to install configuration files in
"$sysconfdir/gnats", which I personally view as a violation of one of
the features of autoconf: allow the administrator to dictate where
files are installed.

If I were to specify prefix=/opt/<package>/<version>, where
package=gnats, and version=4.1.999, and bindir=${prefix}/bin,
sysconfdir=${prefix}/etc, and so on, I would be a bit surprised and
miffed to find my configuration files in /opt/gnats/4.1.999/etc/gnats!

    "13:01 <@dopp> but, yes, if I said sysconfdir=/etc and it put
    stuff in /etc/gnats, I'd have to wonder what the maintainer was
    smoking."

        -- dopp on address@hidden

I interpret bindir, sbindir, sysconfdir and family as contextually
dependent upon the software bundle being installed and the options
specified at configuration time.  sysconfdir is interpreted as, "This
is where configuration files for GNATS are stored."  They're not to be
interpreted as, "sysconfdir is the prefix location for
package-specific configuration directories."

So, this brings to question the automake variables pkgdatadir and
dist_pkgdata_DATA.  Do these even make sense?  I had initially used
them, but now I'm re-considering.  It's creating side-affect behavior
not advertised in ./configure --help.  I plan on going back to simply
using datadir.

A useful option might be "--enable-layout=STYLE", where STYLE could be
well known layouts: gnu (default), fhs, bsd, apache, opt, etc.  I
believe the Apache project does something like this.

I just wanted to validate my assertions before proceeding too far down
this path.  Objects, assertions, and opinions welcome.

-- 
Chad Walstrom <address@hidden>           http://www.wookimus.net/
           assert(expired(knowledge)); /* core dump */





reply via email to

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