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 KERNELDIR
= ${LTTNG_KERNELDIR}
9 MAKEFILEDIR
= $(shell dirname
$(lastword
$(MAKEFILE_LIST
)))
11 include $(MAKEFILEDIR
)/..
/Makefile.ABI.workarounds
13 ccflags-y
+= -I
$(PWD
)/probes
14 obj-m
+= lttng-types.o
16 obj-m
+= lttng-probe-sched.o
17 obj-m
+= lttng-probe-irq.o
18 obj-m
+= lttng-probe-timer.o
19 obj-m
+= lttng-probe-kmem.o
20 obj-m
+= lttng-probe-module.o
21 obj-m
+= lttng-probe-power.o
23 obj-m
+= lttng-probe-statedump.o
25 ifneq ($(CONFIG_KVM
),)
26 obj-m
+= lttng-probe-kvm.o
27 ifneq ($(CONFIG_X86
),)
28 kvm_dep_lapic
= $(srctree
)/arch
/x86
/kvm
/lapic.h
29 ifneq ($(wildcard $(kvm_dep_lapic
)),)
30 kvm_dep
= $(srctree
)/virt
/kvm
/iodev.h
$(srctree
)/include/kvm
/iodev.h
31 ifneq ($(wildcard $(kvm_dep
)),)
32 CFLAGS_lttng-probe-kvm-x86.o
+= -I
$(srctree
)/virt
/kvm
33 CFLAGS_lttng-probe-kvm-x86-mmu.o
+= -I
$(srctree
)/virt
/kvm
35 if
[ $(VERSION
) -ge
3 \
36 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
37 echo
"lttng-probe-kvm-x86.o" ; fi
;)
39 if
[ $(VERSION
) -ge
3 \
40 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
41 echo
"lttng-probe-kvm-x86-mmu.o" ; fi
;)
43 $(warning File
$(kvm_dep
) not found. Probe
"kvm" x86-specific is disabled. Use full kernel source tree to enable it.
)
46 $(warning File
$(kvm_dep_lapic
) not found. Probe
"kvm" x86-specific is disabled. Use full kernel source tree to enable it.
)
51 ifneq ($(CONFIG_X86
),)
53 x86_irq_vectors_dep
= $(srctree
)/arch
/x86
/include/asm
/trace
/irq_vectors.h
54 ifneq ($(wildcard $(x86_irq_vectors_dep
)),)
55 obj-m
+= lttng-probe-x86-irq-vectors.o
58 x86_exceptions_dep
= $(srctree
)/arch
/x86
/include/asm
/trace
/exceptions.h
59 ifneq ($(wildcard $(x86_exceptions_dep
)),)
60 obj-m
+= lttng-probe-x86-exceptions.o
66 if
[ $(VERSION
) -ge
3 \
67 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
33 \
) ] ; then \
68 echo
"lttng-probe-signal.o" ; fi
;)
70 ifneq ($(CONFIG_BLOCK
),)
71 ifneq ($(CONFIG_EVENT_TRACING
),) # need blk_cmd_buf_len
72 obj-m
+= lttng-probe-block.o
76 ifneq ($(CONFIG_NET
),)
77 obj-m
+= lttng-probe-napi.o
78 obj-m
+= lttng-probe-skb.o
80 if
[ $(VERSION
) -ge
3 \
81 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
37 \
) ] ; then \
82 echo
"lttng-probe-net.o" ; fi
;)
84 if
[ $(VERSION
) -ge
4 \
85 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
1 \
) ] ; then \
86 echo
"lttng-probe-sock.o" ; fi
;)
88 if
[ $(VERSION
) -ge
4 \
89 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
1 \
) ] ; then \
90 echo
"lttng-probe-udp.o" ; fi
;)
93 ifneq ($(CONFIG_SND_SOC
),)
95 if
[ $(VERSION
) -ge
3 \
96 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
97 echo
"lttng-probe-asoc.o" ; fi
;)
100 ifneq ($(CONFIG_EXT3_FS
),)
101 ext3_dep
= $(srctree
)/fs
/ext3
/*.h
102 ext3_dep_check
= $(wildcard $(ext3_dep
))
104 if
[ $(VERSION
) -ge
4 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
1 \
) ] ; then \
105 if
[ \
( $(VERSION
) -ge
4 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
4 \
) \
) -a \
106 -z
"$(ext3_dep_check)" ] ; then \
110 echo
"lttng-probe-ext3.o" ; \
113 $(warning Files
$(ext3_dep
) not found. Probe
"ext3" is disabled. Use full kernel source tree to enable it.
)
119 ifneq ($(CONFIG_GPIOLIB
),)
121 if
[ $(VERSION
) -ge
3 ] ; then \
122 echo
"lttng-probe-gpio.o" ; fi
;)
125 ifneq ($(CONFIG_JBD2
),)
126 obj-m
+= lttng-probe-jbd2.o
129 ifneq ($(CONFIG_JBD
),)
131 if
[ $(VERSION
) -ge
4 \
132 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
1 \
) ] ; then \
133 echo
"lttng-probe-jbd.o" ; fi
;)
136 ifneq ($(CONFIG_REGULATOR
),)
138 if
[ $(VERSION
) -ge
3 \
139 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
140 echo
"lttng-probe-regulator.o" ; fi
;)
143 ifneq ($(CONFIG_SCSI
),)
145 if
[ $(VERSION
) -ge
3 \
146 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
35 \
) ] ; then \
147 echo
"lttng-probe-scsi.o" ; fi
;)
151 if
[ $(VERSION
) -ge
3 \
152 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
153 echo
"lttng-probe-vmscan.o" ; fi
;)
154 ifneq ($(CONFIG_SWAP
),)
157 ifneq ($(CONFIG_CGROUP_MEM_RES_CTLR
),)
162 # lock probe does not work, so disabling it for now
163 #ifneq ($(CONFIG_LOCKDEP),)
164 #obj-m += lttng-probe-lock.o
167 ifneq ($(CONFIG_BTRFS_FS
),)
168 btrfs_dep
= $(srctree
)/fs
/btrfs
/*.h
170 if
[ $(VERSION
) -ge
3 \
171 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
39 \
) ] ; then \
172 echo
"lttng-probe-btrfs.o" ; fi
;)
174 ifeq ($(wildcard $(btrfs_dep
)),)
175 $(warning Files
$(btrfs_dep
) not found. Probe
"btrfs" is disabled. Use full kernel source tree to enable it.
)
183 if
[ $(VERSION
) -ge
3 \
184 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
185 echo
"lttng-probe-compaction.o" ; fi
;)
187 ifneq ($(CONFIG_EXT4_FS
),)
188 ext4_dep
= $(srctree
)/fs
/ext4
/*.h
189 ext4
= lttng-probe-ext4.o
190 ifeq ($(wildcard $(ext4_dep
)),)
191 $(warning Files
$(ext4_dep
) not found. Probe
"ext4" is disabled. Use full kernel source tree to enable it.
)
198 if
[ $(VERSION
) -ge
4 \
199 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
4 \
) ] ; then \
200 echo
"lttng-probe-printk.o" ; fi
;)
201 ifneq ($(CONFIG_FRAME_WARN
),0)
202 CFLAGS_lttng-probe-printk.o
+= -Wframe-larger-than
=2200
206 if
[ $(VERSION
) -ge
4 \
207 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
6 \
) \
208 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
5 -a
$(SUBLEVEL
) -ge
2 \
) \
209 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
4 -a
$(SUBLEVEL
) -ge
9 \
) \
210 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
0 -a
$(SUBLEVEL
) -ge
41 \
) ] ; then \
211 echo
"lttng-probe-random.o" ; fi
;)
214 if
[ $(VERSION
) -ge
4 \
215 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
2 \
) ] ; then \
216 echo
"lttng-probe-rcu.o" ; fi
;)
218 ifneq ($(CONFIG_REGMAP
),)
219 regmap_dep_4_1
= $(srctree
)/drivers
/base
/regmap
/trace.h
220 ifneq ($(wildcard $(regmap_dep_4_1
)),)
221 obj-m
+= lttng-probe-regmap.o
223 $(warning File
$(regmap_dep_4_1
) not found. Probe
"regmap" is disabled. Need Linux
4.1+ kernel source tree to enable it.
)
227 ifneq ($(CONFIG_PM_RUNTIME
),)
229 if
[ $(VERSION
) -ge
4 \
230 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
2 \
) ] ; then \
231 echo
"lttng-probe-rpm.o" ; fi
;)
234 ifneq ($(CONFIG_SUNRPC
),)
236 if
[ $(VERSION
) -ge
4 \
237 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
4 \
) ] ; then \
238 echo
"lttng-probe-sunrpc.o" ; fi
;)
241 ifneq ($(CONFIG_VIDEO_V4L2
),)
243 if
[ $(VERSION
) -ge
4 \
244 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
14 \
) ] ; then \
245 echo
"lttng-probe-v4l2.o" ; fi
;)
248 obj-m
+= lttng-probe-workqueue.o
250 ifneq ($(CONFIG_KALLSYMS_ALL
),)
252 if
[ $(VERSION
) -ge
3 \
253 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
254 echo
"lttng-probe-writeback.o" ; fi
;)
256 $(warning CONFIG_KALLSYMS_ALL is disabled
, therefore probe
"writeback" is disabled. Rebuild your kernel with this configuration option enabled in order to trace this subsystem.
)
260 ifneq ($(CONFIG_KPROBES
),)
261 obj-m
+= lttng-kprobes.o
265 ifneq ($(CONFIG_KRETPROBES
),)
266 obj-m
+= lttng-kretprobes.o
269 ifneq ($(CONFIG_DYNAMIC_FTRACE
),)
270 obj-m
+= lttng-ftrace.o
275 obj-m
+= lttng-test.o
278 KERNELDIR ?
= /lib
/modules
/$(shell uname
-r
)/build
280 CFLAGS
= $(EXTCFLAGS
)
283 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules
286 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules_install
290 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) clean