From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6CE5421E3EA7C for ; Sun, 3 Sep 2017 22:08:45 -0700 (PDT) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP; 03 Sep 2017 22:11:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,473,1498546800"; d="scan'208";a="147170279" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 03 Sep 2017 22:11:32 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 3 Sep 2017 22:11:32 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 3 Sep 2017 22:11:31 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.117]) with mapi id 14.03.0319.002; Mon, 4 Sep 2017 13:11:29 +0800 From: "Gao, Liming" To: "Zhu, Yonghong" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Shaw, Kevin W" Thread-Topic: [Patch] Build Spec: Add multi-arg support to PREBUILD/POSTBUILD Thread-Index: AQHTIW6FVrSu2rWiA0OGvnsNGJAgYKKkNZ/w Date: Mon, 4 Sep 2017 05:11:28 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14D788279@shsmsx102.ccr.corp.intel.com> References: <1504083637-1276-1-git-send-email-yonghong.zhu@intel.com> In-Reply-To: <1504083637-1276-1-git-send-email-yonghong.zhu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] Build Spec: Add multi-arg support to PREBUILD/POSTBUILD X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Sep 2017 05:08:45 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao >-----Original Message----- >From: Zhu, Yonghong >Sent: Wednesday, August 30, 2017 5:01 PM >To: edk2-devel@lists.01.org >Cc: Gao, Liming ; Kinney, Michael D >; Shaw, Kevin W >Subject: [Patch] Build Spec: Add multi-arg support to PREBUILD/POSTBUILD > >fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=3D669 >Cc: Liming Gao >Cc: Michael Kinney >Cc: Kevin W Shaw >Contributed-under: TianoCore Contribution Agreement 1.1 >Signed-off-by: Yonghong Zhu >--- > .../106_post_build_processing.md | 22 +++++++++++------= ----- > .../82_auto-generation_process.md | 14 +++++++------- > README.md | 1 + > 3 files changed, 19 insertions(+), 18 deletions(-) > >diff --git a/10_post-build_imagegen_stage_- >_flash/106_post_build_processing.md b/10_post-build_imagegen_stage_- >_flash/106_post_build_processing.md >index 6b48a4f..7046ca3 100644 >--- a/10_post-build_imagegen_stage_-_flash/106_post_build_processing.md >+++ b/10_post-build_imagegen_stage_- >_flash/106_post_build_processing.md >@@ -32,22 +32,21 @@ > > ## 10.6 Post Build Processing > > If the `[Defines]` section of the DSC file contains a `POSTBUILD =3D entr= y` > statement, prior to exiting, the script specified in the `POSTBUILD` stat= ement >-is executed. If the script file is not found, the **build** command exits= with >-an appropriate error message. If the script fails, it must terminate with= a >-non-zero exit code and the **build** command terminates with the exit >value >-from the post-build script. The script is required to generate error mess= ages >-that provide the reason for the termination. >+is executed. The entry of `POSTBUILD` support multiple arguments. And Too= l >+will convert arguments that are `WORKSPACE` or `PACKAGES_PATH` relative >paths >+to absolute paths. If the script file is not found, the **build** command >+exits with an appropriate error message. If the script fails, it must ter= minate >+with a non-zero exit code and the **build** command terminates with the >exit >+value from the post-build script. The script is required to generate erro= r >+messages that provide the reason for the termination. > > All of the command line options passed into the **build** command are als= o >-passed into the script along with the command line options for `TARGET`, >-`ARCH`, and `TOOL_CHAIN_TAG`. The values for `TARGET`, `ARCH`, and >-`TOOL_CHAIN_TAG` are from the command line options passed into the >**build** >-command. If these values are not passed into the **build** command, then >they >-are retrieved from `target.txt`. >+passed into the script along with the options for `TARGET`, `ARCH`, >+`TOOL_CHAIN_TAG`, `ACTIVE_PLATFORM`, `Conf Directory`, and `build >target`. > > If the script terminates successfully (exit value of 0), then the **build= ** > command terminates normally. > > ********** >@@ -55,7 +54,8 @@ command terminates normally. > `PREBUILD` entry, there are no restrictions on the MACRO values used in a > conditional directive. > ********** > **Note:** Quotes are needed when the script's additional options are >present. > Quotes are also required if the path to the post-build command contains >space >-or special characters. >+or special characters. Quotes may be used for arguments that have spaces = or >+special characters. > ********** >diff --git a/8_pre-build_autogen_stage/82_auto-generation_process.md >b/8_pre-build_autogen_stage/82_auto-generation_process.md >index 7bca366..671a7d5 100644 >--- a/8_pre-build_autogen_stage/82_auto-generation_process.md >+++ b/8_pre-build_autogen_stage/82_auto-generation_process.md >@@ -983,22 +983,21 @@ DynamicEx PCD HII Variable checking. > #### 8.2.4.13 Pre Build Processing > > The DSC file is parsed after the tool meta-data files. If the `[Defines]` > section of the DSC file contains a `PREBUILD =3D entry` statement, proces= sing > of the DSC file is suspended and the script specified in the `PREBUILD` >-statement is executed. If the script file is not found, the **build** com= mand >+statement is executed. The entry of `PREBUILD` support multiple arguments= . >And >+Tool will convert arguments that are `WORKSPACE` or `PACKAGES_PATH` >relative >+paths to absolute paths. If the script file is not found, the **build** >command > exits with an appropriate error message. If the script fails, it must ter= minate > with a non-zero exit code and the **build** command terminates with the >exit > value from the pre-build script. The script is required to generate error > messages that provide the reason for the termination. > > All of the command line options passed into the **build** command are als= o >-passed into the script along with the command line options for `TARGET`, >-`ARCH`, and `TOOL_CHAIN_TAG`. The values for `TARGET`, `ARCH`, and >-`TOOL_CHAIN_TAG` are from the command line options passed into the >**build** >-command. If these values are not passed into the **build** command, then >they >-are retrieved from `target.txt`. >+passed into the script along with the options for `TARGET`, `ARCH`, >+`TOOL_CHAIN_TAG`, `ACTIVE_PLATFORM`, `Conf Directory`, and `build >target`. > > If the script terminates successfully (exit value of 0), parsing of the D= SC > file continues, and build tools may retrieve environment variables that h= ave > been updated by the script. > >@@ -1008,11 +1007,12 @@ value of the `TOOL_CHAIN_TAG` determined >earlier. Using a MACRO value other > than `$(TOOL_CHAIN_TAG)` is prohibited, as the DSC file has not been >processed > at the time the ENTRY was found. > ********** > **Note:** Quotes are needed when the script's additional options are >present. > Quotes are also required if the path to the pre-build command contains sp= ace >-or special characters. >+or special characters. Quotes may be used for arguments that have spaces = or >+special characters. > ********** > > #### 8.2.4.14 NMAKE Command line limitation handling > > `NMAKE` is limited to command-line length of 4096 characters. Due to the >large >diff --git a/README.md b/README.md >index 1ef0c00..52abb6a 100644 >--- a/README.md >+++ b/README.md >@@ -214,5 +214,6 @@ Copyright (c) 2008-2017, Intel Corporation. All rights >reserved. > | | [#480](https://bugzilla.tianocore.org/show_bug.cgi?id=3D48= 0) Build >spec: add description for Override PCD value on the command line >| | > | | [#523](https://bugzilla.tianocore.org/show_bug.cgi?id=3D52= 3) Build >spec: add EBNF for the --pcd syntax in the Section D.4 >| | > | | [#517](https://bugzilla.tianocore.org/show_bug.cgi?id=3D51= 7) Build >spec: chapter 5.2.2 Guided Tools add description for Pkcs7Sign tool and >BrotliCompress tool >| | > | | [#481](https://bugzilla.tianocore.org/show_bug.cgi?id=3D48= 1) Build >Spec: add clarification for not used Pcd that build tool will not do addit= ional >checks on its value >| | > | | [#518](https://bugzilla.tianocore.org/show_bug.cgi?id=3D51= 8) Build >Spec: Update Precedence of PCD Values >| | >+| | [#669](https://bugzilla.tianocore.org/show_bug.cgi?id=3D66= 9) Build >Spec: Add multi-arg support to PREBUILD/POSTBUILD >| | >-- >2.6.1.windows.1