## @file
#  Shell application IfConfig6.
#
#  It is shell application which is used to set and get configurations for the
#  EFI IPv6 network stack.
#
#  Copyright (c) 2009 - 2016, 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                    = 0x00010006
  BASE_NAME                      = IfConfig6
  FILE_GUID                      = 6F71926E-60CE-428d-AA58-A3D9FB879429
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = IfConfig6Initialize
  MODULE_UNI_FILE                = IfConfig6.uni

#
#
#  This flag specifies whether HII resource section is generated into PE image.
#
   UEFI_HII_RESOURCE_SECTION     = TRUE

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#
[Sources]
  IfConfig6Strings.uni
  IfConfig6.c
  IfConfig6.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  ShellPkg/ShellPkg.dec
  
[LibraryClasses]
  BaseLib
  UefiBootServicesTableLib
  UefiApplicationEntryPoint
  UefiHiiServicesLib
  BaseMemoryLib
  ShellLib
  MemoryAllocationLib
  DebugLib
  HiiLib
  NetLib

[Protocols]
  gEfiIp6ServiceBindingProtocolGuid             ## CONSUMES
  gEfiIp6ConfigProtocolGuid                     ## CONSUMES
  gEfiHiiPackageListProtocolGuid                ## CONSUMES

[UserExtensions.TianoCore."ExtraFiles"]
  IfConfig6Extra.uni
