obj-m += de01.o

# Default to running kernel's build directory if KDIR not set externally
KDIR ?= "/lib/modules/$(shell uname -r)/build"
SRC_DIR = $(PWD)
# provide version externally to get it right
DE01_VERSION ?= "unknown"
ccflags-y += -DDE01_VERSION=\"$(DE01_VERSION)\"

all:
	$(MAKE) -C $(KDIR) M=$(SRC_DIR) modules

install:
	$(MAKE) -C $(KDIR) M=$(SRC_DIR) \
		INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(DESTDIR) \
		INSTALL_MOD_DIR=kernel/extra modules_install

get_ioctl: get_ioctl.c
	gcc -shared -o $@.so -fPIC $<

unittest: get_ioctl all
	@#cleanup
	python3 ../nerve-led-gpio disable || true
	rmmod de01 || true
	@#prepare
	insmod de01.ko
	python3 ../nerve-led-gpio enable
	python3 test.py
	@#cleanup
	python3 ../nerve-led-gpio disable || rmmod de01

clean:
	$(MAKE) -C $(KDIR) M=$(SRC_DIR) clean
	rm -f *.so

.PHONY: all install clean
