有没有办法运行" make"从我的项目的子目录中,在其根目录下有一个makefile?
与git在当前目录中查找.git文件夹的方式相同,如果它不存在,则会检查一个目录等...直到它找到git repo或到达系统根目录,我希望能够向上查找makefile。这可能吗?
一个解决方案是在每个目录中都有一个makefile,它只是在上面的目录中调用make ...但这似乎是一个不必要的文件数量,并且非常容易出错(忘记将它放在目录中,等等...)。另外,我希望能够发送参数来制作(即' make this.file'或' make clean'),我不确定' #39; d可以使用这种方法...
我希望这是在正确的stackexchange站点上。对不起,如果它不是!感谢阅读/回答!
答案 0 :(得分:2)
有很多方法可以实现这样的东西。以下对我有用:
config.mk
和Makefile
。后者将变量TOP
定义为顶级项目目录。在每个相关的子目录中都有Makefile
,其中包含以下指令:
TOP ?= ../..
include $(TOP)/config.mk
这不是一个完美的解决方案,但它允许重复使用make逻辑以及完全和部分重建。