我正在编写内核模块来为项目进行单元测试。 由于我需要在项目中包含源文件,我期望对这些文件使用绝对路径。 这将使我的Makefile这样使内核模块makefile识别源代码的绝对路径?
foo-objs := dir1/src1.o dir1/src2.o
foo-objs += dir2/src3.o src4.o
foo-objs := $(addprefix $(PROJECT_ROOT),$(foo-objs))
...
all:
$(MAKE) -C /lib/modules/"$(shell uname -r)"/build M=$(PWD)
$(PROJECT_ROOT)将是项目的根的环境变量记录绝对路径。
通过这种方式,我相信维护许多单元测试更加清晰和容易。
但是当我做make
时,内核Makefile尝试编译$(PWD)/ $(PROJECT_ROOT)/src1.o,这当然不存在。看来将所有目标文件视为相对路径。
因此,我想知道是否有办法让的内核Makefile为模块识别绝对路径,非常感谢。
熟悉用于* Makefile * s的'readlink','realpath'和预定义的内核变量,即'$(srctree)'。 – 0andriy