From 0f91c6360266be07bd0e32f7eca151fa1bca26c1 Mon Sep 17 00:00:00 2001 From: Ying Wang Date: Fri, 23 Aug 2013 16:50:13 -0700 Subject: Better aidl generated dependency Previously if an imported aidl file has been deleted or moved, the generated dependency file still contains the stale file name, and make will fail with "No rule to make target ". This change uses technique described in section "Automatic Dependency Generation", Chapter 8 of "Managing Projects with GNU Make (3d Edition)". The same technique is used by the Android platform build system to generate C/C++ header dependencies. Bug: 10459179 Change-Id: Ib0c01a4234ef1af994487fdc846cdf8d13a675f6 --- tools/aidl/aidl.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tools/aidl') diff --git a/tools/aidl/aidl.cpp b/tools/aidl/aidl.cpp index 071a8d7..b8a4803 100644 --- a/tools/aidl/aidl.cpp +++ b/tools/aidl/aidl.cpp @@ -673,6 +673,16 @@ generate_dep_file(const Options& options, const document_item_type* items) fprintf(to, "\n"); + // Output ": " so make won't fail if the imported file has + // been deleted, moved or renamed in incremental build. + import = g_imports; + while (import) { + if (import->filename) { + fprintf(to, "%s :\n", import->filename); + } + import = import->next; + } + fclose(to); } -- cgit v1.1