##  @file
#   Library used for supplying glob POSIX routines.
#
#  Copyright (c) 2011, 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                      = LibStringlist
  FILE_GUID                      = 19D17940-BA8D-4fa7-A704-F33D9FAFAB9D
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LibStringlist|UEFI_APPLICATION UEFI_DRIVER


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  stringlist.c

[Packages]
  MdePkg/MdePkg.dec
  StdLib/StdLib.dec
  StdLibPrivateInternalFiles/DoNotUse.dec

[Libraries]
  LibC
  LibStdio
  LibStdLib
  LibString
