## @file
#  Standard C library: Miscelaneous implementations.
#
#  Copyright (c) 2010 - 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                    = 0x00010005
  BASE_NAME                      = LibString
  FILE_GUID                      = caee2f3b-3191-4da0-ad10-a5c07e636cd1
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LibString

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  Misc.c
  Copying.c
  Concatenation.c
  Comparison.c
  Searching.c
  ErrorList.c
  strncasecmp.c
  strlcpy.c
  strlcat.c
  strsep.c

[Packages]
  StdLib/StdLib.dec
  StdLibPrivateInternalFiles/DoNotUse.dec
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  PrintLib              # Used for strerror()
  PcdLib
  LibC
  LibCType
  LibStdLib

################################################################
#
# The Build Options, below, are only used when building the C library.
# DO NOT use them when building your application!
# Nasty things could happen if you do.
#
# /Oi- is required for Microsoft VC++ to allow "intrinsic" functions to be
# defined in this library.
# /GL- is required so that LTCG generated references to functions in this library,
# such as memcpy(), can be resolved.
#
[BuildOptions]
  MSFT:*_*_*_CC_FLAGS     = /Oi- /GL-
