## @file
# Microcode text file to binary
#
# Convert text format microcode to binary format.
#
#  Copyright (c) 2016, 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]
BASE_NAME            = Microcode
FILE_GUID            = ABC36AAC-2031-4422-896E-0A3B899AD0B4
COMPONENT_TYPE       = Microcode
FFS_EXT              = .ffs

[Sources]
#
# Uncomment the following line and update with name of Microcode TXT file
#
#Microcode.txt
