mirror_edk2/BaseTools/Source/Python/AutoGen
Pierre Gondois 6511277827 BaseTools: Generate multiple rules when multiple output files
This patch modifies the Makefile generation not to stop
adding Makfile rules when the first final target is found.
E.g.:
If the following rules are described in build_rule.txt:
 -[Rule1]: .X files generate .Y and .Z files;
 -[Rule2]: .Z files generate .Z1 files.
Currently, if a File1.X file was part of the sources of a
module, only [Rule1] would be generated in the Makefile.
Indeed, there are no rules to apply to .Y files: .Y files
are a final target. However, there is still [Rule2] to
apply to .Z files.

This patch also adds a dependency between the first
ouput file of a rule and the other output files.
For instance, with the same example as above, File1.Y
and File1.Z are generated by the following rule:
File1.Y: File1.X
    <Generate File1.Y>
    <Generate File1.Z>

and the new dependency is:
File1.Z: File1.Y

This is necessary to keep a dependency order during the
execution of the Makefile. Indeed, .Y and .Z files are
generated by the execution of a common set of commands,
and without this rule, there is no explicit dependency
relation between them.

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Suggested-by: Tomas Pilar <Tomas.Pilar@arm.com>

Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2020-07-02 10:09:17 +00:00
..
__init__.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
AutoGen.py BaseTools: Decouple AutoGen Objects 2019-08-09 23:15:52 +08:00
AutoGenWorker.py BaseTools:Fix build tools print traceback info issue 2020-03-24 02:27:27 +00:00
BuildEngine.py BaseTools:Fix GenFds issue for BuildOption replace GenFdsOption 2020-01-13 02:08:46 +00:00
DataPipe.py BaseTools: Leverage compiler output to optimize binary cache 2019-12-10 02:07:12 +00:00
GenC.py BaseTools: remove unnecessary calls of os.exist 2019-09-17 10:19:05 +08:00
GenDepex.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
GenMake.py BaseTools: Generate multiple rules when multiple output files 2020-07-02 10:09:17 +00:00
GenPcdDb.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
GenVar.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
IdfClassObject.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
IncludesAutoGen.py BaseTools: Remove invalid leading space before !INCLUDE in Makefile 2020-03-02 02:36:25 +00:00
InfSectionParser.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
ModuleAutoGen.py BaseTools: Generate multiple rules when multiple output files 2020-07-02 10:09:17 +00:00
ModuleAutoGenHelper.py BaseTools: Fixed issue for IgnoreAutoGen 2019-09-10 08:39:18 +08:00
PlatformAutoGen.py BaseTools:GuidedSectionTools.txt is not generated correctly 2020-03-31 04:09:43 +00:00
StrGather.py BaseTools:Add extra debugging message 2019-08-01 15:36:48 +08:00
UniClassObject.py BaseTools: remove unnecessary calls of os.exist 2019-09-17 10:19:05 +08:00
ValidCheckingInfoObject.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
WorkspaceAutoGen.py BaseTools: Leverage compiler output to optimize binary cache 2019-12-10 02:07:12 +00:00