#########################################################################
# Makefile for Microsoft's MPEG VM software encoder & decoder
#
# Sven Brandau, 09/04/1998
# Heinrich-Hertz Institute Berlin
# 
# Tested: Solaris 5.5.1 / GNU g++ 2.7.2.2
#
# Note: 1. Before you compile, convert all source files from
#          MS/DOS line feeds to Unix line feeds!
#       2. make a directory obj for object files
#       3. make (GNU make 3.74)
#########################################################################


########## Module definitions ###########################################
TOPDIR		= .
SRCDIR		= $(TOPDIR)
OBJDIR		= $(TOPDIR)/obj

# Include all subdirectories for ease
INC		= \
-I$(TOPDIR)/sys \
-I$(TOPDIR)/sys/encoder \
-I$(TOPDIR)/sys/decoder \
-I$(TOPDIR)/sys \
-I$(TOPDIR)/type \
-I$(TOPDIR)/tools/entropy \
-I$(TOPDIR)/tools \
-I$(TOPDIR)/vtc/include \
-I$(TOPDIR)/vtc/ztq \
-I$(TOPDIR)/vtc/zte \
-I$(TOPDIR)/vtc/wavelet \
-I$(TOPDIR)/vtc/pezw \
-I$(TOPDIR)/vtc/shape

########## General definitions ##########################################
CCC 	= g++
#DEF 	= -D__DOUBLE_PRECISION_ -D__TRACE_AND_STATS_ -DFULL_SEARCH -D_OBSS_SAIT_990904_ -D_SONY_SS_
DEF     = -D__TRACE_AND_STATS_ -D__DOUBLE_PRECISION_ -D_OBSS_
CCFLAGS	= $(INC) $(DEF) -g #-O2

LN	= ln -s
MV 	= mv
CP 	= cp
RM 	= rm -f

LIBS	= -lm

### macro to make a object file
MK_OBJ	= $(CCC) $(CCFLAGS) -c

### Objects ###
ENCODER_OBJECTS = \
	$(OBJDIR)/encoder.o 	\
	$(OBJDIR)/paramset.o \
	$(OBJDIR)/errenc.o 	\
	$(OBJDIR)/blkenc.o 	\
	$(OBJDIR)/mbenc.o 	\
	$(OBJDIR)/mbinterlace.o	\
	$(OBJDIR)/mcenc.o 	\
	$(OBJDIR)/motest.o 	\
	$(OBJDIR)/mvenc.o 	\
	$(OBJDIR)/padenc.o 	\
	$(OBJDIR)/sesenc.o 	\
	$(OBJDIR)/shpenc.o 	\
	$(OBJDIR)/sptenc.o	\
	$(OBJDIR)/vopmbenc.o	\
	$(OBJDIR)/vopseenc.o	\
	$(OBJDIR)/error.o	\
	$(OBJDIR)/block.o	\
	$(OBJDIR)/cae.o 	\
	$(OBJDIR)/dct.o 	\
	$(OBJDIR)/mb.o 		\
	$(OBJDIR)/mc.o 		\
	$(OBJDIR)/mcpad.o 	\
	$(OBJDIR)/mode.o 	\
	$(OBJDIR)/mv.o 		\
	$(OBJDIR)/shape.o 	\
	$(OBJDIR)/spt.o 	\
	$(OBJDIR)/tps_bfshape.o	\
	$(OBJDIR)/tps_enhcbuf.o	\
	$(OBJDIR)/vopses.o	\
	$(OBJDIR)/yuvac.o	\
	$(OBJDIR)/yuvai.o	\
	$(OBJDIR)/basic.o	\
	$(OBJDIR)/geom.o 	\
	$(OBJDIR)/grayc.o 	\
	$(OBJDIR)/grayf.o 	\
	$(OBJDIR)/grayi.o 	\
	$(OBJDIR)/svd.o		\
	$(OBJDIR)/typeapi.o	\
	$(OBJDIR)/vop.o		\
	$(OBJDIR)/warp.o	\
	$(OBJDIR)/bitstrm.o 	\
	$(OBJDIR)/huffman.o 	\
	$(OBJDIR)/computePSNR.o \
	$(OBJDIR)/read_image.o 	\
	$(OBJDIR)/seg.o		\
	$(OBJDIR)/wavelet.o	\
	$(OBJDIR)/write_image.o	\
	$(OBJDIR)/vtcdec_enc.o	\
	$(OBJDIR)/vtcenc.o	\
	$(OBJDIR)/ac.o		\
	$(OBJDIR)/bitpack.o 	\
	$(OBJDIR)/ztscan_dec.o	\
	$(OBJDIR)/ztscan_enc.o	\
	$(OBJDIR)/ztscanUtil.o	\
	$(OBJDIR)/decQM.o 	\
	$(OBJDIR)/encQM.o 	\
	$(OBJDIR)/errorHandler.o\
	$(OBJDIR)/msg.o 	\
	$(OBJDIR)/QMInit.o 	\
	$(OBJDIR)/QMUtils.o 	\
	$(OBJDIR)/quant.o 	\
	$(OBJDIR)/Utils.o	\
	$(OBJDIR)/download_filter.o\
	$(OBJDIR)/dwt.o 	\
	$(OBJDIR)/dwt_aux.o 	\
	$(OBJDIR)/dwtmask.o 	\
	$(OBJDIR)/idwt.o 	\
	$(OBJDIR)/idwt_aux.o 	\
	$(OBJDIR)/imagebox.o 	\
	$(OBJDIR)/PEZW_ac.o	\
	$(OBJDIR)/PEZW_utils.o 	\
	$(OBJDIR)/PEZW_globals.o \
	$(OBJDIR)/PEZW_textureLayerBQ.o \
	$(OBJDIR)/wvtPEZW.o \
	$(OBJDIR)/wvtpezw_tree_decode.o \
	$(OBJDIR)/wvtpezw_tree_encode.o \
	$(OBJDIR)/wvtpezw_tree_init_decode.o \
	$(OBJDIR)/wvtpezw_tree_init_encode.o \
	$(OBJDIR)/BinArCodec.o \
	$(OBJDIR)/ShapeBaseCommon.o \
	$(OBJDIR)/ShapeEnhCommon.o \
	$(OBJDIR)/ShapeEnhEncode.o \
	$(OBJDIR)/ShapeEncoding.o \
	$(OBJDIR)/ShapeBaseEncode.o \
	$(OBJDIR)/ShapeEnhDecode.o \
	$(OBJDIR)/ShapeDecoding.o \
	$(OBJDIR)/ShapeBaseDecode.o \
	$(OBJDIR)/idwtmask.o \
	$(OBJDIR)/ShapeUtil.o \
	$(OBJDIR)/gme_for_iso.o \
	$(OBJDIR)/gmc_enc_util.o \
	$(OBJDIR)/gmc_motion.o \
	$(OBJDIR)/gmc_util.o \
	$(OBJDIR)/newpred.o \
	$(OBJDIR)/newpenc.o \
	$(OBJDIR)/tm5rc.o \
	$(OBJDIR)/rrv.o \
	$(OBJDIR)/sadct.o

DECODER_OBJECTS = \
	$(OBJDIR)/ac.o 		\
	$(OBJDIR)/basic.o	\
	$(OBJDIR)/bitpack.o	\
	$(OBJDIR)/bitstrm.o	\
	$(OBJDIR)/blkdec.o	\
	$(OBJDIR)/block.o	\
	$(OBJDIR)/cae.o		\
	$(OBJDIR)/dct.o		\
	$(OBJDIR)/decoder.o	\
	$(OBJDIR)/decQM.o	\
	$(OBJDIR)/download_filter.o\
	$(OBJDIR)/dwt.o		\
	$(OBJDIR)/dwt_aux.o	\
	$(OBJDIR)/dwtmask.o	\
	$(OBJDIR)/errdec.o	\
	$(OBJDIR)/error.o	\
	$(OBJDIR)/errorHandler.o\
	$(OBJDIR)/geom.o	\
	$(OBJDIR)/grayc.o	\
	$(OBJDIR)/grayf.o	\
	$(OBJDIR)/grayi.o	\
	$(OBJDIR)/huffman.o	\
	$(OBJDIR)/idwt.o	\
	$(OBJDIR)/idwt_aux.o	\
	$(OBJDIR)/imagebox.o	\
	$(OBJDIR)/mb.o		\
	$(OBJDIR)/mbdec.o	\
	$(OBJDIR)/mbheaddec.o	\
	$(OBJDIR)/mbinterlacedec.o\
	$(OBJDIR)/mc.o		\
	$(OBJDIR)/mcdec.o	\
	$(OBJDIR)/mcpad.o	\
	$(OBJDIR)/mode.o	\
	$(OBJDIR)/msg.o		\
	$(OBJDIR)/mv.o		\
	$(OBJDIR)/mvdec.o	\
	$(OBJDIR)/PEZW_ac.o	\
	$(OBJDIR)/PEZW_utils.o	\
	$(OBJDIR)/PEZW_globals.o \
	$(OBJDIR)/PEZW_textureLayerBQ.o \
	$(OBJDIR)/wvtPEZW.o \
	$(OBJDIR)/wvtpezw_tree_decode.o \
	$(OBJDIR)/wvtpezw_tree_encode.o \
	$(OBJDIR)/wvtpezw_tree_init_decode.o \
	$(OBJDIR)/wvtpezw_tree_init_encode.o \
	$(OBJDIR)/BinArCodec.o \
	$(OBJDIR)/ShapeBaseCommon.o \
	$(OBJDIR)/ShapeEnhCommon.o \
	$(OBJDIR)/ShapeEnhEncode.o \
	$(OBJDIR)/ShapeEncoding.o \
	$(OBJDIR)/ShapeBaseEncode.o \
	$(OBJDIR)/ShapeEnhDecode.o \
	$(OBJDIR)/ShapeDecoding.o \
	$(OBJDIR)/ShapeBaseDecode.o \
	$(OBJDIR)/idwtmask.o \
	$(OBJDIR)/ShapeUtil.o \
	$(OBJDIR)/quant.o	\
	$(OBJDIR)/rvlcdec.o	\
	$(OBJDIR)/seg.o		\
	$(OBJDIR)/shape.o	\
	$(OBJDIR)/shpdec.o	\
	$(OBJDIR)/spt.o		\
	$(OBJDIR)/sptdec.o	\
	$(OBJDIR)/svd.o		\
	$(OBJDIR)/tps_bfshape.o	\
	$(OBJDIR)/tps_enhcbuf.o	\
	$(OBJDIR)/typeapi.o	\
	$(OBJDIR)/vop.o		\
	$(OBJDIR)/vopmbdec.o	\
	$(OBJDIR)/vopsedec.o	\
	$(OBJDIR)/vopses.o	\
	$(OBJDIR)/vtcdec_dec.o	\
	$(OBJDIR)/warp.o	\
	$(OBJDIR)/wavelet.o	\
	$(OBJDIR)/write_image.o	\
	$(OBJDIR)/yuvac.o	\
	$(OBJDIR)/yuvai.o	\
	$(OBJDIR)/ztscan_dec.o	\
	$(OBJDIR)/ztscanUtil.o	\
	$(OBJDIR)/Utils.o	\
	$(OBJDIR)/QMInit.o	\
	$(OBJDIR)/QMUtils.o	\
	$(OBJDIR)/gmc_motion.o	\
	$(OBJDIR)/gmc_util.o 	\
	$(OBJDIR)/newpred.o 	\
	$(OBJDIR)/newpdec.o 	\
	$(OBJDIR)/rrv.o 	\
	$(OBJDIR)/sadct.o

.KEEP_STATE:

########## Targets #########################################

all:	vm_enc vm_dec


vm_enc: $(ENCODER_OBJECTS) 
	$(CCC) $(CFLAGS) -o vm_enc $(ENCODER_OBJECTS) $(LIBS)
	@echo Done making vm_enc


vm_dec: $(DECODER_OBJECTS) 
	$(CCC) $(CFLAGS) -o vm_dec $(DECODER_OBJECTS) $(LIBS)
	@echo Done making vm_dec

clean:
	@$(RM) core vm_enc vm_dec $(OBJECTS) $(OBJDIR)/*.o
	@echo Done cleaning ... 


$(OBJDIR)/encoder.o: 	$(SRCDIR)/app/encoder/encoder.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/decoder.o: 	$(SRCDIR)/app/decoder/decoder.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/blkdec.o:	$(SRCDIR)/sys/decoder/blkdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/errdec.o:	$(SRCDIR)/sys/decoder/errdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mbdec.o:	$(SRCDIR)/sys/decoder/mbdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mbheaddec.o:	$(SRCDIR)/sys/decoder/mbheaddec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mbinterlacedec.o: $(SRCDIR)/sys/decoder/mbinterlacedec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mcdec.o:	$(SRCDIR)/sys/decoder/mcdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mvdec.o:	$(SRCDIR)/sys/decoder/mvdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/rvlcdec.o:	$(SRCDIR)/sys/decoder/rvlcdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/shpdec.o:	$(SRCDIR)/sys/decoder/shpdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/sptdec.o:	$(SRCDIR)/sys/decoder/sptdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vopmbdec.o:	$(SRCDIR)/sys/decoder/vopmbdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vopsedec.o:	$(SRCDIR)/sys/decoder/vopsedec.cpp
	$(MK_OBJ) -o $@ $<




$(OBJDIR)/errenc.o: 	$(SRCDIR)/sys/encoder/errenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/paramset.o: 	$(SRCDIR)/sys/encoder/paramset.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/blkenc.o: 	$(SRCDIR)/sys/encoder/blkenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mbenc.o: 	$(SRCDIR)/sys/encoder/mbenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mbinterlace.o: $(SRCDIR)/sys/encoder/mbinterlace.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mcenc.o: 	$(SRCDIR)/sys/encoder/mcenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/motest.o:	$(SRCDIR)/sys/encoder/motest.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mvenc.o:	$(SRCDIR)/sys/encoder/mvenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/padenc.o:	$(SRCDIR)/sys/encoder/padenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/sesenc.o:	$(SRCDIR)/sys/encoder/sesenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/shpenc.o:	$(SRCDIR)/sys/encoder/shpenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/sptenc.o:	$(SRCDIR)/sys/encoder/sptenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vopmbenc.o:	$(SRCDIR)/sys/encoder/vopmbenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vopseenc.o:	$(SRCDIR)/sys/encoder/vopseenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/gme_for_iso.o:	$(SRCDIR)/sys/encoder/gme_for_iso.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/gmc_enc_util.o:	$(SRCDIR)/sys/encoder/gmc_enc_util.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/error.o:	$(SRCDIR)/sys/error.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/block.o:	$(SRCDIR)/sys/block.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/cae.o:	$(SRCDIR)/sys/cae.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/dct.o:	$(SRCDIR)/sys/dct.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mb.o:		$(SRCDIR)/sys/mb.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mc.o:		$(SRCDIR)/sys/mc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mcpad.o:	$(SRCDIR)/sys/mcpad.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mode.o:	$(SRCDIR)/sys/mode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/mv.o:		$(SRCDIR)/sys/mv.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/shape.o:	$(SRCDIR)/sys/shape.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/spt.o:	$(SRCDIR)/sys/spt.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/tps_bfshape.o: $(SRCDIR)/sys/tps_bfshape.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/tps_enhcbuf.o: $(SRCDIR)/sys/tps_enhcbuf.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vopses.o:	$(SRCDIR)/sys/vopses.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/gmc_motion.o:	$(SRCDIR)/sys/gmc_motion.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/gmc_util.o:	$(SRCDIR)/sys/gmc_util.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/newpred.o:	$(SRCDIR)/sys/newpred.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/newpenc.o:	$(SRCDIR)/sys/encoder/newpenc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/newpdec.o:	$(SRCDIR)/sys/decoder/newpdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/tm5rc.o:	$(SRCDIR)/sys/encoder/tm5rc.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/basic.o:	$(SRCDIR)/type/basic.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/geom.o:	$(SRCDIR)/type/geom.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/grayc.o:	$(SRCDIR)/type/grayc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/grayf.o:	$(SRCDIR)/type/grayf.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/grayi.o:	$(SRCDIR)/type/grayi.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/svd.o:	$(SRCDIR)/type/svd.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/typeapi.o:	$(SRCDIR)/type/typeapi.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vop.o:	$(SRCDIR)/type/vop.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/warp.o:	$(SRCDIR)/type/warp.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/yuvac.o:	$(SRCDIR)/type/yuvac.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/yuvai.o:	$(SRCDIR)/type/yuvai.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/bitstrm.o:	$(SRCDIR)/tools/entropy/bitstrm.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/huffman.o:	$(SRCDIR)/tools/entropy/huffman.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/computePSNR.o: $(SRCDIR)/vtc/main/computePSNR.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/read_image.o:	$(SRCDIR)/vtc/main/read_image.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/seg.o:	$(SRCDIR)/vtc/main/seg.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wavelet.o:	$(SRCDIR)/vtc/main/wavelet.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/write_image.o: $(SRCDIR)/vtc/main/write_image.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vtcdec_enc.o:	$(SRCDIR)/vtc/main/vtcdec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/vtcdec_dec.o:	$(SRCDIR)/vtc/main/vtcdec.cpp
	$(MK_OBJ) -D_VTC_DECODER_ -o $@ $<
$(OBJDIR)/vtcenc.o:	$(SRCDIR)/vtc/main/vtcenc.cpp
	$(MK_OBJ) -o $@ $<


$(OBJDIR)/ac.o:		$(SRCDIR)/vtc/zte/ac.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/bitpack.o:	$(SRCDIR)/vtc/zte/bitpack.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ztscan_dec.o:	$(SRCDIR)/vtc/zte/ztscan_dec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ztscan_enc.o:	$(SRCDIR)/vtc/zte/ztscan_enc.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ztscanUtil.o:	$(SRCDIR)/vtc/zte/ztscanUtil.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/decQM.o:	$(SRCDIR)/vtc/ztq/decQM.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/encQM.o:	$(SRCDIR)/vtc/ztq/encQM.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/errorHandler.o: $(SRCDIR)/vtc/ztq/errorHandler.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/msg.o:	$(SRCDIR)/vtc/ztq/msg.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/QMInit.o:	$(SRCDIR)/vtc/ztq/QMInit.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/QMUtils.o:	$(SRCDIR)/vtc/ztq/QMUtils.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/quant.o:	$(SRCDIR)/vtc/ztq/quant.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/Utils.o:	$(SRCDIR)/vtc/ztq/Utils.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/download_filter.o:	$(SRCDIR)/vtc/wavelet/download_filter.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/dwt.o:	$(SRCDIR)/vtc/wavelet/dwt.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/dwt_aux.o:	$(SRCDIR)/vtc/wavelet/dwt_aux.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/dwtmask.o:	$(SRCDIR)/vtc/wavelet/dwtmask.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/idwt.o:	$(SRCDIR)/vtc/wavelet/idwt.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/idwt_aux.o:	$(SRCDIR)/vtc/wavelet/idwt_aux.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/imagebox.o:	$(SRCDIR)/vtc/wavelet/imagebox.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/PEZW_ac.o:	$(SRCDIR)/vtc/pezw/PEZW_ac.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/PEZW_utils.o:	$(SRCDIR)/vtc/pezw/PEZW_utils.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/PEZW_globals.o:	$(SRCDIR)/vtc/pezw/PEZW_globals.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/PEZW_textureLayerBQ.o:	$(SRCDIR)/vtc/pezw/PEZW_textureLayerBQ.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wvtPEZW.o:	$(SRCDIR)/vtc/pezw/wvtPEZW.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wvtpezw_tree_decode.o:	$(SRCDIR)/vtc/pezw/wvtpezw_tree_decode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wvtpezw_tree_encode.o:	$(SRCDIR)/vtc/pezw/wvtpezw_tree_encode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wvtpezw_tree_init_encode.o:	$(SRCDIR)/vtc/pezw/wvtpezw_tree_init_encode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/wvtpezw_tree_init_decode.o:	$(SRCDIR)/vtc/pezw/wvtpezw_tree_init_decode.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/BinArCodec.o:	$(SRCDIR)/vtc/shape/BinArCodec.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeBaseCommon.o:	$(SRCDIR)/vtc/shape/ShapeBaseCommon.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeEnhCommon.o:	$(SRCDIR)/vtc/shape/ShapeEnhCommon.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeEnhEncode.o:	$(SRCDIR)/vtc/shape/ShapeEnhEncode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeEncoding.o:	$(SRCDIR)/vtc/shape/ShapeEncoding.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeBaseEncode.o:	$(SRCDIR)/vtc/shape/ShapeBaseEncode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeEnhDecode.o:	$(SRCDIR)/vtc/shape/ShapeEnhDecode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeDecoding.o:	$(SRCDIR)/vtc/shape/ShapeDecoding.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeBaseDecode.o:	$(SRCDIR)/vtc/shape/ShapeBaseDecode.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/idwtmask.o:	$(SRCDIR)/vtc/wavelet/idwtmask.cpp
	$(MK_OBJ) -o $@ $<
$(OBJDIR)/ShapeUtil.o:	$(SRCDIR)/vtc/shape/ShapeUtil.cpp
	$(MK_OBJ) -o $@ $<

$(OBJDIR)/rrv.o:	$(SRCDIR)/sys/rrv.cpp
	$(MK_OBJ) -o $@ $<


$(OBJDIR)/sadct.o:	$(SRCDIR)/tools/sadct/sadct.cpp
	$(MK_OBJ) -o $@ $<



