当目录中的专用 Makefile 依赖于父目录中的主要 Makefile 时,要遵循什么模式?
我有:
/
/Makefile
/src
/src/Makefile
/tests
/tests/Makefile
在/Makefile
我有:
TESTING_COMMAND=something
dotest1:
make -C tests/ $@
在/tests/makefile
我有
dotest1:
$(TESTING_COMMAND) $?
如果我运行:
me@host:/ $ Make dotest1
有用。但如果我从测试目录执行:
me@host:/tests/ $ Make dotest1
它会尝试在 shell 中执行测试文件,因为 $(TESTING_COMMAND) 是空的,所以它的第一个参数变成了传递给 shell 的命令。
如果在 /tests/ 或 /src/ 目录中执行,我不一定需要它来工作,但需要一种优雅地失败的方法。