This repository has been archived by the owner on Feb 27, 2023. It is now read-only.
forked from DavadDi/skbtracer
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Makefile
executable file
·58 lines (41 loc) · 1.28 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
GOCMD := go
GOBUILD := $(GOCMD) build
GOCLEAN := $(GOCMD) clean
GOPS := /usr/local/bin/gops
GOPSSTACK := $(GOPS) stack
CLANG := clang
CLANG_INCLUDE := -I./ebpf/headers
GO_SOURCE := ./*.go
GO_BINARY := skbtracer
EBPF_SOURCE := ebpf/skbtracer.c
EBPF_BINARY := skbtracer.elf
PID := $(shell pidof skbtracer)
.PHONY: all debug rebuild build_ebpf build_go clean pahole objdump vmlinux gops kill
all: build_ebpf build_go
debug:
$(CLANG) $(CLANG_INCLUDE) -O2 -g -target bpf -c $(EBPF_SOURCE) -o $(EBPF_BINARY) -DDEBUG
$(GOBUILD) -v -o $(GO_BINARY) $(GO_SOURCE)
rebuild: clean all
build_ebpf: $(EBPF_BINARY)
build_go: $(GO_BINARY)
clean:
$(GOCLEAN)
rm -f $(GO_BINARY)
rm -f $(EBPF_BINARY)
pahole:
$(CLANG) $(CLANG_INCLUDE) -O2 -g -target bpf -c $(EBPF_SOURCE) -o $(EBPF_BINARY)
pahole $(EBPF_BINARY) > skbtracer_pahole.txt
objdump:
$(CLANG) $(CLANG_INCLUDE) -O2 -g -target bpf -c $(EBPF_SOURCE) -o $(EBPF_BINARY)
llvm-objdump -S $(EBPF_BINARY) > skbtracer_objdump.txt
vmlinux:
bpftool btf dump file /sys/kernel/btf/vmlinux format c > ebpf/headers/vmlinux.h
gops:
$(GOPSSTACK) $(PID) > skbtracer_gops.txt
kill:
kill -9 $(PID)
$(EBPF_BINARY): $(EBPF_SOURCE)
$(CLANG) $(CLANG_INCLUDE) -O2 -g -target bpf -c $^ -o $@
rm -f $(GO_BINARY)
$(GO_BINARY): $(GO_SOURCE)
$(GOBUILD) -v -o $@ $^