44 lines
1.2 KiB
Makefile
44 lines
1.2 KiB
Makefile
MODULE_NAME := ch397_driver
|
|
obj-m := $(MODULE_NAME).o
|
|
|
|
SRC_DIR := src
|
|
BUILD_DIR := build
|
|
|
|
KDIR := /lib/modules/$(shell uname -r)/build
|
|
|
|
$(MODULE_NAME)-objs := $(SRC_DIR)/ch397_driver.o
|
|
|
|
ccflags-y := -std=gnu11 -Wno-declaration-after-statement
|
|
|
|
.PHONY: all clean install uninstall
|
|
|
|
all:
|
|
@mkdir -p $(BUILD_DIR)
|
|
$(MAKE) -C $(KDIR) M=$(PWD) modules
|
|
@mv $(MODULE_NAME).ko $(BUILD_DIR)/ 2>/dev/null || true
|
|
@rm -f $(MODULE_NAME).o $(MODULE_NAME).mod.o $(MODULE_NAME).mod.c $(MODULE_NAME).mod
|
|
@rm -f $(SRC_DIR)/*.o $(SRC_DIR)/.*.cmd $(SRC_DIR)/*.mod.c
|
|
@rm -f modules.order Module.symvers .*.cmd
|
|
@rm -rf .tmp_versions
|
|
@echo "Module compiled: $(BUILD_DIR)/$(MODULE_NAME).ko"
|
|
|
|
clean:
|
|
@rm -rf $(BUILD_DIR)
|
|
@rm -f $(MODULE_NAME).o $(MODULE_NAME).ko $(MODULE_NAME).mod.o $(MODULE_NAME).mod.c $(MODULE_NAME).mod
|
|
@rm -f $(SRC_DIR)/*.o $(SRC_DIR)/.*.cmd $(SRC_DIR)/*.mod.c
|
|
@rm -f modules.order Module.symvers .*.cmd *.o *.ko
|
|
@rm -rf .tmp_versions
|
|
@echo "Cleaned"
|
|
|
|
install: all
|
|
sudo insmod $(BUILD_DIR)/$(MODULE_NAME).ko
|
|
@echo "Module loaded"
|
|
|
|
uninstall:
|
|
sudo rmmod $(MODULE_NAME)
|
|
@echo "Module unloaded"
|
|
|
|
# Pour générer compile_commands.json avec bear sans casser le build
|
|
bear:
|
|
bear -- $(MAKE) clean all
|