我正在編寫內核模塊來爲項目進行單元測試。 由於我需要在項目中包含源文件,我期望對這些文件使用絕對路徑。 這將使我的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