[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