PWD = $(realpath $(shell pwd)) MODULE_NAME ?= $(shell basename "$(PWD)") ifneq ($(KERNELRELEASE),) # call from kernel build system obj-m := $(MODULE_NAME).o else ARCH ?= aarch64 KERNEL_ARCH ?= arm64 CROSS_COMPILE ?= $(ARCH)-linux-gnu- KVER ?= $(shell ls "$(PWD)/../../kernel" | grep 'linux-' | sed 's/linux-//') KERNELDIR ?= $(PWD)/../../kernel/linux-$(KVER) MODDESTDIR ?= /lib/modules/$(KVER)/kernel/drivers/syso default: ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) MODULE_NAME=$(MODULE_NAME) $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif test: $(MODULE_NAME).ko.test $(MODULE_NAME).ko.test: $(MODULE_NAME).test.o $(CROSS_COMPILE)$(CC) $(LDFLAGS) -pthread $^ -o $@ %.o: %.c $(CROSS_COMPILE)$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ clean: rm -rf *.ko *.o *.mod.c *~ core .depend .*.cmd .tmp_versions *.symvers *.order depend .depend dep: $(CROSS_COMPILE)$(CC) $(CFLAGS) -M *.c > .depend install: install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR) /sbin/depmod -a ${KVER} uninstall: rm -f $(MODDESTDIR)/$(MODULE_NAME).ko /sbin/depmod -a ${KVER} ifeq (.depend,$(wildcard .depend)) include .depend endif