|
@@ -88,6 +88,10 @@ include ../scripts/utilities.mak
|
|
# and bypass the feature detection
|
|
# and bypass the feature detection
|
|
#
|
|
#
|
|
# Define NO_JVMTI if you do not want jvmti agent built
|
|
# Define NO_JVMTI if you do not want jvmti agent built
|
|
|
|
+#
|
|
|
|
+# Define LIBCLANGLLVM if you DO want builtin clang and llvm support.
|
|
|
|
+# When selected, pass LLVM_CONFIG=/path/to/llvm-config to `make' if
|
|
|
|
+# llvm-config is not in $PATH.
|
|
|
|
|
|
# As per kernel Makefile, avoid funny character set dependencies
|
|
# As per kernel Makefile, avoid funny character set dependencies
|
|
unexport LC_ALL
|
|
unexport LC_ALL
|
|
@@ -143,6 +147,7 @@ endef
|
|
$(call allow-override,CC,$(CROSS_COMPILE)gcc)
|
|
$(call allow-override,CC,$(CROSS_COMPILE)gcc)
|
|
$(call allow-override,AR,$(CROSS_COMPILE)ar)
|
|
$(call allow-override,AR,$(CROSS_COMPILE)ar)
|
|
$(call allow-override,LD,$(CROSS_COMPILE)ld)
|
|
$(call allow-override,LD,$(CROSS_COMPILE)ld)
|
|
|
|
+$(call allow-override,CXX,$(CROSS_COMPILE)g++)
|
|
|
|
|
|
LD += $(EXTRA_LDFLAGS)
|
|
LD += $(EXTRA_LDFLAGS)
|
|
|
|
|
|
@@ -151,6 +156,7 @@ HOSTLD ?= ld
|
|
HOSTAR ?= ar
|
|
HOSTAR ?= ar
|
|
|
|
|
|
PKG_CONFIG = $(CROSS_COMPILE)pkg-config
|
|
PKG_CONFIG = $(CROSS_COMPILE)pkg-config
|
|
|
|
+LLVM_CONFIG ?= llvm-config
|
|
|
|
|
|
RM = rm -f
|
|
RM = rm -f
|
|
LN = ln -f
|
|
LN = ln -f
|
|
@@ -171,7 +177,7 @@ SUBCMD_DIR = $(srctree)/tools/lib/subcmd/
|
|
# non-config cases
|
|
# non-config cases
|
|
config := 1
|
|
config := 1
|
|
|
|
|
|
-NON_CONFIG_TARGETS := clean TAGS tags cscope help install-doc
|
|
|
|
|
|
+NON_CONFIG_TARGETS := clean TAGS tags cscope help install-doc install-man install-html install-info install-pdf doc man html info pdf
|
|
|
|
|
|
ifdef MAKECMDGOALS
|
|
ifdef MAKECMDGOALS
|
|
ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
|
|
ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
|
|
@@ -262,17 +268,6 @@ python-clean := $(call QUIET_CLEAN, python) $(RM) -r $(PYTHON_EXTBUILD) $(OUTPUT
|
|
PYTHON_EXT_SRCS := $(shell grep -v ^\# util/python-ext-sources)
|
|
PYTHON_EXT_SRCS := $(shell grep -v ^\# util/python-ext-sources)
|
|
PYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT) $(LIBAPI)
|
|
PYTHON_EXT_DEPS := util/python-ext-sources util/setup.py $(LIBTRACEEVENT) $(LIBAPI)
|
|
|
|
|
|
-$(OUTPUT)python/perf.so: $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBTRACEEVENT_DYNAMIC_LIST)
|
|
|
|
- $(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
|
|
|
|
- CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS) $(LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS)' \
|
|
|
|
- $(PYTHON_WORD) util/setup.py \
|
|
|
|
- --quiet build_ext; \
|
|
|
|
- mkdir -p $(OUTPUT)python && \
|
|
|
|
- cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
|
|
|
|
-#
|
|
|
|
-# No Perl scripts right now:
|
|
|
|
-#
|
|
|
|
-
|
|
|
|
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
|
|
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
|
|
|
|
|
|
PROGRAMS += $(OUTPUT)perf
|
|
PROGRAMS += $(OUTPUT)perf
|
|
@@ -325,11 +320,6 @@ endif
|
|
ifndef NO_GTK2
|
|
ifndef NO_GTK2
|
|
ALL_PROGRAMS += $(OUTPUT)libperf-gtk.so
|
|
ALL_PROGRAMS += $(OUTPUT)libperf-gtk.so
|
|
GTK_IN := $(OUTPUT)gtk-in.o
|
|
GTK_IN := $(OUTPUT)gtk-in.o
|
|
-
|
|
|
|
-install-gtk: $(OUTPUT)libperf-gtk.so
|
|
|
|
- $(call QUIET_INSTALL, 'GTK UI') \
|
|
|
|
- $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
|
|
|
|
- $(INSTALL) $(OUTPUT)libperf-gtk.so '$(DESTDIR_SQ)$(libdir_SQ)'
|
|
|
|
endif
|
|
endif
|
|
|
|
|
|
ifdef ASCIIDOC8
|
|
ifdef ASCIIDOC8
|
|
@@ -338,6 +328,21 @@ endif
|
|
|
|
|
|
LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
|
|
LIBS = -Wl,--whole-archive $(PERFLIBS) -Wl,--no-whole-archive -Wl,--start-group $(EXTLIBS) -Wl,--end-group
|
|
|
|
|
|
|
|
+ifeq ($(USE_CLANG), 1)
|
|
|
|
+ CLANGLIBS_LIST = AST Basic CodeGen Driver Frontend Lex Tooling Edit Sema Analysis Parse Serialization
|
|
|
|
+ LIBCLANG = $(foreach l,$(CLANGLIBS_LIST),$(wildcard $(shell $(LLVM_CONFIG) --libdir)/libclang$(l).a))
|
|
|
|
+ LIBS += -Wl,--start-group $(LIBCLANG) -Wl,--end-group
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+ifeq ($(USE_LLVM), 1)
|
|
|
|
+ LIBLLVM = $(shell $(LLVM_CONFIG) --libs all) $(shell $(LLVM_CONFIG) --system-libs)
|
|
|
|
+ LIBS += -L$(shell $(LLVM_CONFIG) --libdir) $(LIBLLVM)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+ifeq ($(USE_CXX), 1)
|
|
|
|
+ LIBS += -lstdc++
|
|
|
|
+endif
|
|
|
|
+
|
|
export INSTALL SHELL_PATH
|
|
export INSTALL SHELL_PATH
|
|
|
|
|
|
### Build rules
|
|
### Build rules
|
|
@@ -346,6 +351,14 @@ SHELL = $(SHELL_PATH)
|
|
|
|
|
|
all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
|
|
all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
|
|
|
|
|
|
|
|
+$(OUTPUT)python/perf.so: $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS) $(LIBTRACEEVENT_DYNAMIC_LIST)
|
|
|
|
+ $(QUIET_GEN)LDSHARED="$(CC) -pthread -shared" \
|
|
|
|
+ CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS) $(LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS)' \
|
|
|
|
+ $(PYTHON_WORD) util/setup.py \
|
|
|
|
+ --quiet build_ext; \
|
|
|
|
+ mkdir -p $(OUTPUT)python && \
|
|
|
|
+ cp $(PYTHON_EXTBUILD_LIB)perf.so $(OUTPUT)python/
|
|
|
|
+
|
|
please_set_SHELL_PATH_to_a_more_modern_shell:
|
|
please_set_SHELL_PATH_to_a_more_modern_shell:
|
|
$(Q)$$(:)
|
|
$(Q)$$(:)
|
|
|
|
|
|
@@ -356,7 +369,7 @@ strip: $(PROGRAMS) $(OUTPUT)perf
|
|
|
|
|
|
PERF_IN := $(OUTPUT)perf-in.o
|
|
PERF_IN := $(OUTPUT)perf-in.o
|
|
|
|
|
|
-export srctree OUTPUT RM CC LD AR CFLAGS V BISON FLEX AWK
|
|
|
|
|
|
+export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK
|
|
export HOSTCC HOSTLD HOSTAR
|
|
export HOSTCC HOSTLD HOSTAR
|
|
include $(srctree)/tools/build/Makefile.include
|
|
include $(srctree)/tools/build/Makefile.include
|
|
|
|
|
|
@@ -691,7 +704,14 @@ check: $(OUTPUT)common-cmds.h
|
|
|
|
|
|
### Installation rules
|
|
### Installation rules
|
|
|
|
|
|
|
|
+ifndef NO_GTK2
|
|
|
|
+install-gtk: $(OUTPUT)libperf-gtk.so
|
|
|
|
+ $(call QUIET_INSTALL, 'GTK UI') \
|
|
|
|
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \
|
|
|
|
+ $(INSTALL) $(OUTPUT)libperf-gtk.so '$(DESTDIR_SQ)$(libdir_SQ)'
|
|
|
|
+else
|
|
install-gtk:
|
|
install-gtk:
|
|
|
|
+endif
|
|
|
|
|
|
install-tools: all install-gtk
|
|
install-tools: all install-gtk
|
|
$(call QUIET_INSTALL, binaries) \
|
|
$(call QUIET_INSTALL, binaries) \
|