多級makefile嵌套執行時上層makefile中定義變量並不能影響下層makefile的執行(除非設置環境變量)
如分別在目錄/home/zsli/test及/home/zsli/test/sub_test中創建文件Makefile_t及Makefile,內容如下:
CUR_DIR = $(shell pwd)
.PHONY: all;
all:
@echo $(ZSLI_TEST)
@$(MAKE) -C $(CUR_DIR)/sub_test/
ZSLI_TEST:= "test"
.PHONY: all;
all:
@echo $(ZSLI_TEST)
執行
make -f Makefile_t
得到
test
make[1]: Entering directory `/home/mumu/test/sub_test'
make[1]: Leaving directory `/home/mumu/test/sub_test'
若需嵌套子makefile可使用上傳makefile中定義變量,可將該變量定義爲環境變量(export)