## @file
#  Standard C library: Miscelaneous implementations.
#
#  Copyright (c) 2010 - 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.
#
#  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                      = LibC
  FILE_GUID                      = 695bec93-82ae-4c17-bdad-7f184f4e651d
  MODULE_TYPE                    = UEFI_APPLICATION
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LibC

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  Main/errno.c
  Main/assert.c
  Main/isinfd_ieee754.c
  Main/isinff_ieee754.c
  Main/isnand_ieee754.c
  Main/isnanf_ieee754.c
  Main/infinityf_ieee754.c
  Main/Main.c
  Main/HtoNtoH.c
  Main/ByteSwap.c
  Main/longjmp.c

[Sources.IA32]
  Main/x86flt_rounds.c
  Main/Ia32/fpu_rmode.asm | MSFT
  Main/Ia32/fpu_rmode.asm | INTEL
  Main/Ia32/fpu_rmode.S   | GCC
  Main/Ia32/isinfl.c
  Main/Ia32/isnanl.c

  # Compiler helper (C RunTime) functions
  CRT/Ia32/llmul.c          | MSFT    # __allmul
  CRT/Ia32/llshl.c          | MSFT    # __allshl
  CRT/Ia32/llshr.c          | MSFT    # __allshr
  CRT/Ia32/ulldiv.c         | MSFT    # __aulldiv
  CRT/Ia32/ullrem.c         | MSFT    # __aullrem
  CRT/Ia32/ullshr.c         | MSFT    # __aullshr
  CRT/Ia32/lldiv.c          | MSFT    # __alldiv
  CRT/Ia32/llrem.c          | MSFT    # __allrem
  CRT/Ia32/lldvrm.c         | MSFT    # __alldvrm
  CRT/Ia32/ulldvrm.c        | MSFT    # __aulldvrm

  CRT/Ia32/llmul.c          | INTEL
  CRT/Ia32/llshl.c          | INTEL
  CRT/Ia32/llshr.c          | INTEL
  CRT/Ia32/ulldiv.c         | INTEL
  CRT/Ia32/ullrem.c         | INTEL
  CRT/Ia32/ullshr.c         | INTEL
  CRT/Ia32/lldiv.c          | INTEL
  CRT/Ia32/llrem.c          | INTEL
  CRT/Ia32/lldvrm.c         | INTEL
  CRT/Ia32/ulldvrm.c        | INTEL

  CRT/Gcc.c                 | GCC

[Sources.X64]
  Main/x86flt_rounds.c
  Main/X64/fpu_rmode.asm  | MSFT
  Main/X64/fpu_rmode.asm  | INTEL
  Main/X64/fpu_rmode.S    | GCC
  Main/X64/isinfl.c
  Main/X64/isnanl.c

[Sources.IPF]
  Main/x86flt_rounds.c
  Main/Ipf/FpuRmode.s

[Sources.ARM]
  Main/Arm/fixunsdfsi.c
  Main/Arm/floatunsidf.c
  Main/Arm/flt_rounds.c

[Sources.AARCH64]
  Main/Arm/flt_rounds.c

[Binaries.IA32]
  LIB|Main/Ia32/ftol2.obj|*|MSFT

[Packages]
  StdLib/StdLib.dec
  StdLibPrivateInternalFiles/DoNotUse.dec
  MdePkg/MdePkg.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  ShellCEntryLib
  UefiLib
  BaseLib
  BaseMemoryLib
  MemoryAllocationLib
  LibStdLib
  LibStdio
  LibString
  DevConsole

################################################################
#
# 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]
  MSFT:*_*_IA32_CC_FLAGS = /GL-
