~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/perf/Makefile (Version linux-6.12-rc7) and /tools/perf/Makefile (Version linux-3.10.108)


  1 # SPDX-License-Identifier: GPL-2.0             !!   1 include ../scripts/Makefile.include
                                                   >>   2 
                                                   >>   3 # The default target of this Makefile is...
                                                   >>   4 all:
                                                   >>   5 
                                                   >>   6 include config/utilities.mak
                                                   >>   7 
                                                   >>   8 # Define V to have a more verbose compile.
  2 #                                                   9 #
  3 # This is a simple wrapper Makefile that calls !!  10 # Define O to save output files in a separate directory.
  4 # with a -j option to do parallel builds       << 
  5 #                                                  11 #
  6 # If you want to invoke the perf build in some !!  12 # Define ARCH as name of target architecture if you want cross-builds.
  7 # you can use the 'make -f Makefile.perf' meth << 
  8 #                                                  13 #
  9                                                !!  14 # Define CROSS_COMPILE as prefix name of compiler if you want cross-builds.
 10 #                                                  15 #
 11 # Clear out the built-in rules GNU make define !!  16 # Define NO_LIBPERL to disable perl script extension.
 12 # so that we pass through all targets to Makef << 
 13 #                                                  17 #
 14 .SUFFIXES:                                     !!  18 # Define NO_LIBPYTHON to disable python script extension.
 15                                                << 
 16 #                                                  19 #
 17 # We don't want to pass along options like -j: !!  20 # Define PYTHON to point to the python binary if the default
                                                   >>  21 # `python' is not correct; for example: PYTHON=python2
 18 #                                                  22 #
 19 unexport MAKEFLAGS                             !!  23 # Define PYTHON_CONFIG to point to the python-config binary if
 20                                                !!  24 # the default `$(PYTHON)-config' is not correct.
 21 #                                                  25 #
 22 # Do a parallel build with multiple jobs, base !!  26 # Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8
 23 # in this system: 'make -j8' on a 8-CPU system << 
 24 #                                                  27 #
 25 # (To override it, run 'make JOBS=1' and simil !!  28 # Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72.
 26 #                                                  29 #
 27 ifeq ($(JOBS),)                                !!  30 # Define LDFLAGS=-static to build a static binary.
 28   JOBS := $(shell (getconf _NPROCESSORS_ONLN | << 
 29   ifeq ($(JOBS),0)                             << 
 30     JOBS := 1                                  << 
 31   endif                                        << 
 32 endif                                          << 
 33                                                << 
 34 #                                                  31 #
 35 # Only pass canonical directory names as the o !!  32 # Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds.
 36 #                                                  33 #
 37 ifneq ($(O),)                                  !!  34 # Define NO_DWARF if you do not want debug-info analysis feature at all.
 38   FULL_O := $(shell cd $(PWD); readlink -f $(O !!  35 #
 39 endif                                          !!  36 # Define WERROR=0 to disable treating any warnings as errors.
 40                                                !!  37 #
                                                   >>  38 # Define NO_NEWT if you do not want TUI support. (deprecated)
                                                   >>  39 #
                                                   >>  40 # Define NO_SLANG if you do not want TUI support.
                                                   >>  41 #
                                                   >>  42 # Define NO_GTK2 if you do not want GTK+ GUI support.
 41 #                                                  43 #
 42 # Only accept the 'DEBUG' variable from the co !!  44 # Define NO_DEMANGLE if you do not want C++ symbol demangling.
 43 #                                                  45 #
                                                   >>  46 # Define NO_LIBELF if you do not want libelf dependency (e.g. cross-builds)
                                                   >>  47 #
                                                   >>  48 # Define NO_LIBUNWIND if you do not want libunwind dependency for dwarf
                                                   >>  49 # backtrace post unwind.
                                                   >>  50 #
                                                   >>  51 # Define NO_BACKTRACE if you do not want stack backtrace debug feature
                                                   >>  52 #
                                                   >>  53 # Define NO_LIBNUMA if you do not want numa perf benchmark
                                                   >>  54 
                                                   >>  55 $(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
                                                   >>  56         @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT)
                                                   >>  57 
                                                   >>  58 uname_M := $(shell uname -m 2>/dev/null || echo not)
                                                   >>  59 
                                                   >>  60 ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
                                                   >>  61                                   -e s/arm.*/arm/ -e s/sa110/arm/ \
                                                   >>  62                                   -e s/s390x/s390/ -e s/parisc64/parisc/ \
                                                   >>  63                                   -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
                                                   >>  64                                   -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ )
                                                   >>  65 NO_PERF_REGS := 1
                                                   >>  66 
                                                   >>  67 CC = $(CROSS_COMPILE)gcc
                                                   >>  68 AR = $(CROSS_COMPILE)ar
                                                   >>  69 
                                                   >>  70 # Additional ARCH settings for x86
                                                   >>  71 ifeq ($(ARCH),i386)
                                                   >>  72         override ARCH := x86
                                                   >>  73         NO_PERF_REGS := 0
                                                   >>  74         LIBUNWIND_LIBS = -lunwind -lunwind-x86
                                                   >>  75 endif
                                                   >>  76 ifeq ($(ARCH),x86_64)
                                                   >>  77         override ARCH := x86
                                                   >>  78         IS_X86_64 := 0
                                                   >>  79         ifeq (, $(findstring m32,$(EXTRA_CFLAGS)))
                                                   >>  80                 IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1)
                                                   >>  81         endif
                                                   >>  82         ifeq (${IS_X86_64}, 1)
                                                   >>  83                 RAW_ARCH := x86_64
                                                   >>  84                 ARCH_CFLAGS := -DARCH_X86_64
                                                   >>  85                 ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S
                                                   >>  86         endif
                                                   >>  87         NO_PERF_REGS := 0
                                                   >>  88         LIBUNWIND_LIBS = -lunwind -lunwind-x86_64
                                                   >>  89 endif
                                                   >>  90 
                                                   >>  91 # Treat warnings as errors unless directed not to
                                                   >>  92 ifneq ($(WERROR),0)
                                                   >>  93         CFLAGS_WERROR := -Werror
                                                   >>  94 endif
                                                   >>  95 
 44 ifeq ("$(origin DEBUG)", "command line")           96 ifeq ("$(origin DEBUG)", "command line")
 45   ifeq ($(DEBUG),)                             !!  97   PERF_DEBUG = $(DEBUG)
 46     override DEBUG = 0                         !!  98 endif
 47   else                                         !!  99 ifndef PERF_DEBUG
 48     SET_DEBUG = "DEBUG=$(DEBUG)"               !! 100   CFLAGS_OPTIMIZE = -O6
 49   endif                                        !! 101 endif
                                                   >> 102 
                                                   >> 103 ifdef PARSER_DEBUG
                                                   >> 104         PARSER_DEBUG_BISON  := -t
                                                   >> 105         PARSER_DEBUG_FLEX   := -d
                                                   >> 106         PARSER_DEBUG_CFLAGS := -DPARSER_DEBUG
                                                   >> 107 endif
                                                   >> 108 
                                                   >> 109 ifdef NO_NEWT
                                                   >> 110         NO_SLANG=1
                                                   >> 111 endif
                                                   >> 112 
                                                   >> 113 CFLAGS = -fno-omit-frame-pointer -ggdb3 -funwind-tables -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) $(PARSER_DEBUG_CFLAGS)
                                                   >> 114 EXTLIBS = -lpthread -lrt -lelf -lm
                                                   >> 115 ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
                                                   >> 116 ALL_LDFLAGS = $(LDFLAGS)
                                                   >> 117 STRIP ?= strip
                                                   >> 118 
                                                   >> 119 # Among the variables below, these:
                                                   >> 120 #   perfexecdir
                                                   >> 121 #   template_dir
                                                   >> 122 #   mandir
                                                   >> 123 #   infodir
                                                   >> 124 #   htmldir
                                                   >> 125 #   ETC_PERFCONFIG (but not sysconfdir)
                                                   >> 126 # can be specified as a relative path some/where/else;
                                                   >> 127 # this is interpreted as relative to $(prefix) and "perf" at
                                                   >> 128 # runtime figures out where they are based on the path to the executable.
                                                   >> 129 # This can help installing the suite in a relocatable way.
                                                   >> 130 
                                                   >> 131 # Make the path relative to DESTDIR, not to prefix
                                                   >> 132 ifndef DESTDIR
                                                   >> 133 prefix = $(HOME)
                                                   >> 134 endif
                                                   >> 135 bindir_relative = bin
                                                   >> 136 bindir = $(prefix)/$(bindir_relative)
                                                   >> 137 mandir = share/man
                                                   >> 138 infodir = share/info
                                                   >> 139 perfexecdir = libexec/perf-core
                                                   >> 140 sharedir = $(prefix)/share
                                                   >> 141 template_dir = share/perf-core/templates
                                                   >> 142 htmldir = share/doc/perf-doc
                                                   >> 143 ifeq ($(prefix),/usr)
                                                   >> 144 sysconfdir = /etc
                                                   >> 145 ETC_PERFCONFIG = $(sysconfdir)/perfconfig
 50 else                                              146 else
 51   override DEBUG = 0                           !! 147 sysconfdir = $(prefix)/etc
                                                   >> 148 ETC_PERFCONFIG = etc/perfconfig
                                                   >> 149 endif
                                                   >> 150 lib = lib
                                                   >> 151 
                                                   >> 152 export prefix bindir sharedir sysconfdir
                                                   >> 153 
                                                   >> 154 RM = rm -f
                                                   >> 155 MKDIR = mkdir
                                                   >> 156 FIND = find
                                                   >> 157 INSTALL = install
                                                   >> 158 FLEX = flex
                                                   >> 159 BISON= bison
                                                   >> 160 
                                                   >> 161 # sparse is architecture-neutral, which means that we need to tell it
                                                   >> 162 # explicitly what architecture to check for. Fix this up for yours..
                                                   >> 163 SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
                                                   >> 164 
                                                   >> 165 ifneq ($(MAKECMDGOALS),clean)
                                                   >> 166 ifneq ($(MAKECMDGOALS),tags)
                                                   >> 167 -include config/feature-tests.mak
                                                   >> 168 
                                                   >> 169 ifeq ($(call get-executable,$(FLEX)),)
                                                   >> 170         dummy := $(error Error: $(FLEX) is missing on this system, please install it)
                                                   >> 171 endif
                                                   >> 172 
                                                   >> 173 ifeq ($(call get-executable,$(BISON)),)
                                                   >> 174         dummy := $(error Error: $(BISON) is missing on this system, please install it)
                                                   >> 175 endif
                                                   >> 176 
                                                   >> 177 ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -fstack-protector-all,-fstack-protector-all),y)
                                                   >> 178         CFLAGS := $(CFLAGS) -fstack-protector-all
                                                   >> 179 endif
                                                   >> 180 
                                                   >> 181 ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -Wstack-protector,-Wstack-protector),y)
                                                   >> 182        CFLAGS := $(CFLAGS) -Wstack-protector
                                                   >> 183 endif
                                                   >> 184 
                                                   >> 185 ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -Wvolatile-register-var,-Wvolatile-register-var),y)
                                                   >> 186        CFLAGS := $(CFLAGS) -Wvolatile-register-var
                                                   >> 187 endif
                                                   >> 188 
                                                   >> 189 ifndef PERF_DEBUG
                                                   >> 190         ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -D_FORTIFY_SOURCE=2,-D_FORTIFY_SOURCE=2),y)
                                                   >> 191                 CFLAGS := $(CFLAGS) -D_FORTIFY_SOURCE=2
                                                   >> 192         endif
                                                   >> 193 endif
                                                   >> 194 
                                                   >> 195 ### --- END CONFIGURATION SECTION ---
                                                   >> 196 
                                                   >> 197 ifeq ($(srctree),)
                                                   >> 198 srctree := $(patsubst %/,%,$(dir $(shell pwd)))
                                                   >> 199 srctree := $(patsubst %/,%,$(dir $(srctree)))
                                                   >> 200 #$(info Determined 'srctree' to be $(srctree))
                                                   >> 201 endif
                                                   >> 202 
                                                   >> 203 ifneq ($(objtree),)
                                                   >> 204 #$(info Determined 'objtree' to be $(objtree))
 52 endif                                             205 endif
 53                                                   206 
 54 ifeq ($(JOBS),1)                               !! 207 ifneq ($(OUTPUT),)
 55   BUILD_TYPE := sequential                     !! 208 #$(info Determined 'OUTPUT' to be $(OUTPUT))
                                                   >> 209 endif
                                                   >> 210 
                                                   >> 211 BASIC_CFLAGS = \
                                                   >> 212         -Iutil/include \
                                                   >> 213         -Iarch/$(ARCH)/include \
                                                   >> 214         $(if $(objtree),-I$(objtree)/arch/$(ARCH)/include/generated/uapi) \
                                                   >> 215         -I$(srctree)/arch/$(ARCH)/include/uapi \
                                                   >> 216         -I$(srctree)/arch/$(ARCH)/include \
                                                   >> 217         $(if $(objtree),-I$(objtree)/include/generated/uapi) \
                                                   >> 218         -I$(srctree)/include/uapi \
                                                   >> 219         -I$(srctree)/include \
                                                   >> 220         -I$(OUTPUT)util \
                                                   >> 221         -Iutil \
                                                   >> 222         -I. \
                                                   >> 223         -I$(TRACE_EVENT_DIR) \
                                                   >> 224         -I../lib/ \
                                                   >> 225         -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
                                                   >> 226 
                                                   >> 227 BASIC_LDFLAGS =
                                                   >> 228 
                                                   >> 229 ifeq ($(call try-cc,$(SOURCE_BIONIC),$(CFLAGS),bionic),y)
                                                   >> 230         BIONIC := 1
                                                   >> 231         EXTLIBS := $(filter-out -lrt,$(EXTLIBS))
                                                   >> 232         EXTLIBS := $(filter-out -lpthread,$(EXTLIBS))
                                                   >> 233         BASIC_CFLAGS += -I.
                                                   >> 234 endif
                                                   >> 235 endif # MAKECMDGOALS != tags
                                                   >> 236 endif # MAKECMDGOALS != clean
                                                   >> 237 
                                                   >> 238 # Guard against environment variables
                                                   >> 239 BUILTIN_OBJS =
                                                   >> 240 LIB_H =
                                                   >> 241 LIB_OBJS =
                                                   >> 242 PYRF_OBJS =
                                                   >> 243 SCRIPT_SH =
                                                   >> 244 
                                                   >> 245 SCRIPT_SH += perf-archive.sh
                                                   >> 246 
                                                   >> 247 grep-libs = $(filter -l%,$(1))
                                                   >> 248 strip-libs = $(filter-out -l%,$(1))
                                                   >> 249 
                                                   >> 250 LK_DIR = ../lib/lk/
                                                   >> 251 TRACE_EVENT_DIR = ../lib/traceevent/
                                                   >> 252 
                                                   >> 253 LK_PATH=$(LK_DIR)
                                                   >> 254 
                                                   >> 255 ifneq ($(OUTPUT),)
                                                   >> 256         TE_PATH=$(OUTPUT)
                                                   >> 257 ifneq ($(subdir),)
                                                   >> 258         LK_PATH=$(OUTPUT)$(LK_DIR)
                                                   >> 259 else
                                                   >> 260         LK_PATH=$(OUTPUT)
                                                   >> 261 endif
 56 else                                              262 else
 57   BUILD_TYPE := parallel                       !! 263         TE_PATH=$(TRACE_EVENT_DIR)
 58 endif                                             264 endif
 59                                                   265 
 60 define print_msg                               !! 266 LIBTRACEEVENT = $(TE_PATH)libtraceevent.a
 61   @printf '  BUILD:   Doing '\''make \033[33m- !! 267 export LIBTRACEEVENT
 62 endef                                          << 
 63                                                   268 
 64 define make                                    !! 269 LIBLK = $(LK_PATH)liblk.a
 65   @$(MAKE) -f Makefile.perf --no-print-directo !! 270 export LIBLK
 66 endef                                          << 
 67                                                   271 
 68 #                                              !! 272 # python extension build directories
 69 # Needed if no target specified:               !! 273 PYTHON_EXTBUILD     := $(OUTPUT)python_ext_build/
 70 # (Except for tags and TAGS targets. The reaso !! 274 PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/
 71 # Makefile does not treat tags/TAGS as targets !! 275 PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/
 72 # and thus won't rebuilt them once they are in !! 276 export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
 73 #                                              << 
 74 all tags TAGS:                                 << 
 75         $(print_msg)                           << 
 76         $(make)                                << 
 77                                                   277 
 78 ifdef MAKECMDGOALS                             !! 278 python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so
 79 has_clean := 0                                 << 
 80 ifneq ($(filter clean,$(MAKECMDGOALS)),)       << 
 81   has_clean := 1                               << 
 82 endif # clean                                  << 
 83                                                   279 
 84 ifeq ($(has_clean),1)                          !! 280 PYTHON_EXT_SRCS := $(shell grep -v ^\# util/python-ext-sources)
 85   rest := $(filter-out clean,$(MAKECMDGOALS))  !! 281 PYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT)
 86   ifneq ($(rest),)                             << 
 87 $(rest): clean                                 << 
 88   endif # rest                                 << 
 89 endif # has_clean                              << 
 90 endif # MAKECMDGOALS                           << 
 91                                                   282 
                                                   >> 283 $(OUTPUT)python/perf.so: $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS)
                                                   >> 284         $(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
                                                   >> 285           --quiet build_ext; \
                                                   >> 286         mkdir -p $(OUTPUT)python && \
                                                   >> 287         cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
 92 #                                                 288 #
 93 # Explicitly disable parallelism for the clean !! 289 # No Perl scripts right now:
 94 #                                                 290 #
 95 clean:                                         !! 291 
 96         $(make) -j1                            !! 292 SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
 97                                                   293 
 98 #                                                 294 #
 99 # The build-test target is not really parallel !! 295 # Single 'perf' binary right now:
100 # it also uses only the tests/make targets tha << 
101 # repository, i.e. that uses O= or builds the  << 
102 # repo directories.                            << 
103 #                                              << 
104 # For a full test, use:                        << 
105 #                                              << 
106 # make -C tools/perf -f tests/make             << 
107 #                                                 296 #
108 build-test:                                    !! 297 PROGRAMS += $(OUTPUT)perf
109         @$(MAKE) SHUF=1 -f tests/make REUSE_FE !! 298 
                                                   >> 299 LANG_BINDINGS =
                                                   >> 300 
                                                   >> 301 # what 'all' will build and 'install' will install, in perfexecdir
                                                   >> 302 ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
                                                   >> 303 
                                                   >> 304 # what 'all' will build but not install in perfexecdir
                                                   >> 305 OTHER_PROGRAMS = $(OUTPUT)perf
                                                   >> 306 
                                                   >> 307 # Set paths to tools early so that they can be used for version tests.
                                                   >> 308 ifndef SHELL_PATH
                                                   >> 309         SHELL_PATH = /bin/sh
                                                   >> 310 endif
                                                   >> 311 ifndef PERL_PATH
                                                   >> 312         PERL_PATH = /usr/bin/perl
                                                   >> 313 endif
                                                   >> 314 
                                                   >> 315 export PERL_PATH
                                                   >> 316 
                                                   >> 317 $(OUTPUT)util/parse-events-flex.c: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
                                                   >> 318         $(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/parse-events-flex.h $(PARSER_DEBUG_FLEX) -t util/parse-events.l > $(OUTPUT)util/parse-events-flex.c
                                                   >> 319 
                                                   >> 320 $(OUTPUT)util/parse-events-bison.c: util/parse-events.y
                                                   >> 321         $(QUIET_BISON)$(BISON) -v util/parse-events.y -d $(PARSER_DEBUG_BISON) -o $(OUTPUT)util/parse-events-bison.c -p parse_events_
                                                   >> 322 
                                                   >> 323 $(OUTPUT)util/pmu-flex.c: util/pmu.l $(OUTPUT)util/pmu-bison.c
                                                   >> 324         $(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/pmu-flex.h -t util/pmu.l > $(OUTPUT)util/pmu-flex.c
                                                   >> 325 
                                                   >> 326 $(OUTPUT)util/pmu-bison.c: util/pmu.y
                                                   >> 327         $(QUIET_BISON)$(BISON) -v util/pmu.y -d -o $(OUTPUT)util/pmu-bison.c -p perf_pmu_
110                                                   328 
111 build-test-tarball:                            !! 329 $(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c
112         @$(MAKE) -f tests/make REUSE_FEATURES_ !! 330 $(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c
                                                   >> 331 
                                                   >> 332 LIB_FILE=$(OUTPUT)libperf.a
                                                   >> 333 
                                                   >> 334 LIB_H += ../../include/uapi/linux/perf_event.h
                                                   >> 335 LIB_H += ../../include/linux/rbtree.h
                                                   >> 336 LIB_H += ../../include/linux/list.h
                                                   >> 337 LIB_H += ../../include/uapi/linux/const.h
                                                   >> 338 LIB_H += ../../include/linux/hash.h
                                                   >> 339 LIB_H += ../../include/linux/stringify.h
                                                   >> 340 LIB_H += util/include/linux/bitmap.h
                                                   >> 341 LIB_H += util/include/linux/bitops.h
                                                   >> 342 LIB_H += util/include/linux/compiler.h
                                                   >> 343 LIB_H += util/include/linux/const.h
                                                   >> 344 LIB_H += util/include/linux/ctype.h
                                                   >> 345 LIB_H += util/include/linux/kernel.h
                                                   >> 346 LIB_H += util/include/linux/list.h
                                                   >> 347 LIB_H += util/include/linux/export.h
                                                   >> 348 LIB_H += util/include/linux/magic.h
                                                   >> 349 LIB_H += util/include/linux/poison.h
                                                   >> 350 LIB_H += util/include/linux/prefetch.h
                                                   >> 351 LIB_H += util/include/linux/rbtree.h
                                                   >> 352 LIB_H += util/include/linux/rbtree_augmented.h
                                                   >> 353 LIB_H += util/include/linux/string.h
                                                   >> 354 LIB_H += util/include/linux/types.h
                                                   >> 355 LIB_H += util/include/linux/linkage.h
                                                   >> 356 LIB_H += util/include/asm/asm-offsets.h
                                                   >> 357 LIB_H += util/include/asm/bug.h
                                                   >> 358 LIB_H += util/include/asm/byteorder.h
                                                   >> 359 LIB_H += util/include/asm/hweight.h
                                                   >> 360 LIB_H += util/include/asm/swab.h
                                                   >> 361 LIB_H += util/include/asm/system.h
                                                   >> 362 LIB_H += util/include/asm/uaccess.h
                                                   >> 363 LIB_H += util/include/dwarf-regs.h
                                                   >> 364 LIB_H += util/include/asm/dwarf2.h
                                                   >> 365 LIB_H += util/include/asm/cpufeature.h
                                                   >> 366 LIB_H += util/include/asm/unistd_32.h
                                                   >> 367 LIB_H += util/include/asm/unistd_64.h
                                                   >> 368 LIB_H += perf.h
                                                   >> 369 LIB_H += util/annotate.h
                                                   >> 370 LIB_H += util/cache.h
                                                   >> 371 LIB_H += util/callchain.h
                                                   >> 372 LIB_H += util/build-id.h
                                                   >> 373 LIB_H += util/debug.h
                                                   >> 374 LIB_H += util/sysfs.h
                                                   >> 375 LIB_H += util/pmu.h
                                                   >> 376 LIB_H += util/event.h
                                                   >> 377 LIB_H += util/evsel.h
                                                   >> 378 LIB_H += util/evlist.h
                                                   >> 379 LIB_H += util/exec_cmd.h
                                                   >> 380 LIB_H += util/types.h
                                                   >> 381 LIB_H += util/levenshtein.h
                                                   >> 382 LIB_H += util/machine.h
                                                   >> 383 LIB_H += util/map.h
                                                   >> 384 LIB_H += util/parse-options.h
                                                   >> 385 LIB_H += util/parse-events.h
                                                   >> 386 LIB_H += util/quote.h
                                                   >> 387 LIB_H += util/util.h
                                                   >> 388 LIB_H += util/xyarray.h
                                                   >> 389 LIB_H += util/header.h
                                                   >> 390 LIB_H += util/help.h
                                                   >> 391 LIB_H += util/session.h
                                                   >> 392 LIB_H += util/strbuf.h
                                                   >> 393 LIB_H += util/strlist.h
                                                   >> 394 LIB_H += util/strfilter.h
                                                   >> 395 LIB_H += util/svghelper.h
                                                   >> 396 LIB_H += util/tool.h
                                                   >> 397 LIB_H += util/run-command.h
                                                   >> 398 LIB_H += util/sigchain.h
                                                   >> 399 LIB_H += util/dso.h
                                                   >> 400 LIB_H += util/symbol.h
                                                   >> 401 LIB_H += util/color.h
                                                   >> 402 LIB_H += util/values.h
                                                   >> 403 LIB_H += util/sort.h
                                                   >> 404 LIB_H += util/hist.h
                                                   >> 405 LIB_H += util/thread.h
                                                   >> 406 LIB_H += util/thread_map.h
                                                   >> 407 LIB_H += util/trace-event.h
                                                   >> 408 LIB_H += util/probe-finder.h
                                                   >> 409 LIB_H += util/dwarf-aux.h
                                                   >> 410 LIB_H += util/probe-event.h
                                                   >> 411 LIB_H += util/pstack.h
                                                   >> 412 LIB_H += util/cpumap.h
                                                   >> 413 LIB_H += util/top.h
                                                   >> 414 LIB_H += $(ARCH_INCLUDE)
                                                   >> 415 LIB_H += util/cgroup.h
                                                   >> 416 LIB_H += $(TRACE_EVENT_DIR)event-parse.h
                                                   >> 417 LIB_H += util/target.h
                                                   >> 418 LIB_H += util/rblist.h
                                                   >> 419 LIB_H += util/intlist.h
                                                   >> 420 LIB_H += util/perf_regs.h
                                                   >> 421 LIB_H += util/unwind.h
                                                   >> 422 LIB_H += util/vdso.h
                                                   >> 423 LIB_H += ui/helpline.h
                                                   >> 424 LIB_H += ui/progress.h
                                                   >> 425 LIB_H += ui/util.h
                                                   >> 426 LIB_H += ui/ui.h
                                                   >> 427 
                                                   >> 428 LIB_OBJS += $(OUTPUT)util/abspath.o
                                                   >> 429 LIB_OBJS += $(OUTPUT)util/alias.o
                                                   >> 430 LIB_OBJS += $(OUTPUT)util/annotate.o
                                                   >> 431 LIB_OBJS += $(OUTPUT)util/build-id.o
                                                   >> 432 LIB_OBJS += $(OUTPUT)util/config.o
                                                   >> 433 LIB_OBJS += $(OUTPUT)util/ctype.o
                                                   >> 434 LIB_OBJS += $(OUTPUT)util/sysfs.o
                                                   >> 435 LIB_OBJS += $(OUTPUT)util/pmu.o
                                                   >> 436 LIB_OBJS += $(OUTPUT)util/environment.o
                                                   >> 437 LIB_OBJS += $(OUTPUT)util/event.o
                                                   >> 438 LIB_OBJS += $(OUTPUT)util/evlist.o
                                                   >> 439 LIB_OBJS += $(OUTPUT)util/evsel.o
                                                   >> 440 LIB_OBJS += $(OUTPUT)util/exec_cmd.o
                                                   >> 441 LIB_OBJS += $(OUTPUT)util/help.o
                                                   >> 442 LIB_OBJS += $(OUTPUT)util/levenshtein.o
                                                   >> 443 LIB_OBJS += $(OUTPUT)util/parse-options.o
                                                   >> 444 LIB_OBJS += $(OUTPUT)util/parse-events.o
                                                   >> 445 LIB_OBJS += $(OUTPUT)util/path.o
                                                   >> 446 LIB_OBJS += $(OUTPUT)util/rbtree.o
                                                   >> 447 LIB_OBJS += $(OUTPUT)util/bitmap.o
                                                   >> 448 LIB_OBJS += $(OUTPUT)util/hweight.o
                                                   >> 449 LIB_OBJS += $(OUTPUT)util/run-command.o
                                                   >> 450 LIB_OBJS += $(OUTPUT)util/quote.o
                                                   >> 451 LIB_OBJS += $(OUTPUT)util/strbuf.o
                                                   >> 452 LIB_OBJS += $(OUTPUT)util/string.o
                                                   >> 453 LIB_OBJS += $(OUTPUT)util/strlist.o
                                                   >> 454 LIB_OBJS += $(OUTPUT)util/strfilter.o
                                                   >> 455 LIB_OBJS += $(OUTPUT)util/top.o
                                                   >> 456 LIB_OBJS += $(OUTPUT)util/usage.o
                                                   >> 457 LIB_OBJS += $(OUTPUT)util/wrapper.o
                                                   >> 458 LIB_OBJS += $(OUTPUT)util/sigchain.o
                                                   >> 459 LIB_OBJS += $(OUTPUT)util/dso.o
                                                   >> 460 LIB_OBJS += $(OUTPUT)util/symbol.o
                                                   >> 461 LIB_OBJS += $(OUTPUT)util/symbol-elf.o
                                                   >> 462 LIB_OBJS += $(OUTPUT)util/color.o
                                                   >> 463 LIB_OBJS += $(OUTPUT)util/pager.o
                                                   >> 464 LIB_OBJS += $(OUTPUT)util/header.o
                                                   >> 465 LIB_OBJS += $(OUTPUT)util/callchain.o
                                                   >> 466 LIB_OBJS += $(OUTPUT)util/values.o
                                                   >> 467 LIB_OBJS += $(OUTPUT)util/debug.o
                                                   >> 468 LIB_OBJS += $(OUTPUT)util/machine.o
                                                   >> 469 LIB_OBJS += $(OUTPUT)util/map.o
                                                   >> 470 LIB_OBJS += $(OUTPUT)util/pstack.o
                                                   >> 471 LIB_OBJS += $(OUTPUT)util/session.o
                                                   >> 472 LIB_OBJS += $(OUTPUT)util/thread.o
                                                   >> 473 LIB_OBJS += $(OUTPUT)util/thread_map.o
                                                   >> 474 LIB_OBJS += $(OUTPUT)util/trace-event-parse.o
                                                   >> 475 LIB_OBJS += $(OUTPUT)util/parse-events-flex.o
                                                   >> 476 LIB_OBJS += $(OUTPUT)util/parse-events-bison.o
                                                   >> 477 LIB_OBJS += $(OUTPUT)util/pmu-flex.o
                                                   >> 478 LIB_OBJS += $(OUTPUT)util/pmu-bison.o
                                                   >> 479 LIB_OBJS += $(OUTPUT)util/trace-event-read.o
                                                   >> 480 LIB_OBJS += $(OUTPUT)util/trace-event-info.o
                                                   >> 481 LIB_OBJS += $(OUTPUT)util/trace-event-scripting.o
                                                   >> 482 LIB_OBJS += $(OUTPUT)util/svghelper.o
                                                   >> 483 LIB_OBJS += $(OUTPUT)util/sort.o
                                                   >> 484 LIB_OBJS += $(OUTPUT)util/hist.o
                                                   >> 485 LIB_OBJS += $(OUTPUT)util/probe-event.o
                                                   >> 486 LIB_OBJS += $(OUTPUT)util/util.o
                                                   >> 487 LIB_OBJS += $(OUTPUT)util/xyarray.o
                                                   >> 488 LIB_OBJS += $(OUTPUT)util/cpumap.o
                                                   >> 489 LIB_OBJS += $(OUTPUT)util/cgroup.o
                                                   >> 490 LIB_OBJS += $(OUTPUT)util/target.o
                                                   >> 491 LIB_OBJS += $(OUTPUT)util/rblist.o
                                                   >> 492 LIB_OBJS += $(OUTPUT)util/intlist.o
                                                   >> 493 LIB_OBJS += $(OUTPUT)util/vdso.o
                                                   >> 494 LIB_OBJS += $(OUTPUT)util/stat.o
                                                   >> 495 
                                                   >> 496 LIB_OBJS += $(OUTPUT)ui/setup.o
                                                   >> 497 LIB_OBJS += $(OUTPUT)ui/helpline.o
                                                   >> 498 LIB_OBJS += $(OUTPUT)ui/progress.o
                                                   >> 499 LIB_OBJS += $(OUTPUT)ui/util.o
                                                   >> 500 LIB_OBJS += $(OUTPUT)ui/hist.o
                                                   >> 501 LIB_OBJS += $(OUTPUT)ui/stdio/hist.o
                                                   >> 502 
                                                   >> 503 LIB_OBJS += $(OUTPUT)arch/common.o
                                                   >> 504 
                                                   >> 505 LIB_OBJS += $(OUTPUT)tests/parse-events.o
                                                   >> 506 LIB_OBJS += $(OUTPUT)tests/dso-data.o
                                                   >> 507 LIB_OBJS += $(OUTPUT)tests/attr.o
                                                   >> 508 LIB_OBJS += $(OUTPUT)tests/vmlinux-kallsyms.o
                                                   >> 509 LIB_OBJS += $(OUTPUT)tests/open-syscall.o
                                                   >> 510 LIB_OBJS += $(OUTPUT)tests/open-syscall-all-cpus.o
                                                   >> 511 LIB_OBJS += $(OUTPUT)tests/open-syscall-tp-fields.o
                                                   >> 512 LIB_OBJS += $(OUTPUT)tests/mmap-basic.o
                                                   >> 513 LIB_OBJS += $(OUTPUT)tests/perf-record.o
                                                   >> 514 LIB_OBJS += $(OUTPUT)tests/rdpmc.o
                                                   >> 515 LIB_OBJS += $(OUTPUT)tests/evsel-roundtrip-name.o
                                                   >> 516 LIB_OBJS += $(OUTPUT)tests/evsel-tp-sched.o
                                                   >> 517 LIB_OBJS += $(OUTPUT)tests/pmu.o
                                                   >> 518 LIB_OBJS += $(OUTPUT)tests/hists_link.o
                                                   >> 519 LIB_OBJS += $(OUTPUT)tests/python-use.o
                                                   >> 520 LIB_OBJS += $(OUTPUT)tests/bp_signal.o
                                                   >> 521 LIB_OBJS += $(OUTPUT)tests/bp_signal_overflow.o
                                                   >> 522 LIB_OBJS += $(OUTPUT)tests/task-exit.o
                                                   >> 523 LIB_OBJS += $(OUTPUT)tests/sw-clock.o
                                                   >> 524 
                                                   >> 525 BUILTIN_OBJS += $(OUTPUT)builtin-annotate.o
                                                   >> 526 BUILTIN_OBJS += $(OUTPUT)builtin-bench.o
                                                   >> 527 # Benchmark modules
                                                   >> 528 BUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o
                                                   >> 529 BUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o
                                                   >> 530 ifeq ($(RAW_ARCH),x86_64)
                                                   >> 531 BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy-x86-64-asm.o
                                                   >> 532 BUILTIN_OBJS += $(OUTPUT)bench/mem-memset-x86-64-asm.o
                                                   >> 533 endif
                                                   >> 534 BUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o
                                                   >> 535 BUILTIN_OBJS += $(OUTPUT)bench/mem-memset.o
                                                   >> 536 
                                                   >> 537 BUILTIN_OBJS += $(OUTPUT)builtin-diff.o
                                                   >> 538 BUILTIN_OBJS += $(OUTPUT)builtin-evlist.o
                                                   >> 539 BUILTIN_OBJS += $(OUTPUT)builtin-help.o
                                                   >> 540 BUILTIN_OBJS += $(OUTPUT)builtin-sched.o
                                                   >> 541 BUILTIN_OBJS += $(OUTPUT)builtin-buildid-list.o
                                                   >> 542 BUILTIN_OBJS += $(OUTPUT)builtin-buildid-cache.o
                                                   >> 543 BUILTIN_OBJS += $(OUTPUT)builtin-list.o
                                                   >> 544 BUILTIN_OBJS += $(OUTPUT)builtin-record.o
                                                   >> 545 BUILTIN_OBJS += $(OUTPUT)builtin-report.o
                                                   >> 546 BUILTIN_OBJS += $(OUTPUT)builtin-stat.o
                                                   >> 547 BUILTIN_OBJS += $(OUTPUT)builtin-timechart.o
                                                   >> 548 BUILTIN_OBJS += $(OUTPUT)builtin-top.o
                                                   >> 549 BUILTIN_OBJS += $(OUTPUT)builtin-script.o
                                                   >> 550 BUILTIN_OBJS += $(OUTPUT)builtin-probe.o
                                                   >> 551 BUILTIN_OBJS += $(OUTPUT)builtin-kmem.o
                                                   >> 552 BUILTIN_OBJS += $(OUTPUT)builtin-lock.o
                                                   >> 553 BUILTIN_OBJS += $(OUTPUT)builtin-kvm.o
                                                   >> 554 BUILTIN_OBJS += $(OUTPUT)builtin-inject.o
                                                   >> 555 BUILTIN_OBJS += $(OUTPUT)tests/builtin-test.o
                                                   >> 556 BUILTIN_OBJS += $(OUTPUT)builtin-mem.o
                                                   >> 557 
                                                   >> 558 PERFLIBS = $(LIB_FILE) $(LIBLK) $(LIBTRACEEVENT)
113                                                   559 
114 #                                                 560 #
115 # All other targets get passed through:        !! 561 # Platform specific tweaks
116 #                                                 562 #
117 %: FORCE                                       !! 563 ifneq ($(MAKECMDGOALS),clean)
118         $(print_msg)                           !! 564 ifneq ($(MAKECMDGOALS),tags)
119         $(make)                                !! 565 
                                                   >> 566 # We choose to avoid "if .. else if .. else .. endif endif"
                                                   >> 567 # because maintaining the nesting to match is a pain.  If
                                                   >> 568 # we had "elif" things would have been much nicer...
                                                   >> 569 
                                                   >> 570 ifdef NO_LIBELF
                                                   >> 571         NO_DWARF := 1
                                                   >> 572         NO_DEMANGLE := 1
                                                   >> 573         NO_LIBUNWIND := 1
                                                   >> 574 else
                                                   >> 575 FLAGS_LIBELF=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
                                                   >> 576 ifneq ($(call try-cc,$(SOURCE_LIBELF),$(FLAGS_LIBELF),libelf),y)
                                                   >> 577         FLAGS_GLIBC=$(ALL_CFLAGS) $(ALL_LDFLAGS)
                                                   >> 578         ifeq ($(call try-cc,$(SOURCE_GLIBC),$(FLAGS_GLIBC),glibc),y)
                                                   >> 579                 LIBC_SUPPORT := 1
                                                   >> 580         endif
                                                   >> 581         ifeq ($(BIONIC),1)
                                                   >> 582                 LIBC_SUPPORT := 1
                                                   >> 583         endif
                                                   >> 584         ifeq ($(LIBC_SUPPORT),1)
                                                   >> 585                 msg := $(warning No libelf found, disables 'probe' tool, please install elfutils-libelf-devel/libelf-dev);
                                                   >> 586 
                                                   >> 587                 NO_LIBELF := 1
                                                   >> 588                 NO_DWARF := 1
                                                   >> 589                 NO_DEMANGLE := 1
                                                   >> 590         else
                                                   >> 591                 msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static);
                                                   >> 592         endif
                                                   >> 593 else
                                                   >> 594         # for linking with debug library, run like:
                                                   >> 595         # make DEBUG=1 LIBDW_DIR=/opt/libdw/
                                                   >> 596         ifdef LIBDW_DIR
                                                   >> 597                 LIBDW_CFLAGS  := -I$(LIBDW_DIR)/include
                                                   >> 598                 LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib
                                                   >> 599         endif
                                                   >> 600 
                                                   >> 601         FLAGS_DWARF=$(ALL_CFLAGS) $(LIBDW_CFLAGS) -ldw -lelf $(LIBDW_LDFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
                                                   >> 602         ifneq ($(call try-cc,$(SOURCE_DWARF),$(FLAGS_DWARF),libdw),y)
                                                   >> 603                 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);
                                                   >> 604                 NO_DWARF := 1
                                                   >> 605         endif # Dwarf support
                                                   >> 606 endif # SOURCE_LIBELF
                                                   >> 607 endif # NO_LIBELF
                                                   >> 608 
                                                   >> 609 # There's only x86 (both 32 and 64) support for CFI unwind so far
                                                   >> 610 ifneq ($(ARCH),x86)
                                                   >> 611         NO_LIBUNWIND := 1
                                                   >> 612 endif
                                                   >> 613 
                                                   >> 614 ifndef NO_LIBUNWIND
                                                   >> 615 # for linking with debug library, run like:
                                                   >> 616 # make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
                                                   >> 617 ifdef LIBUNWIND_DIR
                                                   >> 618         LIBUNWIND_CFLAGS  := -I$(LIBUNWIND_DIR)/include
                                                   >> 619         LIBUNWIND_LDFLAGS := -L$(LIBUNWIND_DIR)/lib
                                                   >> 620 endif
                                                   >> 621 
                                                   >> 622 FLAGS_UNWIND=$(LIBUNWIND_CFLAGS) $(ALL_CFLAGS) $(LIBUNWIND_LDFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) $(LIBUNWIND_LIBS)
                                                   >> 623 ifneq ($(call try-cc,$(SOURCE_LIBUNWIND),$(FLAGS_UNWIND),libunwind),y)
                                                   >> 624         msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99);
                                                   >> 625         NO_LIBUNWIND := 1
                                                   >> 626 endif # Libunwind support
                                                   >> 627 endif # NO_LIBUNWIND
                                                   >> 628 
                                                   >> 629 -include arch/$(ARCH)/Makefile
                                                   >> 630 
                                                   >> 631 ifneq ($(OUTPUT),)
                                                   >> 632         BASIC_CFLAGS += -I$(OUTPUT)
                                                   >> 633 endif
                                                   >> 634 
                                                   >> 635 ifdef NO_LIBELF
                                                   >> 636 EXTLIBS := $(filter-out -lelf,$(EXTLIBS))
                                                   >> 637 
                                                   >> 638 # Remove ELF/DWARF dependent codes
                                                   >> 639 LIB_OBJS := $(filter-out $(OUTPUT)util/symbol-elf.o,$(LIB_OBJS))
                                                   >> 640 LIB_OBJS := $(filter-out $(OUTPUT)util/dwarf-aux.o,$(LIB_OBJS))
                                                   >> 641 LIB_OBJS := $(filter-out $(OUTPUT)util/probe-event.o,$(LIB_OBJS))
                                                   >> 642 LIB_OBJS := $(filter-out $(OUTPUT)util/probe-finder.o,$(LIB_OBJS))
                                                   >> 643 
                                                   >> 644 BUILTIN_OBJS := $(filter-out $(OUTPUT)builtin-probe.o,$(BUILTIN_OBJS))
                                                   >> 645 
                                                   >> 646 # Use minimal symbol handling
                                                   >> 647 LIB_OBJS += $(OUTPUT)util/symbol-minimal.o
                                                   >> 648 
                                                   >> 649 else # NO_LIBELF
                                                   >> 650 BASIC_CFLAGS += -DLIBELF_SUPPORT
                                                   >> 651 
                                                   >> 652 FLAGS_LIBELF=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
                                                   >> 653 ifeq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_LIBELF),-DLIBELF_MMAP),y)
                                                   >> 654         BASIC_CFLAGS += -DLIBELF_MMAP
                                                   >> 655 endif
                                                   >> 656 
                                                   >> 657 ifndef NO_DWARF
                                                   >> 658 ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
                                                   >> 659         msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled);
                                                   >> 660 else
                                                   >> 661         BASIC_CFLAGS := -DDWARF_SUPPORT $(LIBDW_CFLAGS) $(BASIC_CFLAGS)
                                                   >> 662         BASIC_LDFLAGS := $(LIBDW_LDFLAGS) $(BASIC_LDFLAGS)
                                                   >> 663         EXTLIBS += -lelf -ldw
                                                   >> 664         LIB_OBJS += $(OUTPUT)util/probe-finder.o
                                                   >> 665         LIB_OBJS += $(OUTPUT)util/dwarf-aux.o
                                                   >> 666 endif # PERF_HAVE_DWARF_REGS
                                                   >> 667 endif # NO_DWARF
                                                   >> 668 endif # NO_LIBELF
                                                   >> 669 
                                                   >> 670 ifndef NO_LIBUNWIND
                                                   >> 671         BASIC_CFLAGS += -DLIBUNWIND_SUPPORT
                                                   >> 672         EXTLIBS += $(LIBUNWIND_LIBS)
                                                   >> 673         BASIC_CFLAGS := $(LIBUNWIND_CFLAGS) $(BASIC_CFLAGS)
                                                   >> 674         BASIC_LDFLAGS := $(LIBUNWIND_LDFLAGS) $(BASIC_LDFLAGS)
                                                   >> 675         LIB_OBJS += $(OUTPUT)util/unwind.o
                                                   >> 676 endif
                                                   >> 677 
                                                   >> 678 ifndef NO_LIBAUDIT
                                                   >> 679         FLAGS_LIBAUDIT = $(ALL_CFLAGS) $(ALL_LDFLAGS) -laudit
                                                   >> 680         ifneq ($(call try-cc,$(SOURCE_LIBAUDIT),$(FLAGS_LIBAUDIT),libaudit),y)
                                                   >> 681                 msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
                                                   >> 682         else
                                                   >> 683                 BASIC_CFLAGS += -DLIBAUDIT_SUPPORT
                                                   >> 684                 BUILTIN_OBJS += $(OUTPUT)builtin-trace.o
                                                   >> 685                 EXTLIBS += -laudit
                                                   >> 686         endif
                                                   >> 687 endif
                                                   >> 688 
                                                   >> 689 ifndef NO_SLANG
                                                   >> 690         FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -I/usr/include/slang -lslang
                                                   >> 691         ifneq ($(call try-cc,$(SOURCE_SLANG),$(FLAGS_SLANG),libslang),y)
                                                   >> 692                 msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
                                                   >> 693         else
                                                   >> 694                 # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
                                                   >> 695                 BASIC_CFLAGS += -I/usr/include/slang
                                                   >> 696                 BASIC_CFLAGS += -DSLANG_SUPPORT
                                                   >> 697                 EXTLIBS += -lslang
                                                   >> 698                 LIB_OBJS += $(OUTPUT)ui/browser.o
                                                   >> 699                 LIB_OBJS += $(OUTPUT)ui/browsers/annotate.o
                                                   >> 700                 LIB_OBJS += $(OUTPUT)ui/browsers/hists.o
                                                   >> 701                 LIB_OBJS += $(OUTPUT)ui/browsers/map.o
                                                   >> 702                 LIB_OBJS += $(OUTPUT)ui/browsers/scripts.o
                                                   >> 703                 LIB_OBJS += $(OUTPUT)ui/tui/setup.o
                                                   >> 704                 LIB_OBJS += $(OUTPUT)ui/tui/util.o
                                                   >> 705                 LIB_OBJS += $(OUTPUT)ui/tui/helpline.o
                                                   >> 706                 LIB_OBJS += $(OUTPUT)ui/tui/progress.o
                                                   >> 707                 LIB_H += ui/browser.h
                                                   >> 708                 LIB_H += ui/browsers/map.h
                                                   >> 709                 LIB_H += ui/keysyms.h
                                                   >> 710                 LIB_H += ui/libslang.h
                                                   >> 711         endif
                                                   >> 712 endif
                                                   >> 713 
                                                   >> 714 ifndef NO_GTK2
                                                   >> 715         FLAGS_GTK2=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
                                                   >> 716         ifneq ($(call try-cc,$(SOURCE_GTK2),$(FLAGS_GTK2),gtk2),y)
                                                   >> 717                 msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
                                                   >> 718         else
                                                   >> 719                 ifeq ($(call try-cc,$(SOURCE_GTK2_INFOBAR),$(FLAGS_GTK2),-DHAVE_GTK_INFO_BAR),y)
                                                   >> 720                         BASIC_CFLAGS += -DHAVE_GTK_INFO_BAR
                                                   >> 721                 endif
                                                   >> 722                 BASIC_CFLAGS += -DGTK2_SUPPORT
                                                   >> 723                 BASIC_CFLAGS += $(shell pkg-config --cflags gtk+-2.0 2>/dev/null)
                                                   >> 724                 EXTLIBS += $(shell pkg-config --libs gtk+-2.0 2>/dev/null)
                                                   >> 725                 LIB_OBJS += $(OUTPUT)ui/gtk/browser.o
                                                   >> 726                 LIB_OBJS += $(OUTPUT)ui/gtk/hists.o
                                                   >> 727                 LIB_OBJS += $(OUTPUT)ui/gtk/setup.o
                                                   >> 728                 LIB_OBJS += $(OUTPUT)ui/gtk/util.o
                                                   >> 729                 LIB_OBJS += $(OUTPUT)ui/gtk/helpline.o
                                                   >> 730                 LIB_OBJS += $(OUTPUT)ui/gtk/progress.o
                                                   >> 731                 LIB_OBJS += $(OUTPUT)ui/gtk/annotate.o
                                                   >> 732         endif
                                                   >> 733 endif
                                                   >> 734 
                                                   >> 735 ifdef NO_LIBPERL
                                                   >> 736         BASIC_CFLAGS += -DNO_LIBPERL
                                                   >> 737 else
                                                   >> 738        PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
                                                   >> 739        PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
                                                   >> 740        PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
                                                   >> 741         PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null`
                                                   >> 742         FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
                                                   >> 743 
                                                   >> 744         ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED),perl),y)
                                                   >> 745                 BASIC_CFLAGS += -DNO_LIBPERL
                                                   >> 746         else
                                                   >> 747                ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS)
                                                   >> 748                EXTLIBS += $(PERL_EMBED_LIBADD)
                                                   >> 749                 LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o
                                                   >> 750                 LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o
                                                   >> 751         endif
                                                   >> 752 endif
                                                   >> 753 
                                                   >> 754 disable-python = $(eval $(disable-python_code))
                                                   >> 755 define disable-python_code
                                                   >> 756   BASIC_CFLAGS += -DNO_LIBPYTHON
                                                   >> 757   $(if $(1),$(warning No $(1) was found))
                                                   >> 758   $(warning Python support will not be built)
                                                   >> 759 endef
                                                   >> 760 
                                                   >> 761 override PYTHON := \
                                                   >> 762   $(call get-executable-or-default,PYTHON,python)
                                                   >> 763 
                                                   >> 764 ifndef PYTHON
                                                   >> 765   $(call disable-python,python interpreter)
                                                   >> 766 else
                                                   >> 767 
                                                   >> 768   PYTHON_WORD := $(call shell-wordify,$(PYTHON))
                                                   >> 769 
                                                   >> 770   ifdef NO_LIBPYTHON
                                                   >> 771     $(call disable-python)
                                                   >> 772   else
                                                   >> 773 
                                                   >> 774     override PYTHON_CONFIG := \
                                                   >> 775       $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config)
                                                   >> 776 
                                                   >> 777     ifndef PYTHON_CONFIG
                                                   >> 778       $(call disable-python,python-config tool)
                                                   >> 779     else
                                                   >> 780 
                                                   >> 781       PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
                                                   >> 782 
                                                   >> 783       PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
                                                   >> 784       PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
                                                   >> 785       PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS))
                                                   >> 786       PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
                                                   >> 787       FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
                                                   >> 788 
                                                   >> 789       ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED),python),y)
                                                   >> 790         $(call disable-python,Python.h (for Python 2.x))
                                                   >> 791       else
                                                   >> 792 
                                                   >> 793         ifneq ($(call try-cc,$(SOURCE_PYTHON_VERSION),$(FLAGS_PYTHON_EMBED),python version),y)
                                                   >> 794           $(warning Python 3 is not yet supported; please set)
                                                   >> 795           $(warning PYTHON and/or PYTHON_CONFIG appropriately.)
                                                   >> 796           $(warning If you also have Python 2 installed, then)
                                                   >> 797           $(warning try something like:)
                                                   >> 798           $(warning $(and ,))
                                                   >> 799           $(warning $(and ,)  make PYTHON=python2)
                                                   >> 800           $(warning $(and ,))
                                                   >> 801           $(warning Otherwise, disable Python support entirely:)
                                                   >> 802           $(warning $(and ,))
                                                   >> 803           $(warning $(and ,)  make NO_LIBPYTHON=1)
                                                   >> 804           $(warning $(and ,))
                                                   >> 805           $(error   $(and ,))
                                                   >> 806         else
                                                   >> 807           ALL_LDFLAGS += $(PYTHON_EMBED_LDFLAGS)
                                                   >> 808           EXTLIBS += $(PYTHON_EMBED_LIBADD)
                                                   >> 809           LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o
                                                   >> 810           LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o
                                                   >> 811           LANG_BINDINGS += $(OUTPUT)python/perf.so
                                                   >> 812         endif
                                                   >> 813 
                                                   >> 814       endif
                                                   >> 815     endif
                                                   >> 816   endif
                                                   >> 817 endif
                                                   >> 818 
                                                   >> 819 ifdef NO_DEMANGLE
                                                   >> 820         BASIC_CFLAGS += -DNO_DEMANGLE
                                                   >> 821 else
                                                   >> 822         ifdef HAVE_CPLUS_DEMANGLE
                                                   >> 823                 EXTLIBS += -liberty
                                                   >> 824                 BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
                                                   >> 825         else
                                                   >> 826                 FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -DPACKAGE='perf' -lbfd
                                                   >> 827                 has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD),libbfd)
                                                   >> 828                 ifeq ($(has_bfd),y)
                                                   >> 829                         EXTLIBS += -lbfd
                                                   >> 830                 else
                                                   >> 831                         FLAGS_BFD_IBERTY=$(FLAGS_BFD) -liberty
                                                   >> 832                         has_bfd_iberty := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY),liberty)
                                                   >> 833                         ifeq ($(has_bfd_iberty),y)
                                                   >> 834                                 EXTLIBS += -lbfd -liberty
                                                   >> 835                         else
                                                   >> 836                                 FLAGS_BFD_IBERTY_Z=$(FLAGS_BFD_IBERTY) -lz
                                                   >> 837                                 has_bfd_iberty_z := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY_Z),libz)
                                                   >> 838                                 ifeq ($(has_bfd_iberty_z),y)
                                                   >> 839                                         EXTLIBS += -lbfd -liberty -lz
                                                   >> 840                                 else
                                                   >> 841                                         FLAGS_CPLUS_DEMANGLE=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -liberty
                                                   >> 842                                         has_cplus_demangle := $(call try-cc,$(SOURCE_CPLUS_DEMANGLE),$(FLAGS_CPLUS_DEMANGLE),demangle)
                                                   >> 843                                         ifeq ($(has_cplus_demangle),y)
                                                   >> 844                                                 EXTLIBS += -liberty
                                                   >> 845                                                 BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
                                                   >> 846                                         else
                                                   >> 847                                                 msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling)
                                                   >> 848                                                 BASIC_CFLAGS += -DNO_DEMANGLE
                                                   >> 849                                         endif
                                                   >> 850                                 endif
                                                   >> 851                         endif
                                                   >> 852                 endif
                                                   >> 853         endif
                                                   >> 854 endif
                                                   >> 855 
                                                   >> 856 ifeq ($(NO_PERF_REGS),0)
                                                   >> 857         ifeq ($(ARCH),x86)
                                                   >> 858                 LIB_H += arch/x86/include/perf_regs.h
                                                   >> 859         endif
                                                   >> 860         BASIC_CFLAGS += -DHAVE_PERF_REGS
                                                   >> 861 endif
                                                   >> 862 
                                                   >> 863 ifndef NO_STRLCPY
                                                   >> 864         ifeq ($(call try-cc,$(SOURCE_STRLCPY),,-DHAVE_STRLCPY),y)
                                                   >> 865                 BASIC_CFLAGS += -DHAVE_STRLCPY
                                                   >> 866         endif
                                                   >> 867 endif
                                                   >> 868 
                                                   >> 869 ifndef NO_ON_EXIT
                                                   >> 870         ifeq ($(call try-cc,$(SOURCE_ON_EXIT),,-DHAVE_ON_EXIT),y)
                                                   >> 871                 BASIC_CFLAGS += -DHAVE_ON_EXIT
                                                   >> 872         endif
                                                   >> 873 endif
                                                   >> 874 
                                                   >> 875 ifndef NO_BACKTRACE
                                                   >> 876        ifeq ($(call try-cc,$(SOURCE_BACKTRACE),,-DBACKTRACE_SUPPORT),y)
                                                   >> 877                BASIC_CFLAGS += -DBACKTRACE_SUPPORT
                                                   >> 878        endif
                                                   >> 879 endif
                                                   >> 880 
                                                   >> 881 ifndef NO_LIBNUMA
                                                   >> 882         FLAGS_LIBNUMA = $(ALL_CFLAGS) $(ALL_LDFLAGS) -lnuma
                                                   >> 883         ifneq ($(call try-cc,$(SOURCE_LIBNUMA),$(FLAGS_LIBNUMA),libnuma),y)
                                                   >> 884                 msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numa-libs-devel or libnuma-dev);
                                                   >> 885         else
                                                   >> 886                 BASIC_CFLAGS += -DLIBNUMA_SUPPORT
                                                   >> 887                 BUILTIN_OBJS += $(OUTPUT)bench/numa.o
                                                   >> 888                 EXTLIBS += -lnuma
                                                   >> 889         endif
                                                   >> 890 endif
                                                   >> 891 
                                                   >> 892 ifdef ASCIIDOC8
                                                   >> 893         export ASCIIDOC8
                                                   >> 894 endif
                                                   >> 895 
                                                   >> 896 endif # MAKECMDGOALS != tags
                                                   >> 897 endif # MAKECMDGOALS != clean
                                                   >> 898 
                                                   >> 899 # Shell quote (do not use $(call) to accommodate ancient setups);
                                                   >> 900 
                                                   >> 901 ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
                                                   >> 902 
                                                   >> 903 DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
                                                   >> 904 bindir_SQ = $(subst ','\'',$(bindir))
                                                   >> 905 bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
                                                   >> 906 mandir_SQ = $(subst ','\'',$(mandir))
                                                   >> 907 infodir_SQ = $(subst ','\'',$(infodir))
                                                   >> 908 perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
                                                   >> 909 template_dir_SQ = $(subst ','\'',$(template_dir))
                                                   >> 910 htmldir_SQ = $(subst ','\'',$(htmldir))
                                                   >> 911 prefix_SQ = $(subst ','\'',$(prefix))
                                                   >> 912 sysconfdir_SQ = $(subst ','\'',$(sysconfdir))
                                                   >> 913 
                                                   >> 914 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
                                                   >> 915 
                                                   >> 916 LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
                                                   >> 917 
                                                   >> 918 ALL_CFLAGS += $(BASIC_CFLAGS)
                                                   >> 919 ALL_CFLAGS += $(ARCH_CFLAGS)
                                                   >> 920 ALL_LDFLAGS += $(BASIC_LDFLAGS)
                                                   >> 921 
                                                   >> 922 export INSTALL SHELL_PATH
                                                   >> 923 
                                                   >> 924 
                                                   >> 925 ### Build rules
                                                   >> 926 
                                                   >> 927 SHELL = $(SHELL_PATH)
                                                   >> 928 
                                                   >> 929 all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
                                                   >> 930 
                                                   >> 931 please_set_SHELL_PATH_to_a_more_modern_shell:
                                                   >> 932         @$$(:)
                                                   >> 933 
                                                   >> 934 shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
                                                   >> 935 
                                                   >> 936 strip: $(PROGRAMS) $(OUTPUT)perf
                                                   >> 937         $(STRIP) $(STRIP_OPTS) $(PROGRAMS) $(OUTPUT)perf
                                                   >> 938 
                                                   >> 939 $(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
                                                   >> 940         $(QUIET_CC)$(CC) -include $(OUTPUT)PERF-VERSION-FILE \
                                                   >> 941                 '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
                                                   >> 942                 $(ALL_CFLAGS) -c $(filter %.c,$^) -o $@
                                                   >> 943 
                                                   >> 944 $(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS)
                                                   >> 945         $(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \
                                                   >> 946                $(BUILTIN_OBJS) $(LIBS) -o $@
                                                   >> 947 
                                                   >> 948 $(OUTPUT)builtin-help.o: builtin-help.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
                                                   >> 949         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
                                                   >> 950                 '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
                                                   >> 951                 '-DPERF_MAN_PATH="$(mandir_SQ)"' \
                                                   >> 952                 '-DPERF_INFO_PATH="$(infodir_SQ)"' $<
                                                   >> 953 
                                                   >> 954 $(OUTPUT)builtin-timechart.o: builtin-timechart.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
                                                   >> 955         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
                                                   >> 956                 '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
                                                   >> 957                 '-DPERF_MAN_PATH="$(mandir_SQ)"' \
                                                   >> 958                 '-DPERF_INFO_PATH="$(infodir_SQ)"' $<
                                                   >> 959 
                                                   >> 960 $(OUTPUT)common-cmds.h: util/generate-cmdlist.sh command-list.txt
                                                   >> 961 
                                                   >> 962 $(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
                                                   >> 963         $(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
                                                   >> 964 
                                                   >> 965 $(SCRIPTS) : % : %.sh
                                                   >> 966         $(QUIET_GEN)$(INSTALL) '$@.sh' '$(OUTPUT)$@'
                                                   >> 967 
                                                   >> 968 # These can record PERF_VERSION
                                                   >> 969 $(OUTPUT)perf.o perf.spec \
                                                   >> 970         $(SCRIPTS) \
                                                   >> 971         : $(OUTPUT)PERF-VERSION-FILE
                                                   >> 972 
                                                   >> 973 .SUFFIXES:
                                                   >> 974 .SUFFIXES: .o .c .S .s
                                                   >> 975 
                                                   >> 976 # These two need to be here so that when O= is not used they take precedence
                                                   >> 977 # over the general rule for .o
                                                   >> 978 
                                                   >> 979 $(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
                                                   >> 980         $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(ALL_CFLAGS) -w $<
                                                   >> 981 
                                                   >> 982 $(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
                                                   >> 983         $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w $<
                                                   >> 984 
                                                   >> 985 $(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
                                                   >> 986         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
                                                   >> 987 $(OUTPUT)%.i: %.c $(OUTPUT)PERF-CFLAGS
                                                   >> 988         $(QUIET_CC)$(CC) -o $@ -E $(ALL_CFLAGS) $<
                                                   >> 989 $(OUTPUT)%.s: %.c $(OUTPUT)PERF-CFLAGS
                                                   >> 990         $(QUIET_CC)$(CC) -o $@ -S $(ALL_CFLAGS) $<
                                                   >> 991 $(OUTPUT)%.o: %.S
                                                   >> 992         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
                                                   >> 993 $(OUTPUT)%.s: %.S
                                                   >> 994         $(QUIET_CC)$(CC) -o $@ -E $(ALL_CFLAGS) $<
                                                   >> 995 
                                                   >> 996 $(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS
                                                   >> 997         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
                                                   >> 998                 '-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \
                                                   >> 999                 '-DPREFIX="$(prefix_SQ)"' \
                                                   >> 1000                 $<
                                                   >> 1001 
                                                   >> 1002 $(OUTPUT)tests/attr.o: tests/attr.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1003         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
                                                   >> 1004                 '-DBINDIR="$(bindir_SQ)"' -DPYTHON='"$(PYTHON_WORD)"' \
                                                   >> 1005                 $<
                                                   >> 1006 
                                                   >> 1007 $(OUTPUT)tests/python-use.o: tests/python-use.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1008         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
                                                   >> 1009                 -DPYTHONPATH='"$(OUTPUT)python"' \
                                                   >> 1010                 -DPYTHON='"$(PYTHON_WORD)"' \
                                                   >> 1011                 $<
                                                   >> 1012 
                                                   >> 1013 $(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1014         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
                                                   >> 1015 
                                                   >> 1016 $(OUTPUT)ui/browser.o: ui/browser.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1017         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
                                                   >> 1018 
                                                   >> 1019 $(OUTPUT)ui/browsers/annotate.o: ui/browsers/annotate.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1020         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
                                                   >> 1021 
                                                   >> 1022 $(OUTPUT)ui/browsers/hists.o: ui/browsers/hists.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1023         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
                                                   >> 1024 
                                                   >> 1025 $(OUTPUT)ui/browsers/map.o: ui/browsers/map.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1026         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
                                                   >> 1027 
                                                   >> 1028 $(OUTPUT)ui/browsers/scripts.o: ui/browsers/scripts.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1029         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
                                                   >> 1030 
                                                   >> 1031 $(OUTPUT)util/rbtree.o: ../../lib/rbtree.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1032         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
                                                   >> 1033 
                                                   >> 1034 $(OUTPUT)util/parse-events.o: util/parse-events.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1035         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Wno-redundant-decls $<
                                                   >> 1036 
                                                   >> 1037 $(OUTPUT)util/scripting-engines/trace-event-perl.o: util/scripting-engines/trace-event-perl.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1038         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
                                                   >> 1039 
                                                   >> 1040 $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1041         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
                                                   >> 1042 
                                                   >> 1043 $(OUTPUT)util/scripting-engines/trace-event-python.o: util/scripting-engines/trace-event-python.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1044         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
                                                   >> 1045 
                                                   >> 1046 $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o: scripts/python/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS
                                                   >> 1047         $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
                                                   >> 1048 
                                                   >> 1049 $(OUTPUT)perf-%: %.o $(PERFLIBS)
                                                   >> 1050         $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
                                                   >> 1051 
                                                   >> 1052 $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
                                                   >> 1053 $(patsubst perf-%,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
                                                   >> 1054 
                                                   >> 1055 # we compile into subdirectories. if the target directory is not the source directory, they might not exists. So
                                                   >> 1056 # we depend the various files onto their directories.
                                                   >> 1057 DIRECTORY_DEPS = $(LIB_OBJS) $(BUILTIN_OBJS) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h
                                                   >> 1058 $(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS)))
                                                   >> 1059 # In the second step, we make a rule to actually create these directories
                                                   >> 1060 $(sort $(dir $(DIRECTORY_DEPS))):
                                                   >> 1061         $(QUIET_MKDIR)$(MKDIR) -p $@ 2>/dev/null
                                                   >> 1062 
                                                   >> 1063 $(LIB_FILE): $(LIB_OBJS)
                                                   >> 1064         $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)
                                                   >> 1065 
                                                   >> 1066 # libtraceevent.a
                                                   >> 1067 $(LIBTRACEEVENT):
                                                   >> 1068         $(QUIET_SUBDIR0)$(TRACE_EVENT_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) libtraceevent.a
                                                   >> 1069 
                                                   >> 1070 $(LIBTRACEEVENT)-clean:
                                                   >> 1071         $(QUIET_SUBDIR0)$(TRACE_EVENT_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) clean
                                                   >> 1072 
                                                   >> 1073 # if subdir is set, we've been called from above so target has been built
                                                   >> 1074 # already
                                                   >> 1075 $(LIBLK):
                                                   >> 1076 ifeq ($(subdir),)
                                                   >> 1077         $(QUIET_SUBDIR0)$(LK_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) liblk.a
                                                   >> 1078 endif
                                                   >> 1079 
                                                   >> 1080 $(LIBLK)-clean:
                                                   >> 1081 ifeq ($(subdir),)
                                                   >> 1082         $(QUIET_SUBDIR0)$(LK_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) clean
                                                   >> 1083 endif
                                                   >> 1084 
                                                   >> 1085 help:
                                                   >> 1086         @echo 'Perf make targets:'
                                                   >> 1087         @echo '  doc            - make *all* documentation (see below)'
                                                   >> 1088         @echo '  man            - make manpage documentation (access with man <foo>)'
                                                   >> 1089         @echo '  html           - make html documentation'
                                                   >> 1090         @echo '  info           - make GNU info documentation (access with info <foo>)'
                                                   >> 1091         @echo '  pdf            - make pdf documentation'
                                                   >> 1092         @echo '  TAGS           - use etags to make tag information for source browsing'
                                                   >> 1093         @echo '  tags           - use ctags to make tag information for source browsing'
                                                   >> 1094         @echo '  cscope - use cscope to make interactive browsing database'
                                                   >> 1095         @echo ''
                                                   >> 1096         @echo 'Perf install targets:'
                                                   >> 1097         @echo '  NOTE: documentation build requires asciidoc, xmlto packages to be installed'
                                                   >> 1098         @echo '  HINT: use "make prefix=<path> <install target>" to install to a particular'
                                                   >> 1099         @echo '        path like make prefix=/usr/local install install-doc'
                                                   >> 1100         @echo '  install        - install compiled binaries'
                                                   >> 1101         @echo '  install-doc    - install *all* documentation'
                                                   >> 1102         @echo '  install-man    - install manpage documentation'
                                                   >> 1103         @echo '  install-html   - install html documentation'
                                                   >> 1104         @echo '  install-info   - install GNU info documentation'
                                                   >> 1105         @echo '  install-pdf    - install pdf documentation'
                                                   >> 1106         @echo ''
                                                   >> 1107         @echo '  quick-install-doc      - alias for quick-install-man'
                                                   >> 1108         @echo '  quick-install-man      - install the documentation quickly'
                                                   >> 1109         @echo '  quick-install-html     - install the html documentation quickly'
                                                   >> 1110         @echo ''
                                                   >> 1111         @echo 'Perf maintainer targets:'
                                                   >> 1112         @echo '  clean                  - clean all binary objects and build output'
                                                   >> 1113 
                                                   >> 1114 
                                                   >> 1115 DOC_TARGETS := doc man html info pdf
                                                   >> 1116 
                                                   >> 1117 INSTALL_DOC_TARGETS := $(patsubst %,install-%,$(DOC_TARGETS)) try-install-man
                                                   >> 1118 INSTALL_DOC_TARGETS += quick-install-doc quick-install-man quick-install-html
                                                   >> 1119 
                                                   >> 1120 # 'make doc' should call 'make -C Documentation all'
                                                   >> 1121 $(DOC_TARGETS):
                                                   >> 1122         $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:doc=all)
                                                   >> 1123 
                                                   >> 1124 TAGS:
                                                   >> 1125         $(RM) TAGS
                                                   >> 1126         $(FIND) . -name '*.[hcS]' -print | xargs etags -a
                                                   >> 1127 
                                                   >> 1128 tags:
                                                   >> 1129         $(RM) tags
                                                   >> 1130         $(FIND) . -name '*.[hcS]' -print | xargs ctags -a
                                                   >> 1131 
                                                   >> 1132 cscope:
                                                   >> 1133         $(RM) cscope*
                                                   >> 1134         $(FIND) . -name '*.[hcS]' -print | xargs cscope -b
                                                   >> 1135 
                                                   >> 1136 ### Detect prefix changes
                                                   >> 1137 TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\
                                                   >> 1138              $(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
                                                   >> 1139 
                                                   >> 1140 $(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS
                                                   >> 1141         @FLAGS='$(TRACK_CFLAGS)'; \
                                                   >> 1142             if test x"$$FLAGS" != x"`cat $(OUTPUT)PERF-CFLAGS 2>/dev/null`" ; then \
                                                   >> 1143                 echo 1>&2 "    * new build flags or prefix"; \
                                                   >> 1144                 echo "$$FLAGS" >$(OUTPUT)PERF-CFLAGS; \
                                                   >> 1145             fi
                                                   >> 1146 
                                                   >> 1147 ### Testing rules
                                                   >> 1148 
                                                   >> 1149 # GNU make supports exporting all variables by "export" without parameters.
                                                   >> 1150 # However, the environment gets quite big, and some programs have problems
                                                   >> 1151 # with that.
                                                   >> 1152 
                                                   >> 1153 check: $(OUTPUT)common-cmds.h
                                                   >> 1154         if sparse; \
                                                   >> 1155         then \
                                                   >> 1156                 for i in *.c */*.c; \
                                                   >> 1157                 do \
                                                   >> 1158                         sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
                                                   >> 1159                 done; \
                                                   >> 1160         else \
                                                   >> 1161                 exit 1; \
                                                   >> 1162         fi
                                                   >> 1163 
                                                   >> 1164 ### Installation rules
                                                   >> 1165 
                                                   >> 1166 ifneq ($(filter /%,$(firstword $(perfexecdir))),)
                                                   >> 1167 perfexec_instdir = $(perfexecdir)
                                                   >> 1168 else
                                                   >> 1169 perfexec_instdir = $(prefix)/$(perfexecdir)
                                                   >> 1170 endif
                                                   >> 1171 perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
                                                   >> 1172 
                                                   >> 1173 install-bin: all
                                                   >> 1174         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
                                                   >> 1175         $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'
                                                   >> 1176         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'
                                                   >> 1177         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
                                                   >> 1178         $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
                                                   >> 1179         $(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'
                                                   >> 1180         $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl'
                                                   >> 1181         $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin'
                                                   >> 1182         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'
                                                   >> 1183         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
                                                   >> 1184         $(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace'
                                                   >> 1185         $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
                                                   >> 1186         $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
                                                   >> 1187         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'
                                                   >> 1188         $(INSTALL) bash_completion '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
                                                   >> 1189         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
                                                   >> 1190         $(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
                                                   >> 1191         $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
                                                   >> 1192         $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
                                                   >> 1193 
                                                   >> 1194 install: install-bin try-install-man
                                                   >> 1195 
                                                   >> 1196 install-python_ext:
                                                   >> 1197         $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
                                                   >> 1198 
                                                   >> 1199 # 'make install-doc' should call 'make -C Documentation install'
                                                   >> 1200 $(INSTALL_DOC_TARGETS):
                                                   >> 1201         $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=)
                                                   >> 1202 
                                                   >> 1203 ### Cleaning rules
                                                   >> 1204 
                                                   >> 1205 clean: $(LIBTRACEEVENT)-clean $(LIBLK)-clean
                                                   >> 1206         $(RM) $(LIB_OBJS) $(BUILTIN_OBJS) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf.o $(LANG_BINDINGS)
                                                   >> 1207         $(RM) $(ALL_PROGRAMS) perf
                                                   >> 1208         $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope*
                                                   >> 1209         $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) clean
                                                   >> 1210         $(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS
                                                   >> 1211         $(RM) $(OUTPUT)util/*-bison*
                                                   >> 1212         $(RM) $(OUTPUT)util/*-flex*
                                                   >> 1213         $(python-clean)
120                                                   1214 
121 .PHONY: tags TAGS FORCE Makefile               !! 1215 .PHONY: all install clean strip $(LIBTRACEEVENT) $(LIBLK)
                                                   >> 1216 .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
                                                   >> 1217 .PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php