aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/Makefile.perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/Makefile.perf')
-rw-r--r--tools/perf/Makefile.perf44
1 files changed, 30 insertions, 14 deletions
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 0d19d5447d6c..0a22407e1d7d 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -145,9 +145,10 @@ BISON = bison
145STRIP = strip 145STRIP = strip
146AWK = awk 146AWK = awk
147 147
148LIB_DIR = $(srctree)/tools/lib/api/ 148LIB_DIR = $(srctree)/tools/lib/api/
149TRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/ 149TRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/
150BPF_DIR = $(srctree)/tools/lib/bpf/ 150BPF_DIR = $(srctree)/tools/lib/bpf/
151SUBCMD_DIR = $(srctree)/tools/lib/subcmd/
151 152
152# include config/Makefile by default and rule out 153# include config/Makefile by default and rule out
153# non-config cases 154# non-config cases
@@ -184,15 +185,17 @@ strip-libs = $(filter-out -l%,$(1))
184ifneq ($(OUTPUT),) 185ifneq ($(OUTPUT),)
185 TE_PATH=$(OUTPUT) 186 TE_PATH=$(OUTPUT)
186 BPF_PATH=$(OUTPUT) 187 BPF_PATH=$(OUTPUT)
188 SUBCMD_PATH=$(OUTPUT)
187ifneq ($(subdir),) 189ifneq ($(subdir),)
188 LIB_PATH=$(OUTPUT)/../lib/api/ 190 API_PATH=$(OUTPUT)/../lib/api/
189else 191else
190 LIB_PATH=$(OUTPUT) 192 API_PATH=$(OUTPUT)
191endif 193endif
192else 194else
193 TE_PATH=$(TRACE_EVENT_DIR) 195 TE_PATH=$(TRACE_EVENT_DIR)
194 LIB_PATH=$(LIB_DIR) 196 API_PATH=$(LIB_DIR)
195 BPF_PATH=$(BPF_DIR) 197 BPF_PATH=$(BPF_DIR)
198 SUBCMD_PATH=$(SUBCMD_DIR)
196endif 199endif
197 200
198LIBTRACEEVENT = $(TE_PATH)libtraceevent.a 201LIBTRACEEVENT = $(TE_PATH)libtraceevent.a
@@ -201,11 +204,13 @@ export LIBTRACEEVENT
201LIBTRACEEVENT_DYNAMIC_LIST = $(TE_PATH)libtraceevent-dynamic-list 204LIBTRACEEVENT_DYNAMIC_LIST = $(TE_PATH)libtraceevent-dynamic-list
202LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS = -Xlinker --dynamic-list=$(LIBTRACEEVENT_DYNAMIC_LIST) 205LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS = -Xlinker --dynamic-list=$(LIBTRACEEVENT_DYNAMIC_LIST)
203 206
204LIBAPI = $(LIB_PATH)libapi.a 207LIBAPI = $(API_PATH)libapi.a
205export LIBAPI 208export LIBAPI
206 209
207LIBBPF = $(BPF_PATH)libbpf.a 210LIBBPF = $(BPF_PATH)libbpf.a
208 211
212LIBSUBCMD = $(SUBCMD_PATH)libsubcmd.a
213
209# python extension build directories 214# python extension build directories
210PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ 215PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/
211PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/ 216PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/
@@ -257,7 +262,7 @@ export PERL_PATH
257 262
258LIB_FILE=$(OUTPUT)libperf.a 263LIB_FILE=$(OUTPUT)libperf.a
259 264
260PERFLIBS = $(LIB_FILE) $(LIBAPI) $(LIBTRACEEVENT) 265PERFLIBS = $(LIB_FILE) $(LIBAPI) $(LIBTRACEEVENT) $(LIBSUBCMD)
261ifndef NO_LIBBPF 266ifndef NO_LIBBPF
262 PERFLIBS += $(LIBBPF) 267 PERFLIBS += $(LIBBPF)
263endif 268endif
@@ -420,7 +425,7 @@ $(LIBTRACEEVENT)-clean:
420 $(call QUIET_CLEAN, libtraceevent) 425 $(call QUIET_CLEAN, libtraceevent)
421 $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) O=$(OUTPUT) clean >/dev/null 426 $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) O=$(OUTPUT) clean >/dev/null
422 427
423install-traceevent-plugins: $(LIBTRACEEVENT) 428install-traceevent-plugins: libtraceevent_plugins
424 $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) install_plugins 429 $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) install_plugins
425 430
426$(LIBAPI): fixdep FORCE 431$(LIBAPI): fixdep FORCE
@@ -431,12 +436,19 @@ $(LIBAPI)-clean:
431 $(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null 436 $(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null
432 437
433$(LIBBPF): fixdep FORCE 438$(LIBBPF): fixdep FORCE
434 $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a 439 $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(realpath $(OUTPUT)FEATURE-DUMP)
435 440
436$(LIBBPF)-clean: 441$(LIBBPF)-clean:
437 $(call QUIET_CLEAN, libbpf) 442 $(call QUIET_CLEAN, libbpf)
438 $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null 443 $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null
439 444
445$(LIBSUBCMD): fixdep FORCE
446 $(Q)$(MAKE) -C $(SUBCMD_DIR) O=$(OUTPUT) $(OUTPUT)libsubcmd.a
447
448$(LIBSUBCMD)-clean:
449 $(call QUIET_CLEAN, libsubcmd)
450 $(Q)$(MAKE) -C $(SUBCMD_DIR) O=$(OUTPUT) clean
451
440help: 452help:
441 @echo 'Perf make targets:' 453 @echo 'Perf make targets:'
442 @echo ' doc - make *all* documentation (see below)' 454 @echo ' doc - make *all* documentation (see below)'
@@ -476,7 +488,7 @@ INSTALL_DOC_TARGETS += quick-install-doc quick-install-man quick-install-html
476$(DOC_TARGETS): 488$(DOC_TARGETS):
477 $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:doc=all) 489 $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:doc=all)
478 490
479TAG_FOLDERS= . ../lib/traceevent ../lib/api ../lib/symbol ../include ../lib/bpf 491TAG_FOLDERS= . ../lib ../include
480TAG_FILES= ../../include/uapi/linux/perf_event.h 492TAG_FILES= ../../include/uapi/linux/perf_event.h
481 493
482TAGS: 494TAGS:
@@ -555,6 +567,9 @@ endif
555 $(call QUIET_INSTALL, perf_completion-script) \ 567 $(call QUIET_INSTALL, perf_completion-script) \
556 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \ 568 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \
557 $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf' 569 $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
570 $(call QUIET_INSTALL, perf-tip) \
571 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \
572 $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)'
558 573
559install-tests: all install-gtk 574install-tests: all install-gtk
560 $(call QUIET_INSTALL, tests) \ 575 $(call QUIET_INSTALL, tests) \
@@ -582,15 +597,16 @@ $(INSTALL_DOC_TARGETS):
582# 597#
583config-clean: 598config-clean:
584 $(call QUIET_CLEAN, config) 599 $(call QUIET_CLEAN, config)
585 $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ clean >/dev/null 600 $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ $(if $(OUTPUT),OUTPUT=$(OUTPUT)feature/,) clean >/dev/null
586 601
587clean: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean config-clean 602clean: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean config-clean
588 $(call QUIET_CLEAN, core-objs) $(RM) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf-with-kcore $(LANG_BINDINGS) 603 $(call QUIET_CLEAN, core-objs) $(RM) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf-with-kcore $(LANG_BINDINGS)
589 $(Q)find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete 604 $(Q)find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
590 $(Q)$(RM) $(OUTPUT).config-detected 605 $(Q)$(RM) $(OUTPUT).config-detected
591 $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf perf-read-vdso32 perf-read-vdsox32 606 $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf perf-read-vdso32 perf-read-vdsox32
592 $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)FEATURE-DUMP $(OUTPUT)util/*-bison* $(OUTPUT)util/*-flex* \ 607 $(call QUIET_CLEAN, core-gen) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)FEATURE-DUMP $(OUTPUT)util/*-bison* $(OUTPUT)util/*-flex* \
593 $(OUTPUT)util/intel-pt-decoder/inat-tables.c 608 $(OUTPUT)util/intel-pt-decoder/inat-tables.c $(OUTPUT)fixdep \
609 $(OUTPUT)tests/llvm-src-{base,kbuild,prologue}.c
594 $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) clean 610 $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) clean
595 $(python-clean) 611 $(python-clean)
596 612