162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciinclude ../../scripts/Makefile.include 362306a36Sopenharmony_ciinclude ../../scripts/Makefile.arch 462306a36Sopenharmony_ci 562306a36Sopenharmony_cisrctree := $(abspath $(CURDIR)/../../../) 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciifeq ($(V),1) 862306a36Sopenharmony_ci Q = 962306a36Sopenharmony_ci msg = 1062306a36Sopenharmony_cielse 1162306a36Sopenharmony_ci Q = @ 1262306a36Sopenharmony_ci ifeq ($(silent),1) 1362306a36Sopenharmony_ci msg = 1462306a36Sopenharmony_ci else 1562306a36Sopenharmony_ci msg = @printf ' %-8s %s%s\n' "$(1)" "$(notdir $(2))" "$(if $(3), $(3))"; 1662306a36Sopenharmony_ci endif 1762306a36Sopenharmony_ci MAKEFLAGS=--no-print-directory 1862306a36Sopenharmony_ciendif 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci# Overrides for the prepare step libraries. 2162306a36Sopenharmony_ciHOST_OVERRIDES := AR="$(HOSTAR)" CC="$(HOSTCC)" LD="$(HOSTLD)" ARCH="$(HOSTARCH)" \ 2262306a36Sopenharmony_ci CROSS_COMPILE="" EXTRA_CFLAGS="$(HOSTCFLAGS)" 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciRM ?= rm 2562306a36Sopenharmony_ciHOSTCC ?= gcc 2662306a36Sopenharmony_ciHOSTLD ?= ld 2762306a36Sopenharmony_ciHOSTAR ?= ar 2862306a36Sopenharmony_ciCROSS_COMPILE = 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciOUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/ 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciLIBBPF_SRC := $(srctree)/tools/lib/bpf/ 3362306a36Sopenharmony_ciSUBCMD_SRC := $(srctree)/tools/lib/subcmd/ 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciBPFOBJ := $(OUTPUT)/libbpf/libbpf.a 3662306a36Sopenharmony_ciLIBBPF_OUT := $(abspath $(dir $(BPFOBJ)))/ 3762306a36Sopenharmony_ciSUBCMDOBJ := $(OUTPUT)/libsubcmd/libsubcmd.a 3862306a36Sopenharmony_ciSUBCMD_OUT := $(abspath $(dir $(SUBCMDOBJ)))/ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciLIBBPF_DESTDIR := $(LIBBPF_OUT) 4162306a36Sopenharmony_ciLIBBPF_INCLUDE := $(LIBBPF_DESTDIR)include 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciSUBCMD_DESTDIR := $(SUBCMD_OUT) 4462306a36Sopenharmony_ciSUBCMD_INCLUDE := $(SUBCMD_DESTDIR)include 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciBINARY := $(OUTPUT)/resolve_btfids 4762306a36Sopenharmony_ciBINARY_IN := $(BINARY)-in.o 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciall: $(BINARY) 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciprepare: $(BPFOBJ) $(SUBCMDOBJ) 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci$(OUTPUT) $(OUTPUT)/libsubcmd $(LIBBPF_OUT): 5462306a36Sopenharmony_ci $(call msg,MKDIR,,$@) 5562306a36Sopenharmony_ci $(Q)mkdir -p $(@) 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci$(SUBCMDOBJ): fixdep FORCE | $(OUTPUT)/libsubcmd 5862306a36Sopenharmony_ci $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(SUBCMD_OUT) \ 5962306a36Sopenharmony_ci DESTDIR=$(SUBCMD_DESTDIR) $(HOST_OVERRIDES) prefix= subdir= \ 6062306a36Sopenharmony_ci $(abspath $@) install_headers 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OUT) 6362306a36Sopenharmony_ci $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) OUTPUT=$(LIBBPF_OUT) \ 6462306a36Sopenharmony_ci DESTDIR=$(LIBBPF_DESTDIR) $(HOST_OVERRIDES) prefix= subdir= \ 6562306a36Sopenharmony_ci $(abspath $@) install_headers 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciLIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) 6862306a36Sopenharmony_ciLIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf) 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciHOSTCFLAGS_resolve_btfids += -g \ 7162306a36Sopenharmony_ci -I$(srctree)/tools/include \ 7262306a36Sopenharmony_ci -I$(srctree)/tools/include/uapi \ 7362306a36Sopenharmony_ci -I$(LIBBPF_INCLUDE) \ 7462306a36Sopenharmony_ci -I$(SUBCMD_INCLUDE) \ 7562306a36Sopenharmony_ci $(LIBELF_FLAGS) 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciLIBS = $(LIBELF_LIBS) -lz 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciexport srctree OUTPUT HOSTCFLAGS_resolve_btfids Q HOSTCC HOSTLD HOSTAR 8062306a36Sopenharmony_ciinclude $(srctree)/tools/build/Makefile.include 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci$(BINARY_IN): fixdep FORCE prepare | $(OUTPUT) 8362306a36Sopenharmony_ci $(Q)$(MAKE) $(build)=resolve_btfids 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci$(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN) 8662306a36Sopenharmony_ci $(call msg,LINK,$@) 8762306a36Sopenharmony_ci $(Q)$(HOSTCC) $(BINARY_IN) $(KBUILD_HOSTLDFLAGS) -o $@ $(BPFOBJ) $(SUBCMDOBJ) $(LIBS) 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciclean_objects := $(wildcard $(OUTPUT)/*.o \ 9062306a36Sopenharmony_ci $(OUTPUT)/.*.o.cmd \ 9162306a36Sopenharmony_ci $(OUTPUT)/.*.o.d \ 9262306a36Sopenharmony_ci $(LIBBPF_OUT) \ 9362306a36Sopenharmony_ci $(LIBBPF_DESTDIR) \ 9462306a36Sopenharmony_ci $(SUBCMD_OUT) \ 9562306a36Sopenharmony_ci $(SUBCMD_DESTDIR) \ 9662306a36Sopenharmony_ci $(OUTPUT)/resolve_btfids) 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciifneq ($(clean_objects),) 9962306a36Sopenharmony_ciclean: fixdep-clean 10062306a36Sopenharmony_ci $(call msg,CLEAN,$(BINARY)) 10162306a36Sopenharmony_ci $(Q)$(RM) -rf $(clean_objects) 10262306a36Sopenharmony_cielse 10362306a36Sopenharmony_ciclean: 10462306a36Sopenharmony_ciendif 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_citags: 10762306a36Sopenharmony_ci $(call msg,GEN,,tags) 10862306a36Sopenharmony_ci $(Q)ctags -R . $(LIBBPF_SRC) $(SUBCMD_SRC) 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciFORCE: 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci.PHONY: all FORCE clean tags prepare 113