## @file
#  This library defines some routines that are generic for IA32 family CPU.
#
#  The library routines are UEFI specification compliant.
#
#  Copyright (c) 2009 - 2017, 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                      = BaseUefiCpuLib
  MODULE_UNI_FILE                = BaseUefiCpuLib.uni
  FILE_GUID                      = 34C24FD7-7A90-45c2-89FD-946473D9CE98
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = UefiCpuLib 

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources.IA32]
  Ia32/InitializeFpu.asm
  Ia32/InitializeFpu.nasm
  Ia32/InitializeFpu.S

[Sources.X64]
  X64/InitializeFpu.asm
  X64/InitializeFpu.nasm
  X64/InitializeFpu.S

[Packages]
  MdePkg/MdePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
