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