Follow-up Comment #19, bug #66583 (group groff):

[comment #15 comment #15:]
> [comment #14 comment #14:]
>> Regarding the patch itself, I don't like it.  I'm not saying it's not the
>> right patch (I don't know autotools, so can't judge that).  I just mean that
>> if it's the right thing, it tells me that autotools is brain damaged.  Why
>> do you need to test for the existence of a tool that builds documentation
>> for being able to build a binary?  The right fix in a sane build system
>> should be to fix the depencencies so that compilation of the binary and
>> compilation of the documentation happen in parallel, and one can succeed
>> without the other.
> 
> To be honest, I am not sure it's the right patch; it's just the one that
> matched my abilities. If anyone is capable of fixing this properly, it's
> Branden, but he doesn't seem very eager to do it.
> 
> The problematic part is doc/gnu.eps. The instructions for building it are
> specified in doc/doc.am alongside other documentation, but the file itself is
> included by tests as well. I have tried extracting the instructions related
> to it into a separate file, but it didn't work correctly. I will try looking
> into it again and try to make it work.

I have spent some 2 hours on it. doc/gnu.eps is not in fact an issue. The
problem is that the documentation files are made into dependencies by means of
being appended to various make macros which then somehow end up on some
target's dependency list. There are at least 4 such macros used by automake
(man1_MANS, man5_MANS, man7_MANS, EXTRA_DIST) and some others created by
groff. So instead of having a ./configure script generate a doc target by
finding manpage sources, there are many instances of (grep output):

./src/utils/xtotroff/xtotroff.am:30:EXTRA_DIST +=
src/utils/xtotroff/xtotroff.1.man
./src/utils/tfmtodit/tfmtodit.am:19:man1_MANS +=
src/utils/tfmtodit/tfmtodit.1
./src/utils/tfmtodit/tfmtodit.am:20:EXTRA_DIST +=
src/utils/tfmtodit/tfmtodit.1.man
./src/utils/afmtodit/afmtodit.am:25:man1_MANS +=
src/utils/afmtodit/afmtodit.1


Another problem is that it seems impossible to conditionally define a make
rule with automake, so it simply isn't possible to conditionally include
doc/doc.am. Instead, one has to figure out a way to neutralize its contents
through (empty) macro substitution -- so much for autotools being a 'mature'
build system. This seems to be the reason why my patch triggered warnings for
Branden; I maintain that this is a design deficiency of automake. The more I
get to know autotools, the more I get the feeling that a carefully written
shell script would be a much saner build system.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?66583>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to