obj-m += wendy.o
OUT_DIR := build

.PHONY: all kern_mod install uninstall clean reader writer tester dirprepare

all: kern_mod reader writer tester

kern_mod: wendy.c
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) MO=$(PWD)/build/kern

install:
	sudo insmod ./build/kern/wendy.ko

uninstall:
	sudo rmmod wendy

reader: dirprepare
	gcc pipe_read.c -o $(OUT_DIR)/pread

writer: dirprepare
	gcc pipe_write.c -o $(OUT_DIR)/pwrite

tester: dirprepare
	g++ --std=c++20 pipe_tester.cpp -o $(OUT_DIR)/tester

dirprepare:
	mkdir -p $(OUT_DIR)

clean:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
	rm -rf $(OUT_DIR)

