function load(package) package:add("deps", "libcap", "elfutils", "zlib", {host = true}) package:add("deps", "python 3.x", {kind = "binary"}) package:addenv("PATH", "sbin") end function install(package) local cflags = {} local ldflags = {} for _, dep in ipairs(package:librarydeps()) do local fetchinfo = dep:fetch() if fetchinfo then for _, includedir in ipairs(fetchinfo.includedirs or fetchinfo.sysincludedirs) do table.insert(cflags, "-isystem " .. includedir) end for _, linkdir in ipairs(fetchinfo.linkdirs) do table.insert(ldflags, "-L" .. linkdir) end for _, link in ipairs(fetchinfo.links) do table.insert(ldflags, "-l" .. link) end end end local configs = {} table.insert(configs, "EXTRA_CFLAGS=" .. table.concat(cflags, " ")) table.insert(configs, "LDFLAGS=" .. table.concat(ldflags, " ")) os.cd("tools/bpf/bpftool") io.replace("Makefile", "prefix ?= /usr/local", "prefix ?= " .. package:installdir(), {plain = true}) io.replace("Makefile", "bash_compdir ?= /usr/share", "bash_compdir ?= " .. package:installdir("share"), {plain = true}) io.replace("Makefile", "-lelf -lz", "-lelf -lzstd -lz", {plain = true}) io.replace("Makefile", "$(Q)$(LLVM_STRIP) -g $@", "echo skip", {plain = true}) import("package.tools.make").build(package, configs) os.vrunv("make", table.join("install", configs)) end function test(package) os.vrun("bpftool --version") end