~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/bpf/bpftool/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/bpf/bpftool/Makefile (Version linux-6.12-rc7) and /tools/bpf/bpftool/Makefile (Version linux-4.15.18)


  1 # SPDX-License-Identifier: (GPL-2.0-only OR BS << 
  2 include ../../scripts/Makefile.include              1 include ../../scripts/Makefile.include
  3                                                     2 
                                                   >>   3 include ../../scripts/utilities.mak
                                                   >>   4 
  4 ifeq ($(srctree),)                                  5 ifeq ($(srctree),)
  5 srctree := $(patsubst %/,%,$(dir $(CURDIR)))        6 srctree := $(patsubst %/,%,$(dir $(CURDIR)))
  6 srctree := $(patsubst %/,%,$(dir $(srctree)))       7 srctree := $(patsubst %/,%,$(dir $(srctree)))
  7 srctree := $(patsubst %/,%,$(dir $(srctree)))       8 srctree := $(patsubst %/,%,$(dir $(srctree)))
                                                   >>   9 #$(info Determined 'srctree' to be $(srctree))
                                                   >>  10 endif
                                                   >>  11 
                                                   >>  12 ifneq ($(objtree),)
                                                   >>  13 #$(info Determined 'objtree' to be $(objtree))
                                                   >>  14 endif
                                                   >>  15 
                                                   >>  16 ifneq ($(OUTPUT),)
                                                   >>  17 #$(info Determined 'OUTPUT' to be $(OUTPUT))
                                                   >>  18 # Adding $(OUTPUT) as a directory to look for source files,
                                                   >>  19 # because use generated output files as sources dependency
                                                   >>  20 # for flex/bison parsers.
                                                   >>  21 VPATH += $(OUTPUT)
                                                   >>  22 export VPATH
  8 endif                                              23 endif
  9                                                    24 
 10 ifeq ($(V),1)                                      25 ifeq ($(V),1)
 11   Q =                                              26   Q =
 12 else                                               27 else
 13   Q = @                                            28   Q = @
 14 endif                                              29 endif
 15                                                    30 
 16 BPF_DIR = $(srctree)/tools/lib/bpf             !!  31 BPF_DIR = $(srctree)/tools/lib/bpf/
 17                                                    32 
 18 ifneq ($(OUTPUT),)                                 33 ifneq ($(OUTPUT),)
 19   _OUTPUT := $(OUTPUT)                         !!  34   BPF_PATH=$(OUTPUT)
 20 else                                               35 else
 21   _OUTPUT := $(CURDIR)/                        !!  36   BPF_PATH=$(BPF_DIR)
 22 endif                                              37 endif
 23 BOOTSTRAP_OUTPUT := $(_OUTPUT)bootstrap/       << 
 24                                                    38 
 25 LIBBPF_OUTPUT := $(_OUTPUT)libbpf/             !!  39 LIBBPF = $(BPF_PATH)libbpf.a
 26 LIBBPF_DESTDIR := $(LIBBPF_OUTPUT)             << 
 27 LIBBPF_INCLUDE := $(LIBBPF_DESTDIR)include     << 
 28 LIBBPF_HDRS_DIR := $(LIBBPF_INCLUDE)/bpf       << 
 29 LIBBPF := $(LIBBPF_OUTPUT)libbpf.a             << 
 30                                                << 
 31 LIBBPF_BOOTSTRAP_OUTPUT := $(BOOTSTRAP_OUTPUT) << 
 32 LIBBPF_BOOTSTRAP_DESTDIR := $(LIBBPF_BOOTSTRAP << 
 33 LIBBPF_BOOTSTRAP_INCLUDE := $(LIBBPF_BOOTSTRAP << 
 34 LIBBPF_BOOTSTRAP_HDRS_DIR := $(LIBBPF_BOOTSTRA << 
 35 LIBBPF_BOOTSTRAP := $(LIBBPF_BOOTSTRAP_OUTPUT) << 
 36                                                << 
 37 # We need to copy hashmap.h, nlattr.h, relo_co << 
 38 # which are not otherwise exported by libbpf,  << 
 39 LIBBPF_INTERNAL_HDRS := $(addprefix $(LIBBPF_H << 
 40 LIBBPF_BOOTSTRAP_INTERNAL_HDRS := $(addprefix  << 
 41                                                << 
 42 $(LIBBPF_OUTPUT) $(BOOTSTRAP_OUTPUT) $(LIBBPF_ << 
 43         $(QUIET_MKDIR)mkdir -p $@              << 
 44                                                << 
 45 $(LIBBPF): $(wildcard $(BPF_DIR)/*.[ch] $(BPF_ << 
 46         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIB << 
 47                 DESTDIR=$(LIBBPF_DESTDIR:/=) p << 
 48                                                << 
 49 $(LIBBPF_INTERNAL_HDRS): $(LIBBPF_HDRS_DIR)/%. << 
 50         $(call QUIET_INSTALL, $@)              << 
 51         $(Q)install -m 644 -t $(LIBBPF_HDRS_DI << 
 52                                                << 
 53 $(LIBBPF_BOOTSTRAP): $(wildcard $(BPF_DIR)/*.[ << 
 54         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIB << 
 55                 DESTDIR=$(LIBBPF_BOOTSTRAP_DES << 
 56                 ARCH= CROSS_COMPILE= CC="$(HOS << 
 57                                                << 
 58 $(LIBBPF_BOOTSTRAP_INTERNAL_HDRS): $(LIBBPF_BO << 
 59         $(call QUIET_INSTALL, $@)              << 
 60         $(Q)install -m 644 -t $(LIBBPF_BOOTSTR << 
 61                                                    40 
 62 $(LIBBPF)-clean: FORCE | $(LIBBPF_OUTPUT)      !!  41 $(LIBBPF): FORCE
 63         $(call QUIET_CLEAN, libbpf)            !!  42         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT)
 64         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIB << 
 65                                                    43 
 66 $(LIBBPF_BOOTSTRAP)-clean: FORCE | $(LIBBPF_BO !!  44 $(LIBBPF)-clean:
 67         $(call QUIET_CLEAN, libbpf-bootstrap)  !!  45         $(call QUIET_CLEAN, libbpf)
 68         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(LIB !!  46         $(Q)$(MAKE) -C $(BPF_DIR) OUTPUT=$(OUTPUT) clean >/dev/null
 69                                                    47 
 70 prefix ?= /usr/local                           !!  48 prefix = /usr/local
 71 bash_compdir ?= /usr/share/bash-completion/com     49 bash_compdir ?= /usr/share/bash-completion/completions
 72                                                    50 
 73 CFLAGS += -O2                                  !!  51 CC = gcc
 74 CFLAGS += -W -Wall -Wextra -Wno-unused-paramet << 
 75 CFLAGS += $(filter-out -Wswitch-enum -Wnested- << 
 76 CFLAGS += -DPACKAGE='"bpftool"' -D__EXPORTED_H << 
 77         -I$(or $(OUTPUT),.) \                  << 
 78         -I$(LIBBPF_INCLUDE) \                  << 
 79         -I$(srctree)/kernel/bpf/ \             << 
 80         -I$(srctree)/tools/include \           << 
 81         -I$(srctree)/tools/include/uapi        << 
 82 ifneq ($(BPFTOOL_VERSION),)                    << 
 83 CFLAGS += -DBPFTOOL_VERSION='"$(BPFTOOL_VERSIO << 
 84 endif                                          << 
 85 ifneq ($(EXTRA_CFLAGS),)                       << 
 86 CFLAGS += $(EXTRA_CFLAGS)                      << 
 87 endif                                          << 
 88 ifneq ($(EXTRA_LDFLAGS),)                      << 
 89 LDFLAGS += $(EXTRA_LDFLAGS)                    << 
 90 endif                                          << 
 91                                                    52 
 92 HOST_CFLAGS := $(subst -I$(LIBBPF_INCLUDE),-I$ !!  53 CFLAGS += -O2
 93                 $(subst $(CLANG_CROSS_FLAGS),, !!  54 CFLAGS += -W -Wall -Wextra -Wno-unused-parameter -Wshadow
 94 HOST_LDFLAGS := $(LDFLAGS)                     !!  55 CFLAGS += -D__EXPORTED_HEADERS__ -I$(srctree)/tools/include/uapi -I$(srctree)/tools/include -I$(srctree)/tools/lib/bpf -I$(srctree)/kernel/bpf/
 95                                                !!  56 LIBS = -lelf -lbfd -lopcodes $(LIBBPF)
 96 INSTALL ?= install                             << 
 97 RM ?= rm -f                                    << 
 98                                                << 
 99 FEATURE_USER = .bpftool                        << 
100                                                << 
101 FEATURE_TESTS := clang-bpf-co-re               << 
102 FEATURE_TESTS += llvm                          << 
103 FEATURE_TESTS += libcap                        << 
104 FEATURE_TESTS += libbfd                        << 
105 FEATURE_TESTS += libbfd-liberty                << 
106 FEATURE_TESTS += libbfd-liberty-z              << 
107 FEATURE_TESTS += disassembler-four-args        << 
108 FEATURE_TESTS += disassembler-init-styled      << 
109                                                << 
110 FEATURE_DISPLAY := clang-bpf-co-re             << 
111 FEATURE_DISPLAY += llvm                        << 
112 FEATURE_DISPLAY += libcap                      << 
113 FEATURE_DISPLAY += libbfd                      << 
114 FEATURE_DISPLAY += libbfd-liberty              << 
115 FEATURE_DISPLAY += libbfd-liberty-z            << 
116                                                << 
117 check_feat := 1                                << 
118 NON_CHECK_FEAT_TARGETS := clean uninstall doc  << 
119 ifdef MAKECMDGOALS                             << 
120 ifeq ($(filter-out $(NON_CHECK_FEAT_TARGETS),$ << 
121   check_feat := 0                              << 
122 endif                                          << 
123 endif                                          << 
124                                                << 
125 ifeq ($(check_feat),1)                         << 
126 ifeq ($(FEATURES_DUMP),)                       << 
127 include $(srctree)/tools/build/Makefile.featur << 
128 else                                           << 
129 include $(FEATURES_DUMP)                       << 
130 endif                                          << 
131 endif                                          << 
132                                                << 
133 LIBS = $(LIBBPF) -lelf -lz                     << 
134 LIBS_BOOTSTRAP = $(LIBBPF_BOOTSTRAP) -lelf -lz << 
135 ifeq ($(feature-libcap), 1)                    << 
136 CFLAGS += -DUSE_LIBCAP                         << 
137 LIBS += -lcap                                  << 
138 endif                                          << 
139                                                    57 
140 include $(wildcard $(OUTPUT)*.d)               !!  58 include $(wildcard *.d)
141                                                    59 
142 all: $(OUTPUT)bpftool                              60 all: $(OUTPUT)bpftool
143                                                    61 
144 SRCS := $(wildcard *.c)                        !!  62 SRCS=$(wildcard *.c)
145                                                !!  63 OBJS=$(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $(OUTPUT)disasm.o
146 ifeq ($(feature-llvm),1)                       << 
147   # If LLVM is available, use it for JIT disas << 
148   CFLAGS  += -DHAVE_LLVM_SUPPORT               << 
149   LLVM_CONFIG_LIB_COMPONENTS := mcdisassembler << 
150   CFLAGS  += $(shell $(LLVM_CONFIG) --cflags)  << 
151   LIBS    += $(shell $(LLVM_CONFIG) --libs $(L << 
152   ifeq ($(shell $(LLVM_CONFIG) --shared-mode), << 
153     LIBS += $(shell $(LLVM_CONFIG) --system-li << 
154     LIBS += -lstdc++                           << 
155   endif                                        << 
156   LDFLAGS += $(shell $(LLVM_CONFIG) --ldflags) << 
157 else                                           << 
158   # Fall back on libbfd                        << 
159   ifeq ($(feature-libbfd),1)                   << 
160     LIBS += -lbfd -ldl -lopcodes               << 
161   else ifeq ($(feature-libbfd-liberty),1)      << 
162     LIBS += -lbfd -ldl -lopcodes -liberty      << 
163   else ifeq ($(feature-libbfd-liberty-z),1)    << 
164     LIBS += -lbfd -ldl -lopcodes -liberty -lz  << 
165   endif                                        << 
166                                                << 
167   # If one of the above feature combinations i << 
168   ifneq ($(filter -lbfd,$(LIBS)),)             << 
169     CFLAGS += -DHAVE_LIBBFD_SUPPORT            << 
170                                                << 
171     # Libbfd interface changed over time, figu << 
172     ifeq ($(feature-disassembler-four-args), 1 << 
173       CFLAGS += -DDISASM_FOUR_ARGS_SIGNATURE   << 
174     endif                                      << 
175     ifeq ($(feature-disassembler-init-styled), << 
176       CFLAGS += -DDISASM_INIT_STYLED           << 
177     endif                                      << 
178   endif                                        << 
179 endif                                          << 
180 ifeq ($(filter -DHAVE_LLVM_SUPPORT -DHAVE_LIBB << 
181   # No support for JIT disassembly             << 
182   SRCS := $(filter-out jit_disasm.c,$(SRCS))   << 
183 endif                                          << 
184                                                << 
185 BPFTOOL_BOOTSTRAP := $(BOOTSTRAP_OUTPUT)bpftoo << 
186                                                << 
187 BOOTSTRAP_OBJS = $(addprefix $(BOOTSTRAP_OUTPU << 
188 $(BOOTSTRAP_OBJS): $(LIBBPF_BOOTSTRAP)         << 
189                                                << 
190 OBJS = $(patsubst %.c,$(OUTPUT)%.o,$(SRCS)) $( << 
191 $(OBJS): $(LIBBPF) $(LIBBPF_INTERNAL_HDRS)     << 
192                                                << 
193 VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux)   << 
194                      $(if $(KBUILD_OUTPUT),$(K << 
195                      ../../../vmlinux          << 
196                      /sys/kernel/btf/vmlinux   << 
197                      /boot/vmlinux-$(shell una << 
198 VMLINUX_BTF ?= $(abspath $(firstword $(wildcar << 
199                                                << 
200 bootstrap: $(BPFTOOL_BOOTSTRAP)                << 
201                                                << 
202 ifneq ($(VMLINUX_BTF)$(VMLINUX_H),)            << 
203 ifeq ($(feature-clang-bpf-co-re),1)            << 
204                                                << 
205 BUILD_BPF_SKELS := 1                           << 
206                                                << 
207 ifeq ($(VMLINUX_H),)                           << 
208 $(OUTPUT)vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL_B << 
209         $(QUIET_GEN)$(BPFTOOL_BOOTSTRAP) btf d << 
210 else                                           << 
211 $(OUTPUT)vmlinux.h: $(VMLINUX_H)               << 
212         $(Q)cp "$(VMLINUX_H)" $@               << 
213 endif                                          << 
214                                                << 
215 $(OUTPUT)%.bpf.o: skeleton/%.bpf.c $(OUTPUT)vm << 
216         $(QUIET_CLANG)$(CLANG) \               << 
217                 -I$(or $(OUTPUT),.) \          << 
218                 -I$(srctree)/tools/include/uap << 
219                 -I$(LIBBPF_BOOTSTRAP_INCLUDE)  << 
220                 -g -O2 -Wall -fno-stack-protec << 
221                 --target=bpf -c $< -o $@       << 
222         $(Q)$(LLVM_STRIP) -g $@                << 
223                                                << 
224 $(OUTPUT)%.skel.h: $(OUTPUT)%.bpf.o $(BPFTOOL_ << 
225         $(QUIET_GEN)$(BPFTOOL_BOOTSTRAP) gen s << 
226                                                << 
227 $(OUTPUT)prog.o: $(OUTPUT)profiler.skel.h      << 
228                                                << 
229 $(OUTPUT)pids.o: $(OUTPUT)pid_iter.skel.h      << 
230                                                << 
231 endif                                          << 
232 endif                                          << 
233                                                << 
234 CFLAGS += $(if $(BUILD_BPF_SKELS),,-DBPFTOOL_W << 
235                                                    64 
236 $(OUTPUT)disasm.o: $(srctree)/kernel/bpf/disas     65 $(OUTPUT)disasm.o: $(srctree)/kernel/bpf/disasm.c
237         $(QUIET_CC)$(CC) $(CFLAGS) -c -MMD $<  !!  66         $(QUIET_CC)$(COMPILE.c) -MMD -o $@ $<
238                                                << 
239 $(BPFTOOL_BOOTSTRAP): $(BOOTSTRAP_OBJS) $(LIBB << 
240         $(QUIET_LINK)$(HOSTCC) $(HOST_CFLAGS)  << 
241                                                    67 
242 $(OUTPUT)bpftool: $(OBJS) $(LIBBPF)                68 $(OUTPUT)bpftool: $(OBJS) $(LIBBPF)
243         $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS !!  69         $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
244                                                << 
245 $(BOOTSTRAP_OUTPUT)%.o: %.c $(LIBBPF_BOOTSTRAP << 
246         $(QUIET_CC)$(HOSTCC) $(HOST_CFLAGS) -c << 
247                                                    70 
248 $(OUTPUT)%.o: %.c                                  71 $(OUTPUT)%.o: %.c
249         $(QUIET_CC)$(CC) $(CFLAGS) -c -MMD $<  !!  72         $(QUIET_CC)$(COMPILE.c) -MMD -o $@ $<
250                                                << 
251 feature-detect-clean:                          << 
252         $(call QUIET_CLEAN, feature-detect)    << 
253         $(Q)$(MAKE) -C $(srctree)/tools/build/ << 
254                                                    73 
255 clean: $(LIBBPF)-clean $(LIBBPF_BOOTSTRAP)-cle !!  74 clean: $(LIBBPF)-clean
256         $(call QUIET_CLEAN, bpftool)               75         $(call QUIET_CLEAN, bpftool)
257         $(Q)$(RM) -- $(OUTPUT)bpftool $(OUTPUT !!  76         $(Q)rm -rf $(OUTPUT)bpftool $(OUTPUT)*.o $(OUTPUT)*.d
258         $(Q)$(RM) -- $(OUTPUT)*.skel.h $(OUTPU << 
259         $(Q)$(RM) -r -- $(LIBBPF_OUTPUT) $(BOO << 
260         $(call QUIET_CLEAN, core-gen)          << 
261         $(Q)$(RM) -- $(OUTPUT)FEATURE-DUMP.bpf << 
262         $(Q)$(RM) -r -- $(OUTPUT)feature/      << 
263                                                << 
264 install-bin: $(OUTPUT)bpftool                  << 
265         $(call QUIET_INSTALL, bpftool)         << 
266         $(Q)$(INSTALL) -m 0755 -d $(DESTDIR)$( << 
267         $(Q)$(INSTALL) $(OUTPUT)bpftool $(DEST << 
268                                                << 
269 install: install-bin                           << 
270         $(Q)$(INSTALL) -m 0755 -d $(DESTDIR)$( << 
271         $(Q)$(INSTALL) -m 0644 bash-completion << 
272                                                << 
273 uninstall:                                     << 
274         $(call QUIET_UNINST, bpftool)          << 
275         $(Q)$(RM) -- $(DESTDIR)$(prefix)/sbin/ << 
276         $(Q)$(RM) -- $(DESTDIR)$(bash_compdir) << 
277                                                    77 
278 doc:                                           !!  78 install:
279         $(call descend,Documentation)          !!  79         install -m 0755 -d $(prefix)/sbin
                                                   >>  80         install $(OUTPUT)bpftool $(prefix)/sbin/bpftool
                                                   >>  81         install -m 0755 -d $(bash_compdir)
                                                   >>  82         install -m 0644 bash-completion/bpftool $(bash_compdir)
280                                                    83 
281 doc-clean:                                     !!  84 doc:
282         $(call descend,Documentation,clean)    !!  85         $(Q)$(MAKE) -C Documentation/
283                                                    86 
284 doc-install:                                       87 doc-install:
285         $(call descend,Documentation,install)  !!  88         $(Q)$(MAKE) -C Documentation/ install
286                                                << 
287 doc-uninstall:                                 << 
288         $(call descend,Documentation,uninstall << 
289                                                    89 
290 FORCE:                                             90 FORCE:
291                                                    91 
292 .SECONDARY:                                    !!  92 .PHONY: all clean FORCE install doc doc-install
293 .PHONY: all FORCE bootstrap clean install-bin  << 
294 .PHONY: doc doc-clean doc-install doc-uninstal << 
295 .DEFAULT_GOAL := all                               93 .DEFAULT_GOAL := all
296                                                << 
297 # Delete partially updated (corrupted) files o << 
298 .DELETE_ON_ERROR:                              << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php