Commit | Line | Data |
---|---|---|
1c8284eb MD |
1 | # |
2 | # Makefile for the LTT objects. | |
3 | # | |
4 | ||
5 | ifneq ($(KERNELRELEASE),) | |
c8ae85f3 | 6 | |
44a9c1d8 | 7 | ifdef CONFIG_LOCALVERSION # Check if dot-config is included. |
c8ae85f3 MD |
8 | ifeq ($(CONFIG_TRACEPOINTS),) |
9 | $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration) | |
10 | endif # CONFIG_TRACEPOINTS | |
44a9c1d8 | 11 | endif # ifdef CONFIG_LOCALVERSION |
1c8284eb | 12 | |
e2331485 MD |
13 | KERNELDIR = ${LTTNG_KERNELDIR} |
14 | MAKEFILEDIR = $(shell dirname $(lastword $(MAKEFILE_LIST))) | |
72e6c528 | 15 | |
c340f071 MD |
16 | lttng_check_linux_version = $(shell pwd)/include/linux/version.h |
17 | lttng_check_generated_linux_version = $(shell pwd)/include/generated/uapi/linux/version.h | |
18 | ||
e2331485 | 19 | |
c340f071 MD |
20 | # |
21 | # Check for stale version.h, which can be a leftover from an old Linux | |
22 | # kernel tree moved to a newer kernel version, only pruned by make | |
23 | # distclean. | |
24 | # | |
25 | ifneq ($(wildcard $(lttng_check_linux_version)),) | |
26 | ifneq ($(wildcard $(lttng_check_generated_linux_version)),) | |
27 | $(error Duplicate version.h files found in $(lttng_check_linux_version) and $(lttng_check_generated_linux_version). Consider running make distclean on your kernel, or removing the stale $(lttng_check_linux_version) file) | |
28 | endif | |
29 | endif | |
30 | ||
17e9b742 MD |
31 | ifneq ($(shell \ |
32 | if [ $(VERSION) -ge 5 \ | |
33 | -o \( $(VERSION) -eq 4 -a $(PATCHLEVEL) -ge 8 \) ] ; then \ | |
34 | echo "true" ; fi;),) | |
35 | $(warning You are entering uncharted territories adventurer! Proceed with utmost caution (also, lttng-modules 2.7 does not support Linux >= 4.8. You should upgrade to a newer lttng-modules version.)) | |
36 | endif | |
37 | ||
e2331485 | 38 | include $(MAKEFILEDIR)/Makefile.ABI.workarounds |
72e6c528 | 39 | |
a90917c3 MD |
40 | obj-m += lttng-ring-buffer-client-discard.o |
41 | obj-m += lttng-ring-buffer-client-overwrite.o | |
42 | obj-m += lttng-ring-buffer-metadata-client.o | |
43 | obj-m += lttng-ring-buffer-client-mmap-discard.o | |
44 | obj-m += lttng-ring-buffer-client-mmap-overwrite.o | |
45 | obj-m += lttng-ring-buffer-metadata-mmap-client.o | |
46 | ||
47 | obj-m += lttng-tracer.o | |
48 | lttng-tracer-objs := lttng-events.o lttng-abi.o \ | |
49 | lttng-probes.o lttng-context.o \ | |
c26fddc2 | 50 | lttng-context-pid.o lttng-context-procname.o \ |
b64bc438 MD |
51 | lttng-context-prio.o lttng-context-nice.o \ |
52 | lttng-context-vpid.o lttng-context-tid.o \ | |
53 | lttng-context-vtid.o lttng-context-ppid.o \ | |
b3699d90 MD |
54 | lttng-context-vppid.o lttng-context-cpu-id.o \ |
55 | lttng-calibrate.o \ | |
0c956676 | 56 | lttng-context-hostname.o wrapper/random.o \ |
e0130fab | 57 | probes/lttng.o wrapper/trace-clock.o \ |
389d7070 | 58 | wrapper/page_alloc.o \ |
07dfc1d0 MD |
59 | lttng-tracker-pid.o \ |
60 | lttng-filter.o lttng-filter-interpreter.o \ | |
61 | lttng-filter-specialize.o \ | |
f127e61e MD |
62 | lttng-filter-validator.o \ |
63 | probes/lttng-probe-user.o | |
11b5a3c2 | 64 | |
57ede728 MD |
65 | ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),) |
66 | lttng-tracer-objs += lttng-syscalls.o | |
67 | endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS | |
259b6cb3 | 68 | |
c24a0d71 | 69 | ifneq ($(CONFIG_PERF_EVENTS),) |
a90917c3 | 70 | lttng-tracer-objs += $(shell \ |
1386746e | 71 | if [ $(VERSION) -ge 3 \ |
5ca7b8a3 | 72 | -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \ |
1d443b34 | 73 | echo "lttng-context-perf-counters.o" ; fi;) |
b4809588 | 74 | endif # CONFIG_PERF_EVENTS |
c24a0d71 | 75 | |
20591cf7 | 76 | lttng-tracer-objs += $(shell \ |
725528de MD |
77 | if [ $(VERSION) -ge 4 \ |
78 | -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -ge 15 -a $(SUBLEVEL) -ge 0 \) ] ; then \ | |
20591cf7 MD |
79 | echo "lttng-tracepoint.o" ; fi;) |
80 | ||
353f4684 MJ |
81 | obj-m += lttng-statedump.o |
82 | lttng-statedump-objs := lttng-statedump-impl.o wrapper/irqdesc.o \ | |
83 | wrapper/fdtable.o | |
84 | ||
6d61b34d | 85 | obj-m += probes/ |
f3bc08c5 | 86 | obj-m += lib/ |
f3bc08c5 | 87 | |
b4809588 | 88 | else # KERNELRELEASE |
1c8284eb MD |
89 | KERNELDIR ?= /lib/modules/$(shell uname -r)/build |
90 | PWD := $(shell pwd) | |
2e6246b4 | 91 | CFLAGS = $(EXTCFLAGS) |
1c8284eb | 92 | |
47086178 MD |
93 | default: modules |
94 | ||
95 | modules: | |
72e6c528 | 96 | LTTNG_KERNELDIR=$(KERNELDIR) $(MAKE) -C $(KERNELDIR) M=$(PWD) modules |
1c8284eb MD |
97 | |
98 | modules_install: | |
72e6c528 | 99 | LTTNG_KERNELDIR=$(KERNELDIR) $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install |
1c8284eb MD |
100 | |
101 | clean: | |
72e6c528 | 102 | LTTNG_KERNELDIR=$(KERNELDIR) $(MAKE) -C $(KERNELDIR) M=$(PWD) clean |
1c8284eb | 103 | |
23e6a44f | 104 | %.i: %.c |
72e6c528 | 105 | LTTNG_KERNELDIR=$(KERNELDIR) $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ |
b4809588 | 106 | endif # KERNELRELEASE |