obj-m += libusbMod.o

KDIR := /lib/modules/$(shell uname -r)/build
PWD  := $(shell pwd)

CC := gcc
CFLAGS := -Wall -O2
LIBS := -lusb-1.0

# 默认目标：同时编译内核模块和用户程序
all: libusbMod.ko main

# 编译内核模块
libusbMod.ko:
	make -C $(KDIR) M=$(PWD) modules

# 编译用户态程序 main
main: main.c
	$(CC) $(CFLAGS) -o $@ $< $(LIBS)

# 清理所有生成文件
clean:
	make -C $(KDIR) M=$(PWD) clean
	$(RM) main

# 加载模块
load:
	sudo insmod libusbMod.ko

# 卸载模块
unload:
	sudo rmmod libusbMod
