Scripting 如何将makefile拆分为单独的模块

Scripting 如何将makefile拆分为单独的模块,scripting,makefile,include,gnu-make,modularity,Scripting,Makefile,Include,Gnu Make,Modularity,我有一个用于控制大型工程流程的大型makefile。 在第一个目标之前,我有许多变量、条件分支和函数定义来设置环境和控制一些选项。 即使在目标内部,我也可能有来自不同逻辑根的部分 假设我有这样的东西: var1 := val1 var2 ?= val2 ... # fn1 defintion ... if conditions ... ... ... target1: depends .... .... ..... 我的问题是: 是否可以在任何位置(即目标内部或外部)

我有一个用于控制大型工程流程的大型makefile。 在第一个目标之前,我有许多变量、条件分支和函数定义来设置环境和控制一些选项。 即使在目标内部,我也可能有来自不同逻辑根的部分

假设我有这样的东西:

var1 := val1
var2 ?= val2
...

# fn1 defintion
...

if conditions ...
...
...

target1: depends
    ....
    ....

.....

我的问题是: 是否可以在任何位置(即目标内部或外部)将makefile拆分为不同的部分?例如,如果所有包含的部分都“串联”在一个文件中,那么该文件将与我的makefile完全相同

大概是这样的:

var1 := val1
var2 ?= val2
...

# fn1 defintion
...

if conditions ...
...
...

target1: depends
    ....
    ....

.....
make1.mk:

var1 := val1
var2 ?= val2
...
make2.mk:

# fn1 defintion
...
make3.mk:

if conditions ...
...
...
make4.mk:

target1: depends
    ....
make5.mk:

....
....
生成文件:

包括make1 make2 make3 make4 make5


谢谢大家!

更新:我可以使用:-include fileName将变量分配包含到单独的文件中,但是,我不能包含其他目标内容!包含的makefile完全包含在
include
指令的点上,包含的makefile中的目标工作正常。你可以显示一个不工作的例子吗?更新:我可以使用:-include fileName将变量赋值包含到单独的文件中,但是,我不能包含其他目标内容!包含的makefile完全包含在
include
指令的点上,包含的makefile中的目标工作正常。你能不能给我一个不起作用的例子?