From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from cam-smtp0.cambridge.arm.com (cam-smtp0.cambridge.arm.com [217.140.106.50]) by mx.groups.io with SMTP id smtpd.web10.53395.1585583008653122773 for ; Mon, 30 Mar 2020 08:43:29 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.106.50, mailfrom: pierre.gondois@arm.com) Received: from E119881.Arm.com (E119881.Arm.com [10.1.197.28]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id 02UFhCPH020848; Mon, 30 Mar 2020 16:43:12 +0100 From: "PierreGondois" To: devel@edk2.groups.io Cc: Pierre Gondois , liming.gao@intel.com, sami.mujawar@arm.org, nd@arm.com Subject: [PATCH v1 1/1] INF Spec: Add file dependency to [Sources] syntax Date: Mon, 30 Mar 2020 16:43:07 +0100 Message-Id: <20200330154307.48220-1-pierre.gondois@arm.com> X-Mailer: git-send-email 2.16.2.windows.1 From: Pierre Gondois BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2464 When building an edk2 module, a C file was including a .hex file generated by the compilation of an ASL file. To describe this dependency between an ASL file and a C file, the edk2 patch, - named "BaseTools: Build ASL files before C files", - discussed at: https://edk2.groups.io/g/devel/message/52550 has been created. This patch allows to establish build dependencies in the [Sources] section, between files that are not of the same language. E.g.: [Sources] FileName1.X FileName2.Y : FileName1.X FileName3.Z : FileName1.X FileName2.Y Here: * FileName1.X will be built prior to FileName2.Y. * FileName1.X and FileName2.Y will be built prior to FileName3.Z. This patch updates the Inf specification accordingly. Signed-off-by: Pierre Gondois --- The changes can be seen at https://github.com/PierreARM/edk2-InfSpecification/tree/Bugzilla_2464_Enable_Build_Dependencies_v1 Notes: v1: - Enable build dependencies in the [Sources] section 2_inf_overview/25_[sources]_section.md | 12 ++++++++++++ 3_edk_ii_inf_file_format/32_component_inf_definition.md | 3 +++ 3_edk_ii_inf_file_format/39_[sources]_sections.md | 6 ++++-- README.md | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/2_inf_overview/25_[sources]_section.md b/2_inf_overview/25_[sources]_section.md index 54757e61e37268eed293a5288e607cf2c7cfacf6..5b9f0a8395ef2be4497d99197dc695625d841830 100644 --- a/2_inf_overview/25_[sources]_section.md +++ b/2_inf_overview/25_[sources]_section.md @@ -2,6 +2,7 @@ 2.5 [Sources] Section Copyright (c) 2007-2019, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, ARM Limited. All rights reserved.
Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without @@ -94,6 +95,17 @@ The following is an example for sources sections. ``` +The following example depicts the syntax to establish dependencies between +files of different source types. As shown in the example below, Dsdt.asl will +be compiled before DadtHandler.c: + +```ini +[Sources.common] + DsdtHandler.c : Dsdt.asl + DsdtHandler.h + Dsdt.asl +``` + All Unicode files must be listed in the source section. If a Unicode file, `A.uni`, has the statement: `#include B.uni`, and `B.uni` has a statement: `#include C.uni`, both `B.uni` and `C.uni` files must be listed in the INF diff --git a/3_edk_ii_inf_file_format/32_component_inf_definition.md b/3_edk_ii_inf_file_format/32_component_inf_definition.md index 164771cb4cfff6e81fbf762a67ff741c190cecde..d776714c24c0baf2348f53dc2576c9feb6f3cb5e 100644 --- a/3_edk_ii_inf_file_format/32_component_inf_definition.md +++ b/3_edk_ii_inf_file_format/32_component_inf_definition.md @@ -2,6 +2,7 @@ 3.2 Component INF Definition Copyright (c) 2007-2019, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, ARM Limited. All rights reserved.
Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without @@ -133,6 +134,8 @@ The following are common definitions used by multiple section types. ::= "=" ::= "|" ::= + ::= ":" + ::= ::= "*" ::= "," * ::= "," * diff --git a/3_edk_ii_inf_file_format/39_[sources]_sections.md b/3_edk_ii_inf_file_format/39_[sources]_sections.md index 810995df26ba409ca2cf3ebe6238aa5d55cf81f1..ac966425101fd44a57b09d36f95a0f732eab1c59 100644 --- a/3_edk_ii_inf_file_format/39_[sources]_sections.md +++ b/3_edk_ii_inf_file_format/39_[sources]_sections.md @@ -2,6 +2,7 @@ 3.9 [Sources] Sections Copyright (c) 2007-2019, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, ARM Limited. All rights reserved.
Redistribution and use in source (original document form) and 'compiled' forms (converted to PDF, epub, HTML and other formats) with or without @@ -74,7 +75,8 @@ This section is not valid for a generated "As Built" binary INF file. ::= [] [] ::= [] [] ::= [] [] - ::= [] + ::= [] [] + ::= + ::= {"MSFT"} {"GCC"} {"INTEL"} {} ::= {} {"*"} ::= _CommandCode_ @@ -83,7 +85,7 @@ This section is not valid for a generated "As Built" binary INF file. #### Parameters -**_Filename_** +**_Filename_, _FileNameDependency_** Paths listed in the filename elements of the `[Sources]` section must be relative to the directory the INF file resides in. Use of "..", "." and "../" diff --git a/README.md b/README.md index 60fba19fd67fd8d3dd33199de23f9bfe20aea7c9..4f771fc0f6e4ff516be95b1879d58329ab3bbecc 100644 --- a/README.md +++ b/README.md @@ -203,3 +203,4 @@ Copyright (c) 2007-2017, Intel Corporation. All rights reserved. | | [#1162](https://bugzilla.tianocore.org/show_bug.cgi?id=1162) Correct the item in Table 1 to align with 3.4 section | | | 1.28 | [#1453](https://bugzilla.tianocore.org/show_bug.cgi?id=1453) Update INF spec to remove EDK related contents | Mar 2019 | | 1.29 | [#1952](https://bugzilla.tianocore.org/show_bug.cgi?id=1952) Add new MODULE_TYPE HOST_APPLICATION | July 2019 | +| | [#2646](https://bugzilla.tianocore.org/show_bug.cgi?id=2646) Add file dependency to [Sources] syntax | | -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'