|
@@ -51,189 +51,63 @@ include config/utilities.mak
|
|
|
# Define NO_BACKTRACE if you do not want stack backtrace debug feature
|
|
|
#
|
|
|
# Define NO_LIBNUMA if you do not want numa perf benchmark
|
|
|
+#
|
|
|
+# Define NO_LIBAUDIT if you do not want libaudit support
|
|
|
+#
|
|
|
+# Define NO_LIBBIONIC if you do not want bionic support
|
|
|
|
|
|
-$(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
|
|
|
- @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT)
|
|
|
-
|
|
|
-uname_M := $(shell uname -m 2>/dev/null || echo not)
|
|
|
-
|
|
|
-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
|
|
- -e s/arm.*/arm/ -e s/sa110/arm/ \
|
|
|
- -e s/s390x/s390/ -e s/parisc64/parisc/ \
|
|
|
- -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
|
|
|
- -e s/sh[234].*/sh/ -e s/aarch64.*/arm64/ )
|
|
|
-NO_PERF_REGS := 1
|
|
|
-
|
|
|
-CC = $(CROSS_COMPILE)gcc
|
|
|
-AR = $(CROSS_COMPILE)ar
|
|
|
-
|
|
|
-# Additional ARCH settings for x86
|
|
|
-ifeq ($(ARCH),i386)
|
|
|
- override ARCH := x86
|
|
|
- NO_PERF_REGS := 0
|
|
|
- LIBUNWIND_LIBS = -lunwind -lunwind-x86
|
|
|
-endif
|
|
|
-ifeq ($(ARCH),x86_64)
|
|
|
- override ARCH := x86
|
|
|
- IS_X86_64 := 0
|
|
|
- ifeq (, $(findstring m32,$(EXTRA_CFLAGS)))
|
|
|
- IS_X86_64 := $(shell echo __x86_64__ | ${CC} -E -x c - | tail -n 1)
|
|
|
- endif
|
|
|
- ifeq (${IS_X86_64}, 1)
|
|
|
- RAW_ARCH := x86_64
|
|
|
- ARCH_CFLAGS := -DARCH_X86_64
|
|
|
- ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S
|
|
|
- endif
|
|
|
- NO_PERF_REGS := 0
|
|
|
- LIBUNWIND_LIBS = -lunwind -lunwind-x86_64
|
|
|
-endif
|
|
|
-
|
|
|
-# Treat warnings as errors unless directed not to
|
|
|
-ifneq ($(WERROR),0)
|
|
|
- CFLAGS_WERROR := -Werror
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ("$(origin DEBUG)", "command line")
|
|
|
- PERF_DEBUG = $(DEBUG)
|
|
|
-endif
|
|
|
-ifndef PERF_DEBUG
|
|
|
- CFLAGS_OPTIMIZE = -O6
|
|
|
+ifeq ($(srctree),)
|
|
|
+srctree := $(patsubst %/,%,$(dir $(shell pwd)))
|
|
|
+srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
|
+#$(info Determined 'srctree' to be $(srctree))
|
|
|
endif
|
|
|
|
|
|
-ifdef PARSER_DEBUG
|
|
|
- PARSER_DEBUG_BISON := -t
|
|
|
- PARSER_DEBUG_FLEX := -d
|
|
|
- PARSER_DEBUG_CFLAGS := -DPARSER_DEBUG
|
|
|
+ifneq ($(objtree),)
|
|
|
+#$(info Determined 'objtree' to be $(objtree))
|
|
|
endif
|
|
|
|
|
|
-ifdef NO_NEWT
|
|
|
- NO_SLANG=1
|
|
|
+ifneq ($(OUTPUT),)
|
|
|
+#$(info Determined 'OUTPUT' to be $(OUTPUT))
|
|
|
endif
|
|
|
|
|
|
-CFLAGS = -fno-omit-frame-pointer -ggdb3 -funwind-tables -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) $(PARSER_DEBUG_CFLAGS)
|
|
|
-EXTLIBS = -lpthread -lrt -lelf -lm
|
|
|
-ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
|
|
|
-ALL_LDFLAGS = $(LDFLAGS)
|
|
|
-STRIP ?= strip
|
|
|
-
|
|
|
-# Among the variables below, these:
|
|
|
-# perfexecdir
|
|
|
-# template_dir
|
|
|
-# mandir
|
|
|
-# infodir
|
|
|
-# htmldir
|
|
|
-# ETC_PERFCONFIG (but not sysconfdir)
|
|
|
-# can be specified as a relative path some/where/else;
|
|
|
-# this is interpreted as relative to $(prefix) and "perf" at
|
|
|
-# runtime figures out where they are based on the path to the executable.
|
|
|
-# This can help installing the suite in a relocatable way.
|
|
|
-
|
|
|
-# Make the path relative to DESTDIR, not to prefix
|
|
|
-ifndef DESTDIR
|
|
|
-prefix = $(HOME)
|
|
|
-endif
|
|
|
-bindir_relative = bin
|
|
|
-bindir = $(prefix)/$(bindir_relative)
|
|
|
-mandir = share/man
|
|
|
-infodir = share/info
|
|
|
-perfexecdir = libexec/perf-core
|
|
|
-sharedir = $(prefix)/share
|
|
|
-template_dir = share/perf-core/templates
|
|
|
-htmldir = share/doc/perf-doc
|
|
|
-ifeq ($(prefix),/usr)
|
|
|
-sysconfdir = /etc
|
|
|
-ETC_PERFCONFIG = $(sysconfdir)/perfconfig
|
|
|
-else
|
|
|
-sysconfdir = $(prefix)/etc
|
|
|
-ETC_PERFCONFIG = etc/perfconfig
|
|
|
-endif
|
|
|
-lib = lib
|
|
|
+$(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
|
|
|
+ @$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT)
|
|
|
|
|
|
-export prefix bindir sharedir sysconfdir
|
|
|
+CC = $(CROSS_COMPILE)gcc
|
|
|
+AR = $(CROSS_COMPILE)ar
|
|
|
|
|
|
-RM = rm -f
|
|
|
-MKDIR = mkdir
|
|
|
-FIND = find
|
|
|
+RM = rm -f
|
|
|
+MKDIR = mkdir
|
|
|
+FIND = find
|
|
|
INSTALL = install
|
|
|
-FLEX = flex
|
|
|
-BISON= bison
|
|
|
-
|
|
|
-# sparse is architecture-neutral, which means that we need to tell it
|
|
|
-# explicitly what architecture to check for. Fix this up for yours..
|
|
|
-SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
|
|
|
-
|
|
|
-ifneq ($(MAKECMDGOALS),clean)
|
|
|
-ifneq ($(MAKECMDGOALS),tags)
|
|
|
--include config/feature-tests.mak
|
|
|
-
|
|
|
-ifeq ($(call get-executable,$(FLEX)),)
|
|
|
- dummy := $(error Error: $(FLEX) is missing on this system, please install it)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(call get-executable,$(BISON)),)
|
|
|
- dummy := $(error Error: $(BISON) is missing on this system, please install it)
|
|
|
-endif
|
|
|
+FLEX = flex
|
|
|
+BISON = bison
|
|
|
+STRIP = strip
|
|
|
|
|
|
-ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -fstack-protector-all,-fstack-protector-all),y)
|
|
|
- CFLAGS := $(CFLAGS) -fstack-protector-all
|
|
|
-endif
|
|
|
+LK_DIR = $(srctree)/tools/lib/lk/
|
|
|
+TRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/
|
|
|
|
|
|
-ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -Wstack-protector,-Wstack-protector),y)
|
|
|
- CFLAGS := $(CFLAGS) -Wstack-protector
|
|
|
-endif
|
|
|
+# include config/Makefile by default and rule out
|
|
|
+# non-config cases
|
|
|
+config := 1
|
|
|
|
|
|
-ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -Werror -Wvolatile-register-var,-Wvolatile-register-var),y)
|
|
|
- CFLAGS := $(CFLAGS) -Wvolatile-register-var
|
|
|
-endif
|
|
|
+NON_CONFIG_TARGETS := clean TAGS tags cscope help
|
|
|
|
|
|
-ifndef PERF_DEBUG
|
|
|
- ifeq ($(call try-cc,$(SOURCE_HELLO),$(CFLAGS) -D_FORTIFY_SOURCE=2,-D_FORTIFY_SOURCE=2),y)
|
|
|
- CFLAGS := $(CFLAGS) -D_FORTIFY_SOURCE=2
|
|
|
- endif
|
|
|
+ifdef MAKECMDGOALS
|
|
|
+ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
|
|
|
+ config := 0
|
|
|
endif
|
|
|
-
|
|
|
-### --- END CONFIGURATION SECTION ---
|
|
|
-
|
|
|
-ifeq ($(srctree),)
|
|
|
-srctree := $(patsubst %/,%,$(dir $(shell pwd)))
|
|
|
-srctree := $(patsubst %/,%,$(dir $(srctree)))
|
|
|
-#$(info Determined 'srctree' to be $(srctree))
|
|
|
endif
|
|
|
|
|
|
-ifneq ($(objtree),)
|
|
|
-#$(info Determined 'objtree' to be $(objtree))
|
|
|
+ifeq ($(config),1)
|
|
|
+include config/Makefile
|
|
|
endif
|
|
|
|
|
|
-ifneq ($(OUTPUT),)
|
|
|
-#$(info Determined 'OUTPUT' to be $(OUTPUT))
|
|
|
-endif
|
|
|
+export prefix bindir sharedir sysconfdir
|
|
|
|
|
|
-BASIC_CFLAGS = \
|
|
|
- -Iutil/include \
|
|
|
- -Iarch/$(ARCH)/include \
|
|
|
- $(if $(objtree),-I$(objtree)/arch/$(ARCH)/include/generated/uapi) \
|
|
|
- -I$(srctree)/arch/$(ARCH)/include/uapi \
|
|
|
- -I$(srctree)/arch/$(ARCH)/include \
|
|
|
- $(if $(objtree),-I$(objtree)/include/generated/uapi) \
|
|
|
- -I$(srctree)/include/uapi \
|
|
|
- -I$(srctree)/include \
|
|
|
- -I$(OUTPUT)util \
|
|
|
- -Iutil \
|
|
|
- -I. \
|
|
|
- -I$(TRACE_EVENT_DIR) \
|
|
|
- -I../lib/ \
|
|
|
- -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
|
|
|
-
|
|
|
-BASIC_LDFLAGS =
|
|
|
-
|
|
|
-ifeq ($(call try-cc,$(SOURCE_BIONIC),$(CFLAGS),bionic),y)
|
|
|
- BIONIC := 1
|
|
|
- EXTLIBS := $(filter-out -lrt,$(EXTLIBS))
|
|
|
- EXTLIBS := $(filter-out -lpthread,$(EXTLIBS))
|
|
|
- BASIC_CFLAGS += -I.
|
|
|
-endif
|
|
|
-endif # MAKECMDGOALS != tags
|
|
|
-endif # MAKECMDGOALS != clean
|
|
|
+# sparse is architecture-neutral, which means that we need to tell it
|
|
|
+# explicitly what architecture to check for. Fix this up for yours..
|
|
|
+SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
|
|
|
|
|
|
# Guard against environment variables
|
|
|
BUILTIN_OBJS =
|
|
@@ -247,20 +121,17 @@ SCRIPT_SH += perf-archive.sh
|
|
|
grep-libs = $(filter -l%,$(1))
|
|
|
strip-libs = $(filter-out -l%,$(1))
|
|
|
|
|
|
-LK_DIR = ../lib/lk/
|
|
|
-TRACE_EVENT_DIR = ../lib/traceevent/
|
|
|
-
|
|
|
LK_PATH=$(LK_DIR)
|
|
|
|
|
|
ifneq ($(OUTPUT),)
|
|
|
- TE_PATH=$(OUTPUT)
|
|
|
+ TE_PATH=$(OUTPUT)
|
|
|
ifneq ($(subdir),)
|
|
|
- LK_PATH=$(OUTPUT)$(LK_DIR)
|
|
|
+ LK_PATH=$(OUTPUT)$(LK_DIR)
|
|
|
else
|
|
|
- LK_PATH=$(OUTPUT)
|
|
|
+ LK_PATH=$(OUTPUT)
|
|
|
endif
|
|
|
else
|
|
|
- TE_PATH=$(TRACE_EVENT_DIR)
|
|
|
+ TE_PATH=$(TRACE_EVENT_DIR)
|
|
|
endif
|
|
|
|
|
|
LIBTRACEEVENT = $(TE_PATH)libtraceevent.a
|
|
@@ -278,10 +149,10 @@ export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
|
|
|
python-clean := rm -rf $(PYTHON_EXTBUILD) $(OUTPUT)python/perf.so
|
|
|
|
|
|
PYTHON_EXT_SRCS := $(shell grep -v ^\# util/python-ext-sources)
|
|
|
-PYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT)
|
|
|
+PYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT) $(LIBLK)
|
|
|
|
|
|
$(OUTPUT)python/perf.so: $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS)
|
|
|
- $(QUIET_GEN)CFLAGS='$(BASIC_CFLAGS)' $(PYTHON_WORD) util/setup.py \
|
|
|
+ $(QUIET_GEN)CFLAGS='$(CFLAGS)' $(PYTHON_WORD) util/setup.py \
|
|
|
--quiet build_ext; \
|
|
|
mkdir -p $(OUTPUT)python && \
|
|
|
cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
|
|
@@ -296,8 +167,6 @@ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
|
|
|
#
|
|
|
PROGRAMS += $(OUTPUT)perf
|
|
|
|
|
|
-LANG_BINDINGS =
|
|
|
-
|
|
|
# what 'all' will build and 'install' will install, in perfexecdir
|
|
|
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
|
|
|
|
|
@@ -306,10 +175,10 @@ OTHER_PROGRAMS = $(OUTPUT)perf
|
|
|
|
|
|
# Set paths to tools early so that they can be used for version tests.
|
|
|
ifndef SHELL_PATH
|
|
|
- SHELL_PATH = /bin/sh
|
|
|
+ SHELL_PATH = /bin/sh
|
|
|
endif
|
|
|
ifndef PERL_PATH
|
|
|
- PERL_PATH = /usr/bin/perl
|
|
|
+ PERL_PATH = /usr/bin/perl
|
|
|
endif
|
|
|
|
|
|
export PERL_PATH
|
|
@@ -557,79 +426,14 @@ BUILTIN_OBJS += $(OUTPUT)builtin-mem.o
|
|
|
|
|
|
PERFLIBS = $(LIB_FILE) $(LIBLK) $(LIBTRACEEVENT)
|
|
|
|
|
|
-#
|
|
|
-# Platform specific tweaks
|
|
|
-#
|
|
|
-ifneq ($(MAKECMDGOALS),clean)
|
|
|
-ifneq ($(MAKECMDGOALS),tags)
|
|
|
-
|
|
|
# We choose to avoid "if .. else if .. else .. endif endif"
|
|
|
# because maintaining the nesting to match is a pain. If
|
|
|
# we had "elif" things would have been much nicer...
|
|
|
|
|
|
-ifdef NO_LIBELF
|
|
|
- NO_DWARF := 1
|
|
|
- NO_DEMANGLE := 1
|
|
|
- NO_LIBUNWIND := 1
|
|
|
-else
|
|
|
-FLAGS_LIBELF=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
|
|
|
-ifneq ($(call try-cc,$(SOURCE_LIBELF),$(FLAGS_LIBELF),libelf),y)
|
|
|
- FLAGS_GLIBC=$(ALL_CFLAGS) $(ALL_LDFLAGS)
|
|
|
- ifeq ($(call try-cc,$(SOURCE_GLIBC),$(FLAGS_GLIBC),glibc),y)
|
|
|
- LIBC_SUPPORT := 1
|
|
|
- endif
|
|
|
- ifeq ($(BIONIC),1)
|
|
|
- LIBC_SUPPORT := 1
|
|
|
- endif
|
|
|
- ifeq ($(LIBC_SUPPORT),1)
|
|
|
- msg := $(warning No libelf found, disables 'probe' tool, please install elfutils-libelf-devel/libelf-dev);
|
|
|
-
|
|
|
- NO_LIBELF := 1
|
|
|
- NO_DWARF := 1
|
|
|
- NO_DEMANGLE := 1
|
|
|
- else
|
|
|
- msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static);
|
|
|
- endif
|
|
|
-else
|
|
|
- # for linking with debug library, run like:
|
|
|
- # make DEBUG=1 LIBDW_DIR=/opt/libdw/
|
|
|
- ifdef LIBDW_DIR
|
|
|
- LIBDW_CFLAGS := -I$(LIBDW_DIR)/include
|
|
|
- LIBDW_LDFLAGS := -L$(LIBDW_DIR)/lib
|
|
|
- endif
|
|
|
-
|
|
|
- FLAGS_DWARF=$(ALL_CFLAGS) $(LIBDW_CFLAGS) -ldw -lelf $(LIBDW_LDFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
|
|
|
- ifneq ($(call try-cc,$(SOURCE_DWARF),$(FLAGS_DWARF),libdw),y)
|
|
|
- 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);
|
|
|
- NO_DWARF := 1
|
|
|
- endif # Dwarf support
|
|
|
-endif # SOURCE_LIBELF
|
|
|
-endif # NO_LIBELF
|
|
|
-
|
|
|
-# There's only x86 (both 32 and 64) support for CFI unwind so far
|
|
|
-ifneq ($(ARCH),x86)
|
|
|
- NO_LIBUNWIND := 1
|
|
|
-endif
|
|
|
-
|
|
|
-ifndef NO_LIBUNWIND
|
|
|
-# for linking with debug library, run like:
|
|
|
-# make DEBUG=1 LIBUNWIND_DIR=/opt/libunwind/
|
|
|
-ifdef LIBUNWIND_DIR
|
|
|
- LIBUNWIND_CFLAGS := -I$(LIBUNWIND_DIR)/include
|
|
|
- LIBUNWIND_LDFLAGS := -L$(LIBUNWIND_DIR)/lib
|
|
|
-endif
|
|
|
-
|
|
|
-FLAGS_UNWIND=$(LIBUNWIND_CFLAGS) $(ALL_CFLAGS) $(LIBUNWIND_LDFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) $(LIBUNWIND_LIBS)
|
|
|
-ifneq ($(call try-cc,$(SOURCE_LIBUNWIND),$(FLAGS_UNWIND),libunwind),y)
|
|
|
- msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 0.99);
|
|
|
- NO_LIBUNWIND := 1
|
|
|
-endif # Libunwind support
|
|
|
-endif # NO_LIBUNWIND
|
|
|
-
|
|
|
-include arch/$(ARCH)/Makefile
|
|
|
|
|
|
ifneq ($(OUTPUT),)
|
|
|
- BASIC_CFLAGS += -I$(OUTPUT)
|
|
|
+ CFLAGS += -I$(OUTPUT)
|
|
|
endif
|
|
|
|
|
|
ifdef NO_LIBELF
|
|
@@ -647,281 +451,74 @@ BUILTIN_OBJS := $(filter-out $(OUTPUT)builtin-probe.o,$(BUILTIN_OBJS))
|
|
|
LIB_OBJS += $(OUTPUT)util/symbol-minimal.o
|
|
|
|
|
|
else # NO_LIBELF
|
|
|
-BASIC_CFLAGS += -DLIBELF_SUPPORT
|
|
|
-
|
|
|
-FLAGS_LIBELF=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS)
|
|
|
-ifeq ($(call try-cc,$(SOURCE_ELF_MMAP),$(FLAGS_LIBELF),-DLIBELF_MMAP),y)
|
|
|
- BASIC_CFLAGS += -DLIBELF_MMAP
|
|
|
-endif
|
|
|
-
|
|
|
ifndef NO_DWARF
|
|
|
-ifeq ($(origin PERF_HAVE_DWARF_REGS), undefined)
|
|
|
- msg := $(warning DWARF register mappings have not been defined for architecture $(ARCH), DWARF support disabled);
|
|
|
-else
|
|
|
- BASIC_CFLAGS := -DDWARF_SUPPORT $(LIBDW_CFLAGS) $(BASIC_CFLAGS)
|
|
|
- BASIC_LDFLAGS := $(LIBDW_LDFLAGS) $(BASIC_LDFLAGS)
|
|
|
- EXTLIBS += -lelf -ldw
|
|
|
- LIB_OBJS += $(OUTPUT)util/probe-finder.o
|
|
|
- LIB_OBJS += $(OUTPUT)util/dwarf-aux.o
|
|
|
-endif # PERF_HAVE_DWARF_REGS
|
|
|
+ LIB_OBJS += $(OUTPUT)util/probe-finder.o
|
|
|
+ LIB_OBJS += $(OUTPUT)util/dwarf-aux.o
|
|
|
endif # NO_DWARF
|
|
|
endif # NO_LIBELF
|
|
|
|
|
|
ifndef NO_LIBUNWIND
|
|
|
- BASIC_CFLAGS += -DLIBUNWIND_SUPPORT
|
|
|
- EXTLIBS += $(LIBUNWIND_LIBS)
|
|
|
- BASIC_CFLAGS := $(LIBUNWIND_CFLAGS) $(BASIC_CFLAGS)
|
|
|
- BASIC_LDFLAGS := $(LIBUNWIND_LDFLAGS) $(BASIC_LDFLAGS)
|
|
|
- LIB_OBJS += $(OUTPUT)util/unwind.o
|
|
|
+ LIB_OBJS += $(OUTPUT)util/unwind.o
|
|
|
endif
|
|
|
|
|
|
ifndef NO_LIBAUDIT
|
|
|
- FLAGS_LIBAUDIT = $(ALL_CFLAGS) $(ALL_LDFLAGS) -laudit
|
|
|
- ifneq ($(call try-cc,$(SOURCE_LIBAUDIT),$(FLAGS_LIBAUDIT),libaudit),y)
|
|
|
- msg := $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev);
|
|
|
- else
|
|
|
- BASIC_CFLAGS += -DLIBAUDIT_SUPPORT
|
|
|
- BUILTIN_OBJS += $(OUTPUT)builtin-trace.o
|
|
|
- EXTLIBS += -laudit
|
|
|
- endif
|
|
|
+ BUILTIN_OBJS += $(OUTPUT)builtin-trace.o
|
|
|
endif
|
|
|
|
|
|
ifndef NO_SLANG
|
|
|
- FLAGS_SLANG=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -I/usr/include/slang -lslang
|
|
|
- ifneq ($(call try-cc,$(SOURCE_SLANG),$(FLAGS_SLANG),libslang),y)
|
|
|
- msg := $(warning slang not found, disables TUI support. Please install slang-devel or libslang-dev);
|
|
|
- else
|
|
|
- # Fedora has /usr/include/slang/slang.h, but ubuntu /usr/include/slang.h
|
|
|
- BASIC_CFLAGS += -I/usr/include/slang
|
|
|
- BASIC_CFLAGS += -DSLANG_SUPPORT
|
|
|
- EXTLIBS += -lslang
|
|
|
- LIB_OBJS += $(OUTPUT)ui/browser.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/browsers/annotate.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/browsers/hists.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/browsers/map.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/browsers/scripts.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/tui/setup.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/tui/util.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/tui/helpline.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/tui/progress.o
|
|
|
- LIB_H += ui/browser.h
|
|
|
- LIB_H += ui/browsers/map.h
|
|
|
- LIB_H += ui/keysyms.h
|
|
|
- LIB_H += ui/libslang.h
|
|
|
- endif
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/browser.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/browsers/annotate.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/browsers/hists.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/browsers/map.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/browsers/scripts.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/tui/setup.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/tui/util.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/tui/helpline.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/tui/progress.o
|
|
|
+ LIB_H += ui/browser.h
|
|
|
+ LIB_H += ui/browsers/map.h
|
|
|
+ LIB_H += ui/keysyms.h
|
|
|
+ LIB_H += ui/libslang.h
|
|
|
endif
|
|
|
|
|
|
ifndef NO_GTK2
|
|
|
- FLAGS_GTK2=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) $(shell pkg-config --libs --cflags gtk+-2.0 2>/dev/null)
|
|
|
- ifneq ($(call try-cc,$(SOURCE_GTK2),$(FLAGS_GTK2),gtk2),y)
|
|
|
- msg := $(warning GTK2 not found, disables GTK2 support. Please install gtk2-devel or libgtk2.0-dev);
|
|
|
- else
|
|
|
- ifeq ($(call try-cc,$(SOURCE_GTK2_INFOBAR),$(FLAGS_GTK2),-DHAVE_GTK_INFO_BAR),y)
|
|
|
- BASIC_CFLAGS += -DHAVE_GTK_INFO_BAR
|
|
|
- endif
|
|
|
- BASIC_CFLAGS += -DGTK2_SUPPORT
|
|
|
- BASIC_CFLAGS += $(shell pkg-config --cflags gtk+-2.0 2>/dev/null)
|
|
|
- EXTLIBS += $(shell pkg-config --libs gtk+-2.0 2>/dev/null)
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/browser.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/hists.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/setup.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/util.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/helpline.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/progress.o
|
|
|
- LIB_OBJS += $(OUTPUT)ui/gtk/annotate.o
|
|
|
- endif
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/browser.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/hists.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/setup.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/util.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/helpline.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/progress.o
|
|
|
+ LIB_OBJS += $(OUTPUT)ui/gtk/annotate.o
|
|
|
endif
|
|
|
|
|
|
-ifdef NO_LIBPERL
|
|
|
- BASIC_CFLAGS += -DNO_LIBPERL
|
|
|
-else
|
|
|
- PERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null)
|
|
|
- PERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS))
|
|
|
- PERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS))
|
|
|
- PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null`
|
|
|
- FLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS)
|
|
|
-
|
|
|
- ifneq ($(call try-cc,$(SOURCE_PERL_EMBED),$(FLAGS_PERL_EMBED),perl),y)
|
|
|
- BASIC_CFLAGS += -DNO_LIBPERL
|
|
|
- else
|
|
|
- ALL_LDFLAGS += $(PERL_EMBED_LDFLAGS)
|
|
|
- EXTLIBS += $(PERL_EMBED_LIBADD)
|
|
|
- LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o
|
|
|
- LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o
|
|
|
- endif
|
|
|
+ifndef NO_LIBPERL
|
|
|
+ LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-perl.o
|
|
|
+ LIB_OBJS += $(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o
|
|
|
endif
|
|
|
|
|
|
-disable-python = $(eval $(disable-python_code))
|
|
|
-define disable-python_code
|
|
|
- BASIC_CFLAGS += -DNO_LIBPYTHON
|
|
|
- $(if $(1),$(warning No $(1) was found))
|
|
|
- $(warning Python support will not be built)
|
|
|
-endef
|
|
|
-
|
|
|
-override PYTHON := \
|
|
|
- $(call get-executable-or-default,PYTHON,python)
|
|
|
-
|
|
|
-ifndef PYTHON
|
|
|
- $(call disable-python,python interpreter)
|
|
|
-else
|
|
|
-
|
|
|
- PYTHON_WORD := $(call shell-wordify,$(PYTHON))
|
|
|
-
|
|
|
- ifdef NO_LIBPYTHON
|
|
|
- $(call disable-python)
|
|
|
- else
|
|
|
-
|
|
|
- override PYTHON_CONFIG := \
|
|
|
- $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON)-config)
|
|
|
-
|
|
|
- ifndef PYTHON_CONFIG
|
|
|
- $(call disable-python,python-config tool)
|
|
|
- else
|
|
|
-
|
|
|
- PYTHON_CONFIG_SQ := $(call shell-sq,$(PYTHON_CONFIG))
|
|
|
-
|
|
|
- PYTHON_EMBED_LDOPTS := $(shell $(PYTHON_CONFIG_SQ) --ldflags 2>/dev/null)
|
|
|
- PYTHON_EMBED_LDFLAGS := $(call strip-libs,$(PYTHON_EMBED_LDOPTS))
|
|
|
- PYTHON_EMBED_LIBADD := $(call grep-libs,$(PYTHON_EMBED_LDOPTS))
|
|
|
- PYTHON_EMBED_CCOPTS := $(shell $(PYTHON_CONFIG_SQ) --cflags 2>/dev/null)
|
|
|
- FLAGS_PYTHON_EMBED := $(PYTHON_EMBED_CCOPTS) $(PYTHON_EMBED_LDOPTS)
|
|
|
-
|
|
|
- ifneq ($(call try-cc,$(SOURCE_PYTHON_EMBED),$(FLAGS_PYTHON_EMBED),python),y)
|
|
|
- $(call disable-python,Python.h (for Python 2.x))
|
|
|
- else
|
|
|
-
|
|
|
- ifneq ($(call try-cc,$(SOURCE_PYTHON_VERSION),$(FLAGS_PYTHON_EMBED),python version),y)
|
|
|
- $(warning Python 3 is not yet supported; please set)
|
|
|
- $(warning PYTHON and/or PYTHON_CONFIG appropriately.)
|
|
|
- $(warning If you also have Python 2 installed, then)
|
|
|
- $(warning try something like:)
|
|
|
- $(warning $(and ,))
|
|
|
- $(warning $(and ,) make PYTHON=python2)
|
|
|
- $(warning $(and ,))
|
|
|
- $(warning Otherwise, disable Python support entirely:)
|
|
|
- $(warning $(and ,))
|
|
|
- $(warning $(and ,) make NO_LIBPYTHON=1)
|
|
|
- $(warning $(and ,))
|
|
|
- $(error $(and ,))
|
|
|
- else
|
|
|
- ALL_LDFLAGS += $(PYTHON_EMBED_LDFLAGS)
|
|
|
- EXTLIBS += $(PYTHON_EMBED_LIBADD)
|
|
|
- LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o
|
|
|
- LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o
|
|
|
- LANG_BINDINGS += $(OUTPUT)python/perf.so
|
|
|
- endif
|
|
|
-
|
|
|
- endif
|
|
|
- endif
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifdef NO_DEMANGLE
|
|
|
- BASIC_CFLAGS += -DNO_DEMANGLE
|
|
|
-else
|
|
|
- ifdef HAVE_CPLUS_DEMANGLE
|
|
|
- EXTLIBS += -liberty
|
|
|
- BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
|
|
|
- else
|
|
|
- FLAGS_BFD=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -DPACKAGE='perf' -lbfd
|
|
|
- has_bfd := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD),libbfd)
|
|
|
- ifeq ($(has_bfd),y)
|
|
|
- EXTLIBS += -lbfd
|
|
|
- else
|
|
|
- FLAGS_BFD_IBERTY=$(FLAGS_BFD) -liberty
|
|
|
- has_bfd_iberty := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY),liberty)
|
|
|
- ifeq ($(has_bfd_iberty),y)
|
|
|
- EXTLIBS += -lbfd -liberty
|
|
|
- else
|
|
|
- FLAGS_BFD_IBERTY_Z=$(FLAGS_BFD_IBERTY) -lz
|
|
|
- has_bfd_iberty_z := $(call try-cc,$(SOURCE_BFD),$(FLAGS_BFD_IBERTY_Z),libz)
|
|
|
- ifeq ($(has_bfd_iberty_z),y)
|
|
|
- EXTLIBS += -lbfd -liberty -lz
|
|
|
- else
|
|
|
- FLAGS_CPLUS_DEMANGLE=$(ALL_CFLAGS) $(ALL_LDFLAGS) $(EXTLIBS) -liberty
|
|
|
- has_cplus_demangle := $(call try-cc,$(SOURCE_CPLUS_DEMANGLE),$(FLAGS_CPLUS_DEMANGLE),demangle)
|
|
|
- ifeq ($(has_cplus_demangle),y)
|
|
|
- EXTLIBS += -liberty
|
|
|
- BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE
|
|
|
- else
|
|
|
- msg := $(warning No bfd.h/libbfd found, install binutils-dev[el]/zlib-static to gain symbol demangling)
|
|
|
- BASIC_CFLAGS += -DNO_DEMANGLE
|
|
|
- endif
|
|
|
- endif
|
|
|
- endif
|
|
|
- endif
|
|
|
- endif
|
|
|
+ifndef NO_LIBPYTHON
|
|
|
+ LIB_OBJS += $(OUTPUT)util/scripting-engines/trace-event-python.o
|
|
|
+ LIB_OBJS += $(OUTPUT)scripts/python/Perf-Trace-Util/Context.o
|
|
|
endif
|
|
|
|
|
|
ifeq ($(NO_PERF_REGS),0)
|
|
|
- ifeq ($(ARCH),x86)
|
|
|
- LIB_H += arch/x86/include/perf_regs.h
|
|
|
- endif
|
|
|
- BASIC_CFLAGS += -DHAVE_PERF_REGS
|
|
|
-endif
|
|
|
-
|
|
|
-ifndef NO_STRLCPY
|
|
|
- ifeq ($(call try-cc,$(SOURCE_STRLCPY),,-DHAVE_STRLCPY),y)
|
|
|
- BASIC_CFLAGS += -DHAVE_STRLCPY
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifndef NO_ON_EXIT
|
|
|
- ifeq ($(call try-cc,$(SOURCE_ON_EXIT),,-DHAVE_ON_EXIT),y)
|
|
|
- BASIC_CFLAGS += -DHAVE_ON_EXIT
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifndef NO_BACKTRACE
|
|
|
- ifeq ($(call try-cc,$(SOURCE_BACKTRACE),,-DBACKTRACE_SUPPORT),y)
|
|
|
- BASIC_CFLAGS += -DBACKTRACE_SUPPORT
|
|
|
- endif
|
|
|
+ ifeq ($(ARCH),x86)
|
|
|
+ LIB_H += arch/x86/include/perf_regs.h
|
|
|
+ endif
|
|
|
endif
|
|
|
|
|
|
ifndef NO_LIBNUMA
|
|
|
- FLAGS_LIBNUMA = $(ALL_CFLAGS) $(ALL_LDFLAGS) -lnuma
|
|
|
- ifneq ($(call try-cc,$(SOURCE_LIBNUMA),$(FLAGS_LIBNUMA),libnuma),y)
|
|
|
- msg := $(warning No numa.h found, disables 'perf bench numa mem' benchmark, please install numa-libs-devel or libnuma-dev);
|
|
|
- else
|
|
|
- BASIC_CFLAGS += -DLIBNUMA_SUPPORT
|
|
|
- BUILTIN_OBJS += $(OUTPUT)bench/numa.o
|
|
|
- EXTLIBS += -lnuma
|
|
|
- endif
|
|
|
+ BUILTIN_OBJS += $(OUTPUT)bench/numa.o
|
|
|
endif
|
|
|
|
|
|
ifdef ASCIIDOC8
|
|
|
- export ASCIIDOC8
|
|
|
+ export ASCIIDOC8
|
|
|
endif
|
|
|
|
|
|
-endif # MAKECMDGOALS != tags
|
|
|
-endif # MAKECMDGOALS != clean
|
|
|
-
|
|
|
-# Shell quote (do not use $(call) to accommodate ancient setups);
|
|
|
-
|
|
|
-ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
|
|
|
-
|
|
|
-DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
|
|
-bindir_SQ = $(subst ','\'',$(bindir))
|
|
|
-bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
|
|
|
-mandir_SQ = $(subst ','\'',$(mandir))
|
|
|
-infodir_SQ = $(subst ','\'',$(infodir))
|
|
|
-perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
|
|
|
-template_dir_SQ = $(subst ','\'',$(template_dir))
|
|
|
-htmldir_SQ = $(subst ','\'',$(htmldir))
|
|
|
-prefix_SQ = $(subst ','\'',$(prefix))
|
|
|
-sysconfdir_SQ = $(subst ','\'',$(sysconfdir))
|
|
|
-
|
|
|
-SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
|
|
-
|
|
|
LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
|
|
|
|
|
|
-ALL_CFLAGS += $(BASIC_CFLAGS)
|
|
|
-ALL_CFLAGS += $(ARCH_CFLAGS)
|
|
|
-ALL_LDFLAGS += $(BASIC_LDFLAGS)
|
|
|
-
|
|
|
export INSTALL SHELL_PATH
|
|
|
|
|
|
-
|
|
|
### Build rules
|
|
|
|
|
|
SHELL = $(SHELL_PATH)
|
|
@@ -939,20 +536,20 @@ strip: $(PROGRAMS) $(OUTPUT)perf
|
|
|
$(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
|
|
|
$(QUIET_CC)$(CC) -include $(OUTPUT)PERF-VERSION-FILE \
|
|
|
'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
|
|
|
- $(ALL_CFLAGS) -c $(filter %.c,$^) -o $@
|
|
|
+ $(CFLAGS) -c $(filter %.c,$^) -o $@
|
|
|
|
|
|
$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS)
|
|
|
- $(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \
|
|
|
+ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(OUTPUT)perf.o \
|
|
|
$(BUILTIN_OBJS) $(LIBS) -o $@
|
|
|
|
|
|
$(OUTPUT)builtin-help.o: builtin-help.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \
|
|
|
'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
|
|
|
'-DPERF_MAN_PATH="$(mandir_SQ)"' \
|
|
|
'-DPERF_INFO_PATH="$(infodir_SQ)"' $<
|
|
|
|
|
|
$(OUTPUT)builtin-timechart.o: builtin-timechart.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \
|
|
|
'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
|
|
|
'-DPERF_MAN_PATH="$(mandir_SQ)"' \
|
|
|
'-DPERF_INFO_PATH="$(infodir_SQ)"' $<
|
|
@@ -977,77 +574,77 @@ $(OUTPUT)perf.o perf.spec \
|
|
|
# over the general rule for .o
|
|
|
|
|
|
$(OUTPUT)util/%-flex.o: $(OUTPUT)util/%-flex.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(ALL_CFLAGS) -w $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(CFLAGS) -w $<
|
|
|
|
|
|
$(OUTPUT)util/%-bison.o: $(OUTPUT)util/%-bison.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(ALL_CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c -Iutil/ $(CFLAGS) -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w $<
|
|
|
|
|
|
$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $<
|
|
|
$(OUTPUT)%.i: %.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -E $(ALL_CFLAGS) $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -E $(CFLAGS) $<
|
|
|
$(OUTPUT)%.s: %.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -S $(ALL_CFLAGS) $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -S $(CFLAGS) $<
|
|
|
$(OUTPUT)%.o: %.S
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $<
|
|
|
$(OUTPUT)%.s: %.S
|
|
|
- $(QUIET_CC)$(CC) -o $@ -E $(ALL_CFLAGS) $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -E $(CFLAGS) $<
|
|
|
|
|
|
$(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \
|
|
|
'-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \
|
|
|
'-DPREFIX="$(prefix_SQ)"' \
|
|
|
$<
|
|
|
|
|
|
$(OUTPUT)tests/attr.o: tests/attr.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \
|
|
|
'-DBINDIR="$(bindir_SQ)"' -DPYTHON='"$(PYTHON_WORD)"' \
|
|
|
$<
|
|
|
|
|
|
$(OUTPUT)tests/python-use.o: tests/python-use.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) \
|
|
|
-DPYTHONPATH='"$(OUTPUT)python"' \
|
|
|
-DPYTHON='"$(PYTHON_WORD)"' \
|
|
|
$<
|
|
|
|
|
|
$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
|
|
|
|
|
|
$(OUTPUT)ui/browser.o: ui/browser.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
|
|
|
$(OUTPUT)ui/browsers/annotate.o: ui/browsers/annotate.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
|
|
|
$(OUTPUT)ui/browsers/hists.o: ui/browsers/hists.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
|
|
|
$(OUTPUT)ui/browsers/map.o: ui/browsers/map.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
|
|
|
$(OUTPUT)ui/browsers/scripts.o: ui/browsers/scripts.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -DENABLE_SLFUTURE_CONST $<
|
|
|
|
|
|
$(OUTPUT)util/rbtree.o: ../../lib/rbtree.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-unused-parameter -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
|
|
|
|
|
|
$(OUTPUT)util/parse-events.o: util/parse-events.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -Wno-redundant-decls $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) -Wno-redundant-decls $<
|
|
|
|
|
|
$(OUTPUT)util/scripting-engines/trace-event-perl.o: util/scripting-engines/trace-event-perl.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
|
|
|
|
|
|
$(OUTPUT)scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
|
|
|
|
|
|
$(OUTPUT)util/scripting-engines/trace-event-python.o: util/scripting-engines/trace-event-python.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $<
|
|
|
|
|
|
$(OUTPUT)scripts/python/Perf-Trace-Util/Context.o: scripts/python/Perf-Trace-Util/Context.c $(OUTPUT)PERF-CFLAGS
|
|
|
- $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
|
|
|
+ $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $<
|
|
|
|
|
|
$(OUTPUT)perf-%: %.o $(PERFLIBS)
|
|
|
- $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
|
|
|
+ $(QUIET_LINK)$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $(filter %.o,$^) $(LIBS)
|
|
|
|
|
|
$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
|
|
|
$(patsubst perf-%,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
|
|
@@ -1134,7 +731,7 @@ cscope:
|
|
|
$(FIND) . -name '*.[hcS]' -print | xargs cscope -b
|
|
|
|
|
|
### Detect prefix changes
|
|
|
-TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\
|
|
|
+TRACK_CFLAGS = $(subst ','\'',$(CFLAGS)):\
|
|
|
$(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
|
|
|
|
|
|
$(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS
|
|
@@ -1155,7 +752,7 @@ check: $(OUTPUT)common-cmds.h
|
|
|
then \
|
|
|
for i in *.c */*.c; \
|
|
|
do \
|
|
|
- sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
|
|
|
+ sparse $(CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
|
|
|
done; \
|
|
|
else \
|
|
|
exit 1; \
|
|
@@ -1163,13 +760,6 @@ check: $(OUTPUT)common-cmds.h
|
|
|
|
|
|
### Installation rules
|
|
|
|
|
|
-ifneq ($(filter /%,$(firstword $(perfexecdir))),)
|
|
|
-perfexec_instdir = $(perfexecdir)
|
|
|
-else
|
|
|
-perfexec_instdir = $(prefix)/$(perfexecdir)
|
|
|
-endif
|
|
|
-perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
|
|
|
-
|
|
|
install-bin: all
|
|
|
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
|
|
|
$(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'
|