## @file
#  Sample PRM Driver
#
#  A sample PRM Module implementation. This PRM Module includes a PRM Module configuration library instance
#  that applies the configuration for the PRM context data in the boot environment. A PRM handler
#  is provided that accesses the context buffer resources and prints their value at OS runtime.
#
#  Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) Microsoft Corporation
#  Copyright (c) 2022, Arm Limited. All rights reserved.<BR>
#  Copyright (C) 2025, Advanced Micro Devices, Inc. All rights reserved.
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION         = 0x00010005
  BASE_NAME           = PrmSampleContextBufferModule
  FILE_GUID           = 5A6CF42B-8BB4-472C-A233-5C4DC4033DC7
  MODULE_TYPE         = DXE_RUNTIME_DRIVER
  VERSION_STRING      = 1.0
  ENTRY_POINT         = PrmSampleContextBufferModuleInit

[Sources]
  Include/StaticData.h
  PrmSampleContextBufferModule.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
  PrmPkg/PrmPkg.dec

[LibraryClasses]
  BaseLib
  PrintLib
  UefiDriverEntryPoint
  UefiLib

[Depex]
  TRUE

[BuildOptions]
  MSFT:*_*_*_DLINK_FLAGS = /SUBSYSTEM:CONSOLE /VERSION:$(VERSION_STRING)
  MSFT:*_*_*_GENFW_FLAGS = --keepoptionalheader

  CLANGPDB:*_*_*_DLINK_FLAGS = /SUBSYSTEM:CONSOLE /VERSION:$(VERSION_STRING)
  CLANGPDB:*_*_*_GENFW_FLAGS = --keepoptionalheader

  GCC:*_*_*_GENFW_FLAGS = --prm --image-version $(VERSION_STRING)
  GCC:*_*_*_OBJCOPY_STRIPFLAG ==
