#/*++
#
# 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:
#
#    EfiScriptLib.inf
#
#  Abstract:
#
#    Component description file.
#
#--*/

[defines]
BASE_NAME           = EfiScriptLib
COMPONENT_TYPE      = LIBRARY

[sources.common]
  EfiScriptLib.c


[includes.common]
  $(EDK_SOURCE)/Foundation/Framework
  $(EDK_SOURCE)/Foundation/Efi
#  $(EFI_SOURCE)/Framework
  .
  $(EDK_SOURCE)/Foundation/Include
  $(EDK_SOURCE)/Foundation/Efi/Include
  $(EDK_SOURCE)/Foundation/Framework/Include
  $(EDK_SOURCE)/Foundation/Include/IndustryStandard
  $(EDK_SOURCE)/Foundation/Library/Dxe/Include
  $(EFI_SOURCE)
  $(EDK_SOURCE)/Foundation/Core/Dxe

[libraries.common]
  EdkFrameworkProtocolLib

[nmake.common]
