[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 15:25:00 UTC 2019


OK. I'll change the .d in V2.

-----Original Message-----
From: Yao, Jiewen <jiewen.yao at intel.com> 
Sent: Monday, October 28, 2019 11:04 PM
To: devel at edk2.groups.io; Feng, Bob C <bob.c.feng at intel.com>; Ryszard Knop <ryszard.knop at linux.intel.com>
Subject: RE: [edk2-devel] [Patch 0/1] BaseTools: Using compiler to generate source code dependency files.

I think we need avoid confusing for future.
I don’t believe .d is good choice, since it is a known conflict.

Thank you
Yao Jiewen


> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Bob 
> Feng
> Sent: Monday, October 28, 2019 10:57 PM
> To: Ryszard Knop <ryszard.knop at linux.intel.com>; devel at edk2.groups.io
> Subject: Re: [edk2-devel] [Patch 0/1] BaseTools: Using compiler to 
> generate source code dependency files.
> 
> 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 (#49555): https://edk2.groups.io/g/devel/message/49555
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