2 # Makefile for the LTT probes.
3 # Only build from the package top-level directory. Never use with make directly.
5 ifneq ($(KERNELRELEASE
),)
6 ifneq ($(CONFIG_TRACEPOINTS
),)
8 ccflags-y
+= -I
$(PWD
)/probes
11 obj-m
+= lttng-probe-sched.o
12 obj-m
+= lttng-probe-irq.o
13 obj-m
+= lttng-probe-timer.o
14 obj-m
+= lttng-probe-kmem.o
15 obj-m
+= lttng-probe-module.o
16 obj-m
+= lttng-probe-power.o
18 obj-m
+= lttng-probe-statedump.o
20 ifneq ($(CONFIG_KVM
),)
21 obj-m
+= lttng-probe-kvm.o
25 if
[ $(VERSION
) -ge
3 \
26 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
33 \
) ] ; then \
27 echo
"lttng-probe-signal.o" ; fi
;)
29 ifneq ($(CONFIG_BLOCK
),)
30 ifneq ($(CONFIG_EVENT_TRACING
),) # need blk_cmd_buf_len
31 obj-m
+= lttng-probe-block.o
35 ifneq ($(CONFIG_NET
),)
36 obj-m
+= lttng-probe-napi.o
37 obj-m
+= lttng-probe-skb.o
39 if
[ $(VERSION
) -ge
3 \
40 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
37 \
) ] ; then \
41 echo
"lttng-probe-net.o" ; fi
;)
43 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
44 echo
"lttng-probe-sock.o" ; fi
;)
46 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
47 echo
"lttng-probe-udp.o" ; fi
;)
50 ifneq ($(CONFIG_SND_SOC
),)
52 if
[ $(VERSION
) -ge
3 \
53 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
54 echo
"lttng-probe-asoc.o" ; fi
;)
57 ifneq ($(CONFIG_EXT3_FS
),)
58 ext3_dep
= $(srctree
)/fs
/ext3
/*.h
59 ext3_dep_check
= $(wildcard $(ext3_dep
))
61 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
62 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
4 -a \
63 -z
"$(ext3_dep_check)" ] ; then \
67 echo
"lttng-probe-ext3.o" ; \
70 $(warning Files
$(ext3_dep
) not found. Probe
"ext3" is disabled. Use full kernel source tree to enable it.
)
76 ifneq ($(CONFIG_GPIOLIB
),)
78 if
[ $(VERSION
) -ge
3 ] ; then \
79 echo
"lttng-probe-gpio.o" ; fi
;)
82 ifneq ($(CONFIG_JBD2
),)
83 obj-m
+= lttng-probe-jbd2.o
86 ifneq ($(CONFIG_JBD
),)
88 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
89 echo
"lttng-probe-jbd.o" ; fi
;)
92 ifneq ($(CONFIG_REGULATOR
),)
94 if
[ $(VERSION
) -ge
3 \
95 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
96 echo
"lttng-probe-regulator.o" ; fi
;)
99 ifneq ($(CONFIG_SCSI
),)
101 if
[ $(VERSION
) -ge
3 \
102 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
35 \
) ] ; then \
103 echo
"lttng-probe-scsi.o" ; fi
;)
107 if
[ $(VERSION
) -ge
3 \
108 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
109 echo
"lttng-probe-vmscan.o" ; fi
;)
110 ifneq ($(CONFIG_SWAP
),)
113 ifneq ($(CONFIG_CGROUP_MEM_RES_CTLR
),)
118 # lock probe does not work, so disabling it for now
119 #ifneq ($(CONFIG_LOCKDEP),)
120 #obj-m += lttng-probe-lock.o
123 ifneq ($(CONFIG_BTRFS_FS
),)
124 btrfs_dep
= $(srctree
)/fs
/btrfs
/*.h
126 if
[ $(VERSION
) -ge
3 \
127 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
39 \
) ] ; then \
128 echo
"lttng-probe-btrfs.o" ; fi
;)
130 ifeq ($(wildcard $(btrfs_dep
)),)
131 $(warning Files
$(btrfs_dep
) not found. Probe
"btrfs" is disabled. Use full kernel source tree to enable it.
)
139 if
[ $(VERSION
) -ge
3 \
140 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
141 echo
"lttng-probe-compaction.o" ; fi
;)
143 ifneq ($(CONFIG_EXT4_FS
),)
144 ext4_dep
= $(srctree
)/fs
/ext4
/*.h
145 ext4
= lttng-probe-ext4.o
146 ifeq ($(wildcard $(ext4_dep
)),)
147 $(warning Files
$(ext4_dep
) not found. Probe
"ext4" is disabled. Use full kernel source tree to enable it.
)
154 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
4 ] ; then \
155 echo
"lttng-probe-printk.o" ; fi
;)
156 ifneq ($(CONFIG_FRAME_WARN
),0)
157 CFLAGS_lttng-probe-printk.o
+= -Wframe-larger-than
=2200
161 if
[ \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
6 \
) \
162 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
5 -a
$(SUBLEVEL
) -ge
2 \
) \
163 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
4 -a
$(SUBLEVEL
) -ge
9 \
) \
164 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
0 -a
$(SUBLEVEL
) -ge
41 \
) ] ; then \
165 echo
"lttng-probe-random.o" ; fi
;)
168 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
2 ] ; then \
169 echo
"lttng-probe-rcu.o" ; fi
;)
171 ifneq ($(CONFIG_REGMAP
),)
173 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
2 ] ; then \
174 echo
"lttng-probe-regmap.o" ; fi
;)
177 ifneq ($(CONFIG_PM_RUNTIME
),)
179 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
2 ] ; then \
180 echo
"lttng-probe-rpm.o" ; fi
;)
183 ifneq ($(CONFIG_SUNRPC
),)
185 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
4 ] ; then \
186 echo
"lttng-probe-sunrpc.o" ; fi
;)
189 obj-m
+= lttng-probe-workqueue.o
191 ifneq ($(CONFIG_KALLSYMS_ALL
),)
193 if
[ $(VERSION
) -ge
3 \
194 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
195 echo
"lttng-probe-writeback.o" ; fi
;)
199 ifneq ($(CONFIG_KPROBES
),)
200 obj-m
+= lttng-kprobes.o
204 ifneq ($(CONFIG_KRETPROBES
),)
205 obj-m
+= lttng-kretprobes.o
208 ifneq ($(CONFIG_DYNAMIC_FTRACE
),)
209 obj-m
+= lttng-ftrace.o
215 KERNELDIR ?
= /lib
/modules
/$(shell uname
-r
)/build
217 CFLAGS
= $(EXTCFLAGS
)
220 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules
223 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules_install
227 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) clean