aboutsummaryrefslogtreecommitdiff
path: root/driver/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'driver/Makefile')
-rw-r--r--driver/Makefile21
1 files changed, 21 insertions, 0 deletions
diff --git a/driver/Makefile b/driver/Makefile
new file mode 100644
index 0000000..d968e31
--- /dev/null
+++ b/driver/Makefile
@@ -0,0 +1,21 @@
+RELEASE := $(shell uname -r)
+KERNEL := /lib/modules/$(RELEASE)/build
+# PWD doesn't have to be defined as it's inherited from the current environment
+# MAKE shouldn't be defined as it's special in GNU make
+
+# the names of these variables are required by the kernel's (imo weird) build
+# system, see [kbuild-obj-var] and [kbuild-module-makefile] in ../readme.md
+obj-m += lork.o
+lork-y += main.o
+lork-y += fopdrv.o
+
+all:
+ $(MAKE) -C $(KERNEL) M=$(PWD) modules
+
+# the generated compile_commands.json needs to be edited to point to the kernel
+# folder as working directory because the include paths are relative
+compile_commands.json:
+ compiledb -o $@.tmp make -Bn
+ jq --arg dir $(KERNEL) '.[].directory = $$dir' $@.tmp > $@
+ $(RM) $@.tmp
+