autogen.sh没有(重新)生成po / Makefile.in.in

时间:2012-04-28 19:33:54

标签: makefile autotools autoreconf

我试图将autogen.sh(http://buildconf.brlcad.org/)与gummi(http://dev.midnightcoding.org/projects/gummi)一起使用,以便在我进行更改时例如,configure.ac,我的补丁也不必包括配置的更改。如果我下载最新版本的gummi源代码,请删除po / Makefile.in.in,删除autogen.sh并运行它,autogen.sh成功完成

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

但不生成po / Makefile.in.in。但是,如果我运行intltoolize,则会生成po / Makefile.in.in。查看autogen.sh的来源表明它有时会运行intltoolize。这是autogen.sh中的错误吗?有没有什么方法configure.ac(或其他一些文件)应该告诉autogen运行intltoolize? intltoolize生成的文件是否应该包含在所有发行版中?

1 个答案:

答案 0 :(得分:4)

是的,如果包使用intltool,autogen.sh应该运行intltoolize。如果它没有,那就是一个错误。

顺便说一下,虽然你正在使用的那个脚本自己调用"" autogen.sh,真的不是一个只有autogen.sh。这只是引导脚本的通用名称。我更喜欢自己编写,特定于每个项目。它可以这么简单:

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

但是,如果你有一个花哨的autogen.sh来检测是否运行intltoolize,那么它可能会检测configure.ac中是否有IT_PROG_INTLTOOL的调用。我已经看到过这种情况,但我不认为你这样做了 - 我正在查看Sourceforge here的最新修订版,我找不到字符串&# 34; intltool"在它的任何地方。我说你的autogen.sh与intltool不兼容。

简而言之:

  • 每个项目都应该包含自己的autogen.sh。 (除非您准备构建系统所需的唯一命令是autoreconf。)Gummi没有,所以这是一个错误。
  • 没有通用的autogen.sh这样的东西。您可以使用现有的并复制或修改它,但这完全取决于源包需要采取的步骤。