Makefile 如何从子目录启动make

Makefile 如何从子目录启动make,makefile,subdirectory,Makefile,Subdirectory,我有一个顶级Makefile。该项目有几个不同深度的子目录 如何从任何子目录启动make,使其使用顶级Makefile,就像git自动查找其顶级.git目录一样 结构: / /a/ /b/c /Makefile /Readme 情景: /$ make ... Works ... /b$ make ... Cannot find makefile 我希望第二个场景与第一个场景相同 提示,理想情况下,它可以用作:在vi中制定规则,但不应该是特定于vi的 更新:/不是根目录,只是项目的根目录,真正

我有一个顶级
Makefile
。该项目有几个不同深度的子目录

如何从任何子目录启动
make
,使其使用顶级Makefile,就像
git
自动查找其顶级
.git
目录一样

结构:

/
/a/
/b/c
/Makefile
/Readme
情景:

/$ make
... Works ...
/b$ make
... Cannot find makefile
我希望第二个场景与第一个场景相同

提示,理想情况下,它可以用作
:在
vi
中制定
规则,但不应该是特定于vi的

更新:/不是根目录,只是项目的根目录,真正的目的是模仿测试版的git。 创建别名

alias make=`sh /home/makecrawl.sh`
其中
makecrawl.sh
看起来像

#! /bin/bash
while ! [ -f makefile ] &&  [$PWD != "/" ]
do
cd ..
done
make
测试版的提示会起作用。 创建别名

alias make=`sh /home/makecrawl.sh`
其中
makecrawl.sh
看起来像

#! /bin/bash
while ! [ -f makefile ] &&  [$PWD != "/" ]
do
cd ..
done
make

怎么样
alias make=“make-f/Makefile”
?技巧是模仿git@beta/不是根目录,只是项目的根目录,sorrySo
alias make=“make-f/path/to/root/of/project/Makefile”
。您应该在问题中提到多个项目。一个脚本在树上爬行直到找到一个
makefile
?如何
alias make=“make-f/makefile”
?技巧是模仿git@beta/不是根目录,只是项目的根目录,sorrySo
alias make=“make-f/path/to/root/of/project/Makefile”
。你应该在问题中提到多个项目。如果脚本在树上爬行,直到找到一个
makefile
?如果找不到makefile,请注意无限循环。接受它,因为你是第一个提出意见的人。@SteveSchnepp:有趣的是,我想到了,然后忘了把它放进去。更正。如果找不到Makefile,请注意无限循环。接受它,因为你是第一个提出意见的人。@SteveSchnepp:有趣的是,我想到了,然后忘了把它放进去。更正。@steve schnepp:谢谢你的警告。。虽然[-f Makefile]&&&($PWD!=“/”)将work@steve谢谢你的警告。。虽然[-f Makefile]&&&[$PWD!=“/”]可以工作