考虑以下几点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
。
可能不是。通常,make变量是make的内部变量,在make的递归调用中不可用。
如果希望变量在子make中可用,则需要在子make的命令行上传递该变量,或者export
从父make传递它;否则,请在子make的命令行中传递该变量。后者会在调用sub-make时将其放入环境中。
但是请注意,makefile文件中的分配会覆盖从环境中获取的值。因此,$(KDIR)/Makefile
如果需要的话,将需要在设置值之前小心测试。
顺便说一句,您永远不要使用literal调用递归make make
。始终使用变量$(MAKE)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句