Question

I'm trying to use autogen.sh (http://buildconf.brlcad.org/) with gummi (http://dev.midnightcoding.org/projects/gummi), so that when I make changes to, e.g., configure.ac, my patch doesn't also have to include changes to configure. If I download the latest version of the gummi source, remove po/Makefile.in.in, drop in autogen.sh, and run it, autogen.sh completes successfully with

Preparing the Gummi build system...please wait

Found GNU Autoconf version 2.68
Found GNU Automake version 1.11.1
Found GNU Libtool version 2.4

Automatically preparing build ... done

The Gummi build system is now prepared.  To build here, run:
  ./configure
  make

but does not generate po/Makefile.in.in. However, if I run intltoolize, that generates po/Makefile.in.in. Looking at the source of autogen.sh suggests that it sometimes runs intltoolize. Is this a bug in autogen.sh? Is there some way that configure.ac (or some other file) should tell autogen to run intltoolize? Are the files generated by intltoolize supposed to be included in all distributions?

Was it helpful?

Solution

Yes, autogen.sh should run intltoolize if the package uses intltool. If it doesn't, that's a bug.

By the way, although that script you are using calls itself "the" autogen.sh, there really isn't a one-and-only autogen.sh. That's just a generic name for a bootstrapping script. I prefer to just write my own, specific to each project. It can be as simple as this:

#!/bin/bash
autoreconf --force --install || exit 1
intltoolize --force || exit 1

However, if you have a fancy autogen.sh that detects whether to run intltoolize, then it probably detects whether there is an invocation of IT_PROG_INTLTOOL in configure.ac. I've seen this happen, but I don't think yours does it - I'm looking at the latest revision on Sourceforge here and I can't find the string "intltool" anywhere in it. I'd say your autogen.sh isn't compatible with intltool.

In short:

  • each project should include its own autogen.sh. (Unless the only command you need to prepare the build system is autoreconf.) Gummi doesn't, so that's a bug.
  • there's no such thing as a universal autogen.sh. You can take an existing one and copy it or adapt it, but it depends entirely on the source package what steps need to be taken.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top