1*4882a593SmuzhiyunSUMMARY = "BPF Compiler Collection (BCC)" 2*4882a593SmuzhiyunHOMEPAGE = "https://github.com/iovisor/bcc" 3*4882a593SmuzhiyunLICENSE = "Apache-2.0" 4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" 5*4882a593Smuzhiyun 6*4882a593Smuzhiyuninherit cmake python3native manpages ptest 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunDEPENDS += "bison-native \ 9*4882a593Smuzhiyun flex-native \ 10*4882a593Smuzhiyun flex \ 11*4882a593Smuzhiyun elfutils \ 12*4882a593Smuzhiyun ${LUAJIT} \ 13*4882a593Smuzhiyun clang \ 14*4882a593Smuzhiyun libbpf \ 15*4882a593Smuzhiyun " 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunLUAJIT ?= "luajit" 18*4882a593SmuzhiyunLUAJIT:powerpc64le = "" 19*4882a593SmuzhiyunLUAJIT:powerpc64 = "" 20*4882a593SmuzhiyunLUAJIT:riscv64 = "" 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunRDEPENDS:${PN} += "bash python3 python3-core python3-setuptools xz" 23*4882a593SmuzhiyunRDEPENDS:${PN}-ptest = "cmake python3 python3-distutils python3-netaddr python3-pyroute2" 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunSRC_URI = "gitsm://github.com/iovisor/bcc;branch=master;protocol=https \ 26*4882a593Smuzhiyun file://0001-python-CMakeLists.txt-Remove-check-for-host-etc-debi.patch \ 27*4882a593Smuzhiyun file://0001-tools-trace.py-Fix-failing-to-exit.patch \ 28*4882a593Smuzhiyun file://0001-CMakeLists.txt-override-the-PY_CMD_ESCAPED.patch \ 29*4882a593Smuzhiyun file://0001-Vendor-just-enough-extra-headers-to-allow-libbpf-to-.patch \ 30*4882a593Smuzhiyun file://run-ptest \ 31*4882a593Smuzhiyun file://ptest_wrapper.sh \ 32*4882a593Smuzhiyun " 33*4882a593Smuzhiyun 34*4882a593SmuzhiyunSRCREV = "8f40d6f57a8d94e7aee74ce358572d34d31b4ed4" 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunPV .= "+git${SRCPV}" 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunS = "${WORKDIR}/git" 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunPACKAGECONFIG ??= "examples" 41*4882a593SmuzhiyunPACKAGECONFIG:remove:libc-musl = "examples" 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunPACKAGECONFIG[manpages] = "-DENABLE_MAN=ON,-DENABLE_MAN=OFF," 44*4882a593SmuzhiyunPACKAGECONFIG[examples] = "-DENABLE_EXAMPLES=ON,-DENABLE_EXAMPLES=OFF," 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunEXTRA_OECMAKE = " \ 47*4882a593Smuzhiyun -DCMAKE_USE_LIBBPF_PACKAGE=ON \ 48*4882a593Smuzhiyun -DENABLE_LLVM_SHARED=ON \ 49*4882a593Smuzhiyun -DENABLE_CLANG_JIT=ON \ 50*4882a593Smuzhiyun -DLLVM_PACKAGE_VERSION=${LLVMVERSION} \ 51*4882a593Smuzhiyun -DPYTHON_CMD=${PYTHON} \ 52*4882a593Smuzhiyun -DPYTHON_FLAGS=--install-lib=${PYTHON_SITEPACKAGES_DIR} \ 53*4882a593Smuzhiyun" 54*4882a593Smuzhiyun 55*4882a593Smuzhiyundo_install:append() { 56*4882a593Smuzhiyun sed -e 's@#!/usr/bin/python@#!/usr/bin/env python3@g' \ 57*4882a593Smuzhiyun -i $(find ${D}${datadir}/${PN} -type f) 58*4882a593Smuzhiyun} 59*4882a593Smuzhiyun 60*4882a593Smuzhiyundo_install_ptest() { 61*4882a593Smuzhiyun install -d ${D}${PTEST_PATH}/tests/cc 62*4882a593Smuzhiyun install ${B}/tests/cc/test_libbcc_no_libbpf ${B}/tests/cc/libusdt_test_lib.so ${D}${PTEST_PATH}/tests/cc 63*4882a593Smuzhiyun cp -rf ${S}/tests/python ${D}${PTEST_PATH}/tests/python 64*4882a593Smuzhiyun install ${WORKDIR}/ptest_wrapper.sh ${D}${PTEST_PATH}/tests 65*4882a593Smuzhiyun install ${S}/examples/networking/simulation.py ${D}${PTEST_PATH}/tests/python 66*4882a593Smuzhiyun} 67*4882a593Smuzhiyun 68*4882a593SmuzhiyunFILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}" 69*4882a593SmuzhiyunFILES:${PN}-doc += "${datadir}/${PN}/man" 70*4882a593Smuzhiyun 71*4882a593SmuzhiyunCOMPATIBLE_HOST = "(x86_64.*|aarch64.*|powerpc64.*|riscv64.*)-linux" 72