C Makefile.def与Makefile.am
我正在使用linux binutils-2.29。 在父目录中没有C Makefile.def与Makefile.am,c,makefile,binutils,C,Makefile,Binutils,我正在使用linux binutils-2.29。 在父目录中没有Makefile.am,但在所有子目录中都有Makefile.am 在父目录中,存在以下生成文件: Makefile Makefile.def Makefile.in Makefile.tpl 在Makefile.tpl侧边有一条注释,说明Makefile是由Makefile.tpl通过autogen Makefile.def 但是在子目录中没有Makefile.def,当我运行autoeconf&&automake时,它
Makefile.am
,但在所有子目录中都有Makefile.am
在父目录中,存在以下生成文件:
Makefile Makefile.def Makefile.in Makefile.tpl
在Makefile.tpl
侧边有一条注释,说明Makefile
是由Makefile.tpl
通过autogen Makefile.def
但是在子目录中没有Makefile.def
,当我运行autoeconf&&automake
时,它从Makefile.am
生成Makefile
Makefile.def
和Makefile.am
之间到底有什么区别
Makefile.def和Makefile.am之间到底有什么区别
让我们看看GCC,它是一个大型项目,同时也在使用binutils
。引述:
Makefile.in文件有时很大,可以由automake从Makefile.am文件生成。某些Makefile.in文件(用于在生成树中生成Makefile)由autogen从Makefile.tpl和Makefile.def文件生成。Autogen是一种(GUILE scriptable)工具,旨在简化包含大量重复文本的程序的创建和维护
因此,真正的区别在于如何以及在何处存储autogen
将使用的部分输入文件。对于GCC,它存储一个Makefile.tpl
模板(用于生成输出Makefile),而Makefile.def
存储autogen将使用的定义
例如,在Makefile.tpl
中,您将找到用于填充HOST\u LIB\u PATH
变量的模板(注意它使用HOST\u模块
变量):
在Makefile.def
中,有一个主机模块的定义:
host_modules= { module= bfd; bootstrap=true; };
host_modules= { module= opcodes; bootstrap=true; };
// ...
host_modules= { module= bfd; bootstrap=true; };
host_modules= { module= opcodes; bootstrap=true; };
// ...