Makefile 停止使其进入/退出回显目录

Makefile 停止使其进入/退出回显目录,makefile,gnu-make,Makefile,Gnu Make,我有一个Makefile,它遍历目录列表,工作正常,但是我不想看到进入/离开信息消息,如下所示: make[1]: Leaving directory `/home/zzz/aaa/bbb/ccc' 执行遍历的代码位(其中ccc是子目录中的一个目录,而Makefile位于bbb目录中)如下所示: @for i in $(SUBDIRS); do \ (cd $$i; make $@); \ done 我猜(cd$$I;make$@)部分需要做些什么,但无法确定是什么 谢谢尝试使用includ

我有一个
Makefile
,它遍历目录列表,工作正常,但是我不想看到
进入
/
离开
信息消息,如下所示:

make[1]: Leaving directory `/home/zzz/aaa/bbb/ccc'
执行遍历的代码位(其中
ccc
子目录中的一个目录,而
Makefile
位于
bbb
目录中)如下所示:

@for i in $(SUBDIRS); do \
(cd $$i; make $@); \
done
我猜
(cd$$I;make$@)
部分需要做些什么,但无法确定是什么


谢谢

尝试使用include而不是“for”循环:


尝试使用include而不是“for”循环:


GNU makes根据
MAKELEVEL
决定是否打印此信息:如果已设置且>0,则打印此信息。您可以取消设置或伪造零
MAKELEVEL
,因此gnumake认为这是初始调用

@for i in $(SUBDIRS); do \
    (cd $$i; unset MAKELEVEL; make $@); \
done
我们应该做到这一点

另一方面,递归使被认为是有害的(谷歌it)。如果可以,避免它


编辑:正如bobbogo指出的,有一个GNU make选项
——无打印目录
;这比我上面的hack要好得多。

GNU makes根据
MAKELEVEL
决定是否打印此信息:如果设置为且>0,则打印信息。您可以取消设置或伪造零
MAKELEVEL
,因此gnumake认为这是初始调用

@for i in $(SUBDIRS); do \
    (cd $$i; unset MAKELEVEL; make $@); \
done
我们应该做到这一点

另一方面,递归使被认为是有害的(谷歌it)。如果可以,避免它


编辑:正如bobbogo指出的,有一个GNU make选项
——无打印目录
;这比我上面的破解要好得多。

这就成功了,谢谢。重新递归make,是make是调用make,但是在每个DIR中使用不同的MaCH文件,我认为这个样式是无害的。如果是在同一个Makefile上调用make,我完全同意。这就成功了,谢谢。重新递归make,是make是调用make,但是在每个DIR中使用不同的MaCH文件,我认为这个样式是无害的。如果是在同一个Makefile上调用make,则完全同意。
make——没有打印目录将执行此操作。哦,当递归调用MAKE时,请使用
${MAKE}
MAKE--没有打印目录可以这样做。哦,当递归调用MAKE时,请使用
${MAKE}
。这不可能工作;想想每个Mag文件都有一个<代码>: Trave:这是不可能的。想想每个Mag文件都有一个<代码>:目标。