1 # SPDX-License-Identifier: GPL-2.0-only
2 include ..
/..
/scripts
/Makefile.
include
3 include ..
/..
/scripts
/Makefile.arch
5 srctree
:= $(abspath
$(CURDIR
)/..
/..
/..
/)
15 msg
= @printf
' %-8s %s%s\n' "$(1)" "$(notdir $(2))" "$(if $(3), $(3))";
17 MAKEFLAGS
=--no-print-directory
20 # Overrides for the prepare step libraries.
21 HOST_OVERRIDES
:= AR
="$(HOSTAR)" CC
="$(HOSTCC)" LD
="$(HOSTLD)" ARCH
="$(HOSTARCH)" \
22 CROSS_COMPILE
="" EXTRA_CFLAGS
="$(HOSTCFLAGS)"
30 OUTPUT ?
= $(srctree
)/tools
/bpf
/resolve_btfids
/
32 LIBBPF_SRC
:= $(srctree
)/tools
/lib
/bpf
/
33 SUBCMD_SRC
:= $(srctree
)/tools
/lib
/subcmd
/
35 BPFOBJ
:= $(OUTPUT
)/libbpf
/libbpf.a
36 LIBBPF_OUT
:= $(abspath
$(dir $(BPFOBJ
)))/
37 SUBCMDOBJ
:= $(OUTPUT
)/libsubcmd
/libsubcmd.a
38 SUBCMD_OUT
:= $(abspath
$(dir $(SUBCMDOBJ
)))/
40 LIBBPF_DESTDIR
:= $(LIBBPF_OUT
)
41 LIBBPF_INCLUDE
:= $(LIBBPF_DESTDIR
)include
43 SUBCMD_DESTDIR
:= $(SUBCMD_OUT
)
44 SUBCMD_INCLUDE
:= $(SUBCMD_DESTDIR
)include
46 BINARY
:= $(OUTPUT
)/resolve_btfids
47 BINARY_IN
:= $(BINARY
)-in.o
51 prepare
: $(BPFOBJ
) $(SUBCMDOBJ
)
53 $(OUTPUT
) $(OUTPUT
)/libsubcmd
$(LIBBPF_OUT
):
57 $(SUBCMDOBJ
): fixdep FORCE |
$(OUTPUT
)/libsubcmd
58 $(Q
)$(MAKE
) -C
$(SUBCMD_SRC
) OUTPUT
=$(SUBCMD_OUT
) \
59 DESTDIR
=$(SUBCMD_DESTDIR
) $(HOST_OVERRIDES
) prefix= subdir
= \
60 $(abspath
$@
) install_headers
62 $(BPFOBJ
): $(wildcard $(LIBBPF_SRC
)/*.
[ch
] $(LIBBPF_SRC
)/Makefile
) |
$(LIBBPF_OUT
)
63 $(Q
)$(MAKE
) $(submake_extras
) -C
$(LIBBPF_SRC
) OUTPUT
=$(LIBBPF_OUT
) \
64 DESTDIR
=$(LIBBPF_DESTDIR
) $(HOST_OVERRIDES
) prefix= subdir
= \
65 $(abspath
$@
) install_headers
67 LIBELF_FLAGS
:= $(shell $(HOSTPKG_CONFIG
) libelf
--cflags 2>/dev
/null
)
68 LIBELF_LIBS
:= $(shell $(HOSTPKG_CONFIG
) libelf
--libs
2>/dev
/null || echo
-lelf
)
70 HOSTCFLAGS_resolve_btfids
+= -g \
71 -I
$(srctree
)/tools
/include \
72 -I
$(srctree
)/tools
/include/uapi \
77 LIBS
= $(LIBELF_LIBS
) -lz
79 export srctree OUTPUT HOSTCFLAGS_resolve_btfids Q HOSTCC HOSTLD HOSTAR
80 include $(srctree
)/tools
/build
/Makefile.
include
82 $(BINARY_IN
): fixdep FORCE prepare |
$(OUTPUT
)
83 $(Q
)$(MAKE
) $(build
)=resolve_btfids
85 $(BINARY
): $(BPFOBJ
) $(SUBCMDOBJ
) $(BINARY_IN
)
87 $(Q
)$(HOSTCC
) $(BINARY_IN
) $(KBUILD_HOSTLDFLAGS
) -o
$@
$(BPFOBJ
) $(SUBCMDOBJ
) $(LIBS
)
89 clean_objects
:= $(wildcard $(OUTPUT
)/*.o \
96 $(OUTPUT
)/resolve_btfids
)
98 ifneq ($(clean_objects
),)
100 $(call msg
,CLEAN
,$(BINARY
))
101 $(Q
)$(RM
) -rf
$(clean_objects
)
107 $(call msg
,GEN
,,tags)
108 $(Q
)ctags
-R .
$(LIBBPF_SRC
) $(SUBCMD_SRC
)
112 .PHONY
: all FORCE
clean tags prepare