makefile – 控制make的冗长

我正在使用一个makefile来编译一个由多个.c文件组成的程序,任何时候make都被调用,它只编译最后一次运行后修改文件(没有什么特别的,直到这里).

为了避免混乱我的屏幕,我在每个$(CC)调用开始前加上@,之后我打印一个定制的回声消息.例如:

%.o: %.c $(h1) $(h3) %.h
    @echo -e "\tCompiling <" $< 
    @$(CC) $(CFLAGS) -c $< -o $(libDir)$@$(MATHOPTS)

我的问题是:如何以更“动态的方式”来控制make的冗长度,以便能够:

>正常行为:仅为执行的每个makefile规则打印一个自定义消息.
>详细的行为:打印每个makefile规则实际执行的命令(好像完全没有使用@).

解决方法

我会这样做的方式automake做:
V = 0
ACTUAL_CC := $(CC)
CC_0 = @echo "Compiling $<..."; $(ACTUAL_CC)
CC_1 = $(ACTUAL_CC)
CC = $(CC_$(V))

%.o: %.c $(h1) $(h3) %.h
        $(CC) $(CFLAGS) -c $< -o $(libDir)$@$(MATHOPTS)

如果您需要在规则中执行其他命令,我喜欢以下代码段.写$(AT)而不是@,当V = 0时,它将静,但是当V = 1时打印.

AT_0 := @
AT_1 := 
AT = $(AT_$(V))

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...