Makefile.am是什么?

4

我遇到了一个名为"Makefile.am"的制作文件,尝试使用"make -f Makefile.am"命令对其进行编译,但却没有成功。我做错了什么?

4个回答

9
这是一个 automake 脚本/Makefile。你可以通过被称为 autobook 的书籍了解有关 automake、autoconf、libtool 等方面的所有内容。
基本上,构建软件需要运行 automake,然后是 autoconf,接着是 configure,最后再运行 make。这些步骤是构建 configure 脚本所必需的,该脚本会自动在系统上搜索所需的库等内容。
这个过程并不容易,除非你的软件已经包含了一个已经生成的 "configure" 文件。如果是这样,你只需要(大多数情况下)运行 ./configure,然后运行 make,最后运行 make install 将软件安装到默认位置。如果你想更改配置选项,也可以查看 ./configure --help

2
您遇到了一个自动化生成Makefile的文件,这个文件被称为automake文件,它会从源代码中创建Makefile.am文件。

http://developer.gnome.org/doc/GGAD/z70.html中可以看到,它的解释是:

automake会处理Makefile.am文件,生成符合标准的Makefile.in文件。automake会为您完成很多工作:例如,它会跟踪源文件之间的依赖关系。它会创建所有标准目标,如install和clean。它还会创建更复杂的目标:如果您的Makefile.am正确,只需键入make dist即可创建一个标准的.tar.gz文件。

基本上,您应该运行“automake”来生成Makefile,在使用“autoconf”生成configure脚本时,您可能会遇到类似的情况。

Automake: http://www.gnu.org/software/automake/ Wikipedia关于automake的文章:http://en.wikipedia.org/wiki/Automake

2
如果您正试图从源代码编译第三方应用程序,则通常在源树顶部会有一个名为“configure”的脚本。如果您在该位置运行 ./configure --help ,则会获得可以设置的选项列表。通常,最常用的是 --prefix
运行脚本后,您将从 automake 文件生成标准的 Makefile。从那里,您可以正常执行 make
Linux软件包的标准构建步骤如下:
./configure
make
make install

这是真的……Makefile.am是一个自动化工具文件,但运行configure脚本会根据它生成标准的make文件。 - jheddings

0

请查看“man automake”或Google Autotools。 可能您首先需要运行类似于autogen.sh的东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接