首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile.def对Makefile.am

Makefile.def对Makefile.am
EN

Stack Overflow用户
提问于 2017-09-05 12:33:55
回答 1查看 1.7K关注 0票数 1

我正在研究2.29。在父目录中没有Makefile.am,但是在所有子目录中都有Makefile.am

在父目录中,下面是生成文件:

代码语言:javascript
复制
Makefile  Makefile.def  Makefile.in  Makefile.tpl

在侧Makefile.tpl中有一个注释,它说Makefile是由autogen Makefile.defMakefile.tpl生成的

但是子目录中没有Makefile.def,当我运行autoreconf && automake时,它会从Makefile.am生成Makefile

Makefile.defMakefile.am到底有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-05 12:49:02

Makefile.def和Makefile.am到底有什么区别?

让我们来看看GCC,也在使用binutils的大型项目。引用再生GCC结构

Makefile.in文件有时很大,可以通过Makefile.am文件自动生成。一些Makefile.in文件(用于生成生成树中的Makefile )由autogen从Makefile.tpl和Makefile.def文件生成。Autogen是一个用于简化包含大量重复文本的程序的创建和维护的工具。

因此,真正的区别在于您希望如何和在何处存储autogen将要处理的部分输入文件。对于GCC,Makefile.tpl存储一个模板(用于生成输出Makefile ),而Makefile.def存储将由autogen使用的模板

例如,在Makefile.tpl内部,您可以找到用于填充HOST_LIB_PATH变量的模板(注意,它使用了host_modules变量):

代码语言:javascript
复制
# This is the list of directories that may be needed in RPATH_ENVVAR
# so that programs built for the host machine work.
HOST_LIB_PATH = [+ FOR host_modules +][+
  IF lib_path +]$(HOST_LIB_PATH_[+module+])[+ ENDIF lib_path +][+
  ENDFOR host_modules +]

Makefile.def内部有一个host_modules的定义

代码语言:javascript
复制
host_modules= { module= bfd; bootstrap=true; };
host_modules= { module= opcodes; bootstrap=true; };
// ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46055110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档