perf config: Ignore generated files in feature-checks
[firefly-linux-kernel-4.4.55.git] / tools / perf / config / Makefile
1 uname_M := $(shell uname -m 2>/dev/null || echo not)
2
3 ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
4                                   -e s/arm.*/arm/ -e s/sa110/arm/ \
5                                   -e s/s390x/s390/ -e s/parisc64/parisc/ \
6                                   -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
7                                   -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ )
8 NO_PERF_REGS := 1
9 CFLAGS := $(EXTRA_CFLAGS) $(EXTRA_WARNINGS)
10
11 # Additional ARCH settings for x86
12 ifeq ($(ARCH),i386)
13   override ARCH := x86
14   NO_PERF_REGS := 0
15   LIBUNWIND_LIBS = -lunwind -lunwind-x86
16 endif
17
18 ifeq ($(ARCH),x86_64)
19   override ARCH := x86
20   IS_X86_64 := 0
21   ifeq (, $(findstring m32,$(CFLAGS)))
22     IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1)
23   endif
24   ifeq (${IS_X86_64}, 1)
25     RAW_ARCH := x86_64
26     CFLAGS += -DHAVE_ARCH_X86_64_SUPPORT
27     ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S
28     LIBUNWIND_LIBS = -lunwind -lunwind-x86_64
29   else
30     LIBUNWIND_LIBS = -lunwind -lunwind-x86
31   endif
32   NO_PERF_REGS := 0
33 endif
34 ifeq ($(ARCH),arm)
35   NO_PERF_REGS := 0
36   LIBUNWIND_LIBS = -lunwind -lunwind-arm
37 endif
38
39 ifeq ($(LIBUNWIND_LIBS),)
40   NO_LIBUNWIND := 1
41 else
42   #
43   # For linking with debug library, run like:
44   #
45   #   make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
46   #
47   ifdef LIBUNWIND_DIR
48     LIBUNWIND_CFLAGS  = -I$(LIBUNWIND_DIR)/include
49     LIBUNWIND_LDFLAGS = -L$(LIBUNWIND_DIR)/lib
50   endif
51   LIBUNWIND_LDFLAGS += $(LIBUNWIND_LIBS)
52
53   # Set per-feature check compilation flags
54   FEATURE_CHECK_CFLAGS-libunwind = $(LIBUNWIND_CFLAGS)
55   FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS)
56   FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
57   FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS)
58   #  and the flags for the test-all case
59   FEATURE_CHECK_CFLAGS-all += $(LIBUNWIND_CFLAGS)
60   FEATURE_CHECK_LDFLAGS-all += $(LIBUNWIND_LDFLAGS)
61 endif
62
63 ifeq ($(NO_PERF_REGS),0)
64   CFLAGS += -DHAVE_PERF_REGS_SUPPORT
65 endif
66
67 ifeq ($(src-perf),)
68 src-perf := $(srctree)/tools/perf
69 endif
70
71 ifeq ($(obj-perf),)
72 obj-perf := $(OUTPUT)
73 endif
74
75 ifneq ($(obj-perf),)
76 obj-perf := $(abspath $(obj-perf))/
77 endif
78
79 LIB_INCLUDE := $(srctree)/tools/lib/
80
81 # include ARCH specific config
82 -include $(src-perf)/arch/$(ARCH)/Makefile
83
84 include $(src-perf)/config/utilities.mak
85
86 ifeq ($(call get-executable,$(FLEX)),)
87   dummy := $(error Error: $(FLEX) is missing on this system, please install it)
88 endif
89
90 ifeq ($(call get-executable,$(BISON)),)
91   dummy := $(error Error: $(BISON) is missing on this system, please install it)
92 endif
93
94 # Treat warnings as errors unless directed not to
95 ifneq ($(WERROR),0)
96   CFLAGS += -Werror
97 endif
98
99 ifndef DEBUG
100   DEBUG := 0
101 endif
102
103 ifeq ($(DEBUG),0)
104   CFLAGS += -O6
105 endif
106
107 ifdef PARSER_DEBUG
108   PARSER_DEBUG_BISON := -t
109   PARSER_DEBUG_FLEX  := -d
110   CFLAGS             += -DPARSER_DEBUG
111 endif
112
113 CFLAGS += -fno-omit-frame-pointer
114 CFLAGS += -ggdb3
115 CFLAGS += -funwind-tables
116 CFLAGS += -Wall
117 CFLAGS += -Wextra
118 CFLAGS += -std=gnu99
119
120 EXTLIBS = -lelf -lpthread -lrt -lm -ldl
121
122 ifneq ($(OUTPUT),)
123   OUTPUT_FEATURES = $(OUTPUT)config/feature-checks/
124   $(shell mkdir -p $(OUTPUT_FEATURES))
125 endif
126
127 feature_check = $(eval $(feature_check_code))
128 define feature_check_code
129   feature-$(1) := $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS) $(FEATURE_CHECK_CFLAGS-$(1))" LDFLAGS="$(LDFLAGS) $(FEATURE_CHECK_LDFLAGS-$(1))" -C config/feature-checks test-$1.bin >/dev/null 2>/dev/null && echo 1 || echo 0)
130 endef
131
132 feature_set = $(eval $(feature_set_code))
133 define feature_set_code
134   feature-$(1) := 1
135 endef
136
137 #
138 # Build the feature check binaries in parallel, ignore errors, ignore return value and suppress output:
139 #
140
141 #
142 # Note that this is not a complete list of all feature tests, just
143 # those that are typically built on a fully configured system.
144 #
145 # [ Feature tests not mentioned here have to be built explicitly in
146 #   the rule that uses them - an example for that is the 'bionic'
147 #   feature check. ]
148 #
149 CORE_FEATURE_TESTS =                    \
150         backtrace                       \
151         dwarf                           \
152         fortify-source                  \
153         glibc                           \
154         gtk2                            \
155         gtk2-infobar                    \
156         libaudit                        \
157         libbfd                          \
158         libelf                          \
159         libelf-getphdrnum               \
160         libelf-mmap                     \
161         libnuma                         \
162         libperl                         \
163         libpython                       \
164         libpython-version               \
165         libslang                        \
166         libunwind                       \
167         on-exit                         \
168         stackprotector-all              \
169         timerfd
170
171 #
172 # So here we detect whether test-all was rebuilt, to be able
173 # to skip the print-out of the long features list if the file
174 # existed before and after it was built:
175 #
176 ifeq ($(wildcard $(OUTPUT)config/feature-checks/test-all.bin),)
177   test-all-failed := 1
178 else
179   test-all-failed := 0
180 endif
181
182 #
183 # Special fast-path for the 'all features are available' case:
184 #
185 $(call feature_check,all,$(MSG))
186
187 #
188 # Just in case the build freshly failed, make sure we print the
189 # feature matrix:
190 #
191 ifeq ($(feature-all), 0)
192   test-all-failed := 1
193 endif
194
195 ifeq ($(test-all-failed),1)
196   $(info )
197   $(info Auto-detecting system features:)
198 endif
199
200 ifeq ($(feature-all), 1)
201   #
202   # test-all.c passed - just set all the core feature flags to 1:
203   #
204   $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_set,$(feat)))
205 else
206   $(shell $(MAKE) OUTPUT=$(OUTPUT_FEATURES) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS=$(LDFLAGS) -i -j -C config/feature-checks $(addsuffix .bin,$(CORE_FEATURE_TESTS)) >/dev/null 2>&1)
207   $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_check,$(feat)))
208 endif
209
210 #
211 # Print the result of the feature test:
212 #
213 feature_print = $(eval $(feature_print_code)) $(info $(MSG))
214
215 define feature_print_code
216   ifeq ($(feature-$(1)), 1)
217     MSG = $(shell printf '...%30s: [ \033[32mon\033[m  ]' $(1))
218   else
219     MSG = $(shell printf '...%30s: [ \033[31mOFF\033[m ]' $(1))
220   endif
221 endef
222
223 #
224 # Only print out our features if we rebuilt the testcases or if a test failed:
225 #
226 ifeq ($(test-all-failed), 1)
227   $(foreach feat,$(CORE_FEATURE_TESTS),$(call feature_print,$(feat)))
228   $(info )
229 endif
230
231 ifeq ($(feature-stackprotector-all), 1)
232   CFLAGS += -fstack-protector-all
233 endif
234
235 ifeq ($(DEBUG),0)
236   ifeq ($(feature-fortify-source), 1)
237     CFLAGS += -D_FORTIFY_SOURCE=2
238   endif
239 endif
240
241 CFLAGS += -I$(src-perf)/util/include
242 CFLAGS += -I$(src-perf)/arch/$(ARCH)/include
243 CFLAGS += -I$(srctree)/arch/$(ARCH)/include/uapi
244 CFLAGS += -I$(srctree)/arch/$(ARCH)/include
245 CFLAGS += -I$(srctree)/include/uapi
246 CFLAGS += -I$(srctree)/include
247
248 # $(obj-perf)      for generated common-cmds.h
249 # $(obj-perf)/util for generated bison/flex headers
250 ifneq ($(OUTPUT),)
251 CFLAGS += -I$(obj-perf)/util
252 CFLAGS += -I$(obj-perf)
253 endif
254
255 CFLAGS += -I$(src-perf)/util
256 CFLAGS += -I$(src-perf)
257 CFLAGS += -I$(LIB_INCLUDE)
258
259 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
260
261 ifndef NO_BIONIC
262   $(call feature_check,bionic)
263   ifeq ($(feature-bionic), 1)
264     BIONIC := 1
265     EXTLIBS := $(filter-out -lrt,$(EXTLIBS))
266     EXTLIBS := $(filter-out -lpthread,$(EXTLIBS))
267   endif
268 endif
269
270 ifdef NO_LIBELF
271   NO_DWARF := 1
272   NO_DEMANGLE := 1
273   NO_LIBUNWIND := 1
274 else
275   ifeq ($(feature-libelf), 0)
276     ifeq ($(feature-glibc), 1)
277       LIBC_SUPPORT := 1
278     endif
279     ifeq ($(BIONIC),1)
280       LIBC_SUPPORT := 1
281     endif
282     ifeq ($(LIBC_SUPPORT),1)
283       msg := $(warning No libelf found, disables 'probe' tool, please install elfutils-libelf-devel/libelf-dev);
284
285       NO_LIBELF := 1
286       NO_DWARF := 1
287       NO_DEMANGLE := 1
288     else
289       msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static);
290     endif
291   else
292     # for linking with debug library, run like:
293     # make DEBUG=1 LIBDW_DIR=/opt/libdw/
294     ifdef LIBDW_DIR
295       LIBDW_CFLAGS  := -I$(LIBDW_DIR)/include
296       LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib
297     endif
298
299     ifneq ($(feature-dwarf), 1)
300       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);
301       NO_DWARF := 1
302     endif # Dwarf support
303   endif # libelf support
304 endif # NO_LIBELF
305
306 ifndef NO_LIBELF
307   CFLAGS += -DHAVE_LIBELF_SUPPORT
308
309   ifeq ($(feature-libelf-mmap), 1)
310     CFLAGS += -DHAVE_LIBELF_MMAP_SUPPORT
311   endif
312
313   ifeq ($(feature-libelf-getphdrnum), 1)
314     CFLAGS += -DHAVE_ELF_GETPHDRNUM_SUPPORT
315   endif
316
317   # include ARCH specific config
318   -include $(src-perf)/arch/$(ARCH)/Makefile
319
320   ifndef NO_DWARF
321     ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
322       msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled);
323       NO_DWARF := 1
324     else
325       CFLAGS += -DHAVE_DWARF_SUPPORT $(LIBDW_CFLAGS)
326       LDFLAGS += $(LIBDW_LDFLAGS)
327       EXTLIBS += -lelf -ldw
328     endif # PERF_HAVE_DWARF_REGS
329   endif # NO_DWARF
330 endif # NO_LIBELF
331
332 ifndef NO_LIBUNWIND
333   ifneq ($(feature-libunwind), 1)
334     msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 1.1);
335     NO_LIBUNWIND := 1
336   else
337     ifeq ($(ARCH),arm)
338       $(call feature_check,libunwind-debug-frame)
339       ifneq ($(feature-libunwind-debug-frame), 1)
340         msg := $(warning No debug_frame support found in libunwind);
341         CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
342       endif
343     else
344       # non-ARM has no dwarf_find_debug_frame() function:
345       CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME
346     endif
347
348     CFLAGS += -DHAVE_LIBUNWIND_SUPPORT
349     EXTLIBS += $(LIBUNWIND_LIBS)
350     CFLAGS += $(LIBUNWIND_CFLAGS)
351     LDFLAGS += $(LIBUNWIND_LDFLAGS)
352   endif # ifneq ($(feature-libunwind), 1)
353 endif
354
355 ifndef NO_LIBAUDIT
356   ifneq ($(feature-libaudit), 1)
357     msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
358     NO_LIBAUDIT := 1
359   else
360     CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
361     EXTLIBS += -laudit
362   endif
363 endif
364
365 ifdef NO_NEWT
366   NO_SLANG=1
367 endif
368
369 ifndef NO_SLANG
370   ifneq ($(feature-libslang), 1)
371     msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
372     NO_SLANG := 1
373   else
374     # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
375     CFLAGS += -I/usr/include/slang
376     CFLAGS += -DHAVE_SLANG_SUPPORT
377     EXTLIBS += -lslang
378   endif
379 endif
380
381 ifndef NO_GTK2
382   FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
383   ifneq ($(feature-gtk2), 1)
384     msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
385     NO_GTK2 := 1
386   else
387     ifeq ($(feature-gtk2-infobar), 1)
388       GTK_CFLAGS := -DHAVE_GTK_INFO_BAR_SUPPORT
389     endif
390     CFLAGS += -DHAVE_GTK2_SUPPORT
391     GTK_CFLAGS += $(shell pkg-config --cflags gtk+-2.0 2>/dev/null)
392     GTK_LIBS := $(shell pkg-config --libs gtk+-2.0 2>/dev/null)
393     EXTLIBS += -ldl
394   endif
395 endif
396
397 grep-libs  = $(filter -l%,$(1))
398 strip-libs = $(filter-out -l%,$(1))
399
400 ifdef NO_LIBPERL
401   CFLAGS += -DNO_LIBPERL
402 else
403   PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
404   PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
405   PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
406   PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null`
407   FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
408
409   ifneq ($(feature-libperl), 1)
410     CFLAGS += -DNO_LIBPERL
411     NO_LIBPERL := 1
412   else
413     LDFLAGS += $(PERL_EMBED_LDFLAGS)
414     EXTLIBS += $(PERL_EMBED_LIBADD)
415   endif
416 endif
417
418 ifeq ($(feature-timerfd), 1)
419   CFLAGS += -DHAVE_TIMERFD_SUPPORT
420 else
421   msg := $(warning No timerfd support. Disables 'perf kvm stat live');
422 endif
423
424 disable-python = $(eval $(disable-python_code))
425 define disable-python_code
426   CFLAGS += -DNO_LIBPYTHON
427   $(if $(1),$(warning No $(1) was found))
428   $(warning Python support will not be built)
429   NO_LIBPYTHON := 1
430 endef
431
432 override PYTHON := \
433   $(call get-executable-or-default,PYTHON,python)
434
435 ifndef PYTHON
436   $(call disable-python,python interpreter)
437 else
438
439   PYTHON_WORD := $(call shell-wordify,$(PYTHON))
440
441   ifdef NO_LIBPYTHON
442     $(call disable-python)
443   else
444
445     override PYTHON_CONFIG := \
446       $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config)
447
448     ifndef PYTHON_CONFIG
449       $(call disable-python,python-config tool)
450     else
451
452       PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
453
454       PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
455       PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
456       PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS))
457       PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
458       FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
459
460       ifneq ($(feature-libpython), 1)
461         $(call disable-python,Python.h (for Python 2.x))
462       else
463
464         ifneq ($(feature-libpython-version), 1)
465           $(warning Python 3 is not yet supported; please set)
466           $(warning PYTHON and/or PYTHON_CONFIG appropriately.)
467           $(warning If you also have Python 2 installed, then)
468           $(warning try something like:)
469           $(warning $(and ,))
470           $(warning $(and ,)  make PYTHON=python2)
471           $(warning $(and ,))
472           $(warning Otherwise, disable Python support entirely:)
473           $(warning $(and ,))
474           $(warning $(and ,)  make NO_LIBPYTHON=1)
475           $(warning $(and ,))
476           $(error   $(and ,))
477         else
478           LDFLAGS += $(PYTHON_EMBED_LDFLAGS)
479           EXTLIBS += $(PYTHON_EMBED_LIBADD)
480           LANG_BINDINGS += $(obj-perf)python/perf.so
481         endif
482       endif
483     endif
484   endif
485 endif
486
487 ifeq ($(feature-libbfd), 1)
488   EXTLIBS += -lbfd
489 endif
490
491 ifdef NO_DEMANGLE
492   CFLAGS += -DNO_DEMANGLE
493 else
494   ifdef HAVE_CPLUS_DEMANGLE_SUPPORT
495     EXTLIBS += -liberty
496     CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
497   else
498     ifneq ($(feature-libbfd), 1)
499       $(call feature_check,liberty)
500       ifeq ($(feature-liberty), 1)
501         EXTLIBS += -lbfd -liberty
502       else
503         $(call feature_check,liberty-z)
504         ifeq ($(feature-liberty-z), 1)
505           EXTLIBS += -lbfd -liberty -lz
506         else
507           $(call feature_check,cplus-demangle)
508           ifeq ($(feature-cplus-demangle), 1)
509             EXTLIBS += -liberty
510             CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
511           else
512             msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling)
513             CFLAGS += -DNO_DEMANGLE
514           endif
515         endif
516       endif
517     endif
518   endif
519 endif
520
521 ifneq ($(filter -lbfd,$(EXTLIBS)),)
522   CFLAGS += -DHAVE_LIBBFD_SUPPORT
523 endif
524
525 ifndef NO_ON_EXIT
526   ifeq ($(feature-on-exit), 1)
527     CFLAGS += -DHAVE_ON_EXIT_SUPPORT
528   endif
529 endif
530
531 ifndef NO_BACKTRACE
532   ifeq ($(feature-backtrace), 1)
533     CFLAGS += -DHAVE_BACKTRACE_SUPPORT
534   endif
535 endif
536
537 ifndef NO_LIBNUMA
538   ifeq ($(feature-libnuma), 0)
539     msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev);
540     NO_LIBNUMA := 1
541   else
542     CFLAGS += -DHAVE_LIBNUMA_SUPPORT
543     EXTLIBS += -lnuma
544   endif
545 endif
546
547 # Among the variables below, these:
548 #   perfexecdir
549 #   template_dir
550 #   mandir
551 #   infodir
552 #   htmldir
553 #   ETC_PERFCONFIG (but not sysconfdir)
554 # can be specified as a relative path some/where/else;
555 # this is interpreted as relative to $(prefix) and "perf" at
556 # runtime figures out where they are based on the path to the executable.
557 # This can help installing the suite in a relocatable way.
558
559 # Make the path relative to DESTDIR, not to prefix
560 ifndef DESTDIR
561 prefix = $(HOME)
562 endif
563 bindir_relative = bin
564 bindir = $(prefix)/$(bindir_relative)
565 mandir = share/man
566 infodir = share/info
567 perfexecdir = libexec/perf-core
568 sharedir = $(prefix)/share
569 template_dir = share/perf-core/templates
570 htmldir = share/doc/perf-doc
571 ifeq ($(prefix),/usr)
572 sysconfdir = /etc
573 ETC_PERFCONFIG = $(sysconfdir)/perfconfig
574 else
575 sysconfdir = $(prefix)/etc
576 ETC_PERFCONFIG = etc/perfconfig
577 endif
578 ifeq ($(IS_X86_64),1)
579 lib = lib64
580 else
581 lib = lib
582 endif
583 libdir = $(prefix)/$(lib)
584
585 # Shell quote (do not use $(call) to accommodate ancient setups);
586 ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
587 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
588 bindir_SQ = $(subst ','\'',$(bindir))
589 mandir_SQ = $(subst ','\'',$(mandir))
590 infodir_SQ = $(subst ','\'',$(infodir))
591 perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
592 template_dir_SQ = $(subst ','\'',$(template_dir))
593 htmldir_SQ = $(subst ','\'',$(htmldir))
594 prefix_SQ = $(subst ','\'',$(prefix))
595 sysconfdir_SQ = $(subst ','\'',$(sysconfdir))
596 libdir_SQ = $(subst ','\'',$(libdir))
597
598 ifneq ($(filter /%,$(firstword $(perfexecdir))),)
599 perfexec_instdir = $(perfexecdir)
600 else
601 perfexec_instdir = $(prefix)/$(perfexecdir)
602 endif
603 perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
604
605 # If we install to $(HOME) we keep the traceevent default:
606 # $(HOME)/.traceevent/plugins
607 # Otherwise we install plugins into the global $(libdir).
608 ifdef DESTDIR
609 plugindir=$(libdir)/traceevent/plugins
610 plugindir_SQ= $(subst ','\'',$(prefix)/$(plugindir))
611 endif