blob: 8c0d9f368ebcf2cecca5f27d8e4547a43cdb7958 [file] [log] [blame]
Jiri Olsa5ff32882019-02-13 13:32:39 +01001perf-y += annotate.o
Jin Yao60414412019-11-07 15:47:14 +08002perf-y += block-info.o
Jiri Olsa5ff32882019-02-13 13:32:39 +01003perf-y += block-range.o
4perf-y += build-id.o
Arnaldo Carvalho de Melo12500902019-08-22 16:58:29 -03005perf-y += cacheline.o
Jiri Olsa5ff32882019-02-13 13:32:39 +01006perf-y += config.o
Arnaldo Carvalho de Melo32ff3fe2019-09-24 15:14:12 -03007perf-y += copyfile.o
Jiri Olsa5ff32882019-02-13 13:32:39 +01008perf-y += ctype.o
9perf-y += db-export.o
10perf-y += env.o
11perf-y += event.o
12perf-y += evlist.o
Jin Yaob53a0752021-04-27 15:01:26 +080013perf-y += evlist-hybrid.o
Arnaldo Carvalho de Melo9a399942020-05-05 12:18:21 -030014perf-y += sideband_evlist.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010015perf-y += evsel.o
16perf-y += evsel_fprintf.o
Arnaldo Carvalho de Meloca125272019-09-24 15:41:51 -030017perf-y += perf_event_attr_fprintf.o
Arnaldo Carvalho de Melo8829e562019-08-15 11:00:11 -030018perf-y += evswitch.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010019perf-y += find_bit.o
20perf-y += get_current_dir_name.o
21perf-y += kallsyms.o
22perf-y += levenshtein.o
23perf-y += llvm-utils.o
24perf-y += mmap.o
25perf-y += memswap.o
26perf-y += parse-events.o
Jin Yao9cbfa2f2021-04-27 15:01:21 +080027perf-y += parse-events-hybrid.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010028perf-y += perf_regs.o
29perf-y += path.o
30perf-y += print_binary.o
Arnaldo Carvalho de Melo49752232019-07-09 14:49:26 -030031perf-y += rlimit.o
Arnaldo Carvalho de Melo9c105482019-06-26 15:27:58 -030032perf-y += argv_split.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010033perf-y += rbtree.o
34perf-y += libstring.o
35perf-y += bitmap.o
36perf-y += hweight.o
37perf-y += smt.o
38perf-y += strbuf.o
39perf-y += string.o
40perf-y += strlist.o
41perf-y += strfilter.o
42perf-y += top.o
43perf-y += usage.o
44perf-y += dso.o
Arnaldo Carvalho de Melo4a3cec82019-08-30 11:11:01 -030045perf-y += dsos.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010046perf-y += symbol.o
47perf-y += symbol_fprintf.o
48perf-y += color.o
49perf-y += color_config.o
50perf-y += metricgroup.o
51perf-y += header.o
52perf-y += callchain.o
53perf-y += values.o
54perf-y += debug.o
Andi Kleend9664582019-11-20 16:15:11 -080055perf-y += fncache.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010056perf-y += machine.o
57perf-y += map.o
58perf-y += pstack.o
59perf-y += session.o
60perf-y += sample-raw.o
61perf-y += s390-sample-raw.o
62perf-$(CONFIG_TRACE) += syscalltbl.o
63perf-y += ordered-events.o
64perf-y += namespaces.o
65perf-y += comm.o
66perf-y += thread.o
67perf-y += thread_map.o
68perf-y += trace-event-parse.o
69perf-y += parse-events-flex.o
70perf-y += parse-events-bison.o
71perf-y += pmu.o
72perf-y += pmu-flex.o
73perf-y += pmu-bison.o
Jin Yao44462432021-04-27 15:01:18 +080074perf-y += pmu-hybrid.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010075perf-y += trace-event-read.o
76perf-y += trace-event-info.o
77perf-y += trace-event-scripting.o
78perf-y += trace-event.o
79perf-y += svghelper.o
80perf-y += sort.o
81perf-y += hist.o
82perf-y += util.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010083perf-y += cpumap.o
Andi Kleen267ed5d2019-11-20 16:15:12 -080084perf-y += affinity.o
Jiri Olsa5135d5e2019-02-19 10:58:13 +010085perf-y += cputopo.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010086perf-y += cgroup.o
87perf-y += target.o
88perf-y += rblist.o
89perf-y += intlist.o
90perf-y += vdso.o
91perf-y += counts.o
92perf-y += stat.o
93perf-y += stat-shadow.o
94perf-y += stat-display.o
Arnaldo Carvalho de Melo40c7d242020-05-05 11:49:08 -030095perf-y += perf_api_probe.o
Jiri Olsa5ff32882019-02-13 13:32:39 +010096perf-y += record.o
97perf-y += srcline.o
98perf-y += srccode.o
Arnaldo Carvalho de Melo055c67e2019-09-18 16:08:52 -030099perf-y += synthetic-events.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100100perf-y += data.o
101perf-y += tsc.o
102perf-y += cloexec.o
103perf-y += call-path.o
104perf-y += rwsem.o
105perf-y += thread-stack.o
Jin Yaocebf7d52019-09-25 09:14:46 +0800106perf-y += spark.o
Kan Liang687986b2020-09-11 07:48:05 -0700107perf-y += topdown.o
Alexander Antonovf07952b2021-04-19 12:41:44 +0300108perf-y += iostat.o
Jin Yao480accb2020-10-09 10:28:39 +0800109perf-y += stream.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100110perf-$(CONFIG_AUXTRACE) += auxtrace.o
111perf-$(CONFIG_AUXTRACE) += intel-pt-decoder/
112perf-$(CONFIG_AUXTRACE) += intel-pt.o
113perf-$(CONFIG_AUXTRACE) += intel-bts.o
114perf-$(CONFIG_AUXTRACE) += arm-spe.o
Tan Xiaojun4db25f62020-05-30 20:24:40 +0800115perf-$(CONFIG_AUXTRACE) += arm-spe-decoder/
Jiri Olsa5ff32882019-02-13 13:32:39 +0100116perf-$(CONFIG_AUXTRACE) += s390-cpumsf.o
Mathieu Poirier440a23b2018-01-17 10:52:11 -0700117
118ifdef CONFIG_LIBOPENCSD
Jiri Olsa5ff32882019-02-13 13:32:39 +0100119perf-$(CONFIG_AUXTRACE) += cs-etm.o
120perf-$(CONFIG_AUXTRACE) += cs-etm-decoder/
Mathieu Poirier440a23b2018-01-17 10:52:11 -0700121endif
122
Jiri Olsa5ff32882019-02-13 13:32:39 +0100123perf-y += parse-branch-options.o
124perf-y += dump-insn.o
125perf-y += parse-regs-options.o
Changbin Dua80abe22020-08-08 10:31:30 +0800126perf-y += parse-sublevel-options.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100127perf-y += term.o
128perf-y += help-unknown-cmd.o
129perf-y += mem-events.o
130perf-y += vsprintf.o
131perf-y += units.o
132perf-y += time-utils.o
Jiri Olsa26226a92020-02-28 10:36:13 +0100133perf-y += expr-flex.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100134perf-y += expr-bison.o
Jiri Olsa576a65b2020-02-28 10:36:12 +0100135perf-y += expr.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100136perf-y += branch.o
137perf-y += mem2node.o
Jiri Olsa6953beb2020-08-05 11:34:38 +0200138perf-y += clockid.o
Jiri Olsa9352aab2014-12-29 17:42:46 +0100139
Jiri Olsa5ff32882019-02-13 13:32:39 +0100140perf-$(CONFIG_LIBBPF) += bpf-loader.o
Arnaldo Carvalho de Melod19f85642019-02-19 16:11:56 -0300141perf-$(CONFIG_LIBBPF) += bpf_map.o
Song Liufa853c42020-12-29 13:42:14 -0800142perf-$(CONFIG_PERF_BPF_SKEL) += bpf_counter.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100143perf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
144perf-$(CONFIG_LIBELF) += symbol-elf.o
145perf-$(CONFIG_LIBELF) += probe-file.o
146perf-$(CONFIG_LIBELF) += probe-event.o
Jiri Olsa709e6792014-12-29 23:52:25 +0100147
Ian Rogerseee19502020-05-15 15:17:29 -0700148ifndef CONFIG_LIBBPF
149perf-y += hashmap.o
150endif
151
Jiri Olsa709e6792014-12-29 23:52:25 +0100152ifndef CONFIG_LIBELF
Jiri Olsa5ff32882019-02-13 13:32:39 +0100153perf-y += symbol-minimal.o
Jiri Olsa709e6792014-12-29 23:52:25 +0100154endif
155
Arnaldo Carvalho de Melo86bcdb52017-07-18 17:15:29 -0300156ifndef CONFIG_SETNS
Jiri Olsa5ff32882019-02-13 13:32:39 +0100157perf-y += setns.o
Arnaldo Carvalho de Melo86bcdb52017-07-18 17:15:29 -0300158endif
159
Jiri Olsa5ff32882019-02-13 13:32:39 +0100160perf-$(CONFIG_DWARF) += probe-finder.o
161perf-$(CONFIG_DWARF) += dwarf-aux.o
162perf-$(CONFIG_DWARF) += dwarf-regs.o
Jiri Olsa8379fce2014-12-30 00:06:25 +0100163
Jiri Olsa5ff32882019-02-13 13:32:39 +0100164perf-$(CONFIG_LIBDW_DWARF_UNWIND) += unwind-libdw.o
165perf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o
166perf-$(CONFIG_LIBUNWIND) += unwind-libunwind.o
167perf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
168perf-$(CONFIG_LIBUNWIND_AARCH64) += libunwind/arm64.o
Jiri Olsab2e45c32014-12-30 00:11:11 +0100169
Jiri Olsa5ff32882019-02-13 13:32:39 +0100170perf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o
Nicholas Fraserd0713d42021-04-26 10:47:16 -0400171perf-y += data-convert-json.o
Jiri Olsaedbe9812015-02-20 23:17:00 +0100172
Jiri Olsa5ff32882019-02-13 13:32:39 +0100173perf-y += scripting-engines/
Jiri Olsac7355f82014-12-30 13:11:32 +0100174
Jiri Olsa5ff32882019-02-13 13:32:39 +0100175perf-$(CONFIG_ZLIB) += zlib.o
176perf-$(CONFIG_LZMA) += lzma.o
Alexey Budankovf24c1d72019-03-18 20:42:55 +0300177perf-$(CONFIG_ZSTD) += zstd.o
178
Igor Lubashevc22e1502019-08-07 10:44:14 -0400179perf-$(CONFIG_LIBCAP) += cap.o
180
Fabian Hemmercef7af22021-02-03 16:15:37 -0500181perf-y += demangle-ocaml.o
Jiri Olsa5ff32882019-02-13 13:32:39 +0100182perf-y += demangle-java.o
183perf-y += demangle-rust.o
Arnaldo Carvalho de Melo46dad052016-03-07 18:48:45 -0300184
Jiri Olsae12b2022016-03-10 17:41:13 +0100185ifdef CONFIG_JITDUMP
Jiri Olsa5ff32882019-02-13 13:32:39 +0100186perf-$(CONFIG_LIBELF) += jitdump.o
187perf-$(CONFIG_LIBELF) += genelf.o
188perf-$(CONFIG_DWARF) += genelf_debug.o
Arnaldo Carvalho de Melo46dad052016-03-07 18:48:45 -0300189endif
Jiri Olsa3bc33742014-12-30 13:30:04 +0100190
Jiri Olsa5ff32882019-02-13 13:32:39 +0100191perf-y += perf-hooks.o
Wang Nana0748652016-11-26 07:03:28 +0000192
Jiri Olsa5ff32882019-02-13 13:32:39 +0100193perf-$(CONFIG_LIBBPF) += bpf-event.o
Song Liu45178a92019-01-17 08:15:18 -0800194
Jiri Olsa5ff32882019-02-13 13:32:39 +0100195perf-$(CONFIG_CXX) += c++/
Wang Nan00b86692016-11-26 07:03:34 +0000196
Stephane Eranian70943492020-05-05 11:29:43 -0700197perf-$(CONFIG_LIBPFM4) += pfm.o
198
Jiri Olsa9352aab2014-12-29 17:42:46 +0100199CFLAGS_config.o += -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
Arnaldo Carvalho de Melo1b16fff2018-05-04 10:37:27 -0300200CFLAGS_llvm-utils.o += -DPERF_INCLUDE_DIR="BUILD_STR($(perf_include_dir_SQ))"
201
Stephane Eranian598b7c62015-11-30 10:02:23 +0100202# avoid compiler warnings in 32-bit mode
203CFLAGS_genelf_debug.o += -Wno-packed
Jiri Olsa9352aab2014-12-29 17:42:46 +0100204
Ian Rogers4b971df2020-06-18 21:33:51 -0700205$(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-flex.h: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
Jiri Olsa19993072014-12-30 18:44:38 +0100206 $(call rule_mkdir)
Ian Rogers4b971df2020-06-18 21:33:51 -0700207 $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/parse-events-flex.c \
208 --header-file=$(OUTPUT)util/parse-events-flex.h $(PARSER_DEBUG_FLEX) $<
Jiri Olsa9352aab2014-12-29 17:42:46 +0100209
Ian Rogersef9894d2020-06-18 21:33:52 -0700210$(OUTPUT)util/parse-events-bison.c $(OUTPUT)util/parse-events-bison.h: util/parse-events.y
Jiri Olsa19993072014-12-30 18:44:38 +0100211 $(call rule_mkdir)
Ian Rogersef9894d2020-06-18 21:33:52 -0700212 $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
213 -o $(OUTPUT)util/parse-events-bison.c -p parse_events_
Jiri Olsa9352aab2014-12-29 17:42:46 +0100214
Ian Rogers4b971df2020-06-18 21:33:51 -0700215$(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-flex.h: util/expr.l $(OUTPUT)util/expr-bison.c
Jiri Olsa26226a92020-02-28 10:36:13 +0100216 $(call rule_mkdir)
Ian Rogers4b971df2020-06-18 21:33:51 -0700217 $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/expr-flex.c \
218 --header-file=$(OUTPUT)util/expr-flex.h $(PARSER_DEBUG_FLEX) $<
Jiri Olsa26226a92020-02-28 10:36:13 +0100219
Ian Rogersef9894d2020-06-18 21:33:52 -0700220$(OUTPUT)util/expr-bison.c $(OUTPUT)util/expr-bison.h: util/expr.y
Andi Kleen07516732017-03-20 13:17:05 -0700221 $(call rule_mkdir)
Ian Rogersef9894d2020-06-18 21:33:52 -0700222 $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
223 -o $(OUTPUT)util/expr-bison.c -p expr_
Andi Kleen07516732017-03-20 13:17:05 -0700224
Ian Rogers4b971df2020-06-18 21:33:51 -0700225$(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-flex.h: util/pmu.l $(OUTPUT)util/pmu-bison.c
Jiri Olsa19993072014-12-30 18:44:38 +0100226 $(call rule_mkdir)
Ian Rogers4b971df2020-06-18 21:33:51 -0700227 $(Q)$(call echo-cmd,flex)$(FLEX) -o $(OUTPUT)util/pmu-flex.c \
228 --header-file=$(OUTPUT)util/pmu-flex.h $(PARSER_DEBUG_FLEX) $<
Jiri Olsa9352aab2014-12-29 17:42:46 +0100229
Ian Rogersef9894d2020-06-18 21:33:52 -0700230$(OUTPUT)util/pmu-bison.c $(OUTPUT)util/pmu-bison.h: util/pmu.y
Jiri Olsa19993072014-12-30 18:44:38 +0100231 $(call rule_mkdir)
Ian Rogersef9894d2020-06-18 21:33:52 -0700232 $(Q)$(call echo-cmd,bison)$(BISON) -v $< -d $(PARSER_DEBUG_BISON) \
233 -o $(OUTPUT)util/pmu-bison.c -p perf_pmu_
Jiri Olsa9352aab2014-12-29 17:42:46 +0100234
Ian Rogers304d7a92020-06-18 21:33:53 -0700235FLEX_GE_26 := $(shell expr $(shell $(FLEX) --version | sed -e 's/flex \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 26)
236ifeq ($(FLEX_GE_26),1)
237 flex_flags := -Wno-switch-enum -Wno-switch-default -Wno-unused-function -Wno-redundant-decls -Wno-sign-compare -Wno-unused-parameter -Wno-missing-prototypes -Wno-missing-declarations
238 CC_HASNT_MISLEADING_INDENTATION := $(shell echo "int main(void) { return 0 }" | $(CC) -Werror -Wno-misleading-indentation -o /dev/null -xc - 2>&1 | grep -q -- -Wno-misleading-indentation ; echo $$?)
239 ifeq ($(CC_HASNT_MISLEADING_INDENTATION), 1)
240 flex_flags += -Wno-misleading-indentation
241 endif
242else
243 flex_flags := -w
244endif
245CFLAGS_parse-events-flex.o += $(flex_flags)
246CFLAGS_pmu-flex.o += $(flex_flags)
247CFLAGS_expr-flex.o += $(flex_flags)
Ian Rogers1f16fca2020-06-18 21:33:56 -0700248
249bison_flags := -DYYENABLE_NLS=0
250BISON_GE_35 := $(shell expr $(shell $(BISON) --version | grep bison | sed -e 's/.\+ \([0-9]\+\).\([0-9]\+\)/\1\2/g') \>\= 35)
251ifeq ($(BISON_GE_35),1)
252 bison_flags += -Wno-unused-parameter -Wno-nested-externs -Wno-implicit-function-declaration -Wno-switch-enum
253else
254 bison_flags += -w
255endif
256CFLAGS_parse-events-bison.o += $(bison_flags)
257CFLAGS_pmu-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
258CFLAGS_expr-bison.o += -DYYLTYPE_IS_TRIVIAL=0 $(bison_flags)
Jiri Olsa9352aab2014-12-29 17:42:46 +0100259
260$(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c
261$(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
Jiri Olsa26226a92020-02-28 10:36:13 +0100262$(OUTPUT)util/expr.o: $(OUTPUT)util/expr-flex.c $(OUTPUT)util/expr-bison.c
Jiri Olsa9352aab2014-12-29 17:42:46 +0100263
Arnaldo Carvalho de Melo915b0882016-01-08 12:33:37 -0300264CFLAGS_bitmap.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
Arnaldo Carvalho de Melo552eb9752016-01-08 10:46:52 -0300265CFLAGS_find_bit.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
Jiri Olsa9352aab2014-12-29 17:42:46 +0100266CFLAGS_rbtree.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
Arnaldo Carvalho de Melo4ddd3272015-11-16 11:36:29 -0300267CFLAGS_libstring.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
Jiri Olsa9352aab2014-12-29 17:42:46 +0100268CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
269CFLAGS_parse-events.o += -Wno-redundant-decls
Jiri Olsa26226a92020-02-28 10:36:13 +0100270CFLAGS_expr.o += -Wno-redundant-decls
Soramichi AKIYAMAd25ed5d2017-01-17 00:22:37 +0900271CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE
Jiri Olsa9352aab2014-12-29 17:42:46 +0100272
273$(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
Jiri Olsa19993072014-12-30 18:44:38 +0100274 $(call rule_mkdir)
Jiri Olsa9352aab2014-12-29 17:42:46 +0100275 $(call if_changed_dep,cc_o_c)
276
Arnaldo Carvalho de Melo9c105482019-06-26 15:27:58 -0300277$(OUTPUT)util/argv_split.o: ../lib/argv_split.c FORCE
278 $(call rule_mkdir)
279 $(call if_changed_dep,cc_o_c)
280
Arnaldo Carvalho de Melo915b0882016-01-08 12:33:37 -0300281$(OUTPUT)util/bitmap.o: ../lib/bitmap.c FORCE
282 $(call rule_mkdir)
283 $(call if_changed_dep,cc_o_c)
284
Arnaldo Carvalho de Melo3052ba52019-06-25 17:27:31 -0300285$(OUTPUT)util/ctype.o: ../lib/ctype.c FORCE
286 $(call rule_mkdir)
287 $(call if_changed_dep,cc_o_c)
288
Arnaldo Carvalho de Melo552eb9752016-01-08 10:46:52 -0300289$(OUTPUT)util/find_bit.o: ../lib/find_bit.c FORCE
Jiri Olsa19993072014-12-30 18:44:38 +0100290 $(call rule_mkdir)
Jiri Olsa9352aab2014-12-29 17:42:46 +0100291 $(call if_changed_dep,cc_o_c)
292
Arnaldo Carvalho de Melo3f735372015-07-05 22:48:21 -0300293$(OUTPUT)util/rbtree.o: ../lib/rbtree.c FORCE
Jiri Olsa19993072014-12-30 18:44:38 +0100294 $(call rule_mkdir)
Jiri Olsa9352aab2014-12-29 17:42:46 +0100295 $(call if_changed_dep,cc_o_c)
296
Arnaldo Carvalho de Melo4ddd3272015-11-16 11:36:29 -0300297$(OUTPUT)util/libstring.o: ../lib/string.c FORCE
298 $(call rule_mkdir)
299 $(call if_changed_dep,cc_o_c)
300
Arnaldo Carvalho de Melo0aefc352015-07-09 16:27:25 -0300301$(OUTPUT)util/hweight.o: ../lib/hweight.c FORCE
Jiri Olsa19993072014-12-30 18:44:38 +0100302 $(call rule_mkdir)
Jiri Olsa9352aab2014-12-29 17:42:46 +0100303 $(call if_changed_dep,cc_o_c)
Arnaldo Carvalho de Melod0761e32016-07-07 15:42:33 -0300304
305$(OUTPUT)util/vsprintf.o: ../lib/vsprintf.c FORCE
306 $(call rule_mkdir)
307 $(call if_changed_dep,cc_o_c)