!ifndef ROOT
ROOT=$(MAKEDIR:\av\codecs\intel\h263=)
!endif
!ifndef DEVROOT
DEVROOT=$(ROOT)\dev
!endif

!include $(DEVROOT)\common.inc

MAJORCOMP=codecs
MINORCOMP=h263

TARGETNAME=msh263
TARGETEXT=drv
TARGETPATH=$(_OBJ_DIR)
TARGETTYPE=DYNLINK

DLLDEF=c3_32.def

386_ASSEMBLER_NAME = ml611d
NOMASMCOMPATIBILITY=1

# This component is now a bbt comp
# BBTCOMP= 1

#
# We have two options to get access to floating point hardware:
# - static linking to libcmt
DLLENTRY=_DllMainCRTStartup@12
# USE_LIBCMT=1
# => this option yields a file of size 130,480 bytes
#
# - dynamic linking to msvcrt
# USE_MSVCRT=1
# => this option yields a file of size 84,656 bytes
#
USE_NATIVE_EH=1

LINKLIBS=   $(ROOT)\nmutil\nmutila\$(_OBJ_DIR)\*\nmutila.lib

TARGETLIBS= $(SDK_LIB_PATH)\winmm.lib    \
			$(SDK_LIB_PATH)\kernel32.lib    \
			$(SDK_LIB_PATH)\advapi32.lib    \
			$(SDK_LIB_PATH)\user32.lib      \
			$(SDK_LIB_PATH)\gdi32.lib      \
			$(SDK_LIB_PATH)\msacm32.lib
			

MSC_WARNING_LEVEL = /W1

#
# Mandatory defines:
#   WIN32
#   _WINDOWS
#   RTP_HEADER
#
# Optional defines
#   USE_MMX: Build MMX files
#   NEW_BEF: Use new verion of the Block Edge Filter
#   DECODE_TIMINGS_ON: Generates decode timings
#   DETAILED_DECODE_TIMINGS_ON: Generates detailed decode timings
#   LOG_DECODE_TIMINGS_ON: Outputs decode timings into a file (one of the two previous flags needs to be defined)
#   ENCODE_TIMINGS_ON: Generates encode timings
#   DETAILED_ENCODE_TIMINGS_ON: Generates detailed encode timings
#   LOG_ENCODE_TIMINGS_ON: Outputs encode timings into a file (one of the two previous flags needs to be defined)
#   FORCE_ZOOM_BY_2: Output data is zoomed by 2 by the codec
#   FORCE_8BIT_OUTPUT: Output decompressed data uses only 256 colors, whatever the current video mode is
#   FORCE_16BIT_OUTPUT: Output decompressed data uses 65536 colors, whatever the current video mode is
#   FORCE_24BIT_OUTPUT: Output decompressed data uses 16777216 colors, whatever the current video mode is
#   USE_WIN95_PAL: Use the Win95 palette when dithering to 8 bit
#   TRACK_ALLOCATIONS: Use MemMon to track memory allocations
#   USE_BILINEAR_MSH26X: Use bilinearly interpolated version of the codec (MSH26X)
#
# USER_C_FLAGS=/DWIN32 /D_WINDOWS /DRTP_HEADER /DUSE_MMX /DH263 /DUSE_BILINEAR_MSH26X $(USER_C_FLAGS)
# ASM_DEFINES=-DWIN32 -DUSE_BILINEAR_MSH26X $(ASM_DEFINES)
USER_C_FLAGS=/DWIN32 /D_WINDOWS /DRTP_HEADER /DUSE_MMX /DH263 $(USER_C_FLAGS)
ASM_DEFINES=-DWIN32 $(ASM_DEFINES)

#
# List of sources
#

SOURCES= c3rtp.cpp \
      ccpuvsn.cpp \
      cdialogs.cpp \
      cdrvbase.cpp \
      cdrvproc.cpp \
      cldebug.cpp \
      d3bvriq.cpp \
      d3color.cpp \
      d3coltbl.cpp \
      d3dec.cpp \
      d3gob.cpp \
      d3halfmc.cpp \
      d3idct.cpp \
      d3mblk.cpp \
      d3mvdec.cpp \
      d3pict.cpp \
      d3rtp.cpp \
      d3tables.cpp \
      dxap.cpp \
      dxbase.cpp \
      dxblkadd.cpp \
      dxblkcpy.cpp \
      dxctrls.cpp \
      dxgetbit.cpp \
      dxidctab.cpp \
      dxpal.cpp \
      e3enc.cpp \
      e3mbenc.cpp \
      e3pcolor.cpp \
      e3rgb16.cpp \
      e3rgb24.cpp \
      e3rgb32.cpp \
      e3rgb4.cpp \
      e3rgb8.cpp \
      e3rtp.cpp \
      e3stat.cpp \
      e3ycrcb.cpp \
      exbase.cpp \
      exbitsio.cpp \
      exbrc.cpp \
      excolcnv.cpp \
      counters.cpp \
      memmon.cpp \
      c_h26x.rc

i386_SOURCES= i386\adjpels.asm \
      i386\cx1209.asm \
      i386\cx512161.asm \
      i386\cx512162.asm \
      i386\cx512241.asm \
      i386\cx512242.asm \
      i386\cx512321.asm \
      i386\cx512322.asm \
      i386\cx51281.asm \
      i386\cx51282.asm \
      i386\cx5128a1.asm \
      i386\cx5128a2.asm \
      i386\cx512y2.asm \
      i386\cx512yuv.asm \
      i386\cxm12161.asm \
      i386\cxm12162.asm \
      i386\cxm12241.asm \
      i386\cxm12242.asm \
      i386\cxm12321.asm \
      i386\cxm12322.asm \
      i386\cxm1281.asm \
      i386\cxm1282.asm \
      i386\cxm12y2.asm \
      i386\d3madvpr.asm \
      i386\d35bimot.asm \
      i386\d3mbimot.asm \
      i386\d3mbkadd.asm \
      i386\d3mbvriq.asm \
      i386\d3mmc.asm \
      i386\d35obmc.asm \
      i386\d35xpand.asm \
      i386\dx5frmcp.asm \
      i386\dxmidct.asm \
      i386\e35bme.asm \
      i386\e3mbme.asm \
      i386\e3msig.asm \
      i386\e35vlc.asm \
      i386\ex5fdct.asm \
      i386\ex5me.asm \
      i386\ex5qrle.asm \
      i386\exmfdct.asm \
      i386\exmme.asm \
      i386\exmqrle.asm \
      i386\yuv12enc.asm

#
# Precompiled specs
#

PRECOMPILED_INCLUDE = precomp.h
PRECOMPILED_PCH = precomp.pch
PRECOMPILED_cpp = precomp.obj
PRECOMPILED_CXX = 1

CONDITIONAL_INCLUDES = \
std.h		\
sys.h		\
cxprf.h		\
d1dec.h		\
e1enc.h		\
e1rtp.h		\
encasst.h	\
macocidl.h	\
macwin32.h	\
rpcerr.h	\
rpcmac.h	\
winwlm.h	\
macname1.h	\
macname2.h	\
macpub.h	\
macapi.h