Makefile
模板
module
KERNELDIR := /home/xxx
CURRENT_PATH := $(shell pwd)
obj-m := xxx.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
自动化变量
自动化变量 |
描述 |
$@ |
规则中的目标集合,在模式规则中,如果有多个目标的话,“$@”表示匹配模式中定义的目标集合。 |
$% |
当目标是函数库的时候表示规则中的目标成员名,如果目标不是函数库文件,那么其值为空。 |
$< |
依赖文件集合中的第一个文件,如果依赖文件是以模式(即“%”)定义的,那么“$<”就是符合模式的一系列的文件集合。 |
$? |
所有比目标新的依赖目标集合,以空格分开。 |
$^ |
所有依赖文件的集合,使用空格分开,如果在依赖文件中有多个重复的文件,“$^”会去除重复的依赖文件,值保留一份。 |
$+ |
和“$^”类似,但是当依赖文件存在重复的话不会去除重复的依赖文件。 |
$* |
这个变量表示目标模式中”%”及其之前的部分,如果目标是 test/a.test.c,目标模式为 a.%.c,那么“$*”就是 test/a.test。 |