[edk2-devel] [Patch 0/1] BaseTools: Using compiler to generate source code dependency files.
Bob Feng
bob.c.feng at intel.com
Mon Oct 28 14:56:41 UTC 2019
Thanks for your comment. I think .d file should be fine since edk2 does not support D language.
Thanks,
Bob
-----Original Message-----
From: Ryszard Knop <ryszard.knop at linux.intel.com>
Sent: Monday, October 28, 2019 8:24 PM
To: devel at edk2.groups.io; Feng, Bob C <bob.c.feng at intel.com>
Subject: Re: [edk2-devel] [Patch 0/1] BaseTools: Using compiler to generate source code dependency files.
Just a quick note: .d files are used by the D language. You might want to use an extension like .deps instead.
On 2019-10-28 11:47, Bob Feng wrote:
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2311
>
> To support incremental build, build tool generates the dependent
> header file for each of source file. This procedure is done in AutoGen phase.
> The build tool goes through all the source file and header file and
> use regular expression to find out all the dependent files for a
> source file. This procedure is much time-consuming. And this method
> can't handle the MACRO in #include, for example #include PATH(xxx.h).
>
> This patch is going to use compiler to generate dependent files. This
> method will be faster and more accurate.
>
> The basic idea is:
> 1. In AutoGen phase, build tool add "!Include deps.txt" into Makefile
> instead of defining COMMON_DEPS list.
> 2. During the Make phase, the compilers, Trim and C preprocessor
> generate dependent files, .d file, for each source file.
> 3. After Make, The build tool combines the .d files and generate a
> file deps.txt which list all the included files for a module.
> 4. Each source file will depends on the Module's includes files. The
> difference with orignial behavior is that if the user change the
> source file, build tool will only build that source file in
> incremental build; while if the user change a module's header file,
> build tool will build the whole module in incremental build.
>
> In this way, the time of AutoGen phase will be reduced much. And since
> we will use c preprocessor to handle #include, the MACRO will be
> handled well and the final dependent files will be more accurate.
>
> Feng, Bob C (1):
> BaseTools: Using compiler to generate source code dependency files.
>
> BaseTools/Conf/build_rule.template | 89 ++++++-----
> BaseTools/Conf/tools_def.template | 138 +++++++++---------
> BaseTools/Source/Python/AutoGen/GenMake.py | 73 +++------
> .../Source/Python/AutoGen/IncludesAutoGen.py | 99 +++++++++++++
> BaseTools/Source/Python/Trim/Trim.py | 113 +++++++++++---
> BaseTools/Source/Python/build/build.py | 58 ++++++--
> 6 files changed, 378 insertions(+), 192 deletions(-)
> create mode 100644
> BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#49553): https://edk2.groups.io/g/devel/message/49553
Mute This Topic: https://groups.io/mt/38877548/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list