## @file
# Windows makefile for 'Common' module build.
#
# Copyright (c) 2007 - 2010, 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.
#
!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 \
  PcdValueCommon.obj

!INCLUDE ..\Makefiles\ms.lib



