#/*++
#
# Copyright (c) 2006, Intel Corporation                                                         
# 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.             
# 
#  Module Name:
#
#    RtPlatformStatusCode.inf
#
#  Abstract:
#
#    Library selecting the listeners for the platform
#
#--*/

[defines]
BASE_NAME            = RtPlatformStatusCodeLib
COMPONENT_TYPE       = LIBRARY

[sources.common]
  RtPlatformStatusCode.c

[includes.common]
  $(EDK_SOURCE)/Foundation/Framework
  $(EDK_SOURCE)/Foundation
  $(EDK_SOURCE)/Foundation/Efi
  .
  $(EDK_SOURCE)/Sample/Platform/Generic/RuntimeDxe/StatusCode/Lib/Include
  $(EDK_SOURCE)/Foundation/Include
  $(EDK_SOURCE)/Foundation/Efi/Include
  $(EDK_SOURCE)/Foundation/Framework/Include
  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
  $(EDK_SOURCE)/Foundation/Core/Dxe
  $(EDK_SOURCE)/Foundation/Library/Dxe/Include

[libraries.common]
  HobLib
  RtMemoryStatusCodeLib
  BsDataHubStatusCodeLib

[nmake.common]
