From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754315AbbIWKed (ORCPT ); Wed, 23 Sep 2015 06:34:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49037 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754282AbbIWKeb (ORCPT ); Wed, 23 Sep 2015 06:34:31 -0400 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , David Ahern , Ingo Molnar , Namhyung Kim , Peter Zijlstra Subject: [PATCH 5/7] tools build: Make fixdep helper part of the build process Date: Wed, 23 Sep 2015 12:34:00 +0200 Message-Id: <1443004442-32660-6-git-send-email-jolsa@kernel.org> In-Reply-To: <1443004442-32660-1-git-send-email-jolsa@kernel.org> References: <1443004442-32660-1-git-send-email-jolsa@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Making fixdep helper to be invoked within the dep-cmd. Each user of the build framework needs to make sure fixdep exists before executing the build itself. If the build won't find fixdep, it falls back to the old style dependency tracking. Link: http://lkml.kernel.org/n/tip-iaegu48r5t9k2lttjrvozmb1@git.kernel.org Signed-off-by: Jiri Olsa --- 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 851c420098e7..4d000bc959b4 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 0c5f485521d6..4a96473b180f 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 -- 2.4.3