[edk2-devel] [Patch 0/4 V4] Enhance Incremental Build

Bob Feng posted 4 patches 4 years, 4 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
BaseTools/Conf/build_rule.template            |  94 ++++---
BaseTools/Conf/tools_def.template             | 173 ++++++------
BaseTools/Source/Python/AutoGen/GenMake.py    |  83 ++----
.../Source/Python/AutoGen/IncludesAutoGen.py  | 255 ++++++++++++++++++
.../Source/Python/AutoGen/ModuleAutoGen.py    |  23 ++
BaseTools/Source/Python/Trim/Trim.py          | 115 ++++++--
BaseTools/Source/Python/build/build.py        |  63 ++++-
7 files changed, 588 insertions(+), 218 deletions(-)
create mode 100644 BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
[edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
Posted by Bob Feng 4 years, 4 months ago
V4: Move .deps files to where corresponding .obj file locate
V3: Change CLANG9 to CLANGPDB according to commit 14672c34bd 
V2: Fixed a bug in patch 4/4.

Incremental build reduces the build time by only building
the module that need to update. Edk2 Build system is a Makefile
based build system. The incrememtal build ability is provided by
the Make program. But Edk2 build tool need to generate correct makefile
to have Make program do incremental build correctly.

The current solution in build tool to support incremental build is that build
tool find out the include file list for each source file of a module, and in module's
makefile, build tool add the include file list as the source file's dependency. 
In this way Make program can decide if it need to rebuild a source code by checking
its dependency. This solution has 2 shortcommings, one is the process of finding
include list is slow, the other is this method can't handle case that 
a MACRO in #include statement so the related source file is always built. 

This patch provides another method to support incremental build. That is to use
c preprocessor and trim tool to generate dependency files for the source file.
This method will save much time in AutoGen phase and handle MACRO in #include correctly.

For C files:
    1. MSVS.
        cl.exe has a build option /showIncludes to display include files on stdout. Build tool captures
        that messages and generate dependency files, .deps files.
    2. CLANG and GCC
        -MMD -MF build option are used to generate dependency files by preprocessor. Build tool updates the
       .deps files.

For ASL files:
    1. Trim find out all the included files, which are asl specific include format, and generate .trim.deps file.
    2. ASL PP use c preprocessor to find out all included files with #include format and generate a .deps file
    3. build tool updates the .deps file

For ASM files (.asm, .s or .nasm):
    1. Trim find out all the included files, which are asm specific include format, and generate .trim.deps file.
    2. ASM PP use c preprocessor to find out all included files with #include format and generate a deps file
    3. build tool updates the .deps file

Build tool add "include" instruction for those deps files in the Makefile.

This patch does not support RVCT tool chain for the BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1750

Feng, Bob C (4):
  BaseTools: Add build option for dependency file generation
  BaseTools: Generate dependent files for ASL and ASM files
  BaseTools: Update build_rule.txt to generate dependent files.
  BaseTools: Enhance Basetool for incremental build

 BaseTools/Conf/build_rule.template            |  94 ++++---
 BaseTools/Conf/tools_def.template             | 173 ++++++------
 BaseTools/Source/Python/AutoGen/GenMake.py    |  83 ++----
 .../Source/Python/AutoGen/IncludesAutoGen.py  | 255 ++++++++++++++++++
 .../Source/Python/AutoGen/ModuleAutoGen.py    |  23 ++
 BaseTools/Source/Python/Trim/Trim.py          | 115 ++++++--
 BaseTools/Source/Python/build/build.py        |  63 ++++-
 7 files changed, 588 insertions(+), 218 deletions(-)
 create mode 100644 BaseTools/Source/Python/AutoGen/IncludesAutoGen.py

-- 
2.20.1.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51770): https://edk2.groups.io/g/devel/message/51770
Mute This Topic: https://groups.io/mt/65666140/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
Posted by Michael D Kinney 4 years, 4 months ago
Hi Bob,

How does a tool chain opt-in or opt-out of this feature?

As you point out, not all tool chains provide the information
needed to support this feature.  We need to make sure the 
use of this feature or not is clearly documented in the 
profile for each tool chain.

Thanks,

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On
> Behalf Of Bob Feng
> Sent: Thursday, December 5, 2019 12:18 AM
> To: devel@edk2.groups.io
> Subject: [edk2-devel] [Patch 0/4 V4] Enhance
> Incremental Build
> 
> V4: Move .deps files to where corresponding .obj file
> locate
> V3: Change CLANG9 to CLANGPDB according to commit
> 14672c34bd
> V2: Fixed a bug in patch 4/4.
> 
> Incremental build reduces the build time by only
> building
> the module that need to update. Edk2 Build system is a
> Makefile
> based build system. The incrememtal build ability is
> provided by
> the Make program. But Edk2 build tool need to generate
> correct makefile
> to have Make program do incremental build correctly.
> 
> The current solution in build tool to support
> incremental build is that build
> tool find out the include file list for each source
> file of a module, and in module's
> makefile, build tool add the include file list as the
> source file's dependency.
> In this way Make program can decide if it need to
> rebuild a source code by checking
> its dependency. This solution has 2 shortcommings, one
> is the process of finding
> include list is slow, the other is this method can't
> handle case that
> a MACRO in #include statement so the related source
> file is always built.
> 
> This patch provides another method to support
> incremental build. That is to use
> c preprocessor and trim tool to generate dependency
> files for the source file.
> This method will save much time in AutoGen phase and
> handle MACRO in #include correctly.
> 
> For C files:
>     1. MSVS.
>         cl.exe has a build option /showIncludes to
> display include files on stdout. Build tool captures
>         that messages and generate dependency files,
> .deps files.
>     2. CLANG and GCC
>         -MMD -MF build option are used to generate
> dependency files by preprocessor. Build tool updates
> the
>        .deps files.
> 
> For ASL files:
>     1. Trim find out all the included files, which are
> asl specific include format, and generate .trim.deps
> file.
>     2. ASL PP use c preprocessor to find out all
> included files with #include format and generate a
> .deps file
>     3. build tool updates the .deps file
> 
> For ASM files (.asm, .s or .nasm):
>     1. Trim find out all the included files, which are
> asm specific include format, and generate .trim.deps
> file.
>     2. ASM PP use c preprocessor to find out all
> included files with #include format and generate a deps
> file
>     3. build tool updates the .deps file
> 
> Build tool add "include" instruction for those deps
> files in the Makefile.
> 
> This patch does not support RVCT tool chain for the BZ
> https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> 
> Feng, Bob C (4):
>   BaseTools: Add build option for dependency file
> generation
>   BaseTools: Generate dependent files for ASL and ASM
> files
>   BaseTools: Update build_rule.txt to generate
> dependent files.
>   BaseTools: Enhance Basetool for incremental build
> 
>  BaseTools/Conf/build_rule.template            |  94
> ++++---
>  BaseTools/Conf/tools_def.template             | 173
> ++++++------
>  BaseTools/Source/Python/AutoGen/GenMake.py    |  83
> ++----
>  .../Source/Python/AutoGen/IncludesAutoGen.py  | 255
> ++++++++++++++++++
>  .../Source/Python/AutoGen/ModuleAutoGen.py    |  23 ++
>  BaseTools/Source/Python/Trim/Trim.py          | 115
> ++++++--
>  BaseTools/Source/Python/build/build.py        |  63
> ++++-
>  7 files changed, 588 insertions(+), 218 deletions(-)
>  create mode 100644
> BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
> 
> --
> 2.20.1.windows.1
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51794): https://edk2.groups.io/g/devel/message/51794
Mute This Topic: https://groups.io/mt/65666140/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
Posted by Bob Feng 4 years, 4 months ago
Hi Mike,

A tool chain enable this feature by defining the *_<tool chain name>_*_DEPS_FLAGS  in tools_def and applying $(DEPS_FLAGS) in build_rule.txt.
I have added those setting for MSVC, GCC, CLANG tool chain in tools_def.template and build_rule.template. Those exist tool chains are all enable this feature by default.

Only RVCT tool chain does not support this feature, but according to https://bugzilla.tianocore.org/show_bug.cgi?id=1750, RVCT will be dropped from our support tool chains.

So is it fine to add comments for each tool chain to document this tool chain is enabled to generate dependency files in build_rule.template?

Thanks,
Bob

-----Original Message-----
From: Kinney, Michael D 
Sent: Friday, December 6, 2019 12:49 AM
To: devel@edk2.groups.io; Feng, Bob C <bob.c.feng@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build

Hi Bob,

How does a tool chain opt-in or opt-out of this feature?

As you point out, not all tool chains provide the information needed to support this feature.  We need to make sure the use of this feature or not is clearly documented in the profile for each tool chain.

Thanks,

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Bob 
> Feng
> Sent: Thursday, December 5, 2019 12:18 AM
> To: devel@edk2.groups.io
> Subject: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
> 
> V4: Move .deps files to where corresponding .obj file locate
> V3: Change CLANG9 to CLANGPDB according to commit 14672c34bd
> V2: Fixed a bug in patch 4/4.
> 
> Incremental build reduces the build time by only building the module 
> that need to update. Edk2 Build system is a Makefile based build 
> system. The incrememtal build ability is provided by the Make program. 
> But Edk2 build tool need to generate correct makefile to have Make 
> program do incremental build correctly.
> 
> The current solution in build tool to support incremental build is 
> that build tool find out the include file list for each source file of 
> a module, and in module's makefile, build tool add the include file 
> list as the source file's dependency.
> In this way Make program can decide if it need to rebuild a source 
> code by checking its dependency. This solution has 2 shortcommings, 
> one is the process of finding include list is slow, the other is this 
> method can't handle case that a MACRO in #include statement so the 
> related source file is always built.
> 
> This patch provides another method to support incremental build. That 
> is to use c preprocessor and trim tool to generate dependency files 
> for the source file.
> This method will save much time in AutoGen phase and handle MACRO in 
> #include correctly.
> 
> For C files:
>     1. MSVS.
>         cl.exe has a build option /showIncludes to display include 
> files on stdout. Build tool captures
>         that messages and generate dependency files, .deps files.
>     2. CLANG and GCC
>         -MMD -MF build option are used to generate dependency files by 
> preprocessor. Build tool updates the
>        .deps files.
> 
> For ASL files:
>     1. Trim find out all the included files, which are asl specific 
> include format, and generate .trim.deps file.
>     2. ASL PP use c preprocessor to find out all included files with 
> #include format and generate a .deps file
>     3. build tool updates the .deps file
> 
> For ASM files (.asm, .s or .nasm):
>     1. Trim find out all the included files, which are asm specific 
> include format, and generate .trim.deps file.
>     2. ASM PP use c preprocessor to find out all included files with 
> #include format and generate a deps file
>     3. build tool updates the .deps file
> 
> Build tool add "include" instruction for those deps files in the 
> Makefile.
> 
> This patch does not support RVCT tool chain for the BZ
> https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> 
> Feng, Bob C (4):
>   BaseTools: Add build option for dependency file generation
>   BaseTools: Generate dependent files for ASL and ASM files
>   BaseTools: Update build_rule.txt to generate dependent files.
>   BaseTools: Enhance Basetool for incremental build
> 
>  BaseTools/Conf/build_rule.template            |  94
> ++++---
>  BaseTools/Conf/tools_def.template             | 173
> ++++++------
>  BaseTools/Source/Python/AutoGen/GenMake.py    |  83
> ++----
>  .../Source/Python/AutoGen/IncludesAutoGen.py  | 255
> ++++++++++++++++++
>  .../Source/Python/AutoGen/ModuleAutoGen.py    |  23 ++
>  BaseTools/Source/Python/Trim/Trim.py          | 115
> ++++++--
>  BaseTools/Source/Python/build/build.py        |  63
> ++++-
>  7 files changed, 588 insertions(+), 218 deletions(-)  create mode 
> 100644 BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
> 
> --
> 2.20.1.windows.1
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51805): https://edk2.groups.io/g/devel/message/51805
Mute This Topic: https://groups.io/mt/65666140/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
Posted by Michael D Kinney 4 years, 4 months ago

> -----Original Message-----
> From: Feng, Bob C <bob.c.feng@intel.com>
> Sent: Thursday, December 5, 2019 4:48 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>;
> devel@edk2.groups.io
> Cc: Feng, Bob C <bob.c.feng@intel.com>
> Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance
> Incremental Build
> 
> Hi Mike,
> 
> A tool chain enable this feature by defining the
> *_<tool chain name>_*_DEPS_FLAGS  in tools_def and
> applying $(DEPS_FLAGS) in build_rule.txt.
> I have added those setting for MSVC, GCC, CLANG tool
> chain in tools_def.template and build_rule.template.
> Those exist tool chains are all enable this feature by
> default.
> 
> Only RVCT tool chain does not support this feature, but
> according to
> https://bugzilla.tianocore.org/show_bug.cgi?id=1750,
> RVCT will be dropped from our support tool chains.
> 
> So is it fine to add comments for each tool chain to
> document this tool chain is enabled to generate
> dependency files in build_rule.template?

Do you mean tools_def.template?  Then yes.

> 
> Thanks,
> Bob
> 
> -----Original Message-----
> From: Kinney, Michael D
> Sent: Friday, December 6, 2019 12:49 AM
> To: devel@edk2.groups.io; Feng, Bob C
> <bob.c.feng@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance
> Incremental Build
> 
> Hi Bob,
> 
> How does a tool chain opt-in or opt-out of this
> feature?
> 
> As you point out, not all tool chains provide the
> information needed to support this feature.  We need to
> make sure the use of this feature or not is clearly
> documented in the profile for each tool chain.
> 
> Thanks,
> 
> Mike
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On
> Behalf Of Bob
> > Feng
> > Sent: Thursday, December 5, 2019 12:18 AM
> > To: devel@edk2.groups.io
> > Subject: [edk2-devel] [Patch 0/4 V4] Enhance
> Incremental Build
> >
> > V4: Move .deps files to where corresponding .obj file
> locate
> > V3: Change CLANG9 to CLANGPDB according to commit
> 14672c34bd
> > V2: Fixed a bug in patch 4/4.
> >
> > Incremental build reduces the build time by only
> building the module
> > that need to update. Edk2 Build system is a Makefile
> based build
> > system. The incrememtal build ability is provided by
> the Make program.
> > But Edk2 build tool need to generate correct makefile
> to have Make
> > program do incremental build correctly.
> >
> > The current solution in build tool to support
> incremental build is
> > that build tool find out the include file list for
> each source file of
> > a module, and in module's makefile, build tool add
> the include file
> > list as the source file's dependency.
> > In this way Make program can decide if it need to
> rebuild a source
> > code by checking its dependency. This solution has 2
> shortcommings,
> > one is the process of finding include list is slow,
> the other is this
> > method can't handle case that a MACRO in #include
> statement so the
> > related source file is always built.
> >
> > This patch provides another method to support
> incremental build. That
> > is to use c preprocessor and trim tool to generate
> dependency files
> > for the source file.
> > This method will save much time in AutoGen phase and
> handle MACRO in
> > #include correctly.
> >
> > For C files:
> >     1. MSVS.
> >         cl.exe has a build option /showIncludes to
> display include
> > files on stdout. Build tool captures
> >         that messages and generate dependency files,
> .deps files.
> >     2. CLANG and GCC
> >         -MMD -MF build option are used to generate
> dependency files by
> > preprocessor. Build tool updates the
> >        .deps files.
> >
> > For ASL files:
> >     1. Trim find out all the included files, which
> are asl specific
> > include format, and generate .trim.deps file.
> >     2. ASL PP use c preprocessor to find out all
> included files with
> > #include format and generate a .deps file
> >     3. build tool updates the .deps file
> >
> > For ASM files (.asm, .s or .nasm):
> >     1. Trim find out all the included files, which
> are asm specific
> > include format, and generate .trim.deps file.
> >     2. ASM PP use c preprocessor to find out all
> included files with
> > #include format and generate a deps file
> >     3. build tool updates the .deps file
> >
> > Build tool add "include" instruction for those deps
> files in the
> > Makefile.
> >
> > This patch does not support RVCT tool chain for the
> BZ
> > https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> >
> > Feng, Bob C (4):
> >   BaseTools: Add build option for dependency file
> generation
> >   BaseTools: Generate dependent files for ASL and ASM
> files
> >   BaseTools: Update build_rule.txt to generate
> dependent files.
> >   BaseTools: Enhance Basetool for incremental build
> >
> >  BaseTools/Conf/build_rule.template            |  94
> > ++++---
> >  BaseTools/Conf/tools_def.template             | 173
> > ++++++------
> >  BaseTools/Source/Python/AutoGen/GenMake.py    |  83
> > ++----
> >  .../Source/Python/AutoGen/IncludesAutoGen.py  | 255
> > ++++++++++++++++++
> >  .../Source/Python/AutoGen/ModuleAutoGen.py    |  23
> ++
> >  BaseTools/Source/Python/Trim/Trim.py          | 115
> > ++++++--
> >  BaseTools/Source/Python/build/build.py        |  63
> > ++++-
> >  7 files changed, 588 insertions(+), 218 deletions(-)
> create mode
> > 100644
> BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
> >
> > --
> > 2.20.1.windows.1
> >
> >
> > 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51811): https://edk2.groups.io/g/devel/message/51811
Mute This Topic: https://groups.io/mt/65666140/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
Posted by Bob Feng 4 years, 4 months ago
Definition of DEPS_FLAGS  is in tools_def.template, enabling $(DEPS_FLAGS) is in build_rule.template. I can add comments for both.

Thanks,
Bob

-----Original Message-----
From: Kinney, Michael D <michael.d.kinney@intel.com> 
Sent: Friday, December 6, 2019 11:36 AM
To: Feng, Bob C <bob.c.feng@intel.com>; devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build



> -----Original Message-----
> From: Feng, Bob C <bob.c.feng@intel.com>
> Sent: Thursday, December 5, 2019 4:48 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; 
> devel@edk2.groups.io
> Cc: Feng, Bob C <bob.c.feng@intel.com>
> Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
> 
> Hi Mike,
> 
> A tool chain enable this feature by defining the *_<tool chain 
> name>_*_DEPS_FLAGS  in tools_def and applying $(DEPS_FLAGS) in 
> build_rule.txt.
> I have added those setting for MSVC, GCC, CLANG tool chain in 
> tools_def.template and build_rule.template.
> Those exist tool chains are all enable this feature by default.
> 
> Only RVCT tool chain does not support this feature, but according to 
> https://bugzilla.tianocore.org/show_bug.cgi?id=1750,
> RVCT will be dropped from our support tool chains.
> 
> So is it fine to add comments for each tool chain to document this 
> tool chain is enabled to generate dependency files in 
> build_rule.template?

Do you mean tools_def.template?  Then yes.

> 
> Thanks,
> Bob
> 
> -----Original Message-----
> From: Kinney, Michael D
> Sent: Friday, December 6, 2019 12:49 AM
> To: devel@edk2.groups.io; Feng, Bob C
> <bob.c.feng@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: RE: [edk2-devel] [Patch 0/4 V4] Enhance Incremental Build
> 
> Hi Bob,
> 
> How does a tool chain opt-in or opt-out of this feature?
> 
> As you point out, not all tool chains provide the information needed 
> to support this feature.  We need to make sure the use of this feature 
> or not is clearly documented in the profile for each tool chain.
> 
> Thanks,
> 
> Mike
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On
> Behalf Of Bob
> > Feng
> > Sent: Thursday, December 5, 2019 12:18 AM
> > To: devel@edk2.groups.io
> > Subject: [edk2-devel] [Patch 0/4 V4] Enhance
> Incremental Build
> >
> > V4: Move .deps files to where corresponding .obj file
> locate
> > V3: Change CLANG9 to CLANGPDB according to commit
> 14672c34bd
> > V2: Fixed a bug in patch 4/4.
> >
> > Incremental build reduces the build time by only
> building the module
> > that need to update. Edk2 Build system is a Makefile
> based build
> > system. The incrememtal build ability is provided by
> the Make program.
> > But Edk2 build tool need to generate correct makefile
> to have Make
> > program do incremental build correctly.
> >
> > The current solution in build tool to support
> incremental build is
> > that build tool find out the include file list for
> each source file of
> > a module, and in module's makefile, build tool add
> the include file
> > list as the source file's dependency.
> > In this way Make program can decide if it need to
> rebuild a source
> > code by checking its dependency. This solution has 2
> shortcommings,
> > one is the process of finding include list is slow,
> the other is this
> > method can't handle case that a MACRO in #include
> statement so the
> > related source file is always built.
> >
> > This patch provides another method to support
> incremental build. That
> > is to use c preprocessor and trim tool to generate
> dependency files
> > for the source file.
> > This method will save much time in AutoGen phase and
> handle MACRO in
> > #include correctly.
> >
> > For C files:
> >     1. MSVS.
> >         cl.exe has a build option /showIncludes to
> display include
> > files on stdout. Build tool captures
> >         that messages and generate dependency files,
> .deps files.
> >     2. CLANG and GCC
> >         -MMD -MF build option are used to generate
> dependency files by
> > preprocessor. Build tool updates the
> >        .deps files.
> >
> > For ASL files:
> >     1. Trim find out all the included files, which
> are asl specific
> > include format, and generate .trim.deps file.
> >     2. ASL PP use c preprocessor to find out all
> included files with
> > #include format and generate a .deps file
> >     3. build tool updates the .deps file
> >
> > For ASM files (.asm, .s or .nasm):
> >     1. Trim find out all the included files, which
> are asm specific
> > include format, and generate .trim.deps file.
> >     2. ASM PP use c preprocessor to find out all
> included files with
> > #include format and generate a deps file
> >     3. build tool updates the .deps file
> >
> > Build tool add "include" instruction for those deps
> files in the
> > Makefile.
> >
> > This patch does not support RVCT tool chain for the
> BZ
> > https://bugzilla.tianocore.org/show_bug.cgi?id=1750
> >
> > Feng, Bob C (4):
> >   BaseTools: Add build option for dependency file
> generation
> >   BaseTools: Generate dependent files for ASL and ASM
> files
> >   BaseTools: Update build_rule.txt to generate
> dependent files.
> >   BaseTools: Enhance Basetool for incremental build
> >
> >  BaseTools/Conf/build_rule.template            |  94
> > ++++---
> >  BaseTools/Conf/tools_def.template             | 173
> > ++++++------
> >  BaseTools/Source/Python/AutoGen/GenMake.py    |  83
> > ++----
> >  .../Source/Python/AutoGen/IncludesAutoGen.py  | 255
> > ++++++++++++++++++
> >  .../Source/Python/AutoGen/ModuleAutoGen.py    |  23
> ++
> >  BaseTools/Source/Python/Trim/Trim.py          | 115
> > ++++++--
> >  BaseTools/Source/Python/build/build.py        |  63
> > ++++-
> >  7 files changed, 588 insertions(+), 218 deletions(-)
> create mode
> > 100644
> BaseTools/Source/Python/AutoGen/IncludesAutoGen.py
> >
> > --
> > 2.20.1.windows.1
> >
> >
> > 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51812): https://edk2.groups.io/g/devel/message/51812
Mute This Topic: https://groups.io/mt/65666140/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-