proposal: Remove AM_MAINTAINER_MODE; call ./configure separately from autogen.sh

Christian Stimming stimming at tuhh.de
Mon Nov 7 08:28:48 EST 2005


Ok, since my first try at autogen.sh simplification led to some 
unexpected problems, I'll now propose the changes before I try to commit 
these again.

Firstly, I'd propose to remove the AM_MAINTAINER_MODE macro from 
configure.in. This will basically turn on --enable-maintainer-mode 
behaviour always and it will remove the option to turn it off. The 
automake documentation advises against this macro anyway [1]. Currently 
we almost emulate that behaviour in the README.svn anyway because if in 
doubt, we advise people to run autogen.sh, which will give almost the 
same effect as an enabled maintainer-mode. The only people who shouldn't 
need to run this are the users who only got a tarball; however, in a 
tarball the maintainer-mode rules won't be triggered because of the 
correct timestamps during "make dist". So in effect we've relied on 
--enable-maintainer-mode for a long time already, and it isn't helpful 
to have it still disabled by default.

Secondly, I propose that autogen.sh shouldn't call ./configure anymore 
(my temporary committed autogen.sh already implemented this, but I 
forgot to explain it up front here). The only reason we require this 
right now is to pass --enable-maintainer-mode to configure; if that 
cmdline argument is removed anyway, then there's no need to force the 
configure calling by the autogen script anyway. In that case we can make 
the distinction between the autogen steps (only for CVS...SVN 
developers) and configure (for all users) more clear. Also, it isn't 
autogen that uses cmdline options but it is only configure, so I think 
the whole explanation of the options should be left to configure.

Christian



[1] From automake info page: "Several years ago Franc,ois Pinard pointed 
out several arguments
against `AM_MAINTAINER_MODE'.  Most of them relate to insecurity.  By
removing dependencies you get non-dependable builds: change to sources
files can have no effect on generated files and this can be very
confusing when unnoticed.  He adds that security shouldn't be reserved
to maintainers (what `--enable-maintainer-mode' suggests), on the
contrary.  If one user has to modify a `Makefile.am', then either
`Makefile.in' should be updated or a warning should be output (this is
what Automake uses `missing' for) but the last thing you want is that
nothing happens and the user doesn't notice it (this is what happens
when rebuild rules are disabled by `AM_MAINTAINER_MODE').

  Jim Meyering, the inventor of the `AM_MAINTAINER_MODE' macro was
swayed by Franc,ois's arguments, and got rid of `AM_MAINTAINER_MODE' in
all of his packages."


More information about the gnucash-devel mailing list