1################################################################################
2#
3# bcc
4#
5################################################################################
6
7BCC_VERSION = 0.29.1
8BCC_SITE = https://github.com/iovisor/bcc/releases/download/v$(BCC_VERSION)
9BCC_SOURCE = bcc-src-with-submodule.tar.gz
10BCC_LICENSE = Apache-2.0
11BCC_LICENSE_FILES = LICENSE.txt
12BCC_INSTALL_STAGING = YES
13BCC_DEPENDENCIES = \
14	clang \
15	elfutils \
16	flex \
17	host-bison \
18	host-flex \
19	host-python-setuptools \
20	host-zip \
21	llvm \
22	python3
23
24# ENABLE_LLVM_SHARED=ON to use llvm.so - we only support shared libs
25# Force REVISION otherwise bcc will use git describe to generate a version number.
26BCC_CONF_OPTS = \
27	-DENABLE_LLVM_SHARED:BOOL=ON \
28	-DREVISION:STRING=$(BCC_VERSION) \
29	-DENABLE_CLANG_JIT:BOOL=ON \
30	-DENABLE_MAN:BOOL=OFF \
31	-DENABLE_EXAMPLES:BOOL=OFF \
32	-DPY_SKIP_DEB_LAYOUT:BOOL=ON
33
34define BCC_LINUX_CONFIG_FIXUPS
35	# Enable kernel support for eBPF
36	$(call KCONFIG_ENABLE_OPT,CONFIG_BPF)
37	$(call KCONFIG_ENABLE_OPT,CONFIG_BPF_SYSCALL)
38	$(call KCONFIG_ENABLE_OPT,CONFIG_NET_CLS_BPF)
39	$(call KCONFIG_ENABLE_OPT,CONFIG_NET_ACT_BPF)
40	$(call KCONFIG_ENABLE_OPT,CONFIG_BPF_JIT)
41	# [for Linux kernel versions 4.1 through 4.6]
42	$(call KCONFIG_ENABLE_OPT,CONFIG_HAVE_BPF_JIT)
43	# [for Linux kernel versions 4.7 and later]
44	$(call KCONFIG_ENABLE_OPT,CONFIG_HAVE_EBPF_JIT)
45	$(call KCONFIG_ENABLE_OPT,CONFIG_BPF_EVENTS)
46	# [for Linux kernel versions 5.2 and later]
47	$(call KCONFIG_ENABLE_OPT,CONFIG_IKHEADERS)
48	# bcc needs debugfs at runtime
49	$(call KCONFIG_ENABLE_OPT,CONFIG_DEBUG_FS)
50endef
51
52$(eval $(cmake-package))
53