## @file
#  PeCoffExtraAction Library to support source level debug.
#
#  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
#
#  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                      = PeCoffExtraActionLib
  MODULE_UNI_FILE                = PeCoffExtraActionLib.uni
  FILE_GUID                      = 8F01CBD5-E069-44d7-90C9-35F0318603AD
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 0.8
  LIBRARY_CLASS                  = PeCoffExtraActionLib

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources.common]
  PeCoffExtraActionLib.h
  PeCoffExtraActionLib.c

[Sources.IA32]
  Ia32/IntHandlerFuncs.c
  Ia32/IntHandler.asm
  Ia32/IntHandler.nasm
  Ia32/IntHandler.S

[Sources.X64]
  X64/IntHandlerFuncs.c
  X64/IntHandler.asm
  X64/IntHandler.nasm
  X64/IntHandler.S

[Packages]
  MdePkg/MdePkg.dec
  SourceLevelDebugPkg/SourceLevelDebugPkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  IoLib
  PcdLib

[Pcd]
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod    ## CONSUMES

