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}
10 include $(KBUILD_EXTMOD
)/Makefile.ABI.workarounds
12 ccflags-y
+= -I
$(PWD
)/probes
13 obj-m
+= lttng-types.o
15 obj-m
+= lttng-probe-sched.o
16 obj-m
+= lttng-probe-irq.o
17 obj-m
+= lttng-probe-timer.o
18 obj-m
+= lttng-probe-kmem.o
19 obj-m
+= lttng-probe-module.o
20 obj-m
+= lttng-probe-power.o
22 obj-m
+= lttng-probe-statedump.o
24 ifneq ($(CONFIG_KVM
),)
25 obj-m
+= lttng-probe-kvm.o
26 ifneq ($(CONFIG_X86
),)
27 kvm_dep
= $(srctree
)/virt
/kvm
/iodev.h
28 ifneq ($(wildcard $(kvm_dep
)),)
29 CFLAGS_lttng-probe-kvm-x86.o
+= -I
$(srctree
)/virt
/kvm
30 CFLAGS_lttng-probe-kvm-x86-mmu.o
+= -I
$(srctree
)/virt
/kvm
32 if
[ $(VERSION
) -ge
3 \
33 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
34 echo
"lttng-probe-kvm-x86.o" ; fi
;)
36 if
[ $(VERSION
) -ge
3 \
37 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
38 echo
"lttng-probe-kvm-x86-mmu.o" ; fi
;)
40 $(warning File
$(kvm_dep
) not found. Probe
"kvm" x86-specific is disabled. Use full kernel source tree to enable it.
)
46 if
[ $(VERSION
) -ge
3 \
47 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
33 \
) ] ; then \
48 echo
"lttng-probe-signal.o" ; fi
;)
50 ifneq ($(CONFIG_BLOCK
),)
51 ifneq ($(CONFIG_EVENT_TRACING
),) # need blk_cmd_buf_len
52 obj-m
+= lttng-probe-block.o
56 ifneq ($(CONFIG_NET
),)
57 obj-m
+= lttng-probe-napi.o
58 obj-m
+= lttng-probe-skb.o
60 if
[ $(VERSION
) -ge
3 \
61 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
37 \
) ] ; then \
62 echo
"lttng-probe-net.o" ; fi
;)
64 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
65 echo
"lttng-probe-sock.o" ; fi
;)
67 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
68 echo
"lttng-probe-udp.o" ; fi
;)
71 ifneq ($(CONFIG_SND_SOC
),)
73 if
[ $(VERSION
) -ge
3 \
74 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
75 echo
"lttng-probe-asoc.o" ; fi
;)
78 ifneq ($(CONFIG_EXT3_FS
),)
79 ext3_dep
= $(srctree
)/fs
/ext3
/*.h
80 ext3_dep_check
= $(wildcard $(ext3_dep
))
82 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
83 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
4 -a \
84 -z
"$(ext3_dep_check)" ] ; then \
88 echo
"lttng-probe-ext3.o" ; \
91 $(warning Files
$(ext3_dep
) not found. Probe
"ext3" is disabled. Use full kernel source tree to enable it.
)
97 ifneq ($(CONFIG_GPIOLIB
),)
99 if
[ $(VERSION
) -ge
3 ] ; then \
100 echo
"lttng-probe-gpio.o" ; fi
;)
103 ifneq ($(CONFIG_JBD2
),)
104 obj-m
+= lttng-probe-jbd2.o
107 ifneq ($(CONFIG_JBD
),)
109 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
1 ] ; then \
110 echo
"lttng-probe-jbd.o" ; fi
;)
113 ifneq ($(CONFIG_REGULATOR
),)
115 if
[ $(VERSION
) -ge
3 \
116 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
117 echo
"lttng-probe-regulator.o" ; fi
;)
120 ifneq ($(CONFIG_SCSI
),)
122 if
[ $(VERSION
) -ge
3 \
123 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
35 \
) ] ; then \
124 echo
"lttng-probe-scsi.o" ; fi
;)
128 if
[ $(VERSION
) -ge
3 \
129 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
130 echo
"lttng-probe-vmscan.o" ; fi
;)
131 ifneq ($(CONFIG_SWAP
),)
134 ifneq ($(CONFIG_CGROUP_MEM_RES_CTLR
),)
139 # lock probe does not work, so disabling it for now
140 #ifneq ($(CONFIG_LOCKDEP),)
141 #obj-m += lttng-probe-lock.o
144 ifneq ($(CONFIG_BTRFS_FS
),)
145 btrfs_dep
= $(srctree
)/fs
/btrfs
/*.h
147 if
[ $(VERSION
) -ge
3 \
148 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
39 \
) ] ; then \
149 echo
"lttng-probe-btrfs.o" ; fi
;)
151 ifeq ($(wildcard $(btrfs_dep
)),)
152 $(warning Files
$(btrfs_dep
) not found. Probe
"btrfs" is disabled. Use full kernel source tree to enable it.
)
160 if
[ $(VERSION
) -ge
3 \
161 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
38 \
) ] ; then \
162 echo
"lttng-probe-compaction.o" ; fi
;)
164 ifneq ($(CONFIG_EXT4_FS
),)
165 ext4_dep
= $(srctree
)/fs
/ext4
/*.h
166 ext4
= lttng-probe-ext4.o
167 ifeq ($(wildcard $(ext4_dep
)),)
168 $(warning Files
$(ext4_dep
) not found. Probe
"ext4" is disabled. Use full kernel source tree to enable it.
)
175 if
[ $(VERSION
) -ge
3 -a
$(PATCHLEVEL
) -ge
4 ] ; then \
176 echo
"lttng-probe-printk.o" ; fi
;)
177 ifneq ($(CONFIG_FRAME_WARN
),0)
178 CFLAGS_lttng-probe-printk.o
+= -Wframe-larger-than
=2200
182 if
[ $(VERSION
) -ge
4 \
183 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
6 \
) \
184 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
5 -a
$(SUBLEVEL
) -ge
2 \
) \
185 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
4 -a
$(SUBLEVEL
) -ge
9 \
) \
186 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -eq
0 -a
$(SUBLEVEL
) -ge
41 \
) ] ; then \
187 echo
"lttng-probe-random.o" ; fi
;)
190 if
[ $(VERSION
) -ge
4 \
191 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
2 \
) ] ; then \
192 echo
"lttng-probe-rcu.o" ; fi
;)
194 ifneq ($(CONFIG_REGMAP
),)
196 if
[ $(VERSION
) -ge
4 \
197 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
2 \
) ] ; then \
198 echo
"lttng-probe-regmap.o" ; fi
;)
201 ifneq ($(CONFIG_PM_RUNTIME
),)
203 if
[ $(VERSION
) -ge
4 \
204 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
2 \
) ] ; then \
205 echo
"lttng-probe-rpm.o" ; fi
;)
208 ifneq ($(CONFIG_SUNRPC
),)
210 if
[ $(VERSION
) -ge
4 \
211 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
4 \
) ] ; then \
212 echo
"lttng-probe-sunrpc.o" ; fi
;)
215 ifneq ($(CONFIG_VIDEO_V4L2
),)
217 if
[ $(VERSION
) -ge
4 \
218 -o \
( $(VERSION
) -eq
3 -a
$(PATCHLEVEL
) -ge
14 \
) ] ; then \
219 echo
"lttng-probe-v4l2.o" ; fi
;)
222 obj-m
+= lttng-probe-workqueue.o
224 ifneq ($(CONFIG_KALLSYMS_ALL
),)
226 if
[ $(VERSION
) -ge
3 \
227 -o \
( $(VERSION
) -eq
2 -a
$(PATCHLEVEL
) -ge
6 -a
$(SUBLEVEL
) -ge
36 \
) ] ; then \
228 echo
"lttng-probe-writeback.o" ; fi
;)
230 $(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.
)
234 ifneq ($(CONFIG_KPROBES
),)
235 obj-m
+= lttng-kprobes.o
239 ifneq ($(CONFIG_KRETPROBES
),)
240 obj-m
+= lttng-kretprobes.o
243 ifneq ($(CONFIG_DYNAMIC_FTRACE
),)
244 obj-m
+= lttng-ftrace.o
250 KERNELDIR ?
= /lib
/modules
/$(shell uname
-r
)/build
252 CFLAGS
= $(EXTCFLAGS
)
255 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules
258 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) modules_install
262 $(MAKE
) -C
$(KERNELDIR
) M
=$(PWD
) clean