Subject: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option

From: Stefano Lattarini <[email-masked]>
Date: Sat, 31 Mar 2012 10:30:06 +0200

Hi Ian, Joseph, and sorry for the delay.

On 03/29/2012 01:43 AM, Ian Lance Taylor wrote:
> Stefano Lattarini <[email-masked]> writes:
> 
>>> (I think avoiding info documentation being built in the source directory,
>>> so that builds could use a non-writable source directory, may have been
>>> one part).
>>>
>> There is probably some hack to obtain this effect (it's tested in the testsuite
>> somewhere), but my opinion is that if you distribute the generated info files
>> you should also have them generated in the source directory, to avoid nasty
>> surprises (for a similar issue, involving yacc and lex, see automake bug#10852,
>> in particular messages <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#14>
>> and <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#15>).
> 
> It's useful to be able to include .info files in releases so that people
> can build the releases without having to have makeinfo installed.
>
I agree on this (as did past Automake maintainers -- in fact Automake distributes
generated info files be default).  But I also think that, whenever you distribute
generated files, the most sensible and safer thing to do is to have them generated
in the srcdir and not in the builddir, so that the tree from a VCS checkout and
the one extracted from a distribution tarball are similar and consistent (I held
a different opinion once, but Akim Demaille later changed my mind on this).

> It's important that it be possible to build with the sources on a
> read-only disk.
>
Yes, and in fact "make distcheck" verifies that this is possible.  However,
assuming it is also possible to *hack* a package with the sources on a read
only disk is not warranted.

In conclusion, I see two possible sane approaches w.r.t. the handling of
generated info files:

  - Have them distributed (automake's default).  This means that they will
    be build in the srcdir, not in the builddir: of course, this only affects
    the maintainer, since for a user that builds the package from a tarball
    those files should *not* be rebuilt, hence there is no problem even if
    the user's srcdir is read-only.

  - Don't distribute the generated info files.  To obtain this effect, it is
    enough to list the generated into files in the CLEANFILES variable (see
    for example the tests 'txinfo23', 'txinfo24' and 'txinfo25' in the automake
    testsuite).  In this case, the user will have to to have the 'makeinfo'
    program available to build them.

Regards,
  Stefano