## @file
# Component description file for EFI Shell module.
#
# This is a binary module containing multiple binary shell applications.
#  All .efi file tagged with "ToolCode="DUMMY"" in following file list are raw EFI application
#  file, and they are can be run in shell environment.
# Copyright (c) 2006 - 2010, 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                      = Shell_Full
  FILE_GUID                      = c57ad6b7-0515-40a8-9d21-551652854e37
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.1

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF ARM AARCH64
#

[Binaries.Ia32]
  PE32|Ia32/Shell_Full.efi|*

[Binaries.X64]
  PE32|X64/Shell_Full.efi|*

[Binaries.IPF]
  PE32|Ipf/Shell_Full.efi|*

[Binaries.ARM]
  PE32|Arm/Shell_Full.efi|*

[Binaries.AARCH64]
  PE32|AArch64/Shell_Full.efi|*
