-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
55 lines (38 loc) · 1.21 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
obj := .
src := .
DEBUGBPF = -DDEBUG
#DEBUGBPF = -DDEBUG -DREDIRECT_DEBUG
DEBUGFLAGS = -O0 -Wall
PFLAGS = $(DEBUGFLAGS)
INCLUDEFLAGS = -I$(obj)/include
#always = src/example.o
always = redirect.o er-stat
# always += src/a.o
tests = test/test_xdp.o
HOSTCFLAGS += $(INCLUDEFLAGS) $(PFLAGS)
HOSTCFLAGS_bpf_load.o += $(INCLUDEFLAGS) $(PFLAGS) -Wno-unused-variable
# Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline:
# make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
LLC ?= llc
CLANG ?= clang
CC ?= gcc
LIBS = -l:libbpf.a -lelf $(USER_LIBS)
# Trick to allow make to be run from this directory
all: $(always)
$(MAKE) -C .. $$PWD/
clean:
@rm $(always)
test: $(tests)
$(MAKE) -C .. $$PWD/
sudo $<
$(obj)/%.o: $(src)/%.c
$(CLANG) $(INCLUDEFLAGS) $(EXTRA_CFLAGS) \
$(DEBUGBPF) -D__KERNEL__ -Wno-unused-value -Wno-pointer-sign \
-Wno-compare-distinct-pointer-types \
-O2 -emit-llvm -c -g $< -o -| $(LLC) -march=bpf -filetype=obj -o $@
$(obj)/test/%.o: $(src)/test/%.c
$(CC) -Wall $(INCLUDEFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
er-stat: er-stat.c
$(CC) -g -Wall $^ -lbcc -lbpf -o $@
install: er-stat
sudo install -m 755 er-stat /usr/local/bin/