public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Carsey, Jaben" <jaben.carsey@intel.com>
To: "Feng, Bob C" <bob.c.feng@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Gao, Liming" <liming.gao@intel.com>
Subject: Re: [Patch] Document: Update Build spec to remove EDK related contents
Date: Tue, 5 Mar 2019 15:28:55 +0000	[thread overview]
Message-ID: <CB6E33457884FA40993F35157061515CBCB941BB@FMSMSX103.amr.corp.intel.com> (raw)
In-Reply-To: <20190305052822.24892-1-bob.c.feng@intel.com>

Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

> -----Original Message-----
> From: Feng, Bob C
> Sent: Monday, March 04, 2019 9:28 PM
> To: edk2-devel@lists.01.org
> Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Carsey, Jaben <jaben.carsey@intel.com>
> Subject: [Patch] Document: Update Build spec to remove EDK related
> contents
> Importance: High
> 
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1453
> 
> Remove EDK related contents from Build spec.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Bob Feng <bob.c.feng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> ---
>  .../103_build_intermediate_images.md          |  3 +-
>  12_build_changes_and_customizations/README.md |  4 +-
>  .../42_build_process_overview.md              |  6 +-
>  .../46_file_specifications.md                 | 20 +----
>  6_quick_start/61_environment_variables.md     | 24 +-----
>  .../82_auto-generation_process.md             | 76 +++----------------
>  .../83_auto-generated_code.md                 | 43 +++--------
>  .../85_auto-generated_makefiles.md            | 23 +++---
>  9_build_or_make_stage/README.md               |  9 +--
>  appendix_a_variables.md                       |  3 +-
>  10 files changed, 43 insertions(+), 168 deletions(-)
> 
> diff --git a/10_post-build_imagegen_stage_-
> _flash/103_build_intermediate_images.md b/10_post-
> build_imagegen_stage_-_flash/103_build_intermediate_images.md
> index 5f5aefc..9253cde 100644
> --- a/10_post-build_imagegen_stage_-
> _flash/103_build_intermediate_images.md
> +++ b/10_post-build_imagegen_stage_-
> _flash/103_build_intermediate_images.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    10.3 Build Intermediate Images
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -43,11 +43,10 @@ one below:
>    INF_VERSION               = 0x00010017
>    BASE_NAME                 = Logo
>    FILE_GUID                 = 7BB28B99-61BB-11D5-9A5D-0090273FC14D
>    MODULE_TYPE               = USER_DEFINED
>    VERSION_STRING            = 1.0
> -  EDK_RELEASE_VERSION       = 0x00020000
>    EFI_SPECIFICATION_VERSION = 0x00020000
> 
>  [Binaries.common]
>    BIN|Logo.bmp|*
>  ```
> diff --git a/12_build_changes_and_customizations/README.md
> b/12_build_changes_and_customizations/README.md
> index 91e49b6..431e30f 100644
> --- a/12_build_changes_and_customizations/README.md
> +++ b/12_build_changes_and_customizations/README.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    12 Build Changes and Customizations
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -30,6 +30,6 @@
>  -->
> 
>  # 12 Build Changes and Customizations
> 
>  This chapter deals with customizing a build, including options and settings for
> -debugging, using custom tools as well as how to customize EDK component
> builds
> +debugging, using custom tools.
> diff --git
> a/4_edk_ii_build_process_overview/42_build_process_overview.md
> b/4_edk_ii_build_process_overview/42_build_process_overview.md
> index d0725d3..17ed278 100644
> --- a/4_edk_ii_build_process_overview/42_build_process_overview.md
> +++ b/4_edk_ii_build_process_overview/42_build_process_overview.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    4.2 Build Process Overview
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -30,13 +30,11 @@
>  -->
> 
>  ## 4.2 Build Process Overview
> 
>  Prior to executing a build command, specific system environment variables
> must
> -be initialized: `WORKSPACE`, `EDK_TOOLS_PATH` are required for all builds,
> -while `ECP_SOURCE`, `EFI_SOURCE` and `EDK_SOURCE` are only required to
> build
> -EDK II platforms that contain EDK components and EDK libraries.
> Additionally,
> +be initialized: `WORKSPACE`, `EDK_TOOLS_PATH` are required for all builds.
> Additionally,
>  the provided EDK II tool set must be present in a directory that is in the
>  system environment variable: PATH. The edksetup scripts provided in the
> root
>  directory of the EDK II development tree will set the `WORKSPACE` and
>  `EDK_TOOLS_PATH`, as well as modify the system environment variable,
> PATH to
>  ensure that the tools can execute. Refer to "_Build Environment_" for more
> diff --git a/4_edk_ii_build_process_overview/46_file_specifications.md
> b/4_edk_ii_build_process_overview/46_file_specifications.md
> index a606488..f30f806 100644
> --- a/4_edk_ii_build_process_overview/46_file_specifications.md
> +++ b/4_edk_ii_build_process_overview/46_file_specifications.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    4.6 File Specifications
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -35,28 +35,10 @@ The EDK II Build is used to generate UEFI and PI
> compliant images. Additional
>  reference modules may conform to Intel Framework Specifications only if
> there
>  are no applicable UEFI or PI specification modules.
> 
>  The EDK II Build Tools will only generate UEFI/PI compliant images.
> 
> -The EDK II Compatibility Package provides libraries and header files to permit
> -building some* EDK Libraries and EDK Components referenced in an EDK II
> -platform (DSC) file.
> -
> -**********
> -**Note:** \* indicates any EDK libraries or components that do not include
> -assembly files and do not access flash memory can use the EDK II
> compatibility
> -Package
> -**********
> -
> -For some development activities, the EDK II Compatibility package can be
> used
> -to develop and maintain original EDK platforms, components and libraries.
> This
> -package also provides all of the tool source code used in the EDK. These
> tools
> -are for building components and platform using the original EDK code. None
> of
> -these tools is used for the EDK II build process. This EDK Compatibility
> -package can also be used to generate files conforming to earlier releases of
> -EFI and UEFI specifications.
> -
>  This build specification does not cover the tools or build processes for EDK
>  builds nor tools provide by the EDK II Compatibility Package.
> 
>  The binary image files generated at the end of the $(MAKE) stage conform
> to the
>  UEFI Images section of the _UEFI specification_. UEFI uses a subset of the
> diff --git a/6_quick_start/61_environment_variables.md
> b/6_quick_start/61_environment_variables.md
> index c90563b..9600e45 100644
> --- a/6_quick_start/61_environment_variables.md
> +++ b/6_quick_start/61_environment_variables.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    6.1 Environment Variables
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -71,17 +71,10 @@ include the trailing backslash character:
> 
>  `set NASM_PREFIX=C:\nasm\`
> 
>  ### 6.1.2 Optional Environment Variables
> 
> -There are two types of optional environment variables. The first type are
> used
> -for complex development trees, while the second type of optional
> environment
> -variables are needed build EDK components and libraries for use in an EDK II
> -platform. Some EDK components and libraries can be used without
> modifications,
> -while other EDK components and libraries will require porting to the new
> EDK II
> -development environment.
> -
>  When EDK II Packages are distributed within different directory trees on a
>  developer's workstation, the `PACKAGES_PATH` environment variable is
> used to list
>  directories (prioritized from left to right) that contain EDK II Package
>  directories. The operating system delimiter, such as the semi-colon character
>  for Microsoft operating systems, is used to separate the directory names. If
> @@ -98,20 +91,10 @@ If these Win32 binaries are located in edk2 directory
> tree under the
>  using \*NIX operating systems must build the 'C'-based tools prior to using
> them
>  and run the Python based tools from source, this environment variable is not
>  required. The edksetup script is used to add the path to the binaries to the
>  system PATH environment variable.
> 
> -The `EDK_SOURCE` environment variable must point to either the head of
> an
> -existing EDK directory tree (not the EDK II directory) or the EDK II's
> -`EdkCompatibilityPkg` directory.
> -
> -Another optional environment variable, `EFI_SOURCE`, is needed if the
> -`EDK_SOURCE` environment variable is set and an EDK component and/or
> library is
> -located outside of the `EDK_SOURCE` tree. If these values are not set, the
> EDK
> -II build system will automatically set both values to point to the
> -`EdkCompatibilityPkg` directory in the `WORKSPACE`.
> -
>  The final optional environment variable, `ECP_SOURCE`, is used to define the
>  location of the EDK Compatibility Package content for building EDK modules.
> If
>  these values are not set, the build system will automatically set the value to
>  the `EdkCompatibilityPkg` directory in the `WORKSPACE`.
> 
> @@ -125,15 +108,10 @@ system environment variables, `WORKSPACE` and
> `EDK_TOOLS_PATH`.
>  If a more complex development environment is used (multiple directories
>  containing EDK II Packages), then the `WORKSPACE`, `PACKAGES_PATH` and
>  `EDK_TOOLS_BIN` environment variables must be set before running the
> edksetup
>  script.
> 
> -The three optional environment variables, `ECP_SOURCE`, `EDK_SOURCE`
> and
> -`EFI_SOURCE` which are required when building EDK libraries and
> components in
> -the context of an EDK II platform will also be set if they have not been set
> -previously.
> -
>  The script must be executed prior to building in a new command prompt
> window or
>  new terminal shell.
> 
>  Another feature of the script is that it adds the path of the build system
>  tools into the OS environment variable, `PATH`.
> 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 9b61e0d..7cdf26b 100644
> --- a/8_pre-build_autogen_stage/82_auto-generation_process.md
> +++ b/8_pre-build_autogen_stage/82_auto-generation_process.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    8.2 Auto-generation Process
> 
> -  Copyright (c) 2008-2018, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -246,13 +246,10 @@ or located under a subdirectory of the Bin directory
> of the EDK_TOOLS_PATH
>  directory.
> 
>  * All EDK II content used to create PE32/PE32+ images must reside in the
>    directory tree pointed to by the `WORKSPACE`.
> 
> -* EDK content must reside in directories pointed to by the `EFI_SOURCE`,
> -  `EDK_SOURCE` and `ECP_SOURCE` system environment variables.
> -
>  * The build system's output directory is not required to be within the
>    `WORKSPACE`.
> 
>  From the DSC file, the build tools collect the mapping between library classes
>  and library instances (INF files), PCD data for the whole platform, the list of
> @@ -380,14 +377,11 @@ be altered.
>  ###### Table 9 System Environment Variable Usage
> 
>  | Macro Style Used in Meta-Data files | Windows Environment Variable |
> Linux & OS/X Environment Variable |
>  |:-----------------------------------:|:----------------------------:|:----------------------
> -----------:|
>  | `$(WORKSPACE)`                      | `%WORKSPACE%`                | `$WORKSPACE`
> |
> -| `$(EFI_SOURCE)`                     | `%EFI_SOURCE%`               | `$EFI_SOURCE`
> |
> -| `$(EDK_SOURCE)`                     | `%EDK_SOURCE%`               | `$EDK_SOURCE`
> |
>  | `$(EDK_TOOLS_PATH)`                 | `%EDK_TOOLS_PATH%`           |
> `$EDK_TOOLS_PATH`                 |
> -| `$(ECP_SOURCE)`                     | `%ECP_SOURCE%`               | `$ECP_SOURCE`
> |
> 
>  **********
>  **Note:** The `PACKAGES_PATH` and `EDK_TOOLS_BIN` system
> environment variables
>  shall not be referenced in EDK II meta-data files.
>  **********
> @@ -413,13 +407,10 @@ conditional directives. Macros can also be defined
> or used in the `[Defines]`,
>  `[LibraryClasses]`, `[Libraries]`, `[Components]` and all PCD sections.
> 
>  Macros defined by the user may be used in the !include statements in DSC
> and
>  FDF files.
> 
> -`EDK_GLOBAL` type macros defined in the DSC file can be used in later
> sections
> -of the DSC, FDF and any of the included EDK INF files.
> -
>  Macro values must be defined prior to using them in directive statements or
> for
>  PCD values. The following provides the precedence (high to low) for
> obtaining
>  macro values.
> 
>  * Command-line, `-D` flags (left most has higher priority)
> @@ -480,15 +471,11 @@ internal build tools. These macros must not be
> redefined.
>  | --------------------- | -------------------------------------------------------------------
> ----------------------------------------------------------------------------------------------
> -------------------------------------------------- |
>  | `$(ARCH)`             | Architecture of current module
> |
>  | `$(BASE_NAME)`        | The file name of the module binary.
> |
>  | `$(BUILD_DIR)`        | All files for building a platform will be put in this
> directory
> |
>  | `$(BUILD_NUMBER)`     | Used in FDF file `[Rules]` sections to identify a
> build number used in a UEFI Version section. This is a value that is defined in
> the DSC file.                                                                     |
> -| `$(ECP_SOURCE)`       | The system environment variable that points to a
> version of the Edk Compatibility Package. This is only required if there are
> EDK components and libraries included in an EDK II platform build.                    |
> -| `$(EDK_SOURCE)`       | The system environment variable that points to an
> EDK tree containing the Foundation elements of an EDK tree. This is only
> required if there are EDK components and libraries included in an EDK II
> platform build. |
>  | `$(EDK_TOOLS_PATH)`   | The system environment variable that points to
> the path of build tools
> |
> -| `$(EFI_SOURCE)`       | The system environment variable that points to an
> EDK tree containing EDK components and libraries. This is only required if
> there are EDK components and libraries included in an EDK II platform build.
> |
> -| `$(FILE_GUID)`        | An EDK component's GUID value
> |
>  | `$(INF_OUTPUT)`       | Used in FDF file `[Rules]` sections to identify the
> location of UEFI compliant binary leaf section content
> |
>  | `$(INF_VERSION)`      | Used in FDF file `[Rules]` sections to identify the
> version string used in a UEFI Version section.
> |
>  | `$(MODULE_NAME)`      | Current module name
> |
>  | `$(MODULE_TYPE)`      | Current module type
> |
>  | `$(MODULE_GUID)`      | Current module GUID
> |
> @@ -544,28 +531,12 @@ will perform any needed tests.
>  [LibraryClasses.X64.PEIM]
>    # Can use $(MDE) and $(PERF)
>    DEFINE MDEMEM = $(MDE)/PeiMemoryAllocationLib
>    MemoryAllocationLib|$(MDEMEM)/PeiMemoryAllocationLib.inf
> 
> -[LibraryClasses.IPF]
> -  # Cannot use $(PERF) or $(MDEMEM)
> -  # Can use $(MDE) from the common section
> -  PalLib|$(MDE)/UefiPalLib/UefiPalLib.inf
> -
> TimerLib|$(MDE)/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
>  ```
> 
> -#### EDK_GLOBAL
> -
> -The `EDK_GLOBAL` statements defined in the DSC file can be used during
> the
> -processing of the DSC, FDF and EDK INF files. The definition of the
> -`EDK_GLOBAL` name must only be done in the DSC `[Defines]` section.
> These
> -special macros can be used in path statements, `[BuildOptions]` and `[Rule]`
> -sections. These statements are used to replace the environment variables
> that
> -were defined for the EDK build tools. They must never be used in a
> conditional
> -directive statement in the DSC and FDF files, nor can they be used by EDK II
> -INF files.
> -
>  #### 8.2.4.5 Conditional Directive Blocks
> 
>  Additional build scoping can be implemented using the DSC and FDF directive
>  statements in combination with command line options for the build tool.
>  Conditional directive blocks are not permitted in the EDK II DEC and INF files.
> @@ -727,27 +698,14 @@ file.
> 
>  For logical expressions, any non-zero value must be considered `TRUE`.
> 
>  Invalid expressions must cause a build break with an appropriate error
> message.
> 
> -#### 8.2.4.7 EDK Overrides
> -
> -For EDK component INF files, an optional sub-element of
> `<SOURCE_OVERRIDE_PATH>`
> -has been defined. If this element is specified, files listed in the directory
> -are used instead of the "same-named" files in the component's directory. If
> an
> -EDK component directory lists files, `A.c`, `B.c` and `C.h`, and the directory
> -specified in this sub-element contains the file `B.c`, then the component will
> -be built using files from the component directory: `A.c` and `C.h`, and the file
> -`B.c` from the override directory. Any other files listed in the override
> -directory will NOT be included in the build (no new or additional files are
> -permitted).
> -
> -#### 8.2.4.8 DEPEX processing
> +#### 8.2.4.7 DEPEX processing
> 
>  EDK II modules that have dependencies must use the `[Depex]` section to
> define
> -the dependency expressions, however both EDK and EDK II may specify a
> -dependency expression file. If the file specified, the complete dependency
> +the dependency expressions. If the file specified, the complete
> dependency
>  expression must be defined in the file. For EDK II modules, the build tools
>  will create the complete dependency expression using the information in
> the
>  `[Depex]` section along with all `[Depex]` sections from the linked in library
>  instances. Depex expressions listed in an INF file's `[Depex]` section are
>  written as in-fix expressions, while the output of the `GenDepex` tool
> @@ -765,11 +723,11 @@ precedence for dependency expressions.
>  | `AND`, `and`      | TRUE, FALSE, GUID or Encapsulation                    | These
> operators are used to create an expression
> |            |
>  | `OR`, `or`        | TRUE, FALSE, GUID or Encapsulation                    | These
> operators are used to create an expression
> | Lowest     |
>  | `SOR`             | TRUE, FALSE, GUID or Encapsulation                    | Only valid for
> DXE and SMM dependency expressions and must be the first statement
> followed by either a GUID, encapsulation or an expression                               |
> |
>  | `AFTER`, `BEFORE` | GUID                                                  | Only valid for DXE and
> SMM dependency expressions. These must be the only operator in the
> dependency expression. Only one of these is permitted per dependency
> expression |            |
> 
> -#### 8.2.4.9 PCD Access Methods
> +#### 8.2.4.8 PCD Access Methods
> 
>  A PCD is defined as `TokenSpaceGuidCName.PcdCName`. Each PcdCName
> must be
>  unique to the Token Space declaring the PCD. The token space is a name
> space
>  that is unique to the GUID known as the TokenSpaceGuidCName.
> 
> @@ -854,11 +812,11 @@ prior to autogenerating the code.
> 
>  PCD values stored in VPD regions are processed prior to completing the final
>  PCD parsing. Refer to Section 8.4 for additional rules for processing PCDs to
>  create a platform scoped PCD Database.
> 
> -#### 8.2.4.10 Precedence of PCD Values
> +#### 8.2.4.9 Precedence of PCD Values
> 
>  The values that are assigned to individual PCDs required by a build may come
>  from different locations and different meta-data files. The following
> provides
>  the precedence (high to low) to assign a value to a PCD.
> 
> @@ -925,11 +883,11 @@ L"Module Length"` 26 bytes, 2 bytes for null
> termination character).
> 
>  `VOID*` PCDs must be byte aligned if the value is an ASCII string, two-byte
>  aligned if the value is a Unicode string or 8-byte aligned in the value is a
>  byte array.
> 
> -#### 8.2.4.11 Section Handling
> +#### 8.2.4.10 Section Handling
> 
>  The INF and DEC file parsing routines must process the sections so that
> common
>  architecture sections are logically merged with the architecturally specific
>  sections. The architectural sections need to be processed so that they are
>  logically after the common section. It is recommended that EDK II
> developers
> @@ -952,31 +910,19 @@ Common Section + Architectural Section + Common
> Section w/extra Modifier + Archi
> 
>  ```ini
>  [BuildOptions.Common]
>    MSFT:*_*_*_CC_FLAGS = /nologo
> 
> -[BuildOptions.Common.EDK]
> -  MSFT:*_*_*_CC_FLAGS = /Od
> -
>  [BuildOptions.IA32]
>    MSFT:*_*_IA32_CC_FLAGS = /D EFI32
>  ```
> 
>  For IA32 architecture builds of an EDK II INF file would logically be:
> 
>  `MSFT:*_*_IA32_CC_FLAGS = /nologo /D EFI32`
> 
> -For non-IA32 architecture EDK INF files, tool parsing would logically be:
> -
> -`MSFT:*_*_*_CC_FLAGS = /nologo /Od`
> -
> -For IA32 architecture builds of an EDK INF file, tool parsing would logically
> -be:
> -
> -`MSFT:*_*_IA32_CC_FLAGS = /nologo /D EFI32 /Od`
> -
> -#### 8.2.4.12 PCD INFO Generation
> +#### 8.2.4.11 PCD INFO Generation
> 
>  The UEFI Platform Initialization specification defines a PEIM and Protocol that
>  can retrieve the PCD Token number and the PCD Token Name (the PCD C
> Name)
>  information from the PCD Database. In order to support these modules, a
>  `PCD_INFO_GENERATION` entry in the DSC file's `[Defines]` section is used
> to
> @@ -987,11 +933,11 @@ optional feature rather than always generating the
> content.
> 
>  If the `[Defines]` section has the `PCD_VAR_CHECK_GENERATION` entry set
> to
>  TRUE, then a binary file will be created in the FV directory for Dynamic and
>  DynamicEx PCD HII Variable checking.
> 
> -#### 8.2.4.13 Pre Build Processing
> +#### 8.2.4.12 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 = entry` statement, processing
>  of the DSC file is suspended and the script specified in the `PREBUILD`
>  statement is executed. The entry of `PREBUILD` support multiple arguments.
> And
> @@ -1020,11 +966,11 @@ at the time the ENTRY was found.
>  Quotes are also required if the path to the pre-build command contains
> space
>  or special characters. Quotes may be used for arguments that have spaces or
>  special characters.
>  **********
> 
> -#### 8.2.4.14 NMAKE Command line limitation handling
> +#### 8.2.4.13 NMAKE Command line limitation handling
> 
>  `NMAKE` is limited to command-line length of 4096 characters.  Due to the
> large
>  number of `/I` directives specified on command line (one per include
> directory),
>  the path length of `WORKSPACE` is multiplied by the number of `/I`
> directives
>  and can exceed this command-line length limitation. When this issue occurs,
> the
> @@ -1040,11 +986,11 @@ maximum command line length.  The default value
> is 4096.
>  **Note:** The following `FLAGS` options are included in the response file:
>  `PP_FLAGS`, `CC_FLAGS`, `VFRPP_FLAGS`, `APP_FLAGS`, `ASLPP_FLAGS`,
> `ASLCC_FLAGS`,
>  and `ASM_FLAGS`.
>  **********
> 
> -#### 8.2.4.15 Build with Binary Cache
> +#### 8.2.4.14 Build with Binary Cache
> 
>  **build** tool provides three new options for binary cache feature.
>  --hash enables hash-based caching during build process. when --hash is
> enabled,
>  build tool will base on the module hash value to do the incremental build,
> without
>  --hash, build tool will base on the timestamp to do the incremental build. --
> hash
> @@ -1060,11 +1006,11 @@ hash value file into the directory specified by
> binary-destination at the build
>  When --hash and --binary-source are specified, build tool will try to get the
> binary
>  files from the binary source directory at the build phase. If the cached binary
> has
>  the same hash value, it will be directly used. Otherwise, build tool will
> compile the
>  source files and generate the binary files.
> 
> -#### 8.2.4.16 !error Statement
> +#### 8.2.4.15 !error Statement
> 
>  The DSC and FDF file can use `!error` statement. The argument of this
> statement is an
>  error message, it causes build tool to stop at the location where the
> statement is
>  encountered and error message following the `!error` statement is output as
> a message.
> 
> diff --git a/8_pre-build_autogen_stage/83_auto-generated_code.md
> b/8_pre-build_autogen_stage/83_auto-generated_code.md
> index 3738d92..dcb0c09 100644
> --- a/8_pre-build_autogen_stage/83_auto-generated_code.md
> +++ b/8_pre-build_autogen_stage/83_auto-generated_code.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    8.3 Auto-generated code
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -158,16 +158,13 @@ process Unicode files listed in a module's INF file.
> Also note that the IFR
>  code is not compatible - UFI compliant IFR code is different from the IFR
> code
>  defined by early Intel Framework documents.
> 
>  #### 8.3.3.1 Reference Implementation: Compatibility
> 
> -The EDK II Vfr compiler tools can process EDK and EDK II VFR and Unicode
> files
> +The EDK II Vfr compiler tools can process EDK II VFR and Unicode files
>  and to generate UEFI/PI compliant IFR files. EDK II Unicode files can use the
> -UEFI defined Unicode extended grammar. The EDK VFR and Unicode files
> are a
> -subset of the EDK II versions. EDK II VFR and Unicode files may not be used
> -with an EDK build unless they do not include the extended grammar. Table
> 15
> -shows the compatibility matrix.
> +UEFI defined Unicode extended grammar. Table 15 shows the compatibility
> matrix.
> 
>  ###### Table 15 VFR Compatibility Matrix
> 
>  | Code                        | non-UEFI Compliant VFR Tools | UEFI Compliant VFR
> Tools |
>  | --------------------------- |:----------------------------:|:------------------------:|
> @@ -194,12 +191,10 @@ information into HII string pack data structure.
> 
>  * For EDK II modules, their Unicode files must use RFC 4646 language codes.
> If
>    an EDK II module's Unicode file contains a three character ISO 639-2
> language
>    code, the build will break with an appropriate warning message.
> 
> -* For EDK components, their Unicode files must use the ISO 639-2 language
> codes.
> -
>  **********
>  **Note:** Tools must not refactor the EDK component ISO 639-2 language
> codes to
>  RFC 4646 language codes, as the DXE drivers are responsible for handling the
>  different language code formats.
>  **********
> @@ -378,37 +373,21 @@ include_statement (AutoGen.h, "
>    extern "C" {
>    #endif
>  ");
>  ```
> 
> -#### 8.3.6.2 Global macro definitions
> -
> -If they are defined in INF file, un-defining them first is for backward
> -compatibility with EDK module build, because these macros are not defined
> in
> -INF file of EDK modules but passed via compiler option.
> -
> -```c
> -include_statement (AutoGen.h, "
> -  #undef EFI_SPECIFICATION_VERSION
> -  #define EFI_SPECIFICATION_VERSION 0x00020000
> -
> -  #undef EDK_RELEASE_VERSION
> -  #define EDK_RELEASE_VERSION 0x00020000
> -");
> -```
> -
> -#### 8.3.6.3 Header file inclusion.
> +#### 8.3.6.2 Header file inclusion.
> 
>  Only one header file is included.
> 
>  ```c
>  include_statement (AutoGen.h, "
>    #include <Base.h>
>  ");
>  ```
> 
> -#### 8.3.6.4 Caller ID GUID definition.
> +#### 8.3.6.3 Caller ID GUID definition.
> 
>  The GUID value is the same as INF file GUID. The macro,
> `EFI_CALLER_ID_GUID`,
>  is generated only for non - library module.
> 
>  ```c
> @@ -419,16 +398,16 @@ include_statement (AutoGen.h, "
>      { 0x6987936E, 0xED34, 0x44db, { 0xAE, 0x97, 0x1F, 0xA5, 0xE4, 0xED,
>        0x21, 0x16 } }
>  ");
>  ```
> 
> -#### 8.3.6.5 PCD definitions
> +#### 8.3.6.4 PCD definitions
> 
>  There are differences in the generated code for library and non-library
>  modules, which are illustrated in pseudo-code below.
> 
> -##### 8.3.6.5.1 Non-library Module
> +##### 8.3.6.4.1 Non-library Module
> 
>  ```c
>  include_statement(AutoGen.h, "
>    #define _PCD_TOKEN_<TokenCName> <TokenNumber>
>  ");
> @@ -541,11 +520,11 @@ If (PCD_type == DYNAMIC_EX) {
>      ");
>    }
>  }
>  ```
> 
> -##### 8.3.6.5.2 Library Module
> +##### 8.3.6.4.2 Library Module
> 
>  ```c
>  nclude_statement(AutoGen.h, "
>    #define _PCD_TOKEN_<TokenCName> <TokenNumber>
>  ");
> @@ -626,11 +605,11 @@ If (PCD_type == DYNAMIC_EX) {
>      ");
>    }
>  }
>  ```
> 
> -##### 8.3.6.5.3 HII string pack definitions,
> +##### 8.3.6.4.3 HII string pack definitions,
> 
>  These are generated only if `.uni` files are found. For details, please refer
>  to section 7.3.2.
> 
>  ```c
> @@ -651,11 +630,11 @@ include_statement (AutoGen.h, "
>    #define STRING_ARRAY_NAME MiscSubclassStrings
> 
>  ");
>  ```
> 
> -##### 8.3.6.5.4 HII image pack definitions
> +##### 8.3.6.4.4 HII image pack definitions
> 
>  These are generated only if `.idf` files are found.
>  ```
>  include_statement(AutoGen.h, "
>    //
> @@ -668,11 +647,11 @@ include_statement(AutoGen.h, "
> 
>    #define IMAGE_ARRAY_NAME  HelloWorldImages
>  ");
>  ```
> 
> -#### 8.3.6.6 AutoGen Epilogue
> +#### 8.3.6.5 AutoGen Epilogue
> 
>  ```c
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/8_pre-build_autogen_stage/85_auto-generated_makefiles.md
> b/8_pre-build_autogen_stage/85_auto-generated_makefiles.md
> index fa8d5c4..161faa9 100644
> --- a/8_pre-build_autogen_stage/85_auto-generated_makefiles.md
> +++ b/8_pre-build_autogen_stage/85_auto-generated_makefiles.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    8.5 Auto-generated Makefiles
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -46,12 +46,12 @@ target is "fds", after the module builds successfully,
> the build tool calls the
>  GenFds tool to regenerate an FD file.
> 
>  ### 8.5.1 Module Makefile
> 
>  This section describe the formats of the individual component/module
> Makefiles.
> -Users may generate a custom makefile for their EDK component or EDK II
> module
> -based on the information provided by this section.
> +Users may generate a custom makefile for their EDK II module based on the
> information
> +provided by this section.
> 
>  The module `Makefile` is composed by two parts: macro definitions and
> target
>  definitions.
> 
>  In the pseudo-code provided, the MACRO, `$(MODULE_BUILD_DIR)` is
> constructed
> @@ -297,16 +297,13 @@ system has to build libraries that the current
> module needs in module's
>  `Makefile`. "`mbuild`" target is used for this purpose.
> 
>  ```
>  mbuild: $(INIT_TARGET) gen_libs $(CODA_TARGET)
>  gen_libs:
> -    cd $(BUILD_DIR)\IPF\MdePkg\Library\DxePcdLib\DxePcdLib &&
> "$(MAKE)"
> +    cd $(BUILD_DIR)\X64\MdePkg\Library\DxePcdLib\DxePcdLib &&
> "$(MAKE)"
>  $(MAKE_FLAGS)
> -    cd $(BUILD_DIR)\IPF\MdePkg\Library\BaseLib\BaseLib && "$(MAKE)"
> -$(MAKE_FLAGS)
> -    cd $(BUILD_DIR)\IPF\CsiCpuUncorePkg\Library\ItcTimerLib\ItcTimerLib
> -&& "$(MAKE)" $(MAKE_FLAGS)
> +    cd $(BUILD_DIR)\X64\MdePkg\Library\BaseLib\BaseLib && "$(MAKE)"
>      cd $(MODULE_BUILD_DIR)
>  ```
> 
>  ##### 8.5.1.2.4 "init" target
> 
> @@ -342,12 +339,12 @@ $(DEBUG_DIR)\$(MODULE_NAME).efi :
> $(DEBUG_DIR)\$(MODULE_NAME).dll
>      $(CP) $(DEBUG_DIR)\$(MODULE_NAME).efi $(OUTPUT_DIR)
>      $(CP) $(DEBUG_DIR)\$(MODULE_NAME).efi $(BIN_DIR)
>      -$(CP) $(DEBUG_DIR)\*.map $(OUTPUT_DIR)
> 
>  $(OUTPUT_DIR)\AutoGen.obj : \
> -
> $(WORKSPACE)\Build\MyPlatform\DEBUG_ICC\IPF\MyPlatformPkg\MyMod
> Dir\MyModDir\DEBUG\AutoGen.c
> -    "$(CC)" /Fo$(OUTPUT_DIR)\AutoGen.obj $(CC_FLAGS) $(INC)
> $(WORKSPACE)\Build\MyPlatform\DEBUG_ICC\IPF\MyPlatformPkg\MyMod
> Dir\MyMod Dir\DEBUG\AutoGen.c
> +$(WORKSPACE)\Build\MyPlatform\DEBUG_ICC\X64\MyPlatformPkg\MyM
> odDir\MyModDir\DEBUG\AutoGen.c
> +    "$(CC)" /Fo$(OUTPUT_DIR)\AutoGen.obj $(CC_FLAGS) $(INC)
> $(WORKSPACE)\Build\MyPlatform\DEBUG_ICC\X64\MyPlatformPkg\MyMo
> dDir\MyMod Dir\DEBUG\AutoGen.c
>  ```
> 
>  ##### 8.5.1.2.6 clean, cleanall, cleanlib
> 
>  Targets used to delete part or all files generated during build.
> @@ -360,13 +357,11 @@ cleanall:
>      if exist $(DEBUG_DIR) rmdir /s /q $(DEBUG_DIR)
>      if exist $(OUTPUT_DIR) rmdir /s /q $(OUTPUT_DIR)
>      del /f /q *.pdb *.idb > NUL 2>&1
> 
>  cleanlib:
> -    cd $(BUILD_DIR)\IPF\MdePkg\Library\DxePcdLib\DxePcdLib && \
> -      "$(MAKE)" $(MAKE_FLAGS) cleanall
> -    cd $(BUILD_DIR)\IPF\MdePkg\Library\BaseLib\BaseLib && \
> +    cd $(BUILD_DIR)\X64\MdePkg\Library\DxePcdLib\DxePcdLib && \
>        "$(MAKE)" $(MAKE_FLAGS) cleanall
> -    cd $(BUILD_DIR)\IPF\CsiCpuUncorePkg\Library\ItcTimerLib\ItcTimerLib
> && \
> +    cd $(BUILD_DIR)\X64\MdePkg\Library\BaseLib\BaseLib && \
>        "$(MAKE)" $(MAKE_FLAGS) cleanall
>      cd $(MODULE_BUILD_DIR)
>  ```
> diff --git a/9_build_or_make_stage/README.md
> b/9_build_or_make_stage/README.md
> index 1a82bda..086d5b6 100644
> --- a/9_build_or_make_stage/README.md
> +++ b/9_build_or_make_stage/README.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    9 Build or $(MAKE) Stage
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -31,14 +31,13 @@
> 
>  # 9 Build or $(MAKE) Stage
> 
>  This chapter describes the processing of the source files into EFI files.
> 
> -The make stage starts out by building required libraries, followed by the EDK
> -components and finally, EDK II modules. The outputs of this stage are linked
> -PE32+/COFF images that have been processed to replace the standard
> header with
> -an appropriate EFI header.
> +The make stage starts out by building required libraries, followed by EDK II
> modules.
> +The outputs of this stage are linked PE32+/COFF images that have been
> processed
> +to replace the standard header with an appropriate EFI header.
> 
>  How a file will be processed is defined in the file specified by the
>  `BUILD_RULE_CONF` statement in target.txt or the default file
>  `$(WORKSPACE)/Conf/build_rule.txt`. The build system will use the sections
> in
>  this file to convert to actions and targets in the Makefile. In the previous
> diff --git a/appendix_a_variables.md b/appendix_a_variables.md
> index b3e4da7..4d39989 100644
> --- a/appendix_a_variables.md
> +++ b/appendix_a_variables.md
> @@ -1,9 +1,9 @@
>  <!--- @file
>    Appendix A Variables
> 
> -  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2008-2019, Intel Corporation. All rights reserved.<BR>
> 
>    Redistribution and use in source (original document form) and 'compiled'
>    forms (converted to PDF, epub, HTML and other formats) with or without
>    modification, are permitted provided that the following conditions are met:
> 
> @@ -59,11 +59,10 @@ optional system environment variable.
>  | `BIN_DIR`         | L   | Specifies the directory where final component binaries
> are deposited during build. Typically `$(BUILD_DIR)\$(PROCESSOR)`
> |
>  | `BUILD_DIR`       | G   | Defines the build tip directory for the current
> platform. For example, this may be
> `$(EFI_SOURCE)\Platform\Anacortes_870`.
> |
>  | `BUILD_TYPE`      | L   | If defined, then the utility will copy the
> `[build.$(PROCESSOR).$(BUILD_TYPE)]` section from the DSC file to the
> component's makefile. If not specified, then the
> `[build.$(PROCESSOR).$(COMPONENT_TYPE)]` section will be used to emit
> command to build the component.
> |
>  | `DEST_DIR`        | L   | For a component, defines the directory (typically
> under `BUILD_DIR`) where the component object files are to be built.
> |
>  | `DSC_FILENAME`    | G   | Name of the DSC file as specified on the
> command line. Can be used for dependencies in the Makefiles.
> |
> -| `EDK_SOURCE`      | G   | Defines the root directory of the local EFI source
> tree, for example `C:\EFI2.0` If not defined as an environmental variable
> when the tool is invoked, the utility will attempt to determine a reasonable
> value based on the current working directory.
> |
>  | `FILE`            | L   | As the utility processes each source file in the Platform
> (DSC) file, this symbol gets assigned the name of the file, less the file
> extension.
> |
>  | `FV_EXT`          | L   | Common component type (BS driver, application, etc.)
> have predefined file name extensions assigned (.dxe, .app, etc.). If there is a
> deviation from the convention, or a new (unknown to the utility) component
> type is being built, then `FV_EXT` may need to be defined for the component
> so the utility knows the result file name extension. This information is
> necessary to generate dependencies in `makefile.out`. |
>  | `INF_FILENAME`    | L   | Name of the INF file for a given component. Can
> be used for dependencies in the Makefiles.
> |
>  | `LIB_DIR`         | L   | Specifies the directory where EFI libraries are deposited
> after building. Typically `$(BUILD_DIR)\$(PROCESSOR)`
> |
>  | `MAKEFILE_NAME`   | L   | Name of the output makefile for the
> component. Default is "makefile". This value can be overridden to support
> building different variations of a component in the same DEST_DIR directory.
> |
> --
> 2.20.1.windows.1



      reply	other threads:[~2019-03-05 15:28 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-05  5:28 [Patch] Document: Update Build spec to remove EDK related contents Feng, Bob C
2019-03-05 15:28 ` Carsey, Jaben [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CB6E33457884FA40993F35157061515CBCB941BB@FMSMSX103.amr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox