2014-05-21 67 views
0

我的意思是,你从源代码构建在Linux和UNIX系统中,通常是通过发出的命令,这些C或C++项目:什么是'./configure,make,make install'项目调用?

./configure 
make 
sudo make install 

而且他们也有文件,如./configure./configure.ac./configure.in顶部目录。

我听到他们不同的名为autotools的项目或AUTOCONF项目,或automake的项目,但我不知道它的名字是正确的。关于他们应该被称为什么,甚至有共识吗?

+0

当心:configure.in已被弃用。它的替代是configure.ac –

回答

4

Autoconf及automake的统称为GNU自动(和libtool可以被包括在该类别中也一样),因此自动工具是最一般的名称。这并不是说有一个configure脚本生成一个Makefile中所有的程序都不必使用自动工具,或者不是所有的人

注意。

+0

所以我们称这样一个项目为“一个自动工具项目”? – sashoalm

+0

只是想指出,OP所提到的命令序列根本不需要使用任何自动工具。 [GNU编码标准](http://www.gnu.org/prep/standards/html_node/Configuration.html)本身就说得很清楚。措辞表明,甚至可以手动编写一个'configure'脚本,只要它以预期的方式行事,实现某个接口(参数)并强制执行某些事情(比如不先构建而不先配置等)。 – ArjunShankar

+1

@ArjunShankar:这真是一个很好的观点。为答案增加了一个例子。 –

4

根据GNU,它正式名为GNU Build System,您可以在Wikipedia上找到它。但大多数人(呃,几乎每个人?)都称之为“GNU autotools”或“autotools”。正如@larsmans和其他人在他的回答中所述,没有这些工具是必需的。引用链接的最后一段:

Autotools是为您的包创建GNU构建系统的工具。 Autoconf主要关注Makefiles上的configure和Automake。完全有可能在没有这些工具的帮助下创建一个GNU构建系统....

0

autoconf信息页面的第一页指的是“自动配置”包。