-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathMakefile
37 lines (30 loc) · 1.11 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
MODULE_NAME := kprobes
MODULE_LICENSE := GPL
MODULE_VERSION := 1.0
MODULE_AUTHOR := Muchun Song <songmuchun@bytedance.com>
MODULE_DESCRIPTION := Kprobe template for easy register kernel probes
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
$(MODULE_NAME)-m := init.o
$(MODULE_NAME)-m += kprobe.o trace.o
ldflags-y += -r -T $(KBUILD_EXTMOD)/kprobe.lds
ccflags-y += -I$(KBUILD_EXTMOD)/include
name-fix = $(squote)$(quote)$(subst $(comma),_,$(subst -,_,$1))$(quote)$(squote)
ccflags-y += -DCONFIG_MODULE_NAME=$(call name-fix,$(MODULE_NAME))
ccflags-y += -DCONFIG_MODULE_AUTHOR=$(call name-fix,$(MODULE_AUTHOR))
ccflags-y += -DCONFIG_MODULE_VERSION=$(call name-fix,$(MODULE_VERSION))
ccflags-y += -DCONFIG_MODULE_DESCRIPTION=$(call name-fix,$(MODULE_DESCRIPTION))
ccflags-y += -DCONFIG_MODULE_LICENSE=$(call name-fix,$(MODULE_LICENSE))
else
PWD := $(shell pwd)
KERNEL_HEAD := $(shell uname -r)
KERNEL_DIR := /lib/modules/$(KERNEL_HEAD)/build
all:
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
install:
sudo insmod $(MODULE_NAME).ko
remove:
sudo rmmod $(MODULE_NAME)
endif