forked from teawater/kgtp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
131 lines (110 loc) · 2.86 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
ifeq ($(P),1)
obj-m := gtp.o plugin_example.o
else
obj-m := gtp.o
endif
MODULEVERSION := 20140510+
KERNELVERSION ?= $(shell uname -r)
KERNELDIR ?= /lib/modules/$(KERNELVERSION)/build/
CROSS_COMPILE ?=
MODULEDIR ?= /lib/modules/$(KERNELVERSION)/lib/
#ARCH ?= i386
#ARCH ?= x86_64
#ARCH ?= mips
#ARCH ?= arm
export CONFIG_DEBUG_INFO=y
PWD := $(shell pwd)
ifeq ($(D),1)
EXTRA_CFLAGS += -DGTPDEBUG
endif
ifeq ($(AUTO),0)
EXTRA_CFLAGS += -DGTP_NO_AUTO_BUILD
endif
ifeq ($(FRAME_ALLOC_RECORD),1)
EXTRA_CFLAGS += -DFRAME_ALLOC_RECORD
endif
ifeq ($(FRAME_SIMPLE),1)
EXTRA_CFLAGS += -DGTP_FRAME_SIMPLE
endif
ifeq ($(CLOCK_CYCLE),1)
EXTRA_CFLAGS += -DGTP_CLOCK_CYCLE
endif
ifeq ($(USE_PROC),1)
EXTRA_CFLAGS += -DUSE_PROC
endif
ifeq ($(NO_WARNING),1)
EXTRA_CFLAGS += -DNO_WARNING
endif
DKMS_FILES := Makefile dkms.conf dkms_others_install.sh \
dkms_others_uninstall.sh gtp.c gtp_rb.c ring_buffer.c \
ring_buffer.h getmod.c getframe.c putgtprsp.c getgtprsp.pl \
howto.txt
default: gtp.ko getmod getframe putgtprsp
clean:
rm -rf getmod
rm -rf getframe
rm -rf putgtprsp
rm -rf *.o
rm -rf *.ko
rm -rf .tmp_versions/
rm -rf Module.symvers
install: module_install others_install
uninstall: module_uninstall others_uninstall
dkms:
mkdir -p /usr/src/kgtp-$(MODULEVERSION)/
cp $(DKMS_FILES) /usr/src/kgtp-$(MODULEVERSION)/
module_install: gtp.ko
mkdir -p $(MODULEDIR)
cp gtp.ko $(MODULEDIR)
depmod -a
module_uninstall:
rm -rf $(MODULEDIR)gtp.ko
depmod -a
others_install: program_install
others_uninstall: program_uninstall
program_install: getmod getframe putgtprsp
cp getmod /sbin/
chmod 700 /sbin/getmod
cp getframe /sbin/
chmod 700 /sbin/getframe
cp putgtprsp /sbin/
chmod 700 /sbin/putgtprsp
cp getgtprsp.pl /bin/
chmod 755 /bin/getgtprsp.pl
cp getmod.py /bin/
chmod 644 /bin/getmod.py
program_uninstall:
rm -rf /sbin/getmod
rm -rf /sbin/getframe
rm -rf /sbin/putgtprsp
rm -rf /bin/getgtprsp.pl
gtp.ko: gtp.c gtp_rb.c ring_buffer.c ring_buffer.h perf_event.c
ifneq ($(ARCH),)
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
else
$(MAKE) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
endif
getmod: getmod.c
ifeq ($(D),1)
$(CROSS_COMPILE)gcc -g -static -o getmod getmod.c
else
$(CROSS_COMPILE)gcc -O2 -static -o getmod getmod.c
endif
getframe: getframe.c
ifeq ($(D),1)
$(CROSS_COMPILE)gcc -g -static -o getframe getframe.c
else
$(CROSS_COMPILE)gcc -O2 -static -o getframe getframe.c
endif
putgtprsp: putgtprsp.c
ifeq ($(D),1)
$(CROSS_COMPILE)gcc -g -static -o putgtprsp putgtprsp.c
else
$(CROSS_COMPILE)gcc -O2 -static -o putgtprsp putgtprsp.c
endif
plugin_example.ko: plugin_example.c gtp_plugin.h
ifneq ($(ARCH),)
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
else
$(MAKE) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(PWD) modules
endif