aboutsummaryrefslogtreecommitdiff
path: root/1/Makefile
blob: d968e31fd5fc184b127fe0ac43d43c2a39aae098 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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