Blame view

tools/perf/Makefile 29.6 KB
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
1
2
3
  ifeq ("$(origin O)", "command line")
  	OUTPUT := $(O)/
  endif
d24e473e5   Ingo Molnar   perf_counter: cop...
4
  # The default target of this Makefile is...
a3d1ee10d   Michael Witten   perf tools: Makef...
5
  all:
e0143bad9   Ingo Molnar   perf_counter: add...
6

ced465c40   Michael Witten   perf tools: Makef...
7
  include config/utilities.mak
ecafda60e   Kusanagi Kouichi   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   Michael Witten   perf tools: Makef...
13
  # Define V to have a more verbose compile.
d24e473e5   Ingo Molnar   perf_counter: cop...
14
  #
ced465c40   Michael Witten   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   Ingo Molnar   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   Michael S. Tsirkin   perf tools: Suppo...
25
  # Define LDFLAGS=-static to build a static binary.
81516c5fc   Michael S. Tsirkin   perf: Use default...
26
27
  #
  # Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds.
ca721e45b   Masami Hiramatsu   perf probe: Add N...
28
29
  #
  # Define NO_DWARF if you do not want debug-info analysis feature at all.
9e59e0995   Darren Hart   perf tools: Add s...
30
31
  #
  # Define WERROR=0 to disable treating any warnings as errors.
e0143bad9   Ingo Molnar   perf_counter: add...
32

c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf_counter: add...
36

a3d1ee10d   Michael Witten   perf tools: Makef...
37
  uname_M := $(shell uname -m 2>/dev/null || echo not)
de9ac07bb   Peter Zijlstra   perf_counter: som...
38

cd932c593   Ian Munsie   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   Lin Ming   perf tools: Makef...
44
45
  CC = $(CROSS_COMPILE)gcc
  AR = $(CROSS_COMPILE)ar
cd932c593   Ian Munsie   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   Lin Ming   perf tools: Makef...
51
  	ARCH := x86
08a4a43fc   David Ahern   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   Lin Ming   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   Ian Munsie   perf: Move arch s...
61
  endif
9e59e0995   Darren Hart   perf tools: Add s...
62
63
64
65
  # Treat warnings as errors unless directed not to
  ifneq ($(WERROR),0)
  	CFLAGS_WERROR := -Werror
  endif
83a0944fa   Ingo Molnar   perf: Enable more...
66
67
68
  #
  # Include saner warnings here, which can catch bugs:
  #
61562445c   Ingo Molnar   perf tools: Clean...
69

ec29b8d2a   Paul Mundt   perf tools: Remov...
70
  EXTRA_WARNINGS := -Wformat
61562445c   Ingo Molnar   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   Ingo Molnar   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   Ingo Molnar   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   Ingo Molnar   perf: Enable more...
90

60d526f7f   Steven Rostedt   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   Darren Hart   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   Michael S. Tsirkin   perf tools: Suppo...
98
  EXTLIBS = -lpthread -lrt -lelf -lm
b0f86f5a1   Borislav Petkov   perf, probe-finde...
99
  ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
d24e473e5   Ingo Molnar   perf_counter: cop...
100
101
102
103
  ALL_LDFLAGS = $(LDFLAGS)
  STRIP ?= strip
  
  # Among the variables below, these:
078006012   Ingo Molnar   perf_counter tool...
104
  #   perfexecdir
d24e473e5   Ingo Molnar   perf_counter: cop...
105
106
107
108
  #   template_dir
  #   mandir
  #   infodir
  #   htmldir
078006012   Ingo Molnar   perf_counter tool...
109
  #   ETC_PERFCONFIG (but not sysconfdir)
d24e473e5   Ingo Molnar   perf_counter: cop...
110
  # can be specified as a relative path some/where/else;
078006012   Ingo Molnar   perf_counter tool...
111
  # this is interpreted as relative to $(prefix) and "perf" at
d24e473e5   Ingo Molnar   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   John Kacur   perf: Make the in...
114
115
  # Make the path relative to DESTDIR, not to prefix
  ifndef DESTDIR
d24e473e5   Ingo Molnar   perf_counter: cop...
116
  prefix = $(HOME)
7ae5f2136   John Kacur   perf: Make the in...
117
  endif
d24e473e5   Ingo Molnar   perf_counter: cop...
118
119
120
121
  bindir_relative = bin
  bindir = $(prefix)/$(bindir_relative)
  mandir = share/man
  infodir = share/info
078006012   Ingo Molnar   perf_counter tool...
122
  perfexecdir = libexec/perf-core
d24e473e5   Ingo Molnar   perf_counter: cop...
123
  sharedir = $(prefix)/share
078006012   Ingo Molnar   perf_counter tool...
124
125
  template_dir = share/perf-core/templates
  htmldir = share/doc/perf-doc
d24e473e5   Ingo Molnar   perf_counter: cop...
126
127
  ifeq ($(prefix),/usr)
  sysconfdir = /etc
078006012   Ingo Molnar   perf_counter tool...
128
  ETC_PERFCONFIG = $(sysconfdir)/perfconfig
d24e473e5   Ingo Molnar   perf_counter: cop...
129
130
  else
  sysconfdir = $(prefix)/etc
078006012   Ingo Molnar   perf_counter tool...
131
  ETC_PERFCONFIG = etc/perfconfig
d24e473e5   Ingo Molnar   perf_counter: cop...
132
133
  endif
  lib = lib
d24e473e5   Ingo Molnar   perf_counter: cop...
134

d24e473e5   Ingo Molnar   perf_counter: cop...
135
  export prefix bindir sharedir sysconfdir
d24e473e5   Ingo Molnar   perf_counter: cop...
136
  RM = rm -f
033a273f9   Bernd Petrovitsch   perf tools: Fix b...
137
  MKDIR = mkdir
d24e473e5   Ingo Molnar   perf_counter: cop...
138
139
  FIND = find
  INSTALL = install
d24e473e5   Ingo Molnar   perf_counter: cop...
140

d24e473e5   Ingo Molnar   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   Michael Witten   perf tools: git m...
144
  -include config/feature-tests.mak
1703f2c32   Arnaldo Carvalho de Melo   perf tools: Check...
145

f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
146
147
  ifeq ($(call try-cc,$(SOURCE_HELLO),-Werror -fstack-protector-all),y)
  	CFLAGS := $(CFLAGS) -fstack-protector-all
5d7bdab75   Michael Cree   perf tools: Test ...
148
  endif
d24e473e5   Ingo Molnar   perf_counter: cop...
149

065bef5af   Arnaldo Carvalho de Melo   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   Ingo Molnar   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   Ian Munsie   perf: Move arch s...
163
  BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include
d24e473e5   Ingo Molnar   perf_counter: cop...
164
165
166
167
  BASIC_LDFLAGS =
  
  # Guard against environment variables
  BUILTIN_OBJS =
d24e473e5   Ingo Molnar   perf_counter: cop...
168
169
  LIB_H =
  LIB_OBJS =
877108e42   Arnaldo Carvalho de Melo   perf tools: Initi...
170
  PYRF_OBJS =
d24e473e5   Ingo Molnar   perf_counter: cop...
171
  SCRIPT_SH =
d24e473e5   Ingo Molnar   perf_counter: cop...
172

2c5851747   Arnaldo Carvalho de Melo   perf archive: Add...
173
  SCRIPT_SH += perf-archive.sh
078006012   Ingo Molnar   perf_counter tool...
174

f2481f3df   Tom Zanussi   perf tools: Fix l...
175
176
  grep-libs = $(filter -l%,$(1))
  strip-libs = $(filter-out -l%,$(1))
067187fc9   Arnaldo Carvalho de Melo   perf tools: Remov...
177
  $(OUTPUT)python/perf.so: $(PYRF_OBJS)
ced465c40   Michael Witten   perf tools: Makef...
178
  	$(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
9941c96ad   Jiri Olsa   perf tools: Add s...
179
180
181
  	  --quiet build_ext; \
  	mkdir -p $(OUTPUT)python && \
  	cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
078006012   Ingo Molnar   perf_counter tool...
182
183
184
  #
  # No Perl scripts right now:
  #
0a54fb636   Michael Witten   perf tools: Makef...
185
  SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
d24e473e5   Ingo Molnar   perf_counter: cop...
186

078006012   Ingo Molnar   perf_counter tool...
187
  #
125e702b0   Ingo Molnar   perf_counter tool...
188
  # Single 'perf' binary right now:
078006012   Ingo Molnar   perf_counter tool...
189
  #
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
190
  PROGRAMS += $(OUTPUT)perf
d24e473e5   Ingo Molnar   perf_counter: cop...
191

978f626c4   Arnaldo Carvalho de Melo   perf tools: Don't...
192
  LANG_BINDINGS =
067187fc9   Arnaldo Carvalho de Melo   perf tools: Remov...
193

078006012   Ingo Molnar   perf_counter tool...
194
  # what 'all' will build and 'install' will install, in perfexecdir
978f626c4   Arnaldo Carvalho de Melo   perf tools: Don't...
195
  ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
d24e473e5   Ingo Molnar   perf_counter: cop...
196

078006012   Ingo Molnar   perf_counter tool...
197
  # what 'all' will build but not install in perfexecdir
8796cb9d7   Michael Witten   perf tools: Makef...
198
  OTHER_PROGRAMS = $(OUTPUT)perf
d24e473e5   Ingo Molnar   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   Arnaldo Carvalho de Melo   perf tools: Allow...
209
  LIB_FILE=$(OUTPUT)libperf.a
078006012   Ingo Molnar   perf_counter tool...
210

cdd6c482c   Ingo Molnar   perf: Do the big ...
211
  LIB_H += ../../include/linux/perf_event.h
43cbcd8ac   Arnaldo Carvalho de Melo   perf_counter tool...
212
  LIB_H += ../../include/linux/rbtree.h
5da502585   Arnaldo Carvalho de Melo   perf_counter tool...
213
  LIB_H += ../../include/linux/list.h
75911c9bd   Arnaldo Carvalho de Melo   perf tools: Fix b...
214
  LIB_H += ../../include/linux/const.h
18e97e06b   Hitoshi Mitake   perf: Add util/in...
215
  LIB_H += ../../include/linux/hash.h
9769833b8   Masami Hiramatsu   perf: Add DIE_IF(...
216
  LIB_H += ../../include/linux/stringify.h
79b9ad361   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf tools: Fix b...
220
  LIB_H += util/include/linux/const.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
221
222
  LIB_H += util/include/linux/ctype.h
  LIB_H += util/include/linux/kernel.h
5da502585   Arnaldo Carvalho de Melo   perf_counter tool...
223
  LIB_H += util/include/linux/list.h
79b9ad361   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf tools: Add m...
228
  LIB_H += util/include/linux/string.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
229
  LIB_H += util/include/linux/types.h
ea7872b9d   Hitoshi Mitake   perf bench: Add f...
230
  LIB_H += util/include/linux/linkage.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
231
  LIB_H += util/include/asm/asm-offsets.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
232
  LIB_H += util/include/asm/bug.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
233
  LIB_H += util/include/asm/byteorder.h
fb72014d9   Arnaldo Carvalho de Melo   perf tools: Don't...
234
  LIB_H += util/include/asm/hweight.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
235
236
  LIB_H += util/include/asm/swab.h
  LIB_H += util/include/asm/system.h
79b9ad361   Arnaldo Carvalho de Melo   perf tools: Add b...
237
  LIB_H += util/include/asm/uaccess.h
cd932c593   Ian Munsie   perf: Move arch s...
238
  LIB_H += util/include/dwarf-regs.h
ea7872b9d   Hitoshi Mitake   perf bench: Add f...
239
240
  LIB_H += util/include/asm/dwarf2.h
  LIB_H += util/include/asm/cpufeature.h
6eda5838b   Thomas Gleixner   perfcounter tools...
241
  LIB_H += perf.h
78f7defed   Arnaldo Carvalho de Melo   perf annotate: Mo...
242
  LIB_H += util/annotate.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
243
244
  LIB_H += util/cache.h
  LIB_H += util/callchain.h
7b2567c1f   Arnaldo Carvalho de Melo   perf build-id: Mo...
245
  LIB_H += util/build-id.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
246
  LIB_H += util/debug.h
afe61f677   Clark Williams   perf tools: Add d...
247
  LIB_H += util/debugfs.h
ec218fc4a   Arnaldo Carvalho de Melo   perf tools: Remov...
248
  LIB_H += util/event.h
69aad6f1e   Arnaldo Carvalho de Melo   perf tools: Intro...
249
  LIB_H += util/evsel.h
361c99a66   Arnaldo Carvalho de Melo   perf evsel: Intro...
250
  LIB_H += util/evlist.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
251
  LIB_H += util/exec_cmd.h
7c6a1c65b   Peter Zijlstra   perf_counter tool...
252
  LIB_H += util/types.h
148be2c15   Ingo Molnar   perf_counter tool...
253
  LIB_H += util/levenshtein.h
4a58e6116   Arnaldo Carvalho de Melo   perf tools: Move ...
254
  LIB_H += util/map.h
148be2c15   Ingo Molnar   perf_counter tool...
255
  LIB_H += util/parse-options.h
8ad8db378   Ingo Molnar   perf_counter tool...
256
  LIB_H += util/parse-events.h
148be2c15   Ingo Molnar   perf_counter tool...
257
258
  LIB_H += util/quote.h
  LIB_H += util/util.h
69aad6f1e   Arnaldo Carvalho de Melo   perf tools: Intro...
259
  LIB_H += util/xyarray.h
94c744b6c   Arnaldo Carvalho de Melo   perf tools: Intro...
260
  LIB_H += util/header.h
148be2c15   Ingo Molnar   perf_counter tool...
261
  LIB_H += util/help.h
94c744b6c   Arnaldo Carvalho de Melo   perf tools: Intro...
262
  LIB_H += util/session.h
148be2c15   Ingo Molnar   perf_counter tool...
263
  LIB_H += util/strbuf.h
25903407d   Arnaldo Carvalho de Melo   perf report: Add ...
264
  LIB_H += util/strlist.h
68baa431e   Masami Hiramatsu   perf tools: Add s...
265
  LIB_H += util/strfilter.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
266
  LIB_H += util/svghelper.h
148be2c15   Ingo Molnar   perf_counter tool...
267
  LIB_H += util/run-command.h
a930d2c0d   Ingo Molnar   perf_counter tool...
268
  LIB_H += util/sigchain.h
a2928c42a   Arnaldo Carvalho de Melo   perf_counter tool...
269
  LIB_H += util/symbol.h
8fc0321f1   Ingo Molnar   perf_counter tool...
270
  LIB_H += util/color.h
8d5132709   Brice Goglin   perf report: Fix ...
271
  LIB_H += util/values.h
dd68ada2d   John Kacur   perf tools: Creat...
272
  LIB_H += util/sort.h
3d1d07ecd   John Kacur   perf tools: Put c...
273
  LIB_H += util/hist.h
1b46cddfc   Arnaldo Carvalho de Melo   perf tools: Use r...
274
  LIB_H += util/thread.h
fd78260b5   Arnaldo Carvalho de Melo   perf threads: Mov...
275
  LIB_H += util/thread_map.h
049ae80b8   Arnaldo Carvalho de Melo   perf tools: Add m...
276
  LIB_H += util/trace-event.h
57d250df7   Masami Hiramatsu   perf probe: Add p...
277
  LIB_H += util/probe-finder.h
e0d153c69   Masami Hiramatsu   perf-probe: Move ...
278
  LIB_H += util/dwarf-aux.h
50656eec8   Masami Hiramatsu   perf probe: Move ...
279
  LIB_H += util/probe-event.h
3e1bbdc3a   Arnaldo Carvalho de Melo   perf newt: Make <...
280
  LIB_H += util/pstack.h
a12b51c47   Paul Mackerras   perf tools: Fix s...
281
  LIB_H += util/cpumap.h
8c3e10eb1   Arnaldo Carvalho de Melo   perf top: Move di...
282
  LIB_H += util/top.h
ea7872b9d   Hitoshi Mitake   perf bench: Add f...
283
  LIB_H += $(ARCH_INCLUDE)
023695d96   Stephane Eranian   perf tool: Add cg...
284
  LIB_H += util/cgroup.h
148be2c15   Ingo Molnar   perf_counter tool...
285

c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
286
287
  LIB_OBJS += $(OUTPUT)util/abspath.o
  LIB_OBJS += $(OUTPUT)util/alias.o
78f7defed   Arnaldo Carvalho de Melo   perf annotate: Mo...
288
  LIB_OBJS += $(OUTPUT)util/annotate.o
c29ede615   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf evsel: Intro...
295
  LIB_OBJS += $(OUTPUT)util/evlist.o
69aad6f1e   Arnaldo Carvalho de Melo   perf tools: Intro...
296
  LIB_OBJS += $(OUTPUT)util/evsel.o
c29ede615   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   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   Masami Hiramatsu   perf tools: Add s...
311
  LIB_OBJS += $(OUTPUT)util/strfilter.o
8c3e10eb1   Arnaldo Carvalho de Melo   perf top: Move di...
312
  LIB_OBJS += $(OUTPUT)util/top.o
c29ede615   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf newt: Make <...
324
  LIB_OBJS += $(OUTPUT)util/pstack.o
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
325
326
  LIB_OBJS += $(OUTPUT)util/session.o
  LIB_OBJS += $(OUTPUT)util/thread.o
fd78260b5   Arnaldo Carvalho de Melo   perf threads: Mov...
327
  LIB_OBJS += $(OUTPUT)util/thread_map.o
c29ede615   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf tools: Intro...
337
  LIB_OBJS += $(OUTPUT)util/xyarray.o
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
338
  LIB_OBJS += $(OUTPUT)util/cpumap.o
023695d96   Stephane Eranian   perf tool: Add cg...
339
  LIB_OBJS += $(OUTPUT)util/cgroup.o
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
340
341
342
343
  
  BUILTIN_OBJS += $(OUTPUT)builtin-annotate.o
  
  BUILTIN_OBJS += $(OUTPUT)builtin-bench.o
bfde82ef5   Hitoshi Mitake   perf bench: Add s...
344
345
  
  # Benchmark modules
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
346
347
  BUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o
  BUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o
ea7872b9d   Hitoshi Mitake   perf bench: Add f...
348
349
350
  ifeq ($(RAW_ARCH),x86_64)
  BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy-x86-64-asm.o
  endif
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
351
352
353
  BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o
  
  BUILTIN_OBJS += $(OUTPUT)builtin-diff.o
43adec955   Arnaldo Carvalho de Melo   perf evlist: New ...
354
  BUILTIN_OBJS += $(OUTPUT)builtin-evlist.o
c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf: Rename 'per...
365
  BUILTIN_OBJS += $(OUTPUT)builtin-script.o
c29ede615   Arnaldo Carvalho de Melo   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   Zhang, Yanmin   perf: 'perf kvm' ...
369
  BUILTIN_OBJS += $(OUTPUT)builtin-kvm.o
1c6a800cd   Arnaldo Carvalho de Melo   perf test: Initia...
370
  BUILTIN_OBJS += $(OUTPUT)builtin-test.o
454c407ec   Tom Zanussi   perf: add perf-in...
371
  BUILTIN_OBJS += $(OUTPUT)builtin-inject.o
078006012   Ingo Molnar   perf_counter tool...
372
373
  
  PERFLIBS = $(LIB_FILE)
d24e473e5   Ingo Molnar   perf_counter: cop...
374

877108e42   Arnaldo Carvalho de Melo   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   Ingo Molnar   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   Ingo Molnar   perf_counter: cop...
395
396
  -include config.mak.autogen
  -include config.mak
cd932c593   Ian Munsie   perf: Move arch s...
397
  ifndef NO_DWARF
a71123977   Robert Morell   perf tools: Remov...
398
  FLAGS_DWARF=$(ALL_CFLAGS) -ldw -lelf $(ALL_LDFLAGS) $(EXTLIBS)
f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
399
  ifneq ($(call try-cc,$(SOURCE_DWARF),$(FLAGS_DWARF)),y)
6b3c4ef50   Masami Hiramatsu   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   Ian Munsie   perf: Move arch s...
401
402
403
404
405
  	NO_DWARF := 1
  endif # Dwarf support
  endif # NO_DWARF
  
  -include arch/$(ARCH)/Makefile
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
406
407
408
  ifneq ($(OUTPUT),)
  	BASIC_CFLAGS += -I$(OUTPUT)
  endif
f9af3a4c1   Arnaldo Carvalho de Melo   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   Randy Dunlap   perf tools: Displ...
417
  endif
f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
418
419
  ifneq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_COMMON)),y)
  	BASIC_CFLAGS += -DLIBELF_NO_MMAP
9424edc2d   Peter Zijlstra   perf: Auto-detect...
420
  endif
ca721e45b   Masami Hiramatsu   perf probe: Add N...
421
  ifndef NO_DWARF
cd932c593   Ian Munsie   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   Robert Morell   perf tools: Remov...
425
  	BASIC_CFLAGS += -DDWARF_SUPPORT
804b36068   Masami Hiramatsu   perf probe: Use e...
426
  	EXTLIBS += -lelf -ldw
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
427
  	LIB_OBJS += $(OUTPUT)util/probe-finder.o
e0d153c69   Masami Hiramatsu   perf-probe: Move ...
428
  	LIB_OBJS += $(OUTPUT)util/dwarf-aux.o
cd932c593   Ian Munsie   perf: Move arch s...
429
430
  endif # PERF_HAVE_DWARF_REGS
  endif # NO_DWARF
4ea42b181   Masami Hiramatsu   perf: Add perf pr...
431

94f3ca957   Arnaldo Carvalho de Melo   perf tools: Add m...
432
433
434
  ifdef NO_NEWT
  	BASIC_CFLAGS += -DNO_NEWT_SUPPORT
  else
f9af3a4c1   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf ui: Complete...
443
  		LIB_OBJS += $(OUTPUT)util/ui/setup.o
ef8f34aab   Arnaldo Carvalho de Melo   perf ui: Start br...
444
  		LIB_OBJS += $(OUTPUT)util/ui/browser.o
211ef1277   Arnaldo Carvalho de Melo   perf ui: Move ann...
445
  		LIB_OBJS += $(OUTPUT)util/ui/browsers/annotate.o
d1b4f2491   Arnaldo Carvalho de Melo   perf ui: Move his...
446
  		LIB_OBJS += $(OUTPUT)util/ui/browsers/hists.o
b1b026733   Arnaldo Carvalho de Melo   perf ui: Move map...
447
  		LIB_OBJS += $(OUTPUT)util/ui/browsers/map.o
5575536fc   Arnaldo Carvalho de Melo   perf ui: Move ui_...
448
  		LIB_OBJS += $(OUTPUT)util/ui/helpline.o
34cea7f7c   Arnaldo Carvalho de Melo   perf ui: Move ui_...
449
  		LIB_OBJS += $(OUTPUT)util/ui/progress.o
1e6dd077a   Arnaldo Carvalho de Melo   perf ui: Complete...
450
  		LIB_OBJS += $(OUTPUT)util/ui/util.o
ef8f34aab   Arnaldo Carvalho de Melo   perf ui: Start br...
451
  		LIB_H += util/ui/browser.h
b1b026733   Arnaldo Carvalho de Melo   perf ui: Move map...
452
  		LIB_H += util/ui/browsers/map.h
5575536fc   Arnaldo Carvalho de Melo   perf ui: Move ui_...
453
  		LIB_H += util/ui/helpline.h
cf9580036   Arnaldo Carvalho de Melo   perf ui browser: ...
454
  		LIB_H += util/ui/keysyms.h
211ef1277   Arnaldo Carvalho de Melo   perf ui: Move ann...
455
  		LIB_H += util/ui/libslang.h
34cea7f7c   Arnaldo Carvalho de Melo   perf ui: Move ui_...
456
  		LIB_H += util/ui/progress.h
1e6dd077a   Arnaldo Carvalho de Melo   perf ui: Complete...
457
  		LIB_H += util/ui/util.h
5c35d69fb   Arnaldo Carvalho de Melo   perf ui: Serializ...
458
  		LIB_H += util/ui/ui.h
f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
459
  	endif
cc835752a   Jamie Iles   perf tools: Allow...
460
  endif
16c632de6   Tom Zanussi   perf trace: Add P...
461

f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
462
  ifdef NO_LIBPERL
16c632de6   Tom Zanussi   perf trace: Add P...
463
464
  	BASIC_CFLAGS += -DNO_LIBPERL
  else
f2481f3df   Tom Zanussi   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   Arnaldo Carvalho de Melo   perf tools: Reorg...
468
  	PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null`
bfde74486   Tom Zanussi   perf scripts perl...
469
  	FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
16c632de6   Tom Zanussi   perf trace: Add P...
470

f9af3a4c1   Arnaldo Carvalho de Melo   perf tools: Reorg...
471
472
473
  	ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED)),y)
  		BASIC_CFLAGS += -DNO_LIBPERL
  	else
f2481f3df   Tom Zanussi   perf tools: Fix l...
474
475
                 ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS)
                 EXTLIBS += $(PERL_EMBED_LIBADD)
f9af3a4c1   Arnaldo Carvalho de Melo   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   Tom Zanussi   perf/scripts: Add...
479
  endif
ced465c40   Michael Witten   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   Tom Zanussi   perf/scripts: Add...
493
  else
ced465c40   Michael Witten   perf tools: Makef...
494
495
  
    PYTHON_WORD := $(call shell-wordify,$(PYTHON))
9941c96ad   Jiri Olsa   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   Michael Witten   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   Tom Zanussi   perf/scripts: Add...
551
  endif
2cdbc46d7   Peter Zijlstra   perf: Auto-detect...
552
553
554
  ifdef NO_DEMANGLE
  	BASIC_CFLAGS += -DNO_DEMANGLE
  else
167a58f10   Conny Seidel   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   Arnaldo Carvalho de Melo   perf tools: Fix f...
563
  		else
167a58f10   Conny Seidel   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   Arnaldo Carvalho de Melo   perf tools: Fix f...
568
  			else
167a58f10   Conny Seidel   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   Arnaldo Carvalho de Melo   perf tools: Fix f...
573
  				else
167a58f10   Conny Seidel   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   Arnaldo Carvalho de Melo   perf tools: Fix f...
583
584
585
  				endif
  			endif
  		endif
2cdbc46d7   Peter Zijlstra   perf: Auto-detect...
586
587
  	endif
  endif
f4e7ac0a2   Kirill A. Shutemov   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   Ingo Molnar   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   Bernd Petrovitsch   perf tools: Fix b...
601
  	QUIET_MKDIR    = @echo '   ' MKDIR $@;
d24e473e5   Ingo Molnar   perf_counter: cop...
602
  	QUIET_GEN      = @echo '   ' GEN $@;
d24e473e5   Ingo Molnar   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   Ingo Molnar   perf_counter tool...
611
  ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
d24e473e5   Ingo Molnar   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   Ingo Molnar   perf_counter tool...
618
  perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
d24e473e5   Ingo Molnar   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   Ingo Molnar   perf_counter: cop...
624

203db2952   Mathias Krause   tools/perf: Fix s...
625
  LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
d24e473e5   Ingo Molnar   perf_counter: cop...
626

d24e473e5   Ingo Molnar   perf_counter: cop...
627
  ALL_CFLAGS += $(BASIC_CFLAGS)
ea7872b9d   Hitoshi Mitake   perf bench: Add f...
628
  ALL_CFLAGS += $(ARCH_CFLAGS)
d24e473e5   Ingo Molnar   perf_counter: cop...
629
  ALL_LDFLAGS += $(BASIC_LDFLAGS)
a3d1ee10d   Michael Witten   perf tools: Makef...
630
  export INSTALL SHELL_PATH
d24e473e5   Ingo Molnar   perf_counter: cop...
631
632
633
634
635
  
  
  ### Build rules
  
  SHELL = $(SHELL_PATH)
a3d1ee10d   Michael Witten   perf tools: Makef...
636
  all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
d24e473e5   Ingo Molnar   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   Michael Witten   perf tools: Makef...
642
643
  strip: $(PROGRAMS) $(OUTPUT)perf
  	$(STRIP) $(STRIP_OPTS) $(PROGRAMS) $(OUTPUT)perf
d24e473e5   Ingo Molnar   perf_counter: cop...
644

c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
645
  $(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
078006012   Ingo Molnar   perf_counter tool...
646
647
  	$(QUIET_CC)$(CC) -DPERF_VERSION='"$(PERF_VERSION)"' \
  		'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
648
  		$(ALL_CFLAGS) -c $(filter %.c,$^) -o $@
d24e473e5   Ingo Molnar   perf_counter: cop...
649

8796cb9d7   Michael Witten   perf tools: Makef...
650
  $(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS)
f2481f3df   Tom Zanussi   perf tools: Fix l...
651
652
  	$(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \
                 $(BUILTIN_OBJS) $(LIBS) -o $@
d24e473e5   Ingo Molnar   perf_counter: cop...
653

c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf_counter tool...
656
657
  		'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
  		'-DPERF_MAN_PATH="$(mandir_SQ)"' \
10274989f   Arjan van de Ven   perf: Add the tim...
658
  		'-DPERF_INFO_PATH="$(infodir_SQ)"' $<
c29ede615   Arnaldo Carvalho de Melo   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   Arjan van de Ven   perf: Add the tim...
661
662
  		'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
  		'-DPERF_MAN_PATH="$(mandir_SQ)"' \
078006012   Ingo Molnar   perf_counter tool...
663
  		'-DPERF_INFO_PATH="$(infodir_SQ)"' $<
d24e473e5   Ingo Molnar   perf_counter: cop...
664

c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
665
  $(OUTPUT)common-cmds.h: util/generate-cmdlist.sh command-list.txt
d24e473e5   Ingo Molnar   perf_counter: cop...
666

c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
667
  $(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
1ad0560e8   Mulyadi Santosa   perf tools: Run g...
668
  	$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
d24e473e5   Ingo Molnar   perf_counter: cop...
669

a3d1ee10d   Michael Witten   perf tools: Makef...
670
671
  $(SCRIPTS) : % : %.sh
  	$(QUIET_GEN)$(INSTALL) '$@.sh' '$(OUTPUT)$@'
d24e473e5   Ingo Molnar   perf_counter: cop...
672

078006012   Ingo Molnar   perf_counter tool...
673
  # These can record PERF_VERSION
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
674
  $(OUTPUT)perf.o perf.spec \
a3d1ee10d   Michael Witten   perf tools: Makef...
675
  	$(SCRIPTS) \
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
676
  	: $(OUTPUT)PERF-VERSION-FILE
d24e473e5   Ingo Molnar   perf_counter: cop...
677

c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf_counter: cop...
681
  	$(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $<
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
682
683
  $(OUTPUT)%.o: %.S
  	$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
d24e473e5   Ingo Molnar   perf_counter: cop...
684

c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf_counter tool...
687
  		'-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \
d24e473e5   Ingo Molnar   perf_counter: cop...
688
689
690
  		'-DBINDIR="$(bindir_relative_SQ)"' \
  		'-DPREFIX="$(prefix_SQ)"' \
  		$<
c29ede615   Arnaldo Carvalho de Melo   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   Ingo Molnar   perf_counter: cop...
693

ef8f34aab   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   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   Arnaldo Carvalho de Melo   perf_counter tool...
704

c29ede615   Arnaldo Carvalho de Melo   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   Tom Zanussi   perf trace: Add P...
707

c29ede615   Arnaldo Carvalho de Melo   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   Tom Zanussi   perf trace: Add i...
710

c29ede615   Arnaldo Carvalho de Melo   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   Tom Zanussi   perf/scripts: Add...
713

c29ede615   Arnaldo Carvalho de Melo   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   Tom Zanussi   perf/scripts: Add...
716

8796cb9d7   Michael Witten   perf tools: Makef...
717
  $(OUTPUT)perf-%: %.o $(PERFLIBS)
d24e473e5   Ingo Molnar   perf_counter: cop...
718
  	$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
d24e473e5   Ingo Molnar   perf_counter: cop...
719
  $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
8796cb9d7   Michael Witten   perf tools: Makef...
720
  $(patsubst perf-%,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
d24e473e5   Ingo Molnar   perf_counter: cop...
721

033a273f9   Bernd Petrovitsch   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   Kusanagi Kouichi   perf tools: Fix b...
725
  $(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS)))
033a273f9   Bernd Petrovitsch   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   Ingo Molnar   perf_counter: cop...
729
730
  $(LIB_FILE): $(LIB_OBJS)
  	$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)
4187e262b   Jesse Brandeburg   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   Ingo Molnar   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   Ingo Molnar   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   Ingo Molnar   perf_counter tool...
788
               $(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
d24e473e5   Ingo Molnar   perf_counter: cop...
789

c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
790
  $(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS
d24e473e5   Ingo Molnar   perf_counter: cop...
791
  	@FLAGS='$(TRACK_CFLAGS)'; \
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
792
  	    if test x"$$FLAGS" != x"`cat $(OUTPUT)PERF-CFLAGS 2>/dev/null`" ; then \
d24e473e5   Ingo Molnar   perf_counter: cop...
793
  		echo 1>&2 "    * new build flags or prefix"; \
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
794
  		echo "$$FLAGS" >$(OUTPUT)PERF-CFLAGS; \
d24e473e5   Ingo Molnar   perf_counter: cop...
795
              fi
d24e473e5   Ingo Molnar   perf_counter: cop...
796
  ### Testing rules
d24e473e5   Ingo Molnar   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   Arnaldo Carvalho de Melo   perf tools: Allow...
800
  check: $(OUTPUT)common-cmds.h
d24e473e5   Ingo Molnar   perf_counter: cop...
801
802
  	if sparse; \
  	then \
148be2c15   Ingo Molnar   perf_counter tool...
803
  		for i in *.c */*.c; \
d24e473e5   Ingo Molnar   perf_counter: cop...
804
805
806
807
  		do \
  			sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
  		done; \
  	else \
d24e473e5   Ingo Molnar   perf_counter: cop...
808
809
  		exit 1; \
  	fi
d24e473e5   Ingo Molnar   perf_counter: cop...
810
  ### Installation rules
078006012   Ingo Molnar   perf_counter tool...
811
812
  ifneq ($(filter /%,$(firstword $(perfexecdir))),)
  perfexec_instdir = $(perfexecdir)
d24e473e5   Ingo Molnar   perf_counter: cop...
813
  else
078006012   Ingo Molnar   perf_counter tool...
814
  perfexec_instdir = $(prefix)/$(perfexecdir)
d24e473e5   Ingo Molnar   perf_counter: cop...
815
  endif
078006012   Ingo Molnar   perf_counter tool...
816
  perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
d24e473e5   Ingo Molnar   perf_counter: cop...
817
818
819
  
  install: all
  	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
8796cb9d7   Michael Witten   perf tools: Makef...
820
  	$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'
bcefe12ef   Tom Zanussi   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   Arnaldo Carvalho de Melo   perf tools: Allow...
823
  	$(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
bcefe12ef   Tom Zanussi   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   Tom Zanussi   perf/scripts: Add...
827
  	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'
4d161f036   Tom Zanussi   perf/scripts: Add...
828
  	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
7e4b21b84   Tom Zanussi   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   Tom Zanussi   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   Tom Zanussi   perf/scripts: Mov...
832

9941c96ad   Jiri Olsa   perf tools: Add s...
833
834
  install-python_ext:
  	$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
c1c2365ac   Ingo Molnar   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   Ingo Molnar   perf_counter: cop...
858
  ### Cleaning rules
e0143bad9   Ingo Molnar   perf_counter: add...
859
  clean:
8b7e0b34b   Kusanagi Kouichi   perf tools: Make ...
860
  	$(RM) $(LIB_OBJS) $(BUILTIN_OBJS) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf.o $(LANG_BINDINGS)
a3d1ee10d   Michael Witten   perf tools: Makef...
861
  	$(RM) $(ALL_PROGRAMS) perf
c29ede615   Arnaldo Carvalho de Melo   perf tools: Allow...
862
  	$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope*
c1c2365ac   Ingo Molnar   perf_counter tool...
863
  	$(MAKE) -C Documentation/ clean
a3d1ee10d   Michael Witten   perf tools: Makef...
864
  	$(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS
ced465c40   Michael Witten   perf tools: Makef...
865
  	$(python-clean)
d24e473e5   Ingo Molnar   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   Ingo Molnar   perf_counter tool...
869
  .PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS