-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
76 lines (76 loc) · 1.89 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# SPDX-License-Idenfitier: GPL-2.0
MODS := open
MODS += read
MODS += write
MODS += readv
MODS += writev
MODS += append
MODS += scull
MODS += proc
MODS += seq
MODS += faulty
MODS += sem
MODS += rwsem
MODS += mutex
MODS += comp
MODS += spinlock
MODS += rwlock
MODS += kfifo
MODS += seqlock
MODS += rculock
MODS += sleepy
MODS += scullpipe
MODS += scullfifo
MODS += poll
MODS += lseek
MODS += hz
MODS += jiffies
MODS += jitbusy
MODS += jitsched
MODS += jitqueue
MODS += jitimer
MODS += jitasklet
MODS += jiwq
MODS += alloc
MODS += scullc
# ldd bus based drivers
MODS += ldd
MODS += sculld
MODS += snull
KMAJ := $(shell uname -r|sed -e 's/\([0-9]\+\)\..*/\1/')
ifeq ($(KMAJ),4)
NOMODS := proc seq poll hz jiffies jitbusy jitsched
NOMODS += jitqueue jitimer jitasklet jiwq
MODS := $(filter-out $(NOMODS),$(MODS))
endif
obj-m += $(patsubst %,%.o,$(MODS))
TESTS := $(patsubst %,%_test,$(MODS))
KDIR ?= /lib/modules/$(shell uname -r)/build
all default: modules
install: modules_install
modules modules_install help:
$(MAKE) -C $(KDIR) M=$(shell pwd) $@
.PHONY: clean load unload reload
clean: clean_tests
$(MAKE) -C $(KDIR) M=$(shell pwd) $@
load:
$(info loading modules...)
@for mod in $(shell cat modules.order); \
do insmod ./$$(basename $${mod}); \
done
unload:
$(info unloading modules...)
@-for mod in $(shell cat modules.order|sort -r); \
do rmmod ./$$(basename $${mod}); \
done
reload: unload load
# selftest based unit tests under tests directory.
.PHONY: test run_tests clean_tests
test $(TESTS): modules clean_tests reload
@# exclude rculock_test, as it crashes the kernel.
@TESTS="$(filter-out rculock_test,$(TESTS))" $(MAKE) -C tests $@
run_tests: modules reload
@TESTS="$(filter-out rculock_test,$(TESTS))" $(MAKE) \
-C tests top_srcdir=$(KDIR) OUTPUT=$(shell pwd)/tests $@
clean_tests:
@$(MAKE) -C tests top_srcdir=$(KDIR) OUTPUT=$(shell pwd)/tests clean