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


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to