Re: [PATCH 03/15] perf: Build libtraceevent.a

From: Borislav Petkov
Date: Fri Apr 06 2012 - 07:45:30 EST


On Fri, Apr 06, 2012 at 12:47:54AM +0200, Frederic Weisbecker wrote:
> From: Steven Rostedt <srostedt@xxxxxxxxxx>
>
> Have building perf also build libtraceevent.a. Currently, perf does
> not use the code within libtraceevent.a, but it soon will.
>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Arun Sharma <asharma@xxxxxx>
> Cc: Namhyung Kim <namhyung.kim@xxxxxxx>
> Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> ---
> tools/perf/Makefile | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 6f93a99..8e60e51 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -1,5 +1,6 @@
> ifeq ("$(origin O)", "command line")
> OUTPUT := $(O)/
> + COMMAND_O := O=$(O)
> endif
>
> # The default target of this Makefile is...
> @@ -211,6 +212,9 @@ $(OUTPUT)python/perf.so: $(PYRF_OBJS) $(PYTHON_EXT_SRCS) $(PYTHON_EXT_DEPS)
>
> SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
>
> +EVENT_PARSE_DIR = ../lib/traceevent/
> +LIBTRACEEVENT = $(OUTPUT)$(EVENT_PARSE_DIR)libtraceevent.a
> +
> #
> # Single 'perf' binary right now:
> #
> @@ -335,6 +339,7 @@ LIB_H += util/cpumap.h
> LIB_H += util/top.h
> LIB_H += $(ARCH_INCLUDE)
> LIB_H += util/cgroup.h
> +LIB_H += $(EVENT_PARSE_DIR)event-parse.h
>
> LIB_OBJS += $(OUTPUT)util/abspath.o
> LIB_OBJS += $(OUTPUT)util/alias.o
> @@ -741,7 +746,7 @@ $(OUTPUT)perf.o: perf.c $(OUTPUT)common-cmds.h $(OUTPUT)PERF-CFLAGS
> '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
> $(ALL_CFLAGS) -c $(filter %.c,$^) -o $@
>
> -$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS)
> +$(OUTPUT)perf: $(OUTPUT)perf.o $(BUILTIN_OBJS) $(PERFLIBS) $(LIBTRACEEVENT)
> $(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(OUTPUT)perf.o \
> $(BUILTIN_OBJS) $(LIBS) -o $@
>
> @@ -847,6 +852,10 @@ $(sort $(dir $(DIRECTORY_DEPS))):
> $(LIB_FILE): $(LIB_OBJS)
> $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)
>
> +# libparsevent.a
> +$(LIBTRACEEVENT):
> + make -C $(EVENT_PARSE_DIR) $(COMMAND_O) libtraceevent.a
> +

With a toplevel Makefile in tools/, this should be made into its own
target residing in tools/lib/traceevent/Makefile and a perf build should
be dependent on it instead of adding a perf-specific libtraceevent
target here.

--
Regards/Gruss,
Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/