#/** @file
# Module produces EDK gEfiPrintProtocolGuid for backward compatibility support.
#
# EDK II retires old EDK Print Protocol and this module produces
# gEfiPrintProtocolGuid based on PrintLib:
# 1) If it links against BasePrintLib in MdePkg, it produces gEfiPrintProtocolGuid
#    without any prerequisites.
# 2) If it links against DxePrintLibPrint2Protocol in MdeModulePkg, it produces
#    gEfiPrintProtocolGuid on top of gEfiPrint2ProtocolGuid.
#
# Copyright (c) 2009, Intel Corporation
#
#  All rights reserved. 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                      = PrintThunk
  FILE_GUID                      = 3792FF94-8614-45ed-902B-1207BF1490A8
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitPrintThunk

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  PrintThunk.c

[Packages]
  MdePkg/MdePkg.dec
  EdkCompatibilityPkg/EdkCompatibilityPkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  DebugLib
  UefiBootServicesTableLib
  PrintLib

[Protocols]
  gEfiPrintProtocolGuid      ## PRODUCES

[Depex]
  TRUE
