## @file
#  Initialized Debug Agent in PEI phase.
#
#  This PEIM will invoke Debug Agent Library to initialize the debug agent in 
#  whole PEI phase.
#
# Copyright (c) 2013 - 2014, 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                      = DebugAgentPei
  MODULE_UNI_FILE                = DebugAgentPei.uni
  FILE_GUID                      = D9D114EF-F40B-4d48-AAA0-A3DC99C9F5BD
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0  
  ENTRY_POINT                    = DebugAgentPeiInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  DebugAgentPei.c
  
[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  PeimEntryPoint
  DebugAgentLib

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  DebugAgentPeiExtra.uni
