## @file
#  Standard C library: Implementation for <stdio.h>.
#
#  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                      = LibStdio
  FILE_GUID                      = 7d2bd134-500d-4f42-aee2-26accfb6cb1d
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LibStdio

#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  clrerr.c            #
  fclose.c            #
  fdopen.c            #
  feof.c              #
  ferror.c            #
  fflush.c            #
  fgetc.c             #
  fgetln.c            #
  fgetpos.c           #
  fgets.c             #
  fopen.c             #
  fprintf.c           #
  fputc.c             #
  fputs.c             #
  fread.c             #
  freopen.c           #
  fscanf.c            #
  fseek.c             #
  fsetpos.c           #
  ftell.c             #
  fwrite.c            #
  getc.c              #
  getchar.c           #
  gets.c              #
  perror.c            #
  printf.c            #
  putc.c              #
  putchar.c           #
  puts.c              #
  remove.c            #
  rewind.c            #
  scanf.c             #
  setbuf.c            #
  setvbuf.c           #
  sprintf.c           #
  sscanf.c            #
  tempnam.c           #
  tmpfile.c           #
  tmpnam.c            #
  ungetc.c            #
  vfprintf.c          #
  vfwprintf.c         #
  vprintf.c           #
  vsprintf.c          #

  snprintf.c
  vsnprintf.c
  fparseln.c

  # Wide character functions
  fgetwc.c            #
  fgetws.c            #
  fputwc.c            #
  fputws.c            #
  fwide.c             #
  fwprintf.c          #
  fwscanf.c           #
  getwc.c             #
  getwchar.c          #
  putwc.c             #
  putwchar.c          #
  swprintf.c          #
  swscanf.c           #
  ungetwc.c           #
  vfwscanf.c          #
  vswprintf.c         #
  vswscanf.c          #
  vwprintf.c          #
  vwscanf.c           #
  wprintf.c           #
  wscanf.c            #


  # Files internal to the implementation
  fgetstr.c           #
  findfp.c            #
  flags.c             #
  fseeko.c            #
  ftello.c            #
  fvwrite.c           #
  fwalk.c             #
  gettemp.c           #
  makebuf.c           #
  mkstemp.c           #
  mktemp.c            #
  refill.c            #
  rget.c              #
  snprintf.c          #
  stdio.c             #
  vfscanf.c           #
  wbuf.c              #
  wsetup.c            #


[Packages]
  StdLib/StdLib.dec
  StdLibPrivateInternalFiles/DoNotUse.dec
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  LibC
  LibCType
  LibGdtoa
  LibLocale
  LibStdLib
  LibString
  LibTime
  LibUefi
  LibWchar

################################################################
#
# 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.
#
[BuildOptions]
  GCC:*_*_*_CC_FLAGS    = -fno-builtin -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast -Wno-format
