考虑以下Makefile
:
CURRENT = $(shell uname -r)
KDIR = /lib/modules/$(CURRENT)/build
PWD = $(shell pwd)
TARGET1 = md1
TARGET2 = md2
TARGET3 = md3
obj-m := $(TARGET1).o $(TARGET2).o $(TARGET3).o
default:
make -C $(KDIR) M=$(PWD) modules
当前Makefile
中声明的变量是否来自$(KDIR)/Makefile
。
答案 0 :(得分:1)
可能不是。通常,make变量是make的内部变量,并且在make的递归调用中不可用。
如果您希望变量在sub-make中可用,则需要在子make的命令行上传递它,或者从父make中传递它export
;后者会在调用sub-make时将它放在环境中。
但请注意,makefile中的赋值会覆盖从环境中获取的值。因此$(KDIR)/Makefile
在设置之前需要小心测试值,如果是的话。
顺便说一句,你永远不应该使用文字make
调用递归make。 始终使用变量$(MAKE)
。