2010-01-07 73 views
2

为什么每个使用makefile的源代码包都带有./configure脚本,它是干什么用的?据我所知,它实际上生成了makefile?./configure服务有什么用处(除了检查依赖关系)

有什么不能做的的makefile?

+2

在我看来,stackoverflow似乎是有效的,配置是关于软件开发... – johannes 2010-01-07 01:53:37

+1

我同意johannes。虽然配置通常由管理员对可安装应用程序的某些设置进行调整,但详细了解'configure/make/make deploy'构建方式非常适合程序员朋友。 – Jherico 2010-01-07 01:57:16

回答

1

配置步骤是一种元构建。它会生成可用于您正在运行的特定硬件/分发的makefile。例如,它确定C或C++编译器的名称并将其嵌入到makefile中。

配置步骤也会经常采用一组参数,其值可能会确定需要链接哪些库。例如,如果您在启用SSL的情况下编译Apache HTTP,那么它需要链接到更多的共享库,而不是它们。由于链接是由makefile处理的,所以你需要一个额外的步骤来创建一个自定义的生成文件(而不是要求make命令需要几十或几百个选项)。

1

一切都可以在makefile中完成,但一些生成系统是否则执行。

我不亲自使用configure文件为我的项目,但我承认我主要是基于出口二郎& Python项目。

2

配置通常是“的autoconf”系统的结果,它可以产生头,makefiles,什么都可以,'通常',因为有些是手工制作的。

这些事情的原因是允许源代码在不同的环境中编译。 Unix/Linux上有很多种不同的系统头文件和库。配置脚本允许代码自动适应。

1

我不认为makefile是一个脚本,我认为它是make实用程序的输入。

configure脚本(如其名称所示)配置makefile,包括正如您所说的解决依赖关系。

如果仅仅从避免自我修改代码的想法,配置脚本中的东西并不真正属于生成文件。

1

重点在于autoconf autohdr automake构成一个集成系统使得跨平台构建在unix上相对简单。文档非常糟糕,有很多可怕的陷阱,但另一方面有很多工作示例

当我第一次遇到这种东西时,我想 - “哈哈,我可以用一个很好的干净的makefile来做到这一点”并继续以这种方式重新修复源代码。大错。学习编写configure.ac和makefile.am文件,你会很开心

要回答你的问题。配置有利于

  • 是在这个平台上,如果是可用的函数foo,其中包括和图书馆,我需要

  • 让制造商选择,如果他们希望包含在一个不错的简单一致的方式

    功能wizzbang