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
