1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginclude ../scripts/Makefile.include 2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# The default target of this Makefile is... 4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengall: 5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginclude config/utilities.mak 7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define V to have a more verbose compile. 9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define O to save output files in a separate directory. 11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define ARCH as name of target architecture if you want cross-builds. 13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define CROSS_COMPILE as prefix name of compiler if you want cross-builds. 15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBPERL to disable perl script extension. 17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBPYTHON to disable python script extension. 19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define PYTHON to point to the python binary if the default 21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# `python' is not correct; for example: PYTHON=python2 22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define PYTHON_CONFIG to point to the python-config binary if 24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# the default `$(PYTHON)-config' is not correct. 25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8 27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72. 29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 30e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define LDFLAGS=-static to build a static binary. 31e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 32e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define EXTRA_CFLAGS=-m64 or EXTRA_CFLAGS=-m32 as appropriate for cross-builds. 33e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 34e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_DWARF if you do not want debug-info analysis feature at all. 35e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 36e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define WERROR=0 to disable treating any warnings as errors. 37e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 38e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_NEWT if you do not want TUI support. (deprecated) 39e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 40e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_SLANG if you do not want TUI support. 41e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 42e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_GTK2 if you do not want GTK+ GUI support. 43e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 44e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_DEMANGLE if you do not want C++ symbol demangling. 45e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 46e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBELF if you do not want libelf dependency (e.g. cross-builds) 47e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 48e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBUNWIND if you do not want libunwind dependency for dwarf 49e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# backtrace post unwind. 50e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 51e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_BACKTRACE if you do not want stack backtrace debug feature 52e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 53e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBNUMA if you do not want numa perf benchmark 54e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 55e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBAUDIT if you do not want libaudit support 56e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 57e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Define NO_LIBBIONIC if you do not want bionic support 58e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 59e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(srctree),) 60e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengsrctree := $(patsubst %/,%,$(dir $(shell pwd))) 61e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengsrctree := $(patsubst %/,%,$(dir $(srctree))) 62e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#$(info Determined 'srctree' to be $(srctree)) 63e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 64e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 65e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifneq ($(objtree),) 66e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#$(info Determined 'objtree' to be $(objtree)) 67e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 68e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 69e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifneq ($(OUTPUT),) 70e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#$(info Determined 'OUTPUT' to be $(OUTPUT)) 71e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 72e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 73e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE 74e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT) 75e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 76e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengCC = $(CROSS_COMPILE)gcc 77e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengAR = $(CROSS_COMPILE)ar 78e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 79e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengRM = rm -f 80e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengMKDIR = mkdir 81e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengFIND = find 82e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengINSTALL = install 83e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengFLEX = flex 84e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBISON = bison 85e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSTRIP = strip 86e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 87e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLK_DIR = $(srctree)/tools/lib/lk/ 88e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengTRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/ 89e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 90e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# include config/Makefile by default and rule out 91e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# non-config cases 92e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengconfig := 1 93e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 94e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengNON_CONFIG_TARGETS := clean TAGS tags cscope help 95e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 96e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifdef MAKECMDGOALS 97e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),) 98e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng config := 0 99e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 100e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 101e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 102e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(config),1) 103e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginclude config/Makefile 104e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 105e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 106e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport prefix bindir sharedir sysconfdir 107e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 108e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# sparse is architecture-neutral, which means that we need to tell it 109e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# explicitly what architecture to check for. Fix this up for yours.. 110e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ 111e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 112e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Guard against environment variables 113e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS = 114e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H = 115e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS = 116e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYRF_OBJS = 117e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSCRIPT_SH = 118e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 119e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSCRIPT_SH += perf-archive.sh 120e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 121e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenggrep-libs = $(filter -l%,$(1)) 122e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstrip-libs = $(filter-out -l%,$(1)) 123e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 124e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifneq ($(OUTPUT),) 125e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng TE_PATH=$(OUTPUT) 126e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifneq ($(subdir),) 127e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LK_PATH=$(OUTPUT)/../lib/lk/ 128e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengelse 129e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LK_PATH=$(OUTPUT) 130e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 131e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengelse 132e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng TE_PATH=$(TRACE_EVENT_DIR) 133e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LK_PATH=$(LK_DIR) 134e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 135e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 136e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIBTRACEEVENT = $(TE_PATH)libtraceevent.a 137e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport LIBTRACEEVENT 138e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 139e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIBLK = $(LK_PATH)liblk.a 140e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport LIBLK 141e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 142e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# python extension build directories 143e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ 144e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/ 145e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/ 146e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP 147e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 148e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengpython-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so 149e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 150e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYTHON_EXT_SRCS := $(shell grep -v ^\# util/python-ext-sources) 151e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT) $(LIBLK) 152e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 153e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)python/perf.so: $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) 154e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_GEN)CFLAGS='$(CFLAGS)' $(PYTHON_WORD) util/setup.py \ 155e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng --quiet build_ext; \ 156e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng mkdir -p $(OUTPUT)python && \ 157e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/ 158e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 159e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# No Perl scripts right now: 160e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 161e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 162e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) 163e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 164e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 165e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Single 'perf' binary right now: 166e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 167e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPROGRAMS += $(OUTPUT)perf 168e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 169e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# what 'all' will build and 'install' will install, in perfexecdir 170e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS) 171e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 172e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# what 'all' will build but not install in perfexecdir 173e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengOTHER_PROGRAMS = $(OUTPUT)perf 174e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 175e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Set paths to tools early so that they can be used for version tests. 176e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef SHELL_PATH 177e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng SHELL_PATH = /bin/sh 178e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 179e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef PERL_PATH 180e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng PERL_PATH = /usr/bin/perl 181e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 182e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 183e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport PERL_PATH 184e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 185e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/parse-events-flex.c: util/parse-events.l $(OUTPUT)util/parse-events-bison.c 186e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(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 187e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 188e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/parse-events-bison.c: util/parse-events.y 189e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_BISON)$(BISON) -v util/parse-events.y -d $(PARSER_DEBUG_BISON) -o $(OUTPUT)util/parse-events-bison.c -p parse_events_ 190e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 191e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/pmu-flex.c: util/pmu.l $(OUTPUT)util/pmu-bison.c 192e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/pmu-flex.h -t util/pmu.l > $(OUTPUT)util/pmu-flex.c 193e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 194e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/pmu-bison.c: util/pmu.y 195e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_BISON)$(BISON) -v util/pmu.y -d -o $(OUTPUT)util/pmu-bison.c -p perf_pmu_ 196e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 197e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/parse-events.o: $(OUTPUT)util/parse-events-flex.c $(OUTPUT)util/parse-events-bison.c 198e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/pmu.o: $(OUTPUT)util/pmu-flex.c $(OUTPUT)util/pmu-bison.c 199e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 200e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_FILE=$(OUTPUT)libperf.a 201e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 202e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/uapi/linux/perf_event.h 203e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/linux/rbtree.h 204e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/linux/list.h 205e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/uapi/linux/const.h 206e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/linux/hash.h 207e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ../../include/linux/stringify.h 208e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/bitmap.h 209e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/bitops.h 210e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/compiler.h 211e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/const.h 212e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/ctype.h 213e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/kernel.h 214e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/list.h 215e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/export.h 216e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/magic.h 217e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/poison.h 218e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/prefetch.h 219e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/rbtree.h 220e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/rbtree_augmented.h 221e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/string.h 222e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/types.h 223e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/linux/linkage.h 224e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/asm-offsets.h 225e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/bug.h 226e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/byteorder.h 227e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/hweight.h 228e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/swab.h 229e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/system.h 230e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/uaccess.h 231e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/dwarf-regs.h 232e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/dwarf2.h 233e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/cpufeature.h 234e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/unistd_32.h 235e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/include/asm/unistd_64.h 236e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += perf.h 237e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/annotate.h 238e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/cache.h 239e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/callchain.h 240e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/build-id.h 241e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/debug.h 242e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/sysfs.h 243e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/pmu.h 244e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/event.h 245e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/evsel.h 246e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/evlist.h 247e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/exec_cmd.h 248e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/types.h 249e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/levenshtein.h 250e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/machine.h 251e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/map.h 252e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/parse-options.h 253e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/parse-events.h 254e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/quote.h 255e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/util.h 256e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/xyarray.h 257e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/header.h 258e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/help.h 259e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/session.h 260e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/strbuf.h 261e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/strlist.h 262e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/strfilter.h 263e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/svghelper.h 264e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/tool.h 265e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/run-command.h 266e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/sigchain.h 267e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/dso.h 268e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/symbol.h 269e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/color.h 270e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/values.h 271e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/sort.h 272e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/hist.h 273e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/thread.h 274e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/thread_map.h 275e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/trace-event.h 276e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/probe-finder.h 277e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/dwarf-aux.h 278e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/probe-event.h 279e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/pstack.h 280e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/cpumap.h 281e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/top.h 282e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += $(ARCH_INCLUDE) 283e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/cgroup.h 284e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += $(LIB_INCLUDE)traceevent/event-parse.h 285e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/target.h 286e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/rblist.h 287e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/intlist.h 288e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/perf_regs.h 289e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/unwind.h 290e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += util/vdso.h 291e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ui/helpline.h 292e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ui/progress.h 293e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ui/util.h 294e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_H += ui/ui.h 295e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 296e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/abspath.o 297e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/alias.o 298e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/annotate.o 299e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/build-id.o 300e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/config.o 301e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/ctype.o 302e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/sysfs.o 303e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/pmu.o 304e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/environment.o 305e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/event.o 306e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/evlist.o 307e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/evsel.o 308e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/exec_cmd.o 309e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/help.o 310e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/levenshtein.o 311e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/parse-options.o 312e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/parse-events.o 313e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/path.o 314e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/rbtree.o 315e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/bitmap.o 316e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/hweight.o 317e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/run-command.o 318e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/quote.o 319e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/strbuf.o 320e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/string.o 321e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/strlist.o 322e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/strfilter.o 323e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/top.o 324e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/usage.o 325e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/wrapper.o 326e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/sigchain.o 327e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/dso.o 328e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/symbol.o 329e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/symbol-elf.o 330e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/color.o 331e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/pager.o 332e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/header.o 333e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/callchain.o 334e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/values.o 335e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/debug.o 336e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/machine.o 337e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/map.o 338e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/pstack.o 339e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/session.o 340e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/thread.o 341e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/thread_map.o 342e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/trace-event-parse.o 343e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/parse-events-flex.o 344e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/parse-events-bison.o 345e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/pmu-flex.o 346e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/pmu-bison.o 347e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/trace-event-read.o 348e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/trace-event-info.o 349e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/trace-event-scripting.o 350e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/svghelper.o 351e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/sort.o 352e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/hist.o 353e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/probe-event.o 354e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/util.o 355e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/xyarray.o 356e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/cpumap.o 357e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/cgroup.o 358e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/target.o 359e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/rblist.o 360e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/intlist.o 361e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/vdso.o 362e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/stat.o 363e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/record.o 364e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 365e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/setup.o 366e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/helpline.o 367e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/progress.o 368e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/util.o 369e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/hist.o 370e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)ui/stdio/hist.o 371e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 372e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)arch/common.o 373e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 374e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/parse-events.o 375e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/dso-data.o 376e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/attr.o 377e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/vmlinux-kallsyms.o 378e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/open-syscall.o 379e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/open-syscall-all-cpus.o 380e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/open-syscall-tp-fields.o 381e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/mmap-basic.o 382e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/perf-record.o 383e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/rdpmc.o 384e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/evsel-roundtrip-name.o 385e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/evsel-tp-sched.o 386e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/pmu.o 387e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/hists_link.o 388e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/python-use.o 389e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/bp_signal.o 390e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/bp_signal_overflow.o 391e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/task-exit.o 392e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/sw-clock.o 393e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(ARCH),x86) 394e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/perf-time-to-tsc.o 395e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 396e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/code-reading.o 397e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/sample-parsing.o 398e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/parse-no-sample-id-all.o 399e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 400e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-annotate.o 401e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-bench.o 402e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Benchmark modules 403e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/sched-messaging.o 404e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/sched-pipe.o 405e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(RAW_ARCH),x86_64) 406e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy-x86-64-asm.o 407e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/mem-memset-x86-64-asm.o 408e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 409e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/mem-memcpy.o 410e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)bench/mem-memset.o 411e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 412e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-diff.o 413e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-evlist.o 414e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-help.o 415e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-sched.o 416e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-buildid-list.o 417e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-buildid-cache.o 418e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-list.o 419e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-record.o 420e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-report.o 421e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-stat.o 422e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-timechart.o 423e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-top.o 424e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-script.o 425e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-probe.o 426e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-kmem.o 427e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-lock.o 428e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-kvm.o 429e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-inject.o 430e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)tests/builtin-test.o 431e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS += $(OUTPUT)builtin-mem.o 432e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 433e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengPERFLIBS = $(LIB_FILE) $(LIBLK) $(LIBTRACEEVENT) 434e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 435e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# We choose to avoid "if .. else if .. else .. endif endif" 436e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# because maintaining the nesting to match is a pain. If 437e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# we had "elif" things would have been much nicer... 438e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 439e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng-include arch/$(ARCH)/Makefile 440e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 441e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifneq ($(OUTPUT),) 442e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng CFLAGS += -I$(OUTPUT) 443e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 444e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 445e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifdef NO_LIBELF 446e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengEXTLIBS := $(filter-out -lelf,$(EXTLIBS)) 447e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 448e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Remove ELF/DWARF dependent codes 449e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS := $(filter-out $(OUTPUT)util/symbol-elf.o,$(LIB_OBJS)) 450e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS := $(filter-out $(OUTPUT)util/dwarf-aux.o,$(LIB_OBJS)) 451e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS := $(filter-out $(OUTPUT)util/probe-event.o,$(LIB_OBJS)) 452e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS := $(filter-out $(OUTPUT)util/probe-finder.o,$(LIB_OBJS)) 453e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 454e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengBUILTIN_OBJS := $(filter-out $(OUTPUT)builtin-probe.o,$(BUILTIN_OBJS)) 455e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 456e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# Use minimal symbol handling 457e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)util/symbol-minimal.o 458e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 459e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengelse # NO_LIBELF 460e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_DWARF 461e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)util/probe-finder.o 462e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)util/dwarf-aux.o 463e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif # NO_DWARF 464e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif # NO_LIBELF 465e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 466e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBUNWIND 467e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)util/unwind.o 468e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 469e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIB_OBJS += $(OUTPUT)tests/keep-tracking.o 470e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 471e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBAUDIT 472e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng BUILTIN_OBJS += $(OUTPUT)builtin-trace.o 473e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 474e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 475e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_SLANG 476e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/browser.o 477e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/browsers/annotate.o 478e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/browsers/hists.o 479e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/browsers/map.o 480e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/browsers/scripts.o 481e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/tui/setup.o 482e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/tui/util.o 483e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/tui/helpline.o 484e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/tui/progress.o 485e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_H += ui/browser.h 486e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_H += ui/browsers/map.h 487e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_H += ui/keysyms.h 488e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_H += ui/libslang.h 489e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 490e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 491e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_GTK2 492e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/browser.o 493e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/hists.o 494e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/setup.o 495e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/util.o 496e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/helpline.o 497e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/progress.o 498e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)ui/gtk/annotate.o 499e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 500e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 501e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBPERL 502e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o 503e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o 504e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 505e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 506e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBPYTHON 507e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o 508e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o 509e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 510e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 511e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(NO_PERF_REGS),0) 512e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng ifeq ($(ARCH),x86) 513e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng LIB_H += arch/x86/include/perf_regs.h 514e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng endif 515e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 516e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 517e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBNUMA 518e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng BUILTIN_OBJS += $(OUTPUT)bench/numa.o 519e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 520e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 521e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifdef ASCIIDOC8 522e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng export ASCIIDOC8 523e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 524e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 525e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengLIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group 526e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 527e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengexport INSTALL SHELL_PATH 528e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 529e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng### Build rules 530e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 531e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengSHELL = $(SHELL_PATH) 532e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 533e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengall: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS) 534e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 535e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengplease_set_SHELL_PATH_to_a_more_modern_shell: 536e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @$$(:) 537e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 538e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengshell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell 539e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 540e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstrip: $(PROGRAMS) $(OUTPUT)perf 541e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(STRIP) $(STRIP_OPTS) $(PROGRAMS) $(OUTPUT)perf 542e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 543e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS 544e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -include $(OUTPUT)PERF-VERSION-FILE \ 545e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_HTML_PATH="$(htmldir_SQ)"' \ 546e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(CFLAGS) -c $(filter %.c,$^) -o $@ 547e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 548e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS) 549e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(OUTPUT)perf.o \ 550e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(BUILTIN_OBJS) $(LIBS) -o $@ 551e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 552e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)builtin-help.o: builtin-help.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS 553e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \ 554e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_HTML_PATH="$(htmldir_SQ)"' \ 555e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_MAN_PATH="$(mandir_SQ)"' \ 556e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_INFO_PATH="$(infodir_SQ)"' $< 557e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 558e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)builtin-timechart.o: builtin-timechart.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS 559e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \ 560e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_HTML_PATH="$(htmldir_SQ)"' \ 561e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_MAN_PATH="$(mandir_SQ)"' \ 562e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_INFO_PATH="$(infodir_SQ)"' $< 563e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 564e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)common-cmds.h: util/generate-cmdlist.sh command-list.txt 565e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 566e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt) 567e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@ 568e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 569e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(SCRIPTS) : % : %.sh 570e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_GEN)$(INSTALL) '$@.sh' '$(OUTPUT)$@' 571e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 572e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# These can record PERF_VERSION 573e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)perf.o perf.spec \ 574e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(SCRIPTS) \ 575e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng : $(OUTPUT)PERF-VERSION-FILE 576e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 577e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng.SUFFIXES: 578e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng.SUFFIXES: .o .c .S .s 579e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 580e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# These two need to be here so that when O= is not used they take precedence 581e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# over the general rule for .o 582e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 583e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS 584e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(CFLAGS) -w $< 585e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 586e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS 587e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w $< 588e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 589e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS 590e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $< 591e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)%.i: %.c $(OUTPUT)PERF-CFLAGS 592e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -E $(CFLAGS) $< 593e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)%.s: %.c $(OUTPUT)PERF-CFLAGS 594e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -S $(CFLAGS) $< 595e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)%.o: %.S 596e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $< 597e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)%.s: %.S 598e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -E $(CFLAGS) $< 599e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 600e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS 601e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \ 602e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \ 603e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DPREFIX="$(prefix_SQ)"' \ 604e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $< 605e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 606e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)tests/attr.o: tests/attr.c $(OUTPUT)PERF-CFLAGS 607e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \ 608e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng '-DBINDIR="$(bindir_SQ)"' -DPYTHON='"$(PYTHON_WORD)"' \ 609e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $< 610e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 611e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)tests/python-use.o: tests/python-use.c $(OUTPUT)PERF-CFLAGS 612e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \ 613e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng -DPYTHONPATH='"$(OUTPUT)python"' \ 614e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng -DPYTHON='"$(PYTHON_WORD)"' \ 615e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $< 616e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 617e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS 618e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< 619e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 620e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)ui/browser.o: ui/browser.c $(OUTPUT)PERF-CFLAGS 621e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $< 622e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 623e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)ui/browsers/annotate.o: ui/browsers/annotate.c $(OUTPUT)PERF-CFLAGS 624e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $< 625e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 626e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)ui/browsers/hists.o: ui/browsers/hists.c $(OUTPUT)PERF-CFLAGS 627e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $< 628e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 629e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)ui/browsers/map.o: ui/browsers/map.c $(OUTPUT)PERF-CFLAGS 630e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $< 631e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 632e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)ui/browsers/scripts.o: ui/browsers/scripts.c $(OUTPUT)PERF-CFLAGS 633e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $< 634e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 635e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/rbtree.o: ../../lib/rbtree.c $(OUTPUT)PERF-CFLAGS 636e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< 637e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 638e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/parse-events.o: util/parse-events.c $(OUTPUT)PERF-CFLAGS 639e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-redundant-decls $< 640e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 641e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/scripting-engines/trace-event-perl.o: util/scripting-engines/trace-event-perl.c $(OUTPUT)PERF-CFLAGS 642e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-undef -Wno-switch-default $< 643e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 644e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS 645e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs -Wno-undef -Wno-switch-default $< 646e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 647e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)util/scripting-engines/trace-event-python.o: util/scripting-engines/trace-event-python.c $(OUTPUT)PERF-CFLAGS 648e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< 649e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 650e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)scripts/python/Perf-Trace-Util/Context.o: scripts/python/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS 651e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< 652e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 653e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)perf-%: %.o $(PERFLIBS) 654e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(filter %.o,$^) $(LIBS) 655e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 656e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H) 657e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(patsubst perf-%,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) 658e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 659e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# we compile into subdirectories. if the target directory is not the source directory, they might not exists. So 660e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# we depend the various files onto their directories. 661e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengDIRECTORY_DEPS = $(LIB_OBJS) $(BUILTIN_OBJS) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h 662e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(DIRECTORY_DEPS): | $(sort $(dir $(DIRECTORY_DEPS))) 663e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# In the second step, we make a rule to actually create these directories 664e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(sort $(dir $(DIRECTORY_DEPS))): 665e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_MKDIR)$(MKDIR) -p $@ 2>/dev/null 666e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 667e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIB_FILE): $(LIB_OBJS) 668e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS) 669e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 670e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# libtraceevent.a 671e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIBTRACEEVENT): 672e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)$(TRACE_EVENT_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) libtraceevent.a 673e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 674e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIBTRACEEVENT)-clean: 675e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)$(TRACE_EVENT_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) clean 676e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 677e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# if subdir is set, we've been called from above so target has been built 678e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# already 679e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIBLK): 680e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(subdir),) 681e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)$(LK_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) liblk.a 682e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 683e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 684e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(LIBLK)-clean: 685e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifeq ($(subdir),) 686e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)$(LK_DIR) $(QUIET_SUBDIR1) O=$(OUTPUT) clean 687e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 688e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 689e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenghelp: 690e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo 'Perf make targets:' 691e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' doc - make *all* documentation (see below)' 692e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' man - make manpage documentation (access with man <foo>)' 693e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' html - make html documentation' 694e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' info - make GNU info documentation (access with info <foo>)' 695e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' pdf - make pdf documentation' 696e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' TAGS - use etags to make tag information for source browsing' 697e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' tags - use ctags to make tag information for source browsing' 698e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' cscope - use cscope to make interactive browsing database' 699e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo '' 700e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo 'Perf install targets:' 701e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' NOTE: documentation build requires asciidoc, xmlto packages to be installed' 702e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' HINT: use "make prefix=<path> <install target>" to install to a particular' 703e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' path like make prefix=/usr/local install install-doc' 704e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install - install compiled binaries' 705e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install-doc - install *all* documentation' 706e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install-man - install manpage documentation' 707e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install-html - install html documentation' 708e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install-info - install GNU info documentation' 709e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' install-pdf - install pdf documentation' 710e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo '' 711e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' quick-install-doc - alias for quick-install-man' 712e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' quick-install-man - install the documentation quickly' 713e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' quick-install-html - install the html documentation quickly' 714e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo '' 715e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo 'Perf maintainer targets:' 716e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @echo ' clean - clean all binary objects and build output' 717e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 718e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 719e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengDOC_TARGETS := doc man html info pdf 720e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 721e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengINSTALL_DOC_TARGETS := $(patsubst %,install-%,$(DOC_TARGETS)) try-install-man 722e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengINSTALL_DOC_TARGETS += quick-install-doc quick-install-man quick-install-html 723e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 724e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 'make doc' should call 'make -C Documentation all' 725e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(DOC_TARGETS): 726e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:doc=all) 727e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 728e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengTAGS: 729e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) TAGS 730e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(FIND) . -name '*.[hcS]' -print | xargs etags -a 731e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 732e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtags: 733e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) tags 734e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(FIND) . -name '*.[hcS]' -print | xargs ctags -a 735e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 736e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengcscope: 737e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) cscope* 738e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(FIND) . -name '*.[hcS]' -print | xargs cscope -b 739e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 740e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng### Detect prefix changes 741e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen ChengTRACK_CFLAGS = $(subst ','\'',$(CFLAGS)):\ 742e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ) 743e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 744e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS 745e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng @FLAGS='$(TRACK_CFLAGS)'; \ 746e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng if test x"$$FLAGS" != x"`cat $(OUTPUT)PERF-CFLAGS 2>/dev/null`" ; then \ 747e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng echo 1>&2 " * new build flags or prefix"; \ 748e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng echo "$$FLAGS" >$(OUTPUT)PERF-CFLAGS; \ 749e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng fi 750e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 751e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng### Testing rules 752e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 753e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# GNU make supports exporting all variables by "export" without parameters. 754e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# However, the environment gets quite big, and some programs have problems 755e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# with that. 756e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 757e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengcheck: $(OUTPUT)common-cmds.h 758e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng if sparse; \ 759e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng then \ 760e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng for i in *.c */*.c; \ 761e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng do \ 762e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng sparse $(CFLAGS) $(SPARSE_FLAGS) $$i || exit; \ 763e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng done; \ 764e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng else \ 765e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng exit 1; \ 766e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng fi 767e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 768e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng### Installation rules 769e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 770e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginstall-bin: all 771e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' 772e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)' 773e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' 774e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' 775e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBPERL 776e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' 777e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' 778e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/perl/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace' 779e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/perl/*.pl -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl' 780e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/perl/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/bin' 781e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 782e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengifndef NO_LIBPYTHON 783e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' 784e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' 785e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/python/Perf-Trace-Util/lib/Perf/Trace/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/Perf-Trace-Util/lib/Perf/Trace' 786e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python' 787e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' 788e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengendif 789e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d' 790e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) bash_completion '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf' 791e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests' 792e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests' 793e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr' 794e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr' 795e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 796e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginstall: install-bin try-install-man 797e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 798e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chenginstall-python_ext: 799e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' 800e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 801e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng# 'make install-doc' should call 'make -C Documentation install' 802e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng$(INSTALL_DOC_TARGETS): 803e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) 804e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 805e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng### Cleaning rules 806e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 807e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengclean: $(LIBTRACEEVENT)-clean $(LIBLK)-clean 808e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) $(LIB_OBJS) $(BUILTIN_OBJS) $(LIB_FILE) $(OUTPUT)perf-archive $(OUTPUT)perf.o $(LANG_BINDINGS) 809e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) $(ALL_PROGRAMS) perf 810e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope* 811e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) clean 812e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS 813e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) $(OUTPUT)util/*-bison* 814e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(RM) $(OUTPUT)util/*-flex* 815e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng $(python-clean) 816e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 817e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng.PHONY: all install clean strip $(LIBTRACEEVENT) $(LIBLK) 818e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell 819e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng.PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS 820