| include ../../scripts/Makefile.include | |
| include ../../scripts/utilities.mak | |
| ifeq ($(srctree),) | |
| srctree := $(patsubst %/,%,$(dir $(CURDIR))) | |
| srctree := $(patsubst %/,%,$(dir $(srctree))) | |
| srctree := $(patsubst %/,%,$(dir $(srctree))) | |
| #$(info Determined 'srctree' to be $(srctree)) | |
| endif | |
| ifneq ($(objtree),) | |
| #$(info Determined 'objtree' to be $(objtree)) | |
| endif | |
| ifneq ($(OUTPUT),) | |
| #$(info Determined 'OUTPUT' to be $(OUTPUT)) | |
| # Adding $(OUTPUT) as a directory to look for source files, | |
| # because use generated output files as sources dependency | |
| # for flex/bison parsers. | |
| VPATH += $(OUTPUT) | |
| export VPATH | |
| endif | |
| ifeq ($(V),1) | |
| Q = | |
| else | |
| Q = @ | |
| endif | |
| BPF_DIR = $(srctree)/tools/lib/bpf/ | |
| ifneq ($(OUTPUT),) | |
| BPF_PATH=$(OUTPUT) | |
| else | |
| BPF_PATH=$(BPF_DIR) | |
| endif | |
| LIBBPF = $(BPF_PATH)libbpf.a | |
| $(LIBBPF): FORCE | |
| $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) | |
| $(LIBBPF)-clean: | |
| $(call QUIET_CLEAN, libbpf) | |
| $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(OUTPUT) clean >/dev/null | |
| prefix = /usr/local | |
| bash_compdir ?= /usr/share/bash-completion/completions | |
| CC = gcc | |
| CFLAGS += -O2 | |
| CFLAGS += -W -Wall -Wextra -Wno-unused-parameter -Wshadow | |
| CFLAGS += -D__EXPORTED_HEADERS__ -I$(srctree)/tools/include/uapi -I$(srctree)/tools/include -I$(srctree)/tools/lib/bpf -I$(srctree)/kernel/bpf/ | |
| LIBS = -lelf -lbfd -lopcodes $(LIBBPF) | |
| include $(wildcard *.d) | |
| all: $(OUTPUT)bpftool | |
| SRCS=$(wildcard *.c) | |
| OBJS=$(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o | |
| $(OUTPUT)disasm.o: $(srctree)/kernel/bpf/disasm.c | |
| $(QUIET_CC)$(COMPILE.c) -MMD -o $@ $< | |
| $(OUTPUT)bpftool: $(OBJS) $(LIBBPF) | |
| $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $^ $(LIBS) | |
| $(OUTPUT)%.o: %.c | |
| $(QUIET_CC)$(COMPILE.c) -MMD -o $@ $< | |
| clean: $(LIBBPF)-clean | |
| $(call QUIET_CLEAN, bpftool) | |
| $(Q)rm -rf $(OUTPUT)bpftool $(OUTPUT)*.o $(OUTPUT)*.d | |
| install: | |
| install -m 0755 -d $(prefix)/sbin | |
| install $(OUTPUT)bpftool $(prefix)/sbin/bpftool | |
| install -m 0755 -d $(bash_compdir) | |
| install -m 0644 bash-completion/bpftool $(bash_compdir) | |
| doc: | |
| $(Q)$(MAKE) -C Documentation/ | |
| doc-install: | |
| $(Q)$(MAKE) -C Documentation/ install | |
| FORCE: | |
| .PHONY: all clean FORCE install doc doc-install | |
| .DEFAULT_GOAL := all |