#/** @file
# EBL Applicaiton
#
# This is a shell application that will display Hello World.
# Copyright (c) 2007, 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 Section - statements that will be processed to create a Makefile.
#
################################################################################
[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = Ebl
  FILE_GUID                      = 3CEF354A-3B7A-4519-AD70-72A134698311
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = EdkBootLoaderEntry

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
[Sources.common]
  Main.c
  Command.c
  EfiDevice.c
  HwDebug.c
  HwIoDebug.c
  Dir.c
  Hob.c
  Script.c
  Ebl.h
  Network.c
  Variable.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  EmbeddedPkg/EmbeddedPkg.dec

[LibraryClasses]
  DebugLib
  UefiLib
  UefiApplicationEntryPoint
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  BaseMemoryLib
  MemoryAllocationLib
  DevicePathLib
  IoLib
  PrintLib
  PcdLib
  EfiFileLib
  HobLib
  BaseLib
  EblCmdLib
  EblNetworkLib

[LibraryClasses.ARM]
  SemihostLib

[Protocols.common]
  gEfiFirmwareVolume2ProtocolGuid
  gEfiFirmwareVolumeBlockProtocolGuid
  gEfiBlockIoProtocolGuid
  gEfiSimpleFileSystemProtocolGuid
  gEfiLoadFileProtocolGuid
  gEfiLoadedImageProtocolGuid
  gEfiPxeBaseCodeProtocolGuid
  gEfiEblAddCommandProtocolGuid
  gEfiDiskIoProtocolGuid
  gEfiPciIoProtocolGuid
  gEfiSimpleNetworkProtocolGuid

[Guids.common]
  gEfiDxeServicesTableGuid
  gEfiFileInfoGuid
  gEfiHobMemoryAllocModuleGuid
  gEfiMemoryTypeInformationGuid

[FeaturePcd.common]
  gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot
  gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd
  gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd
  gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd
  gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable
  gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd
  gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd
  gEmbeddedTokenSpaceGuid.PcdEmbeddedProbeRemovable

[FixedPcd.common]
  gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand
  gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor
  gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize
  gEmbeddedTokenSpaceGuid.PcdEmbeddedShellCharacterEcho
  gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt

