aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/Makefile
diff options
context:
space:
mode:
authorTom Zanussi <tzanussi@gmail.com>2009-11-25 02:15:48 -0500
committerIngo Molnar <mingo@elte.hu>2009-11-28 04:04:26 -0500
commit16c632de64a74644a46e7636db26b2cfb530ca13 (patch)
tree4e7fdb4f84a1fba8b299c61a97bc76a8033e0565 /tools/perf/Makefile
parenteb9a42caa7a926beb935a22bc59d981b35f0b652 (diff)
perf trace: Add Perl scripting support
Implement trace_scripting_ops to make Perl a supported perf trace scripting language. Additionally adds code that allows Perl trace scripts to access the 'flag' and 'symbolic' (__print_flags(), __print_symbolic()) field information parsed from the trace format files. Also adds the Perl implementation of the generate_script() trace_scripting_op, which creates a ready-to-run perf trace Perl script based on existing trace data. Scripts generated by this implementation print out all the fields for each event mentioned in perf.data (and will detect and generate the proper scripting code for 'flag' and 'symbolic' fields), and will additionally generate handlers for the special 'trace_unhandled', 'trace_begin' and 'trace_end' handlers. Script authors can simply remove the printing code to implement their own custom event handling. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: fweisbec@gmail.com Cc: rostedt@goodmis.org Cc: anton@samba.org Cc: hch@infradead.org LKML-Reference: <1259133352-23685-4-git-send-email-tzanussi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/Makefile')
-rw-r--r--tools/perf/Makefile13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index f1537a94a05f..19e37cd14ae4 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -407,6 +407,7 @@ LIB_OBJS += util/thread.o
407LIB_OBJS += util/trace-event-parse.o 407LIB_OBJS += util/trace-event-parse.o
408LIB_OBJS += util/trace-event-read.o 408LIB_OBJS += util/trace-event-read.o
409LIB_OBJS += util/trace-event-info.o 409LIB_OBJS += util/trace-event-info.o
410LIB_OBJS += util/trace-event-perl.o
410LIB_OBJS += util/svghelper.o 411LIB_OBJS += util/svghelper.o
411LIB_OBJS += util/sort.o 412LIB_OBJS += util/sort.o
412LIB_OBJS += util/hist.o 413LIB_OBJS += util/hist.o
@@ -489,6 +490,15 @@ else
489 LIB_OBJS += util/probe-finder.o 490 LIB_OBJS += util/probe-finder.o
490endif 491endif
491 492
493PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts`
494PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts`
495
496ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o /dev/null $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y)
497 BASIC_CFLAGS += -DNO_LIBPERL
498else
499 ALL_LDFLAGS += $(PERL_EMBED_LDOPTS)
500endif
501
492ifdef NO_DEMANGLE 502ifdef NO_DEMANGLE
493 BASIC_CFLAGS += -DNO_DEMANGLE 503 BASIC_CFLAGS += -DNO_DEMANGLE
494else 504else
@@ -860,6 +870,9 @@ util/hweight.o: ../../lib/hweight.c PERF-CFLAGS
860util/find_next_bit.o: ../../lib/find_next_bit.c PERF-CFLAGS 870util/find_next_bit.o: ../../lib/find_next_bit.c PERF-CFLAGS
861 $(QUIET_CC)$(CC) -o util/find_next_bit.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< 871 $(QUIET_CC)$(CC) -o util/find_next_bit.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
862 872
873util/trace-event-perl.o: util/trace-event-perl.c PERF-CFLAGS
874 $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter $<
875
863perf-%$X: %.o $(PERFLIBS) 876perf-%$X: %.o $(PERFLIBS)
864 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) 877 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
865 878