8 Star 4 Fork 2

openEuler/A-Tune-BPF-Collection

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Makefile 2.24 KB
一键复制 编辑 原始数据 按行查看 历史
Lv Ying 提交于 2022-10-16 15:42 . add test framework and testcasese
# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
OUTPUT := .output
CLANG ?= clang -v
BPFTOOL ?= bpftool
PAHOLE ?= pahole
READELF ?= readelf
VMLINUX ?= /usr/lib/debug/lib/modules/`uname -r`/vmlinux
VMLINUX_HEADER ?= $(OUTPUT)/vmlinux.h
MAKE ?= make
BTF_PAHOLE_PROBE := $(shell $(READELF) -S $(VMLINUX) | grep .BTF 2>&1)
INCLUDES := -I$(OUTPUT)
CFLAGS := -g -Wall
ARCH := $(shell uname -m | sed 's/x86_64/x86/')
ifeq ($(BTF_PAHOLE_PROBE),)
DWARF2BTF = y
endif
APPS = readahead_tune
CLANG_BPF_SYS_INCLUDES = $(shell $(CLANG) -v -E - </dev/null 2>&1 \
| sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }')
ifeq ($(V),1)
Q =
msg =
else
Q = @
msg = @printf ' %-8s %s%s\n' \
"$(1)" \
"$(patsubst $(abspath $(OUTPUT))/%,%,$(2))" \
"$(if $(3), $(3))";
MAKEFLAGS += --no-print-directory
endif
.PHONY: all
all: $(APPS)
debug: DEBUG_FLAGS = -DBPFDEBUG
debug: all
export CFLAGS OUTPUT Q
.PHONY: clean
clean:
$(call msg,CLEAN)
$(Q)rm -rf $(OUTPUT) $(APPS) $(patsubst %,%.bpf.o,$(APPS))
$(Q)$(MAKE) -C test clean
.PHONY: check
check: all
$(call msg, CHECK)
$(Q)$(MAKE) -C test
$(OUTPUT):
$(call msg,MKDIR,$@)
$(Q)mkdir -p $@
$(VMLINUX_HEADER):
$(call msg,GEN-VMLINUX_H,$@)
ifeq ($(DWARF2BTF),y)
$(Q)$(PAHOLE) -J $(VMLINUX)
endif
$(Q)$(BPFTOOL) btf dump file $(VMLINUX) format c > $@
# Build BPF code
$(OUTPUT)/%.bpf.o: %.bpf.c $(wildcard %.h) | $(OUTPUT) $(VMLINUX_HEADER)
$(call msg,BPF,$@)
$(Q)$(CLANG) -D__KERNEL__ -D__ASM_SYSREG_H -D__TARGET_ARCH_$(ARCH) \
$(DEBUG_FLAGS) \
$(INCLUDES) $(CLANG_BPF_SYS_INCLUDES) \
-g -O2 -target bpf -c $(filter %.c,$^) -o $@
cp $@ $(abspath $(OUTPUT))/..
# Build common-helper code
$(OUTPUT)/common_helper.o: common_helper.c | $(OUTPUT)
$(call msg,CC,$@)
$(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) -o $@
# Build user-space code
$(patsubst %,$(OUTPUT)/%.o,$(APPS)): %.o: %.bpf.o
$(OUTPUT)/%.o: %.c $(wildcard %.h) | $(OUTPUT)
$(call msg,CC,$@)
$(Q)$(CC) $(CFLAGS) $(INCLUDES) -c $(filter %.c,$^) -o $@
# Build application binary
$(APPS): %: $(OUTPUT)/%.o $(OUTPUT)/common_helper.o | $(OUTPUT)
$(call msg,BINARY,$@)
$(Q)$(CC) $(CFLAGS) $^ -lbpf -o $@
# delete failed targets
.DELETE_ON_ERROR:
# keep intermediate (.skel.h, .bpf.o, etc) targets
.SECONDARY:
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openeuler/A-Tune-BPF-Collection.git
git@gitee.com:openeuler/A-Tune-BPF-Collection.git
openeuler
A-Tune-BPF-Collection
A-Tune-BPF-Collection
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385