【发布时间】:2014-01-15 13:59:27
【问题描述】:
在内核模块makefile中obj-m变量存在。考虑以下几点:
CUR = $(shell uname -r)
DIR = /lib/modules/$(CUR)/build
PWD = $(shell pwd)
obj-m := m1.o m2.o
default:
$(MAKE) -C $(DIR) SUBDIRS=$(PWD) modules
在这个Makefile 中,default 目标包含一个调用内核sub-make 的配方。 obj-m 变量不会被导出到环境中,因此 sub-make 不能使用它。但是如果我们删除 obj-m 变量初始化,那么这个 make 不会编译 m1 和 m2 内核模块。所以,问题是:
为什么在这种情况下内核 sub-make 依赖于未导出的 obj-m 变量?
【问题讨论】:
标签: linux makefile linux-kernel