From nobody Sat Nov 2 12:31:20 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1491619494884285.5283420124929; Fri, 7 Apr 2017 19:44:54 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id B56F52194235A; Fri, 7 Apr 2017 19:44:50 -0700 (PDT) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 79E3D21A04817 for ; Fri, 7 Apr 2017 19:44:48 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Apr 2017 19:44:48 -0700 Received: from mdkinney-mobl.amr.corp.intel.com ([10.255.230.147]) by orsmga002.jf.intel.com with ESMTP; 07 Apr 2017 19:44:48 -0700 X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1491619488; x=1523155488; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=td0kGAROdNgWBuVRRHJlFJF9sXJzEQJpxqFAUcUPSOA=; b=x4mfmq4m3JbrIEwpSM1FmxJXbhRQoPz4Vt0YbhChxsGHo16C7FVEY/Fh Ggu+Zce3KQcF3Aj1gnXfHhqn1JNr6Q==; X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,169,1488873600"; d="scan'208";a="71307652" From: Michael Kinney To: edk2-devel@lists.01.org Date: Fri, 7 Apr 2017 19:44:43 -0700 Message-Id: <1491619484-18836-2-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1491619484-18836-1-git-send-email-michael.d.kinney@intel.com> References: <1491619484-18836-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2] [edk2-FdfSpecification PATCH 1/2] Use macros in !include file paths 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: , Cc: Liming Gao MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" https://bugzilla.tianocore.org/show_bug.cgi?id=3D350 The EBNF already allows !include statements to use $(MACRO) values in the file path. This change updates the description and examples for !include statements to allow the use of macros and specific environment variables in !include file paths. Cc: Liming Gao Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney --- .../22_flash_description_file_format.md | 21 +++++++++-------- 3_edk_ii_fdf_file_format/32_fdf_definition.md | 26 +++++++++++++-----= ---- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/2_fdf_design_discussion/22_flash_description_file_format.md b/= 2_fdf_design_discussion/22_flash_description_file_format.md index 9c993f4..67c777e 100644 --- a/2_fdf_design_discussion/22_flash_description_file_format.md +++ b/2_fdf_design_discussion/22_flash_description_file_format.md @@ -216,19 +216,18 @@ contain complete sections, or combination of both. The argument of this statement is a filename. The file is relative to the directory that contains this DSC file, and if not found the tool must atte= mpt to find the file relative to paths listed in the system environment variab= les, -`$(WORKSPACE)`, `$(PACKAGES_PATH)`, `$(EFI_SOURCE)`, `$(EDK_SOURCE)`, -`$(ECP_SOURCE)` in the file name is permitted. If the file is not found af= ter -testing for the possible combinations, the parsing tools must terminate wi= th -an error. +`$(WORKSPACE)`, `$(PACKAGES_PATH)`, `$(EFI_SOURCE)`, `$(EDK_SOURCE)`, and +`$(ECP_SOURCE)`. If the file is not found after testing for the possible +combinations, the parsing tools must terminate with an error. =20 -Files specified by `!include` statements may not contain `!include` statem= ents. - -Macros, defined in this FDF file or in the DSC file, are not permitted in = the +Macros, defined in this FDF file or in the DSC file, are permitted in the path or file name of the !include statement, as these files are included p= rior -to processing the file for macros. If the path starts with a "$" character, -then one of the system environment variables, `$(WORKSPACE)`, `$(EDK_SOURC= E)`, -`$(EFI_SOURCE)`, or `$(ECP_SOURCE)` is being used; only these system -environment variables are permitted to start the path of the included file. +to processing the file for macros. The system environment variables, +`$(WORKSPACE)`, `$(EDK_SOURCE)`, `$(EFI_SOURCE)`, and `$(ECP_SOURCE)` may = also +be used; only these system environment variables are permitted to start the +path of the included file. + +Files specified by `!include` statements may not contain `!include` statem= ents. =20 Statements in !include files must not break the integrity of the FDF file,= the included file is read in by tools in the exact position of the file, and is diff --git a/3_edk_ii_fdf_file_format/32_fdf_definition.md b/3_edk_ii_fdf_f= ile_format/32_fdf_definition.md index 62e54af..e4e9869 100644 --- a/3_edk_ii_fdf_file_format/32_fdf_definition.md +++ b/3_edk_ii_fdf_file_format/32_fdf_definition.md @@ -636,16 +636,20 @@ completely new sections of the same section type. If = the included file contains new sections, then the section being processed in the Platform FDF file is considered to have been terminated. =20 -If the filename is a filename, the tools will look for the file in the same -directory as the FDF file. If the file is not found, and the directory -containing this FDF file is not the same directory as the directory contai= ning -the DSC, the tools must attempt to locate the file in the directory tree t= hat -contains the DSC file. If the filename starts with a "$", then the system -environment variable will be used to locate the file. If none of these met= hods -find the file, and a directory separator is in the filename, the tools will -attempt to find the file in a WORKSPACE (or directory listed in the -PACKAGES_PATH) relative path. If the file cannot be found, the build system -must exit with an appropriate error message. +If the `` contains "$" characters, then macros defined in the DSC +file, FDF file, and the system environment variables, `$(WORKSPACE)`, +`$(EDK_SOURCE)`, `$(EFI_SOURCE)`, and `$(ECP_SOURCE)` are substituted into +``. + +The tools look for `` relative to the directory the FDF file res= ides. +If the file is not found, and the directory containing this FDF file is no= t the +same directory as the directory containing the DSC file, the tools must at= tempt +to locate the file relaitive to the directory that contains the DSC file. + +If none of these methods find the file, and a directory separator is in +``, the tools attempt to find the file in a WORKSPACE (or a dire= ctory +listed in the PACKAGES_PATH) relative path. If the file cannot be found, t= he +build system must exit with an appropriate error message. =20 The `!include` file cannot contain additional `!include` statements. =20 @@ -658,4 +662,6 @@ The `!include` file cannot contain additional `!include= ` statements. ``` !include myPlatform/NvRamDefs.txt !include myFeatures.mak +!include $(WORKSPACE)/PackageDir/Features.dsc +!include $(MACRO1)/AnotherDir/$(MACRO2)/Features.dsc ``` --=20 2.6.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel