我有一个Makefile用于调用不同的子Makefiles。动态生成Makefile规则
我有几个规则:
- 所有
- 干净
- fclean
- 重新
我已经可以用这些规则,它将调用每个子makefile文件具有相同规则。
我有几个项目,我想生成与该格式规则:
$(PROJECT_NAME)-$(RULES)
就这样,我想对每个项目的每个规则:
project1-all
project1-clean
...
project2-all
project2-clean
...
这样,我可以为特定项目调用特定规则,例如project1-fclean
。
我试过:
RULES= all clean fclean re
PROJECTS= project1 project2
define NEWLINE
endef
$(foreach _rule, $(RULES), \
$(foreach _proj, $(PROJECTS), \
$(_proj)-$(_rule): $(NEWLINE) \
$(MAKE) $(ARGS) $(PROJECT_DIR)$(_proj) $(_rule) $(NEWLINE) \
) \
)
但它似乎并不工作。我搜索了,但我没有找到先进的makefile技术来实现这一点。 Plz的帮助。
而不是递归地调用'make',我建议看看非递归的'makefile'方法。有一篇关于递归make的缺点的文章:http://www.linux-mag.com/id/2101/。你可以尝试我的模板库的非递归生成文件:https://github.com/igagis/prorab/blob/master/wiki/TutorialBasicConcepts.md – igagis