summaryrefslogtreecommitdiff
path: root/tools/tracing/rtla/Makefile.config
blob: 5f2231d8d62666b72c53686d6118567589cb02ae (plain)
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
# SPDX-License-Identifier: GPL-2.0-only

STOP_ERROR :=

LIBTRACEEVENT_MIN_VERSION = 1.5
LIBTRACEFS_MIN_VERSION = 1.6

define lib_setup
  $(eval LIB_INCLUDES += $(shell sh -c "$(PKG_CONFIG) --cflags lib$(1)"))
  $(eval LDFLAGS += $(shell sh -c "$(PKG_CONFIG) --libs-only-L lib$(1)"))
  $(eval EXTLIBS += $(shell sh -c "$(PKG_CONFIG) --libs-only-l lib$(1)"))
endef

$(call feature_check,libtraceevent)
ifeq ($(feature-libtraceevent), 1)
  $(call detected,CONFIG_LIBTRACEEVENT)

  TEST = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) libtraceevent > /dev/null 2>&1 && echo y || echo n")
  ifeq ($(TEST),n)
    $(info libtraceevent version is too low, it must be at least $(LIBTRACEEVENT_MIN_VERSION))
    STOP_ERROR := 1
  endif

  $(call lib_setup,traceevent)
else
  STOP_ERROR := 1
  $(info libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel)
endif

$(call feature_check,libtracefs)
ifeq ($(feature-libtracefs), 1)
  $(call detected,CONFIG_LIBTRACEFS)

  TEST = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) libtracefs > /dev/null 2>&1 && echo y || echo n")
  ifeq ($(TEST),n)
    $(info libtracefs version is too low, it must be at least $(LIBTRACEFS_MIN_VERSION))
    STOP_ERROR := 1
  endif

  $(call lib_setup,tracefs)
else
  STOP_ERROR := 1
  $(info libtracefs is missing. Please install libtracefs-dev/libtracefs-devel)
endif

$(call feature_check,libcpupower)
ifeq ($(feature-libcpupower), 1)
  $(call detected,CONFIG_LIBCPUPOWER)
  CFLAGS += -DHAVE_LIBCPUPOWER_SUPPORT
  EXTLIBS += -lcpupower
else
  $(info libcpupower is missing, building without --deepest-idle-state support.)
  $(info Please install libcpupower-dev/kernel-tools-libs-devel)
endif

ifndef BUILD_BPF_SKEL
  # BPF skeletons are used to implement improved sample collection, enable
  # them by default.
  BUILD_BPF_SKEL := 1
endif

ifeq ($(BUILD_BPF_SKEL),0)
  $(info BPF skeleton support disabled, building without BPF skeleton support.)
endif

$(call feature_check,libbpf)
ifeq ($(feature-libbpf), 1)
  $(call detected,CONFIG_LIBBPF)
else
  $(info libbpf is missing, building without BPF skeleton support.)
  $(info Please install libbpf-dev/libbpf-devel)
  BUILD_BPF_SKEL := 0
endif

$(call feature_check,clang-bpf-co-re)
ifeq ($(feature-clang-bpf-co-re), 1)
  $(call detected,CONFIG_CLANG_BPF_CO_RE)
else
  $(info clang is missing or does not support BPF CO-RE, building without BPF skeleton support.)
  $(info Please install clang)
  BUILD_BPF_SKEL := 0
endif

$(call feature_check,bpftool-skeletons)
ifeq ($(feature-bpftool-skeletons), 1)
  $(call detected,CONFIG_BPFTOOL_SKELETONS)
else
  $(info bpftool is missing or not supporting skeletons, building without BPF skeleton support.)
  $(info Please install bpftool)
  BUILD_BPF_SKEL := 0
endif

ifeq ($(BUILD_BPF_SKEL),1)
  CFLAGS += -DHAVE_BPF_SKEL
  EXTLIBS += -lbpf
endif

ifeq ($(STOP_ERROR),1)
  $(error Please, check the errors above.)
endif