Makefile:包含第二个文件时重铸宏

Makefile: macro is recast when including second file

我有一个 make 文件,其中有两个这样的包含:

$ cat /src/Makefile
include ../rules.mk

Test:
    echo $(DIST_ROOT)

include src.base.mk

Test2: 
     echo $(DIST_ROOT)

. PHONY: Test Test2

$ cat /rules.mk
DIST_ROOT = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))

$ cat /src/src.base.mk
srcdir = $(DIST_ROOT)/src

问题是两者的输出都是 /src,但应该是 /

这是怎么发生的,我该如何解决?

我找到了问题并进行了修复。
回答我自己的问题:
当用等号分配一个变量时,变量每次都被强制转换。
我需要添加的是“:”,所以它会被转换一次并根据需要进行设置。
基于此 question.