MakeFile @cd 在控制台中打印消息

MakeFile @cd print message in console

在我的 Makefile 中,我有一些重定向到其他 makefile 的命令,为此,我需要 cd 命令。但我不知道为什么或在哪里定义,每次我在 Makefile 中使用 @cd 时,控制台都会打印一条消息:
“我们进入了曲目” blabla/toto "

我的 Makefile 很简单,代码如下:

TARGETS=$(shell ls -d programme*)
CLEANTARGETS=$(foreach dir,$(TARGETS),clean_$(dir))

all: $(TARGETS) 

.PHONY: $(TARGETS) $(CLEANTARGETS)
$(TARGETS) :
   @echo "Execution de make $@ :\n"
   @cd $@; make

$(CLEANTARGETS) :
  @echo -n "Execution de clean $(subst clean_,,$@)\n" :
  @cd $(subst clean_,,$@); make clean

clean: $(CLEANTARGETS)

这个 makefile 重定向到其他 2 个 Makefile,但它们不使用 cd 命令,而且代码非常简单,所以我认为向您展示它没有意义。

编辑 :

我的问题是我只是不想让它打印,之后太乱了,我只想让 makefile 做 cd 而不打印任何东西

这是完整的打印消息:

Execution de make programme1 :

make[1] : on entre dans le répertoire « ~/Shortest-Path/programme1 »

Production de programme1.exe à partir des fichiers : programme1.c treatmentFiles.c treatmentFiles.h

gcc -Wall programme1.c treatmentFiles.c treatmentFiles.h -o programme1.exe

Le programme programme1.exe a été produit dans le répertoire programme1

make[1] : on quitte le répertoire « ~/Shortest-Path/programme1 »

所以,其他行通常用我的 echo 命令打印,但不知道为什么 cd 命令打印

on entre dans le répertoire « ~/Shortest-Path/programme1 »

on quitte dans le répertoire « ~/Shortest-Path/programme1 »

欢迎任何帮助或建议!

所以答案是添加这个选项:

MAKEFLAGS += --no-print-directory