public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Jiri Olsa <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, jolsa@kernel.org,
	a.p.zijlstra@chello.nl, hpa@zytor.com, acme@redhat.com,
	tglx@linutronix.de, dsahern@gmail.com, mingo@kernel.org,
	namhyung@kernel.org
Subject: [tip:perf/core] tools build: Make the fixdep helper part of the build process
Date: Tue, 29 Sep 2015 01:40:27 -0700	[thread overview]
Message-ID: <tip-9fb81323eb3085b6a47fe81d78541958ae7eaea3@git.kernel.org> (raw)
In-Reply-To: <1443004442-32660-6-git-send-email-jolsa@kernel.org>

Commit-ID:  9fb81323eb3085b6a47fe81d78541958ae7eaea3
Gitweb:     http://git.kernel.org/tip/9fb81323eb3085b6a47fe81d78541958ae7eaea3
Author:     Jiri Olsa <jolsa@kernel.org>
AuthorDate: Wed, 23 Sep 2015 12:34:00 +0200
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 28 Sep 2015 15:50:55 -0300

tools build: Make the fixdep helper part of the build process

Making the fixdep helper to be invoked within dep-cmd.

Each user of the build framework needs to make sure fixdep exists before
executing the build itself.

If the build doesn't find fixdep, it falls back to the old style
dependency tracking.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1443004442-32660-6-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/build/Build.include  | 10 ++++++++--
 tools/build/Makefile.build |  7 +++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/tools/build/Build.include b/tools/build/Build.include
index 851c420..4d000bc 100644
--- a/tools/build/Build.include
+++ b/tools/build/Build.include
@@ -58,8 +58,14 @@ any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)
 # Copy dependency data into .cmd file
 #  - gcc -M dependency info
 #  - command line to create object 'cmd_object :='
-dep-cmd = cat $(depfile) >  $(dot-target).cmd; \
-          printf '%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd
+dep-cmd = $(if $(wildcard $(fixdep)),                                           \
+           $(fixdep) $(depfile) $@ '$(make-cmd)' > $(dot-target).tmp;           \
+           rm -f $(depfile);                                                    \
+           mv -f $(dot-target).tmp $(dot-target).cmd,                           \
+           printf '\# cannot find fixdep (%s)\n' $(fixdep) > $(dot-target).cmd; \
+           printf '\# using basic dep data\n\n' >> $(dot-target).cmd;           \
+           cat $(depfile) >> $(dot-target).cmd;                                 \
+           printf '%s\n' 'cmd_$@ := $(make-cmd)' >> $(dot-target).cmd)
 
 ###
 # if_changed_dep  - execute command if any prerequisite is newer than
diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build
index 0c5f485..4a96473 100644
--- a/tools/build/Makefile.build
+++ b/tools/build/Makefile.build
@@ -21,6 +21,13 @@ endif
 
 build-dir := $(srctree)/tools/build
 
+# Define $(fixdep) for dep-cmd function
+ifeq ($(OUTPUT),)
+  fixdep := $(build-dir)/fixdep
+else
+  fixdep := $(OUTPUT)/fixdep
+endif
+
 # Generic definitions
 include $(build-dir)/Build.include
 

  reply	other threads:[~2015-09-29  8:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-23 10:33 [PATCH 0/7] tools build: Fix header removal build issue Jiri Olsa
2015-09-23 10:33 ` [PATCH 1/7] tools build: Add Makefile.include Jiri Olsa
2015-09-29  8:38   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 2/7] tools build: Add test for missing include Jiri Olsa
2015-09-25 17:43   ` Arnaldo Carvalho de Melo
2015-09-27 19:45     ` Jiri Olsa
2015-09-29  8:39   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 3/7] tools build: Add fixdep dependency helper Jiri Olsa
2015-09-29  8:39   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:33 ` [PATCH 4/7] tools build: Move dependency copy into function Jiri Olsa
2015-09-29  8:40   ` [tip:perf/core] " tip-bot for Jiri Olsa
2015-09-23 10:34 ` [PATCH 5/7] tools build: Make fixdep helper part of the build process Jiri Olsa
2015-09-29  8:40   ` tip-bot for Jiri Olsa [this message]
2015-09-23 10:34 ` [PATCH 6/7] perf tools: Rename single_dep target to prepare Jiri Olsa
2015-09-29  8:40   ` [tip:perf/core] perf tools: Rename the 'single_dep' target to ' prepare' tip-bot for Jiri Olsa
2015-09-23 10:34 ` [PATCH 7/7] tools build: Build fixdep helper from perf and basic libs Jiri Olsa
2015-09-29  8:41   ` [tip:perf/core] " tip-bot for Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-9fb81323eb3085b6a47fe81d78541958ae7eaea3@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox