## @file
# Windows makefile for 'Common' module build.
#
# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
!INCLUDE ..\Makefiles\ms.common

# VPATH = ..

LIBNAME = Common

OBJECTS = \
  BasePeCoff.obj \
  BinderFuncs.obj \
  CommonLib.obj \
  Crc32.obj \
  Decompress.obj \
  EfiCompress.obj \
  EfiUtilityMsgs.obj \
  FirmwareVolumeBuffer.obj \
  FvLib.obj \
  MemoryFile.obj \
  MyAlloc.obj \
  OsPath.obj \
  ParseGuidedSectionTools.obj \
  ParseInf.obj \
  PeCoffLoaderEx.obj \
  SimpleFileParsing.obj \
  StringFuncs.obj \
  TianoCompress.obj

!INCLUDE ..\Makefiles\ms.lib



