aboutsummaryrefslogtreecommitdiff
path: root/driver/Makefile
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2024-05-12 15:21:19 +0200
committerlonkaars <loek@pipeframe.xyz>2024-05-12 15:21:19 +0200
commit891595b9307eb2695411d8e32e4addd9cd927ec8 (patch)
treeb24c323ad3e09f05ca75386ac8fef38a6fff3e74 /driver/Makefile
parent6926a88695ce2e9fca51e01a1bf6fded3e4cbcca (diff)
rename folders
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
+