Joh*_*ter 6 gnu makefile build-management
我正在尝试将两个构建系统粘合在一起.两者都是递归的(makefile中的规则使用make来调用其他makefile来构建项目的组件).
我将它们称为'A'和'B',其中'A'构建应用程序,'B'构建'A'使用的库.
A中的顶级makefile调用'make TARGET = whatever',这意味着构建的所有递归调用的位都将TARGET的值作为只读变量继承,包括来自B的构建系统,它被作为一部分调用递归构建.
我不希望在'B'(来自不同的项目)的构建系统中发生这种情况,因为那里的makefile使用TARGET用于它们自己的目的,并且构建失败,因为TARGET具有错误的值并且是只读的.
我只能看到两个解决方案,这两个解决方案都不是可调整的;
1)将TARGET重命名为A中设置它的makefile中的其他内容以及使用它的A中的makefile,以避免与构建系统的较低级别发生冲突.
2)在设置了TARGET变量的B中的makefile中的任何地方使用'override'指令,以覆盖其只读状态.
谁有更好的想法?- 理想情况下,除了我从A明确传递给B构建系统的那些选项之外,我不希望B的构建系统从A继承任何东西.
顺便说一下,我正在使用GNU Make v3.80.
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |