Makefile:包含第二个文件时重新编写宏

时间:2017-12-06 13:08:42

标签: makefile multiple-makefiles

我有一个包含两个包含的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,但它应该是/

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

1 个答案:

答案 0 :(得分:0)

我找到了问题并解决了问题 回答我自己的问题:
当赋值变量只有等号时,变量每次都会被转换 我需要添加的是“:”,因此它会被转换为一次,并按需要设置 基于此question