##  @file
#   Library used for supplying some POSIX routines.
#
#  Copyright (c) 2011 - 2014, 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                      = LibPosix
  FILE_GUID                      = C516673C-6C71-4F0E-83B5-57FC662376EC
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.05
  LIBRARY_CLASS                  = LibPosix|UEFI_APPLICATION UEFI_DRIVER


#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources.common]
  Err/warn_err.c

  Gen/dirname.c
  Gen/opendir.c
  Gen/closedir.c
  Gen/readdir.c
  Gen/access.c
  Gen/utime.c

  Glob/glob.c

  Stringlist/stringlist.c

  GetPass/GetPass.c


[Packages]
  MdePkg/MdePkg.dec
  StdLib/StdLib.dec
  StdLibPrivateInternalFiles/DoNotUse.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  MemoryAllocationLib
  ShellLib
  BaseLib
  LibC
  LibStdio
  LibStdLib
  LibString
