Blame view
tools/perf/Makefile
29.6 KB
c29ede615 perf tools: Allow... |
1 2 3 |
ifeq ("$(origin O)", "command line") OUTPUT := $(O)/ endif |
d24e473e5 perf_counter: cop... |
4 |
# The default target of this Makefile is... |
a3d1ee10d perf tools: Makef... |
5 |
all: |
e0143bad9 perf_counter: add... |
6 |
|
ced465c40 perf tools: Makef... |
7 |
include config/utilities.mak |
ecafda60e perf tools: Fix b... |
8 9 10 11 12 |
ifneq ($(OUTPUT),) # check that the output directory actually exists OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd) $(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist)) endif |
a3d1ee10d perf tools: Makef... |
13 |
# Define V to have a more verbose compile. |
d24e473e5 perf_counter: cop... |
14 |
# |
ced465c40 perf tools: Makef... |
15 16 17 18 19 20 |
# Define PYTHON to point to the python binary if the default # `python' is not correct; for example: PYTHON=python2 # # Define PYTHON_CONFIG to point to the python-config binary if # the default `$(PYTHON)-config' is not correct. # |
d24e473e5 perf_counter: cop... |
21 22 23 24 |
# Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8 # # Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72. # |
751386507 perf tools: Suppo... |
25 |
# Define LDFLAGS=-static to build a static binary. |
81516c5fc perf: Use default... |
26 27 |
# # Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds. |
ca721e45b perf probe: Add N... |
28 29 |
# # Define NO_DWARF if you do not want debug-info analysis feature at all. |
9e59e0995 perf tools: Add s... |
30 31 |
# # Define WERROR=0 to disable treating any warnings as errors. |
e0143bad9 perf_counter: add... |
32 |
|
c29ede615 perf tools: Allow... |
33 34 35 |
$(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT) -include $(OUTPUT)PERF-VERSION-FILE |
e0143bad9 perf_counter: add... |
36 |
|
a3d1ee10d perf tools: Makef... |
37 |
uname_M := $(shell uname -m 2>/dev/null || echo not) |
de9ac07bb perf_counter: som... |
38 |
|
cd932c593 perf: Move arch s... |
39 40 41 42 43 |
ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ -e s/arm.*/arm/ -e s/sa110/arm/ \ -e s/s390x/s390/ -e s/parisc64/parisc/ \ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ -e s/sh[234].*/sh/ ) |
174a7b1f9 perf tools: Makef... |
44 45 |
CC = $(CROSS_COMPILE)gcc AR = $(CROSS_COMPILE)ar |
cd932c593 perf: Move arch s... |
46 47 48 49 50 |
# Additional ARCH settings for x86 ifeq ($(ARCH),i386) ARCH := x86 endif ifeq ($(ARCH),x86_64) |
174a7b1f9 perf tools: Makef... |
51 |
ARCH := x86 |
08a4a43fc perf tools, x86: ... |
52 53 54 55 |
IS_X86_64 := 0 ifeq (, $(findstring m32,$(EXTRA_CFLAGS))) IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -xc - | tail -n 1) endif |
174a7b1f9 perf tools: Makef... |
56 57 58 59 60 |
ifeq (${IS_X86_64}, 1) RAW_ARCH := x86_64 ARCH_CFLAGS := -DARCH_X86_64 ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S endif |
cd932c593 perf: Move arch s... |
61 |
endif |
9e59e0995 perf tools: Add s... |
62 63 64 65 |
# Treat warnings as errors unless directed not to ifneq ($(WERROR),0) CFLAGS_WERROR := -Werror endif |
83a0944fa perf: Enable more... |
66 67 68 |
# # Include saner warnings here, which can catch bugs: # |
61562445c perf tools: Clean... |
69 |
|
ec29b8d2a perf tools: Remov... |
70 |
EXTRA_WARNINGS := -Wformat |
61562445c perf tools: Clean... |
71 72 73 74 75 76 |
EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wformat-security EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wformat-y2k EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wshadow EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Winit-self EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wpacked EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wredundant-decls |
61562445c perf tools: Clean... |
77 78 79 80 81 |
EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wstrict-aliasing=3 EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wswitch-default EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wswitch-enum EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wno-system-headers EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wundef |
61562445c perf tools: Clean... |
82 83 84 85 86 87 88 89 |
EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wwrite-strings EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wbad-function-cast EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wmissing-declarations EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wmissing-prototypes EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wnested-externs EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wold-style-definition EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wstrict-prototypes EXTRA_WARNINGS := $(EXTRA_WARNINGS) -Wdeclaration-after-statement |
83a0944fa perf: Enable more... |
90 |
|
60d526f7f perf tools: Add '... |
91 92 93 94 95 96 |
ifeq ("$(origin DEBUG)", "command line") PERF_DEBUG = $(DEBUG) endif ifndef PERF_DEBUG CFLAGS_OPTIMIZE = -O6 endif |
9e59e0995 perf tools: Add s... |
97 |
CFLAGS = -fno-omit-frame-pointer -ggdb3 -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) |
751386507 perf tools: Suppo... |
98 |
EXTLIBS = -lpthread -lrt -lelf -lm |
b0f86f5a1 perf, probe-finde... |
99 |
ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 |
d24e473e5 perf_counter: cop... |
100 101 102 103 |
ALL_LDFLAGS = $(LDFLAGS) STRIP ?= strip # Among the variables below, these: |
078006012 perf_counter tool... |
104 |
# perfexecdir |
d24e473e5 perf_counter: cop... |
105 106 107 108 |
# template_dir # mandir # infodir # htmldir |
078006012 perf_counter tool... |
109 |
# ETC_PERFCONFIG (but not sysconfdir) |
d24e473e5 perf_counter: cop... |
110 |
# can be specified as a relative path some/where/else; |
078006012 perf_counter tool... |
111 |
# this is interpreted as relative to $(prefix) and "perf" at |
d24e473e5 perf_counter: cop... |
112 113 |
# runtime figures out where they are based on the path to the executable. # This can help installing the suite in a relocatable way. |
7ae5f2136 perf: Make the in... |
114 115 |
# Make the path relative to DESTDIR, not to prefix ifndef DESTDIR |
d24e473e5 perf_counter: cop... |
116 |
prefix = $(HOME) |
7ae5f2136 perf: Make the in... |
117 |
endif |
d24e473e5 perf_counter: cop... |
118 119 120 121 |
bindir_relative = bin bindir = $(prefix)/$(bindir_relative) mandir = share/man infodir = share/info |
078006012 perf_counter tool... |
122 |
perfexecdir = libexec/perf-core |
d24e473e5 perf_counter: cop... |
123 |
sharedir = $(prefix)/share |
078006012 perf_counter tool... |
124 125 |
template_dir = share/perf-core/templates htmldir = share/doc/perf-doc |
d24e473e5 perf_counter: cop... |
126 127 |
ifeq ($(prefix),/usr) sysconfdir = /etc |
078006012 perf_counter tool... |
128 |
ETC_PERFCONFIG = $(sysconfdir)/perfconfig |
d24e473e5 perf_counter: cop... |
129 130 |
else sysconfdir = $(prefix)/etc |
078006012 perf_counter tool... |
131 |
ETC_PERFCONFIG = etc/perfconfig |
d24e473e5 perf_counter: cop... |
132 133 |
endif lib = lib |
d24e473e5 perf_counter: cop... |
134 |
|
d24e473e5 perf_counter: cop... |
135 |
export prefix bindir sharedir sysconfdir |
d24e473e5 perf_counter: cop... |
136 |
RM = rm -f |
033a273f9 perf tools: Fix b... |
137 |
MKDIR = mkdir |
d24e473e5 perf_counter: cop... |
138 139 |
FIND = find INSTALL = install |
d24e473e5 perf_counter: cop... |
140 |
|
d24e473e5 perf_counter: cop... |
141 142 143 |
# sparse is architecture-neutral, which means that we need to tell it # explicitly what architecture to check for. Fix this up for yours.. SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ |
f18568aae perf tools: git m... |
144 |
-include config/feature-tests.mak |
1703f2c32 perf tools: Check... |
145 |
|
f9af3a4c1 perf tools: Reorg... |
146 147 |
ifeq ($(call try-cc,$(SOURCE_HELLO),-Werror -fstack-protector-all),y) CFLAGS := $(CFLAGS) -fstack-protector-all |
5d7bdab75 perf tools: Test ... |
148 |
endif |
d24e473e5 perf_counter: cop... |
149 |
|
065bef5af perf tools: Fix b... |
150 151 152 153 154 155 156 |
ifeq ($(call try-cc,$(SOURCE_HELLO),-Werror -Wstack-protector),y) CFLAGS := $(CFLAGS) -Wstack-protector endif ifeq ($(call try-cc,$(SOURCE_HELLO),-Werror -Wvolatile-register-var),y) CFLAGS := $(CFLAGS) -Wvolatile-register-var endif |
d24e473e5 perf_counter: cop... |
157 158 159 160 161 162 |
### --- END CONFIGURATION SECTION --- # Those must not be GNU-specific; they are shared with perl/ which may # be built by a different compiler. (Note that this is an artifact now # but it still might be nice to keep that distinction.) |
cd932c593 perf: Move arch s... |
163 |
BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include |
d24e473e5 perf_counter: cop... |
164 165 166 167 |
BASIC_LDFLAGS = # Guard against environment variables BUILTIN_OBJS = |
d24e473e5 perf_counter: cop... |
168 169 |
LIB_H = LIB_OBJS = |
877108e42 perf tools: Initi... |
170 |
PYRF_OBJS = |
d24e473e5 perf_counter: cop... |
171 |
SCRIPT_SH = |
d24e473e5 perf_counter: cop... |
172 |
|
2c5851747 perf archive: Add... |
173 |
SCRIPT_SH += perf-archive.sh |
078006012 perf_counter tool... |
174 |
|
f2481f3df perf tools: Fix l... |
175 176 |
grep-libs = $(filter -l%,$(1)) strip-libs = $(filter-out -l%,$(1)) |
067187fc9 perf tools: Remov... |
177 |
$(OUTPUT)python/perf.so: $(PYRF_OBJS) |
ced465c40 perf tools: Makef... |
178 |
$(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \ |
9941c96ad perf tools: Add s... |
179 180 181 |
--quiet build_ext; \ mkdir -p $(OUTPUT)python && \ cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/ |
078006012 perf_counter tool... |
182 183 184 |
# # No Perl scripts right now: # |
0a54fb636 perf tools: Makef... |
185 |
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) |
d24e473e5 perf_counter: cop... |
186 |
|
078006012 perf_counter tool... |
187 |
# |
125e702b0 perf_counter tool... |
188 |
# Single 'perf' binary right now: |
078006012 perf_counter tool... |
189 |
# |
c29ede615 perf tools: Allow... |
190 |
PROGRAMS += $(OUTPUT)perf |
d24e473e5 perf_counter: cop... |
191 |
|
978f626c4 perf tools: Don't... |
192 |
LANG_BINDINGS = |
067187fc9 perf tools: Remov... |
193 |
|
078006012 perf_counter tool... |
194 |
# what 'all' will build and 'install' will install, in perfexecdir |
978f626c4 perf tools: Don't... |
195 |
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS) |
d24e473e5 perf_counter: cop... |
196 |
|
078006012 perf_counter tool... |
197 |
# what 'all' will build but not install in perfexecdir |
8796cb9d7 perf tools: Makef... |
198 |
OTHER_PROGRAMS = $(OUTPUT)perf |
d24e473e5 perf_counter: cop... |
199 200 201 202 203 204 205 206 207 208 |
# Set paths to tools early so that they can be used for version tests. ifndef SHELL_PATH SHELL_PATH = /bin/sh endif ifndef PERL_PATH PERL_PATH = /usr/bin/perl endif export PERL_PATH |
c29ede615 perf tools: Allow... |
209 |
LIB_FILE=$(OUTPUT)libperf.a |
078006012 perf_counter tool... |
210 |
|
cdd6c482c perf: Do the big ... |
211 |
LIB_H += ../../include/linux/perf_event.h |
43cbcd8ac perf_counter tool... |
212 |
LIB_H += ../../include/linux/rbtree.h |
5da502585 perf_counter tool... |
213 |
LIB_H += ../../include/linux/list.h |
75911c9bd perf tools: Fix b... |
214 |
LIB_H += ../../include/linux/const.h |
18e97e06b perf: Add util/in... |
215 |
LIB_H += ../../include/linux/hash.h |
9769833b8 perf: Add DIE_IF(... |
216 |
LIB_H += ../../include/linux/stringify.h |
79b9ad361 perf tools: Add b... |
217 218 219 |
LIB_H += util/include/linux/bitmap.h LIB_H += util/include/linux/bitops.h LIB_H += util/include/linux/compiler.h |
75911c9bd perf tools: Fix b... |
220 |
LIB_H += util/include/linux/const.h |
79b9ad361 perf tools: Add b... |
221 222 |
LIB_H += util/include/linux/ctype.h LIB_H += util/include/linux/kernel.h |
5da502585 perf_counter tool... |
223 |
LIB_H += util/include/linux/list.h |
79b9ad361 perf tools: Add b... |
224 225 226 227 |
LIB_H += util/include/linux/module.h LIB_H += util/include/linux/poison.h LIB_H += util/include/linux/prefetch.h LIB_H += util/include/linux/rbtree.h |
20639c15d perf tools: Add m... |
228 |
LIB_H += util/include/linux/string.h |
79b9ad361 perf tools: Add b... |
229 |
LIB_H += util/include/linux/types.h |
ea7872b9d perf bench: Add f... |
230 |
LIB_H += util/include/linux/linkage.h |
79b9ad361 perf tools: Add b... |
231 |
LIB_H += util/include/asm/asm-offsets.h |
049ae80b8 perf tools: Add m... |
232 |
LIB_H += util/include/asm/bug.h |
79b9ad361 perf tools: Add b... |
233 |
LIB_H += util/include/asm/byteorder.h |
fb72014d9 perf tools: Don't... |
234 |
LIB_H += util/include/asm/hweight.h |
79b9ad361 perf tools: Add b... |
235 236 |
LIB_H += util/include/asm/swab.h LIB_H += util/include/asm/system.h |
79b9ad361 perf tools: Add b... |
237 |
LIB_H += util/include/asm/uaccess.h |
cd932c593 perf: Move arch s... |
238 |
LIB_H += util/include/dwarf-regs.h |
ea7872b9d perf bench: Add f... |
239 240 |
LIB_H += util/include/asm/dwarf2.h LIB_H += util/include/asm/cpufeature.h |
6eda5838b perfcounter tools... |
241 |
LIB_H += perf.h |
78f7defed perf annotate: Mo... |
242 |
LIB_H += util/annotate.h |
049ae80b8 perf tools: Add m... |
243 244 |
LIB_H += util/cache.h LIB_H += util/callchain.h |
7b2567c1f perf build-id: Mo... |
245 |
LIB_H += util/build-id.h |
049ae80b8 perf tools: Add m... |
246 |
LIB_H += util/debug.h |
afe61f677 perf tools: Add d... |
247 |
LIB_H += util/debugfs.h |
ec218fc4a perf tools: Remov... |
248 |
LIB_H += util/event.h |
69aad6f1e perf tools: Intro... |
249 |
LIB_H += util/evsel.h |
361c99a66 perf evsel: Intro... |
250 |
LIB_H += util/evlist.h |
049ae80b8 perf tools: Add m... |
251 |
LIB_H += util/exec_cmd.h |
7c6a1c65b perf_counter tool... |
252 |
LIB_H += util/types.h |
148be2c15 perf_counter tool... |
253 |
LIB_H += util/levenshtein.h |
4a58e6116 perf tools: Move ... |
254 |
LIB_H += util/map.h |
148be2c15 perf_counter tool... |
255 |
LIB_H += util/parse-options.h |
8ad8db378 perf_counter tool... |
256 |
LIB_H += util/parse-events.h |
148be2c15 perf_counter tool... |
257 258 |
LIB_H += util/quote.h LIB_H += util/util.h |
69aad6f1e perf tools: Intro... |
259 |
LIB_H += util/xyarray.h |
94c744b6c perf tools: Intro... |
260 |
LIB_H += util/header.h |
148be2c15 perf_counter tool... |
261 |
LIB_H += util/help.h |
94c744b6c perf tools: Intro... |
262 |
LIB_H += util/session.h |
148be2c15 perf_counter tool... |
263 |
LIB_H += util/strbuf.h |
25903407d perf report: Add ... |
264 |
LIB_H += util/strlist.h |
68baa431e perf tools: Add s... |
265 |
LIB_H += util/strfilter.h |
049ae80b8 perf tools: Add m... |
266 |
LIB_H += util/svghelper.h |
148be2c15 perf_counter tool... |
267 |
LIB_H += util/run-command.h |
a930d2c0d perf_counter tool... |
268 |
LIB_H += util/sigchain.h |
a2928c42a perf_counter tool... |
269 |
LIB_H += util/symbol.h |
8fc0321f1 perf_counter tool... |
270 |
LIB_H += util/color.h |
8d5132709 perf report: Fix ... |
271 |
LIB_H += util/values.h |
dd68ada2d perf tools: Creat... |
272 |
LIB_H += util/sort.h |
3d1d07ecd perf tools: Put c... |
273 |
LIB_H += util/hist.h |
1b46cddfc perf tools: Use r... |
274 |
LIB_H += util/thread.h |
fd78260b5 perf threads: Mov... |
275 |
LIB_H += util/thread_map.h |
049ae80b8 perf tools: Add m... |
276 |
LIB_H += util/trace-event.h |
57d250df7 perf probe: Add p... |
277 |
LIB_H += util/probe-finder.h |
e0d153c69 perf-probe: Move ... |
278 |
LIB_H += util/dwarf-aux.h |
50656eec8 perf probe: Move ... |
279 |
LIB_H += util/probe-event.h |
3e1bbdc3a perf newt: Make <... |
280 |
LIB_H += util/pstack.h |
a12b51c47 perf tools: Fix s... |
281 |
LIB_H += util/cpumap.h |
8c3e10eb1 perf top: Move di... |
282 |
LIB_H += util/top.h |
ea7872b9d perf bench: Add f... |
283 |
LIB_H += $(ARCH_INCLUDE) |
023695d96 perf tool: Add cg... |
284 |
LIB_H += util/cgroup.h |
148be2c15 perf_counter tool... |
285 |
|
c29ede615 perf tools: Allow... |
286 287 |
LIB_OBJS += $(OUTPUT)util/abspath.o LIB_OBJS += $(OUTPUT)util/alias.o |
78f7defed perf annotate: Mo... |
288 |
LIB_OBJS += $(OUTPUT)util/annotate.o |
c29ede615 perf tools: Allow... |
289 290 291 292 293 294 |
LIB_OBJS += $(OUTPUT)util/build-id.o LIB_OBJS += $(OUTPUT)util/config.o LIB_OBJS += $(OUTPUT)util/ctype.o LIB_OBJS += $(OUTPUT)util/debugfs.o LIB_OBJS += $(OUTPUT)util/environment.o LIB_OBJS += $(OUTPUT)util/event.o |
361c99a66 perf evsel: Intro... |
295 |
LIB_OBJS += $(OUTPUT)util/evlist.o |
69aad6f1e perf tools: Intro... |
296 |
LIB_OBJS += $(OUTPUT)util/evsel.o |
c29ede615 perf tools: Allow... |
297 298 299 300 301 302 303 304 305 |
LIB_OBJS += $(OUTPUT)util/exec_cmd.o LIB_OBJS += $(OUTPUT)util/help.o LIB_OBJS += $(OUTPUT)util/levenshtein.o LIB_OBJS += $(OUTPUT)util/parse-options.o LIB_OBJS += $(OUTPUT)util/parse-events.o LIB_OBJS += $(OUTPUT)util/path.o LIB_OBJS += $(OUTPUT)util/rbtree.o LIB_OBJS += $(OUTPUT)util/bitmap.o LIB_OBJS += $(OUTPUT)util/hweight.o |
c29ede615 perf tools: Allow... |
306 307 308 309 310 |
LIB_OBJS += $(OUTPUT)util/run-command.o LIB_OBJS += $(OUTPUT)util/quote.o LIB_OBJS += $(OUTPUT)util/strbuf.o LIB_OBJS += $(OUTPUT)util/string.o LIB_OBJS += $(OUTPUT)util/strlist.o |
68baa431e perf tools: Add s... |
311 |
LIB_OBJS += $(OUTPUT)util/strfilter.o |
8c3e10eb1 perf top: Move di... |
312 |
LIB_OBJS += $(OUTPUT)util/top.o |
c29ede615 perf tools: Allow... |
313 314 315 316 317 318 319 320 321 322 323 |
LIB_OBJS += $(OUTPUT)util/usage.o LIB_OBJS += $(OUTPUT)util/wrapper.o LIB_OBJS += $(OUTPUT)util/sigchain.o LIB_OBJS += $(OUTPUT)util/symbol.o LIB_OBJS += $(OUTPUT)util/color.o LIB_OBJS += $(OUTPUT)util/pager.o LIB_OBJS += $(OUTPUT)util/header.o LIB_OBJS += $(OUTPUT)util/callchain.o LIB_OBJS += $(OUTPUT)util/values.o LIB_OBJS += $(OUTPUT)util/debug.o LIB_OBJS += $(OUTPUT)util/map.o |
3e1bbdc3a perf newt: Make <... |
324 |
LIB_OBJS += $(OUTPUT)util/pstack.o |
c29ede615 perf tools: Allow... |
325 326 |
LIB_OBJS += $(OUTPUT)util/session.o LIB_OBJS += $(OUTPUT)util/thread.o |
fd78260b5 perf threads: Mov... |
327 |
LIB_OBJS += $(OUTPUT)util/thread_map.o |
c29ede615 perf tools: Allow... |
328 329 330 331 332 333 334 335 336 |
LIB_OBJS += $(OUTPUT)util/trace-event-parse.o LIB_OBJS += $(OUTPUT)util/trace-event-read.o LIB_OBJS += $(OUTPUT)util/trace-event-info.o LIB_OBJS += $(OUTPUT)util/trace-event-scripting.o LIB_OBJS += $(OUTPUT)util/svghelper.o LIB_OBJS += $(OUTPUT)util/sort.o LIB_OBJS += $(OUTPUT)util/hist.o LIB_OBJS += $(OUTPUT)util/probe-event.o LIB_OBJS += $(OUTPUT)util/util.o |
69aad6f1e perf tools: Intro... |
337 |
LIB_OBJS += $(OUTPUT)util/xyarray.o |
c29ede615 perf tools: Allow... |
338 |
LIB_OBJS += $(OUTPUT)util/cpumap.o |
023695d96 perf tool: Add cg... |
339 |
LIB_OBJS += $(OUTPUT)util/cgroup.o |
c29ede615 perf tools: Allow... |
340 341 342 343 |
BUILTIN_OBJS += $(OUTPUT)builtin-annotate.o BUILTIN_OBJS += $(OUTPUT)builtin-bench.o |
bfde82ef5 perf bench: Add s... |
344 345 |
# Benchmark modules |
c29ede615 perf tools: Allow... |
346 347 |
BUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o BUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o |
ea7872b9d perf bench: Add f... |
348 349 350 |
ifeq ($(RAW_ARCH),x86_64) BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy-x86-64-asm.o endif |
c29ede615 perf tools: Allow... |
351 352 353 |
BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o BUILTIN_OBJS += $(OUTPUT)builtin-diff.o |
43adec955 perf evlist: New ... |
354 |
BUILTIN_OBJS += $(OUTPUT)builtin-evlist.o |
c29ede615 perf tools: Allow... |
355 356 357 358 359 360 361 362 363 364 |
BUILTIN_OBJS += $(OUTPUT)builtin-help.o BUILTIN_OBJS += $(OUTPUT)builtin-sched.o BUILTIN_OBJS += $(OUTPUT)builtin-buildid-list.o BUILTIN_OBJS += $(OUTPUT)builtin-buildid-cache.o BUILTIN_OBJS += $(OUTPUT)builtin-list.o BUILTIN_OBJS += $(OUTPUT)builtin-record.o BUILTIN_OBJS += $(OUTPUT)builtin-report.o BUILTIN_OBJS += $(OUTPUT)builtin-stat.o BUILTIN_OBJS += $(OUTPUT)builtin-timechart.o BUILTIN_OBJS += $(OUTPUT)builtin-top.o |
133dc4c39 perf: Rename 'per... |
365 |
BUILTIN_OBJS += $(OUTPUT)builtin-script.o |
c29ede615 perf tools: Allow... |
366 367 368 |
BUILTIN_OBJS += $(OUTPUT)builtin-probe.o BUILTIN_OBJS += $(OUTPUT)builtin-kmem.o BUILTIN_OBJS += $(OUTPUT)builtin-lock.o |
a1645ce12 perf: 'perf kvm' ... |
369 |
BUILTIN_OBJS += $(OUTPUT)builtin-kvm.o |
1c6a800cd perf test: Initia... |
370 |
BUILTIN_OBJS += $(OUTPUT)builtin-test.o |
454c407ec perf: add perf-in... |
371 |
BUILTIN_OBJS += $(OUTPUT)builtin-inject.o |
078006012 perf_counter tool... |
372 373 |
PERFLIBS = $(LIB_FILE) |
d24e473e5 perf_counter: cop... |
374 |
|
877108e42 perf tools: Initi... |
375 376 377 378 379 380 381 382 383 384 385 386 387 |
# Files needed for the python binding, perf.so # pyrf is just an internal name needed for all those wrappers. # This has to be in sync with what is in the 'sources' variable in # tools/perf/util/setup.py PYRF_OBJS += $(OUTPUT)util/cpumap.o PYRF_OBJS += $(OUTPUT)util/ctype.o PYRF_OBJS += $(OUTPUT)util/evlist.o PYRF_OBJS += $(OUTPUT)util/evsel.o PYRF_OBJS += $(OUTPUT)util/python.o PYRF_OBJS += $(OUTPUT)util/thread_map.o PYRF_OBJS += $(OUTPUT)util/util.o PYRF_OBJS += $(OUTPUT)util/xyarray.o |
d24e473e5 perf_counter: cop... |
388 389 390 391 392 393 394 |
# # Platform specific tweaks # # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If # we had "elif" things would have been much nicer... |
d24e473e5 perf_counter: cop... |
395 396 |
-include config.mak.autogen -include config.mak |
cd932c593 perf: Move arch s... |
397 |
ifndef NO_DWARF |
a71123977 perf tools: Remov... |
398 |
FLAGS_DWARF=$(ALL_CFLAGS) -ldw -lelf $(ALL_LDFLAGS) $(EXTLIBS) |
f9af3a4c1 perf tools: Reorg... |
399 |
ifneq ($(call try-cc,$(SOURCE_DWARF),$(FLAGS_DWARF)),y) |
6b3c4ef50 perf probe: Check... |
400 |
msg := $(warning No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev); |
cd932c593 perf: Move arch s... |
401 402 403 404 405 |
NO_DWARF := 1 endif # Dwarf support endif # NO_DWARF -include arch/$(ARCH)/Makefile |
c29ede615 perf tools: Allow... |
406 407 408 |
ifneq ($(OUTPUT),) BASIC_CFLAGS += -I$(OUTPUT) endif |
f9af3a4c1 perf tools: Reorg... |
409 410 411 412 413 414 415 416 |
FLAGS_LIBELF=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) ifneq ($(call try-cc,$(SOURCE_LIBELF),$(FLAGS_LIBELF)),y) FLAGS_GLIBC=$(ALL_CFLAGS) $(ALL_LDFLAGS) ifneq ($(call try-cc,$(SOURCE_GLIBC),$(FLAGS_GLIBC)),y) msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static); else msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel); endif |
1abc7f550 perf tools: Displ... |
417 |
endif |
f9af3a4c1 perf tools: Reorg... |
418 419 |
ifneq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_COMMON)),y) BASIC_CFLAGS += -DLIBELF_NO_MMAP |
9424edc2d perf: Auto-detect... |
420 |
endif |
ca721e45b perf probe: Add N... |
421 |
ifndef NO_DWARF |
cd932c593 perf: Move arch s... |
422 423 424 |
ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined) msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled); else |
a71123977 perf tools: Remov... |
425 |
BASIC_CFLAGS += -DDWARF_SUPPORT |
804b36068 perf probe: Use e... |
426 |
EXTLIBS += -lelf -ldw |
c29ede615 perf tools: Allow... |
427 |
LIB_OBJS += $(OUTPUT)util/probe-finder.o |
e0d153c69 perf-probe: Move ... |
428 |
LIB_OBJS += $(OUTPUT)util/dwarf-aux.o |
cd932c593 perf: Move arch s... |
429 430 |
endif # PERF_HAVE_DWARF_REGS endif # NO_DWARF |
4ea42b181 perf: Add perf pr... |
431 |
|
94f3ca957 perf tools: Add m... |
432 433 434 |
ifdef NO_NEWT BASIC_CFLAGS += -DNO_NEWT_SUPPORT else |
f9af3a4c1 perf tools: Reorg... |
435 436 437 438 439 440 441 442 |
FLAGS_NEWT=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lnewt ifneq ($(call try-cc,$(SOURCE_NEWT),$(FLAGS_NEWT)),y) msg := $(warning newt not found, disables TUI support. Please install newt-devel or libnewt-dev); BASIC_CFLAGS += -DNO_NEWT_SUPPORT else # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h BASIC_CFLAGS += -I/usr/include/slang EXTLIBS += -lnewt -lslang |
1e6dd077a perf ui: Complete... |
443 |
LIB_OBJS += $(OUTPUT)util/ui/setup.o |
ef8f34aab perf ui: Start br... |
444 |
LIB_OBJS += $(OUTPUT)util/ui/browser.o |
211ef1277 perf ui: Move ann... |
445 |
LIB_OBJS += $(OUTPUT)util/ui/browsers/annotate.o |
d1b4f2491 perf ui: Move his... |
446 |
LIB_OBJS += $(OUTPUT)util/ui/browsers/hists.o |
b1b026733 perf ui: Move map... |
447 |
LIB_OBJS += $(OUTPUT)util/ui/browsers/map.o |
5575536fc perf ui: Move ui_... |
448 |
LIB_OBJS += $(OUTPUT)util/ui/helpline.o |
34cea7f7c perf ui: Move ui_... |
449 |
LIB_OBJS += $(OUTPUT)util/ui/progress.o |
1e6dd077a perf ui: Complete... |
450 |
LIB_OBJS += $(OUTPUT)util/ui/util.o |
ef8f34aab perf ui: Start br... |
451 |
LIB_H += util/ui/browser.h |
b1b026733 perf ui: Move map... |
452 |
LIB_H += util/ui/browsers/map.h |
5575536fc perf ui: Move ui_... |
453 |
LIB_H += util/ui/helpline.h |
cf9580036 perf ui browser: ... |
454 |
LIB_H += util/ui/keysyms.h |
211ef1277 perf ui: Move ann... |
455 |
LIB_H += util/ui/libslang.h |
34cea7f7c perf ui: Move ui_... |
456 |
LIB_H += util/ui/progress.h |
1e6dd077a perf ui: Complete... |
457 |
LIB_H += util/ui/util.h |
5c35d69fb perf ui: Serializ... |
458 |
LIB_H += util/ui/ui.h |
f9af3a4c1 perf tools: Reorg... |
459 |
endif |
cc835752a perf tools: Allow... |
460 |
endif |
16c632de6 perf trace: Add P... |
461 |
|
f9af3a4c1 perf tools: Reorg... |
462 |
ifdef NO_LIBPERL |
16c632de6 perf trace: Add P... |
463 464 |
BASIC_CFLAGS += -DNO_LIBPERL else |
f2481f3df perf tools: Fix l... |
465 466 467 |
PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null) PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS)) PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS)) |
f9af3a4c1 perf tools: Reorg... |
468 |
PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` |
bfde74486 perf scripts perl... |
469 |
FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) |
16c632de6 perf trace: Add P... |
470 |
|
f9af3a4c1 perf tools: Reorg... |
471 472 473 |
ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED)),y) BASIC_CFLAGS += -DNO_LIBPERL else |
f2481f3df perf tools: Fix l... |
474 475 |
ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS) EXTLIBS += $(PERL_EMBED_LIBADD) |
f9af3a4c1 perf tools: Reorg... |
476 477 478 |
LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o endif |
7e4b21b84 perf/scripts: Add... |
479 |
endif |
ced465c40 perf tools: Makef... |
480 481 482 483 484 485 486 487 488 489 490 491 492 |
disable-python = $(eval $(disable-python_code)) define disable-python_code BASIC_CFLAGS += -DNO_LIBPYTHON $(if $(1),$(warning No $(1) was found)) $(warning Python support won't be built) endef override PYTHON := \ $(call get-executable-or-default,PYTHON,python) ifndef PYTHON $(call disable-python,python interpreter) python-clean := |
7e4b21b84 perf/scripts: Add... |
493 |
else |
ced465c40 perf tools: Makef... |
494 495 |
PYTHON_WORD := $(call shell-wordify,$(PYTHON)) |
9941c96ad perf tools: Add s... |
496 497 498 499 500 501 502 |
# python extension build directories PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/ PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/ export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so |
ced465c40 perf tools: Makef... |
503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 |
ifdef NO_LIBPYTHON $(call disable-python) else override PYTHON_CONFIG := \ $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config) ifndef PYTHON_CONFIG $(call disable-python,python-config tool) else PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG)) PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null) PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS)) PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS)) PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null) FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS) ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED)),y) $(call disable-python,Python.h (for Python 2.x)) else ifneq ($(call try-cc,$(SOURCE_PYTHON_VERSION),$(FLAGS_PYTHON_EMBED)),y) $(warning Python 3 is not yet supported; please set) $(warning PYTHON and/or PYTHON_CONFIG appropriately.) $(warning If you also have Python 2 installed, then) $(warning try something like:) $(warning $(and ,)) $(warning $(and ,) make PYTHON=python2) $(warning $(and ,)) $(warning Otherwise, disable Python support entirely:) $(warning $(and ,)) $(warning $(and ,) make NO_LIBPYTHON=1) $(warning $(and ,)) $(error $(and ,)) else ALL_LDFLAGS += $(PYTHON_EMBED_LDFLAGS) EXTLIBS += $(PYTHON_EMBED_LIBADD) LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o LANG_BINDINGS += $(OUTPUT)python/perf.so endif endif endif endif |
7e4b21b84 perf/scripts: Add... |
551 |
endif |
2cdbc46d7 perf: Auto-detect... |
552 553 554 |
ifdef NO_DEMANGLE BASIC_CFLAGS += -DNO_DEMANGLE else |
167a58f10 perf tools: Fix f... |
555 556 557 558 559 560 561 562 |
ifdef HAVE_CPLUS_DEMANGLE EXTLIBS += -liberty BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE else FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD)) ifeq ($(has_bfd),y) EXTLIBS += -lbfd |
247648e37 perf tools: Fix f... |
563 |
else |
167a58f10 perf tools: Fix f... |
564 565 566 567 |
FLAGS_BFD_IBERTY=$(FLAGS_BFD) -liberty has_bfd_iberty := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY)) ifeq ($(has_bfd_iberty),y) EXTLIBS += -lbfd -liberty |
247648e37 perf tools: Fix f... |
568 |
else |
167a58f10 perf tools: Fix f... |
569 570 571 572 |
FLAGS_BFD_IBERTY_Z=$(FLAGS_BFD_IBERTY) -lz has_bfd_iberty_z := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY_Z)) ifeq ($(has_bfd_iberty_z),y) EXTLIBS += -lbfd -liberty -lz |
247648e37 perf tools: Fix f... |
573 |
else |
167a58f10 perf tools: Fix f... |
574 575 576 577 578 579 580 581 582 |
FLAGS_CPLUS_DEMANGLE=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -liberty has_cplus_demangle := $(call try-cc,$(SOURCE_CPLUS_DEMANGLE),$(FLAGS_CPLUS_DEMANGLE)) ifeq ($(has_cplus_demangle),y) EXTLIBS += -liberty BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE else msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling) BASIC_CFLAGS += -DNO_DEMANGLE endif |
247648e37 perf tools: Fix f... |
583 584 585 |
endif endif endif |
2cdbc46d7 perf: Auto-detect... |
586 587 |
endif endif |
f4e7ac0a2 perf tools: add t... |
588 589 590 591 592 593 594 595 |
ifdef NO_STRLCPY BASIC_CFLAGS += -DNO_STRLCPY else ifneq ($(call try-cc,$(SOURCE_STRLCPY),),y) BASIC_CFLAGS += -DNO_STRLCPY endif endif |
d24e473e5 perf_counter: cop... |
596 597 598 599 600 |
ifneq ($(findstring $(MAKEFLAGS),s),s) ifndef V QUIET_CC = @echo ' ' CC $@; QUIET_AR = @echo ' ' AR $@; QUIET_LINK = @echo ' ' LINK $@; |
033a273f9 perf tools: Fix b... |
601 |
QUIET_MKDIR = @echo ' ' MKDIR $@; |
d24e473e5 perf_counter: cop... |
602 |
QUIET_GEN = @echo ' ' GEN $@; |
d24e473e5 perf_counter: cop... |
603 604 605 606 607 608 609 610 |
endif endif ifdef ASCIIDOC8 export ASCIIDOC8 endif # Shell quote (do not use $(call) to accommodate ancient setups); |
078006012 perf_counter tool... |
611 |
ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG)) |
d24e473e5 perf_counter: cop... |
612 613 614 615 616 617 |
DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) bindir_SQ = $(subst ','\'',$(bindir)) bindir_relative_SQ = $(subst ','\'',$(bindir_relative)) mandir_SQ = $(subst ','\'',$(mandir)) infodir_SQ = $(subst ','\'',$(infodir)) |
078006012 perf_counter tool... |
618 |
perfexecdir_SQ = $(subst ','\'',$(perfexecdir)) |
d24e473e5 perf_counter: cop... |
619 620 621 622 623 |
template_dir_SQ = $(subst ','\'',$(template_dir)) htmldir_SQ = $(subst ','\'',$(htmldir)) prefix_SQ = $(subst ','\'',$(prefix)) SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) |
d24e473e5 perf_counter: cop... |
624 |
|
203db2952 tools/perf: Fix s... |
625 |
LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group |
d24e473e5 perf_counter: cop... |
626 |
|
d24e473e5 perf_counter: cop... |
627 |
ALL_CFLAGS += $(BASIC_CFLAGS) |
ea7872b9d perf bench: Add f... |
628 |
ALL_CFLAGS += $(ARCH_CFLAGS) |
d24e473e5 perf_counter: cop... |
629 |
ALL_LDFLAGS += $(BASIC_LDFLAGS) |
a3d1ee10d perf tools: Makef... |
630 |
export INSTALL SHELL_PATH |
d24e473e5 perf_counter: cop... |
631 632 633 634 635 |
### Build rules SHELL = $(SHELL_PATH) |
a3d1ee10d perf tools: Makef... |
636 |
all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) |
d24e473e5 perf_counter: cop... |
637 638 639 640 641 |
please_set_SHELL_PATH_to_a_more_modern_shell: @$$(:) shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell |
8796cb9d7 perf tools: Makef... |
642 643 |
strip: $(PROGRAMS) $(OUTPUT)perf $(STRIP) $(STRIP_OPTS) $(PROGRAMS) $(OUTPUT)perf |
d24e473e5 perf_counter: cop... |
644 |
|
c29ede615 perf tools: Allow... |
645 |
$(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS |
078006012 perf_counter tool... |
646 647 |
$(QUIET_CC)$(CC) -DPERF_VERSION='"$(PERF_VERSION)"' \ '-DPERF_HTML_PATH="$(htmldir_SQ)"' \ |
c29ede615 perf tools: Allow... |
648 |
$(ALL_CFLAGS) -c $(filter %.c,$^) -o $@ |
d24e473e5 perf_counter: cop... |
649 |
|
8796cb9d7 perf tools: Makef... |
650 |
$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS) |
f2481f3df perf tools: Fix l... |
651 652 |
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \ $(BUILTIN_OBJS) $(LIBS) -o $@ |
d24e473e5 perf_counter: cop... |
653 |
|
c29ede615 perf tools: Allow... |
654 655 |
$(OUTPUT)builtin-help.o: builtin-help.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \ |
078006012 perf_counter tool... |
656 657 |
'-DPERF_HTML_PATH="$(htmldir_SQ)"' \ '-DPERF_MAN_PATH="$(mandir_SQ)"' \ |
10274989f perf: Add the tim... |
658 |
'-DPERF_INFO_PATH="$(infodir_SQ)"' $< |
c29ede615 perf tools: Allow... |
659 660 |
$(OUTPUT)builtin-timechart.o: builtin-timechart.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \ |
10274989f perf: Add the tim... |
661 662 |
'-DPERF_HTML_PATH="$(htmldir_SQ)"' \ '-DPERF_MAN_PATH="$(mandir_SQ)"' \ |
078006012 perf_counter tool... |
663 |
'-DPERF_INFO_PATH="$(infodir_SQ)"' $< |
d24e473e5 perf_counter: cop... |
664 |
|
c29ede615 perf tools: Allow... |
665 |
$(OUTPUT)common-cmds.h: util/generate-cmdlist.sh command-list.txt |
d24e473e5 perf_counter: cop... |
666 |
|
c29ede615 perf tools: Allow... |
667 |
$(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt) |
1ad0560e8 perf tools: Run g... |
668 |
$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@ |
d24e473e5 perf_counter: cop... |
669 |
|
a3d1ee10d perf tools: Makef... |
670 671 |
$(SCRIPTS) : % : %.sh $(QUIET_GEN)$(INSTALL) '$@.sh' '$(OUTPUT)$@' |
d24e473e5 perf_counter: cop... |
672 |
|
078006012 perf_counter tool... |
673 |
# These can record PERF_VERSION |
c29ede615 perf tools: Allow... |
674 |
$(OUTPUT)perf.o perf.spec \ |
a3d1ee10d perf tools: Makef... |
675 |
$(SCRIPTS) \ |
c29ede615 perf tools: Allow... |
676 |
: $(OUTPUT)PERF-VERSION-FILE |
d24e473e5 perf_counter: cop... |
677 |
|
c29ede615 perf tools: Allow... |
678 679 680 |
$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $< $(OUTPUT)%.s: %.c $(OUTPUT)PERF-CFLAGS |
d24e473e5 perf_counter: cop... |
681 |
$(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $< |
c29ede615 perf tools: Allow... |
682 683 |
$(OUTPUT)%.o: %.S $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $< |
d24e473e5 perf_counter: cop... |
684 |
|
c29ede615 perf tools: Allow... |
685 686 |
$(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \ |
078006012 perf_counter tool... |
687 |
'-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \ |
d24e473e5 perf_counter: cop... |
688 689 690 |
'-DBINDIR="$(bindir_relative_SQ)"' \ '-DPREFIX="$(prefix_SQ)"' \ $< |
c29ede615 perf tools: Allow... |
691 692 |
$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< |
d24e473e5 perf_counter: cop... |
693 |
|
ef8f34aab perf ui: Start br... |
694 695 |
$(OUTPUT)util/ui/browser.o: util/ui/browser.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $< |
211ef1277 perf ui: Move ann... |
696 697 |
$(OUTPUT)util/ui/browsers/annotate.o: util/ui/browsers/annotate.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $< |
d1b4f2491 perf ui: Move his... |
698 699 |
$(OUTPUT)util/ui/browsers/hists.o: util/ui/browsers/hists.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $< |
b1b026733 perf ui: Move map... |
700 701 |
$(OUTPUT)util/ui/browsers/map.o: util/ui/browsers/map.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $< |
c29ede615 perf tools: Allow... |
702 703 |
$(OUTPUT)util/rbtree.o: ../../lib/rbtree.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< |
43cbcd8ac perf_counter tool... |
704 |
|
c29ede615 perf tools: Allow... |
705 706 |
$(OUTPUT)util/scripting-engines/trace-event-perl.o: util/scripting-engines/trace-event-perl.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< |
16c632de6 perf trace: Add P... |
707 |
|
c29ede615 perf tools: Allow... |
708 709 |
$(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< |
d1b93772b perf trace: Add i... |
710 |
|
c29ede615 perf tools: Allow... |
711 712 |
$(OUTPUT)util/scripting-engines/trace-event-python.o: util/scripting-engines/trace-event-python.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< |
7e4b21b84 perf/scripts: Add... |
713 |
|
c29ede615 perf tools: Allow... |
714 715 |
$(OUTPUT)scripts/python/Perf-Trace-Util/Context.o: scripts/python/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< |
7e4b21b84 perf/scripts: Add... |
716 |
|
8796cb9d7 perf tools: Makef... |
717 |
$(OUTPUT)perf-%: %.o $(PERFLIBS) |
d24e473e5 perf_counter: cop... |
718 |
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) |
d24e473e5 perf_counter: cop... |
719 |
$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H) |
8796cb9d7 perf tools: Makef... |
720 |
$(patsubst perf-%,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) |
d24e473e5 perf_counter: cop... |
721 |
|
033a273f9 perf tools: Fix b... |
722 723 724 |
# we compile into subdirectories. if the target directory is not the source directory, they might not exists. So # we depend the various files onto their directories. DIRECTORY_DEPS = $(LIB_OBJS) $(BUILTIN_OBJS) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h |
39cfae64d perf tools: Fix b... |
725 |
$(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS))) |
033a273f9 perf tools: Fix b... |
726 727 728 |
# In the second step, we make a rule to actually create these directories $(sort $(dir $(DIRECTORY_DEPS))): $(QUIET_MKDIR)$(MKDIR) -p $@ 2>/dev/null |
d24e473e5 perf_counter: cop... |
729 730 |
$(LIB_FILE): $(LIB_OBJS) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS) |
4187e262b perf tools: Updat... |
731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 |
help: @echo 'Perf make targets:' @echo ' doc - make *all* documentation (see below)' @echo ' man - make manpage documentation (access with man <foo>)' @echo ' html - make html documentation' @echo ' info - make GNU info documentation (access with info <foo>)' @echo ' pdf - make pdf documentation' @echo ' TAGS - use etags to make tag information for source browsing' @echo ' tags - use ctags to make tag information for source browsing' @echo ' cscope - use cscope to make interactive browsing database' @echo '' @echo 'Perf install targets:' @echo ' NOTE: documentation build requires asciidoc, xmlto packages to be installed' @echo ' HINT: use "make prefix=<path> <install target>" to install to a particular' @echo ' path like make prefix=/usr/local install install-doc' @echo ' install - install compiled binaries' @echo ' install-doc - install *all* documentation' @echo ' install-man - install manpage documentation' @echo ' install-html - install html documentation' @echo ' install-info - install GNU info documentation' @echo ' install-pdf - install pdf documentation' @echo '' @echo ' quick-install-doc - alias for quick-install-man' @echo ' quick-install-man - install the documentation quickly' @echo ' quick-install-html - install the html documentation quickly' @echo '' @echo 'Perf maintainer targets:' @echo ' distclean - alias to clean' @echo ' clean - clean all binary objects and build output' |
c1c2365ac perf_counter tool... |
760 761 762 763 764 765 766 767 768 769 770 771 772 773 |
doc: $(MAKE) -C Documentation all man: $(MAKE) -C Documentation man html: $(MAKE) -C Documentation html info: $(MAKE) -C Documentation info pdf: $(MAKE) -C Documentation pdf |
d24e473e5 perf_counter: cop... |
774 775 776 777 778 779 780 781 782 783 784 785 786 787 |
TAGS: $(RM) TAGS $(FIND) . -name '*.[hcS]' -print | xargs etags -a tags: $(RM) tags $(FIND) . -name '*.[hcS]' -print | xargs ctags -a cscope: $(RM) cscope* $(FIND) . -name '*.[hcS]' -print | xargs cscope -b ### Detect prefix changes TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\ |
078006012 perf_counter tool... |
788 |
$(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ) |
d24e473e5 perf_counter: cop... |
789 |
|
c29ede615 perf tools: Allow... |
790 |
$(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS |
d24e473e5 perf_counter: cop... |
791 |
@FLAGS='$(TRACK_CFLAGS)'; \ |
c29ede615 perf tools: Allow... |
792 |
if test x"$$FLAGS" != x"`cat $(OUTPUT)PERF-CFLAGS 2>/dev/null`" ; then \ |
d24e473e5 perf_counter: cop... |
793 |
echo 1>&2 " * new build flags or prefix"; \ |
c29ede615 perf tools: Allow... |
794 |
echo "$$FLAGS" >$(OUTPUT)PERF-CFLAGS; \ |
d24e473e5 perf_counter: cop... |
795 |
fi |
d24e473e5 perf_counter: cop... |
796 |
### Testing rules |
d24e473e5 perf_counter: cop... |
797 798 799 |
# GNU make supports exporting all variables by "export" without parameters. # However, the environment gets quite big, and some programs have problems # with that. |
c29ede615 perf tools: Allow... |
800 |
check: $(OUTPUT)common-cmds.h |
d24e473e5 perf_counter: cop... |
801 802 |
if sparse; \ then \ |
148be2c15 perf_counter tool... |
803 |
for i in *.c */*.c; \ |
d24e473e5 perf_counter: cop... |
804 805 806 807 |
do \ sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \ done; \ else \ |
d24e473e5 perf_counter: cop... |
808 809 |
exit 1; \ fi |
d24e473e5 perf_counter: cop... |
810 |
### Installation rules |
078006012 perf_counter tool... |
811 812 |
ifneq ($(filter /%,$(firstword $(perfexecdir))),) perfexec_instdir = $(perfexecdir) |
d24e473e5 perf_counter: cop... |
813 |
else |
078006012 perf_counter tool... |
814 |
perfexec_instdir = $(prefix)/$(perfexecdir) |
d24e473e5 perf_counter: cop... |
815 |
endif |
078006012 perf_counter tool... |
816 |
perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir)) |
d24e473e5 perf_counter: cop... |
817 818 819 |
install: all $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' |
8796cb9d7 perf tools: Makef... |
820 |
$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)' |
bcefe12ef perf trace: Add p... |
821 822 |
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' |
c29ede615 perf tools: Allow... |
823 |
$(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' |
bcefe12ef perf trace: Add p... |
824 825 826 |
$(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl' $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' |
7e4b21b84 perf/scripts: Add... |
827 |
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' |
4d161f036 perf/scripts: Add... |
828 |
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' |
7e4b21b84 perf/scripts: Add... |
829 |
$(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' |
4d161f036 perf/scripts: Add... |
830 831 |
$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python' $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' |
82d156cd5 perf/scripts: Mov... |
832 |
|
9941c96ad perf tools: Add s... |
833 834 |
install-python_ext: $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' |
c1c2365ac perf_counter tool... |
835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 |
install-doc: $(MAKE) -C Documentation install install-man: $(MAKE) -C Documentation install-man install-html: $(MAKE) -C Documentation install-html install-info: $(MAKE) -C Documentation install-info install-pdf: $(MAKE) -C Documentation install-pdf quick-install-doc: $(MAKE) -C Documentation quick-install quick-install-man: $(MAKE) -C Documentation quick-install-man quick-install-html: $(MAKE) -C Documentation quick-install-html |
d24e473e5 perf_counter: cop... |
858 |
### Cleaning rules |
e0143bad9 perf_counter: add... |
859 |
clean: |
8b7e0b34b perf tools: Make ... |
860 |
$(RM) $(LIB_OBJS) $(BUILTIN_OBJS) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf.o $(LANG_BINDINGS) |
a3d1ee10d perf tools: Makef... |
861 |
$(RM) $(ALL_PROGRAMS) perf |
c29ede615 perf tools: Allow... |
862 |
$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* |
c1c2365ac perf_counter tool... |
863 |
$(MAKE) -C Documentation/ clean |
a3d1ee10d perf tools: Makef... |
864 |
$(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS |
ced465c40 perf tools: Makef... |
865 |
$(python-clean) |
d24e473e5 perf_counter: cop... |
866 867 868 |
.PHONY: all install clean strip .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell |
078006012 perf_counter tool... |
869 |
.PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS |