xref: /OK3568_Linux_fs/kernel/tools/bpf/resolve_btfids/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyuninclude ../../scripts/Makefile.include
3*4882a593Smuzhiyuninclude ../../scripts/Makefile.arch
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunsrctree := $(abspath $(CURDIR)/../../../)
6*4882a593Smuzhiyun
7*4882a593Smuzhiyunifeq ($(V),1)
8*4882a593Smuzhiyun  Q =
9*4882a593Smuzhiyun  msg =
10*4882a593Smuzhiyunelse
11*4882a593Smuzhiyun  Q = @
12*4882a593Smuzhiyun  ifeq ($(silent),1)
13*4882a593Smuzhiyun    msg =
14*4882a593Smuzhiyun  else
15*4882a593Smuzhiyun    msg = @printf '  %-8s %s%s\n' "$(1)" "$(notdir $(2))" "$(if $(3), $(3))";
16*4882a593Smuzhiyun  endif
17*4882a593Smuzhiyun  MAKEFLAGS=--no-print-directory
18*4882a593Smuzhiyunendif
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# always use the host compiler
21*4882a593SmuzhiyunAR       = $(HOSTAR)
22*4882a593SmuzhiyunCC       = $(HOSTCC)
23*4882a593SmuzhiyunLD       = $(HOSTLD)
24*4882a593SmuzhiyunARCH     = $(HOSTARCH)
25*4882a593SmuzhiyunRM      ?= rm
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunOUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/
28*4882a593Smuzhiyun
29*4882a593SmuzhiyunLIBBPF_SRC := $(srctree)/tools/lib/bpf/
30*4882a593SmuzhiyunSUBCMD_SRC := $(srctree)/tools/lib/subcmd/
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunBPFOBJ     := $(OUTPUT)/libbpf/libbpf.a
33*4882a593SmuzhiyunSUBCMDOBJ  := $(OUTPUT)/libsubcmd/libsubcmd.a
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunBINARY     := $(OUTPUT)/resolve_btfids
36*4882a593SmuzhiyunBINARY_IN  := $(BINARY)-in.o
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunall: $(BINARY)
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun$(OUTPUT) $(OUTPUT)/libbpf $(OUTPUT)/libsubcmd:
41*4882a593Smuzhiyun	$(call msg,MKDIR,,$@)
42*4882a593Smuzhiyun	$(Q)mkdir -p $(@)
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun$(SUBCMDOBJ): fixdep FORCE | $(OUTPUT)/libsubcmd
45*4882a593Smuzhiyun	$(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(OUTPUT)/libbpf
48*4882a593Smuzhiyun	$(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC)  OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunCFLAGS := -g \
51*4882a593Smuzhiyun          -I$(srctree)/tools/include \
52*4882a593Smuzhiyun          -I$(srctree)/tools/include/uapi \
53*4882a593Smuzhiyun          -I$(LIBBPF_SRC) \
54*4882a593Smuzhiyun          -I$(SUBCMD_SRC)
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunLIBS = -lelf -lz
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunexport srctree OUTPUT CFLAGS Q
59*4882a593Smuzhiyuninclude $(srctree)/tools/build/Makefile.include
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun$(BINARY_IN): fixdep FORCE | $(OUTPUT)
62*4882a593Smuzhiyun	$(Q)$(MAKE) $(build)=resolve_btfids
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun$(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN)
65*4882a593Smuzhiyun	$(call msg,LINK,$@)
66*4882a593Smuzhiyun	$(Q)$(CC) $(BINARY_IN) $(LDFLAGS) -o $@ $(BPFOBJ) $(SUBCMDOBJ) $(LIBS)
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunclean_objects := $(wildcard $(OUTPUT)/*.o                \
69*4882a593Smuzhiyun                            $(OUTPUT)/.*.o.cmd           \
70*4882a593Smuzhiyun                            $(OUTPUT)/.*.o.d             \
71*4882a593Smuzhiyun                            $(OUTPUT)/libbpf             \
72*4882a593Smuzhiyun                            $(OUTPUT)/libsubcmd          \
73*4882a593Smuzhiyun                            $(OUTPUT)/resolve_btfids)
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunifneq ($(clean_objects),)
76*4882a593Smuzhiyunclean: fixdep-clean
77*4882a593Smuzhiyun	$(call msg,CLEAN,$(BINARY))
78*4882a593Smuzhiyun	$(Q)$(RM) -rf $(clean_objects)
79*4882a593Smuzhiyunelse
80*4882a593Smuzhiyunclean:
81*4882a593Smuzhiyunendif
82*4882a593Smuzhiyun
83*4882a593Smuzhiyuntags:
84*4882a593Smuzhiyun	$(call msg,GEN,,tags)
85*4882a593Smuzhiyun	$(Q)ctags -R . $(LIBBPF_SRC) $(SUBCMD_SRC)
86*4882a593Smuzhiyun
87*4882a593SmuzhiyunFORCE:
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun.PHONY: all FORCE clean tags
90