[PATCH 11/39] tools build: Build fixdep helper from perf and basic libs

From: Arnaldo Carvalho de Melo
Date: Mon Sep 28 2015 - 17:17:39 EST


From: Jiri Olsa <jolsa@xxxxxxxxxx>

Adding the fixdep target into the Makefile.include to ease up building of
fixdep helper, that needs to be built before we dive in to the build itself.
The user can invoke the fixdep target to build the helper.

Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link: http://lkml.kernel.org/r/1443004442-32660-8-git-send-email-jolsa@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/build/Documentation/Build.txt | 7 +++++++
tools/build/Makefile.include | 5 +++++
tools/build/tests/ex/Makefile | 8 +++++---
tools/lib/api/Makefile | 4 +++-
tools/lib/bpf/Makefile | 4 +++-
tools/lib/lockdep/Makefile | 4 +++-
tools/perf/Makefile.perf | 12 ++++++------
7 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/tools/build/Documentation/Build.txt b/tools/build/Documentation/Build.txt
index 88824359d595..a47bffbae159 100644
--- a/tools/build/Documentation/Build.txt
+++ b/tools/build/Documentation/Build.txt
@@ -113,6 +113,13 @@ It defines following interface:
make $(build)=ex


+Fixdep
+------
+It is necessary to build the fixdep helper before invoking the build.
+The Makefile.include file adds the fixdep target, that could be
+invoked by the user.
+
+
Rules
-----

diff --git a/tools/build/Makefile.include b/tools/build/Makefile.include
index 91bc60616de5..6572bb023543 100644
--- a/tools/build/Makefile.include
+++ b/tools/build/Makefile.include
@@ -1 +1,6 @@
build := -f $(srctree)/tools/build/Makefile.build dir=. obj
+
+fixdep:
+ $(Q)$(MAKE) -C $(srctree)/tools/build fixdep
+
+.PHONY: fixdep
diff --git a/tools/build/tests/ex/Makefile b/tools/build/tests/ex/Makefile
index f279b84cb859..c50d5782ad5a 100644
--- a/tools/build/tests/ex/Makefile
+++ b/tools/build/tests/ex/Makefile
@@ -3,18 +3,20 @@ export CC := gcc
export LD := ld
export AR := ar

+ex:
+
include $(srctree)/tools/build/Makefile.include

ex: ex-in.o libex-in.o
gcc -o $@ $^

-ex.%: FORCE
+ex.%: fixdep FORCE
make -f $(srctree)/tools/build/Makefile.build dir=. $@

-ex-in.o: FORCE
+ex-in.o: fixdep FORCE
make $(build)=ex

-libex-in.o: FORCE
+libex-in.o: fixdep FORCE
make $(build)=libex

clean:
diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index 8806ea7c2f99..d85904dc9b38 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -23,10 +23,12 @@ RM = rm -f

API_IN := $(OUTPUT)libapi-in.o

+all:
+
export srctree OUTPUT CC LD CFLAGS V
include $(srctree)/tools/build/Makefile.include

-all: $(LIBFILE)
+all: fixdep $(LIBFILE)

$(API_IN): FORCE
@$(MAKE) $(build)=libapi
diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
index c66ade68d4a1..fc9af57b666e 100644
--- a/tools/lib/bpf/Makefile
+++ b/tools/lib/bpf/Makefile
@@ -123,6 +123,8 @@ endif
# the same command line setup.
MAKEOVERRIDES=

+all:
+
export srctree OUTPUT CC LD CFLAGS V
include $(srctree)/tools/build/Makefile.include

@@ -133,7 +135,7 @@ CMD_TARGETS = $(LIB_FILE)

TARGETS = $(CMD_TARGETS)

-all: $(VERSION_FILES) all_cmd
+all: fixdep $(VERSION_FILES) all_cmd

all_cmd: $(CMD_TARGETS)

diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile
index d12081da383b..7e319afac78a 100644
--- a/tools/lib/lockdep/Makefile
+++ b/tools/lib/lockdep/Makefile
@@ -93,6 +93,8 @@ else
print_install = echo ' INSTALL '$1' to $(DESTDIR_SQ)$2';
endif

+all:
+
export srctree OUTPUT CC LD CFLAGS V
include $(srctree)/tools/build/Makefile.include

@@ -109,7 +111,7 @@ CMD_TARGETS = $(LIB_FILE)
TARGETS = $(CMD_TARGETS)


-all: all_cmd
+all: fixdep all_cmd

all_cmd: $(CMD_TARGETS)

diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 25c1753ffbeb..56517d304772 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -306,7 +306,7 @@ $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(LIBTRACEEVENT_DYNAMIC_LIST)
$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS) \
$(PERF_IN) $(LIBS) -o $@

-$(GTK_IN): FORCE
+$(GTK_IN): fixdep FORCE
$(Q)$(MAKE) $(build)=gtk

$(OUTPUT)libperf-gtk.so: $(GTK_IN) $(PERFLIBS)
@@ -349,7 +349,7 @@ endif
__build-dir = $(subst $(OUTPUT),,$(dir $@))
build-dir = $(if $(__build-dir),$(__build-dir),.)

-prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h
+prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h fixdep

$(OUTPUT)%.o: %.c prepare FORCE
$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=$(build-dir) $@
@@ -389,7 +389,7 @@ $(patsubst perf-%,%.o,$(PROGRAMS)): $(wildcard */*.h)

LIBPERF_IN := $(OUTPUT)libperf-in.o

-$(LIBPERF_IN): FORCE
+$(LIBPERF_IN): fixdep FORCE
$(Q)$(MAKE) $(build)=libperf

$(LIB_FILE): $(LIBPERF_IN)
@@ -397,10 +397,10 @@ $(LIB_FILE): $(LIBPERF_IN)

LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ)

-$(LIBTRACEEVENT): FORCE
+$(LIBTRACEEVENT): fixdep FORCE
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a

-libtraceevent_plugins: FORCE
+libtraceevent_plugins: fixdep FORCE
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) plugins

$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins
@@ -413,7 +413,7 @@ $(LIBTRACEEVENT)-clean:
install-traceevent-plugins: $(LIBTRACEEVENT)
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) install_plugins

-$(LIBAPI): FORCE
+$(LIBAPI): fixdep FORCE
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) $(OUTPUT)libapi.a

$(LIBAPI)-clean:
--
2.1.0

--
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/