module:=syscall_counter

obj-m := $(module).o
KVERSION := $(shell uname -r)
DIR := $(shell pwd)
BUILD_DIR := $(DIR)/build

all:
	$(DIR)/gen_syscall_names.sh
	mkdir -p $(BUILD_DIR)
	cp *.c *.h Makefile $(BUILD_DIR)
	make -C /lib/modules/$(KVERSION)/build M=$(BUILD_DIR) modules
	@echo "[!] build done!"

install: all
	@[ "$$EUID" -eq 0 ] || (echo "run 'sudo make install'"; exit 1)
	-rmmod $(module) 2>/dev/null
	insmod $(BUILD_DIR)/$(module).ko
	@echo "[!] module loaded!"
	@echo "[!] lsmod >  $$(lsmod | grep $(module))"

uninstall: clean
	@[ "$$EUID" -eq 0 ] || (echo "run 'sudo make uninstall'"; exit 1)
	-rmmod $(module) 2>/dev/null
	@echo "[!] module unloaded!"
	@echo "[!] lsmod >  $$(lsmod | grep $(module))"

test: install
	sleep 1
	sudo $(DIR)/print_debugfs.sh

clean:
	-/bin/rm -f $(DIR)/syscall_names.h
	-make -C /lib/modules/$(KVERSION)/build M=$(BUILD_DIR) clean
	-rm -rf $(BUILD_DIR)
	@echo "[!] cleaning done!"
