[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autoconf/tools produces to many top level files
From: |
Eric Blake |
Subject: |
Re: autoconf/tools produces to many top level files |
Date: |
Fri, 12 Apr 2013 06:49:59 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130402 Thunderbird/17.0.5 |
On 04/12/2013 05:30 AM, Bob Rossi wrote:
> Hi,
>
> I'm creating a new project and using autotools. I've done this before,
> but for some reason this time I've noticed how many files autotools
> creates. It totally pollutes the top level of my project.
>
> lib <- Mine originally
> aclocal.m4
Ask automake if that can be moved. Autoconf does not create it.
> AUTHORS
GNU Coding Standards requires this in the top level; but you can tell
automake that you don't want to comply to GNU Coding Standards if you
want to omit it. Autoconf does not create it.
> autom4te.cache
Autoconf creates this, but it is local only; it is not packaged into
your tarballs. If you don't like it, you can use autom4te's --no-cache
option (your runs of autoconf will be slightly slower).
> bootstrap
Autotools don't create this. That must be your doing, or else you are
using gnulib.
> build-aux
This is a subdirectory, precisely to hold a lot more files rather than
polluting the top level directory.
> ChangeLog
GNU Coding Standards requires this in the top level. Same comments as
AUTHORS.
> config.h.in
This does not have to live at the top level. Use
AC_CONFIG_HEADERS([dir/config.h]) to stick it in a subdirectory instead.
> configure
Mandatory at the top level, for your package to be configured by end users.
> configure.in
That name is obsolete. You should be using configure.ac these days.
This file has to exist for you to create configure; and you need to ship
it to the user to comply with the rules of open source. No easy way to
stick it in a subdirectory.
> COPYING
GNU Coding Standards requires this in the top level. Same comments as
AUTHORS.
> INSTALL
GNU Coding Standards requires this in the top level. Same comments as
AUTHORS.
> m4
This is a subdirectory so that you don't have to pollute the top level
with helper .m4 files.
> Makefile.am
If you use automake, this is mandatory to comply with the rules of open
source. You don't have to use automake, in which case you can get away
without this file.
> Makefile.in
Mandatory if you want your use to do './configure && make' - configure
has to create a Makefile from something, after all.
> NEWS
GNU Coding Standards requires this in the top level. Same comments as
AUTHORS.
> README
GNU Coding Standards requires this in the top level. Same comments as
AUTHORS.
>
> I understand why configure, Makefile.am and bootstrap (autoreconf script)
> need to exist in this directory.
>
> Is it possible to configure the autotools so that everything else gets
> put somewhere else (like in a nested directory)?
It's possible to configure automake to not enforce GNU Coding Standards
and drop some of the files, and to use AC_CONFIG_HEADERS to bury
config.h[.in] in a subdirectory. Beyond that, it's already a pretty
minimal list, and nothing listed above is really autoconf's fault except
for autom4te.cache (which can be disabled), so you are better off
complaining to other lists.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature