[sword-devel] Autotools Bug?
Jonathan Marsden
jmarsden at fastmail.fm
Mon May 11 18:57:11 MST 2009
Greg Hellings wrote:
> Because there are some people who have no desire to learn anything
> about autotools ...
Which is fine. That is their choice. Such people by definition should
probably not also choose to be volunteer developers on a project that
uses autotools. The project team chose its build system. I submit that
developers of that project have some responsibility to know at least the
basics of their own chosen toolset. So the way to avoid learning
anything about autotools ... is not to develop with it :)
Note that end users of such projects (including libraries) do not need
to use autotools directly, just the shell scripts and Makefiles it
creates: the usual ./configure && make && sudo make install incantation
is fine. In general (common hardware and OS platform, building from a
released source tarball), that is sufficient.
Only developers working on ports to new environments, or using a
changing unreleased codebase where someone just modified configure.ac or
Makefile.am *and* forgot to do an autoreconf before committing their
changes, need to care about this at all. (Well, and the project needs
at least one developer who actually understands their chosen build
system... but that is true whatever build system is chosen!).
BTW, the answer to your "when to use which tool" question is: to
recreate the build system, use autoreconf, unless the project is doing
something unusual and so specifically documents the use of a different
approach.
You will find a message to this effect in every recent aclocal.m4, for
instance:
If you have problems, you may need to regenerate the build system
entirely.
To do so, use the procedure documented by the package, typically
`autoreconf'.
is in the one that is part of several recent SWORD (RC) source tarballs,
and displayed if the system it is used on has a different autoconf
version from the one used to create that file (backporting SWORD
1.6.0RC3 to Hardy, for example, and running autoreconf (or autogen.sh)
for some strange reason, should display that message).
Note that this implies SWORD is 'atypical' in *not* (yet?) using autoreconf.
> ... inherently anti-cross-platform ...
With several thousand Debian packages (including SWORD) using GNU
Autotools currently built for over ten different hardware platforms,
that's an unsupported statement of opinion which I think might be
debated... but that's probably off topic for this list.
SUMMARY:
Users of GNU Autotools based libraries may need to know ./configure &&
make && sudo make install to build and install them from source.
Developers working with unreleased changing code may need to know
autoreconf as well. I'm not convinced this minimal level of knowledge
is a significant burden for a developer to have to cope with, but that's
just my biased opinion :)
Jonathan
More information about the sword-devel
mailing list