## @file
#  Standard C library: Miscelaneous implementations.
#
#  Copyright (c) 2010 - 2018, 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
#

[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-
