我使用以下Makefile作为内核模块,但我无法使%Clean
目标工作。模式匹配工作正常,它打印出所有rm
命令,但只删除列表中的第一项。有什么想法吗?
obj-m := thunderfs.o
build:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
%.o: $.c
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
.PHONY: %Clean
%Clean:
rm -f modules.order
rm -f Modules.symvers
rm -f $*.ko
rm -f $*.mod.c
rm -f $*.mod.o
rm -f $*.o
这是thunderfs.c文件。问题make build
或make
。
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
int init_mod(void) // Required to insmod
{
printk(KERN_INFO "Hello Cruel World\n");
return 0;
}
void clean_mod(void) // Required for rmmod
{
printk(KERN_INFO "Goodbye Cruel World\n");
}
module_init(init_mod);
module_exit(clean_mod);
MODULE_AUTHOR("Matthew Carlis");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Starting fresh");