autoconf
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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