#/** @file
#  Library instance for ExtendedIfrSupportLib.
#
#  This library instance implements the API which is
#  related to IFR operations but reference data structures 
#  that are not defined in UEFI specification, for example EFI_IFR_GUID_LABEL.
#  
#  Copyright (c) 2007 - 2008, Intel Corporation. <BR>
#  All rights reserved. This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution.  The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#  
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#  
#**/

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = ExtendedIfrSupportLib
  FILE_GUID                      = A47B68BA-5177-4b2d-891E-4722FA5323F8
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = ExtendedIfrSupportLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
  EFI_SPECIFICATION_VERSION      = 0x00020000
  CONSTRUCTOR                    = ExtendedIfrSupportLibConstructor


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  Common.c
  Form.c
  LibraryInternal.h
  IfrOpCodeCreation.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  MemoryAllocationLib
  DevicePathLib
  BaseLib
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  BaseMemoryLib
  DebugLib
  PcdLib

[Protocols]
  gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
  gEfiHiiDatabaseProtocolGuid
  gEfiHiiStringProtocolGuid

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
