HOME = c:\project\ezbc\mc_ezbc_v1\MC_EZBC
VER = 0a
BASIC_SRC_DIR = $(HOME)\Utils
AR_CODE_SRC_DIR =$(HOME)\Utils
BITPLANE_SRC_DIR = $(HOME)\EZBC$(VER)
TSUB_DIR = $(HOME)\TempSub
3D_EZBC_DIR = $(HOME)\3dCodec

E = ar_code

OBJ = .obj

BASIC_OBJS = general$(OBJ) image_bw$(OBJ)  subband$(OBJ) $E$(OBJ)

DWT_CODEC_OBJS = dwt_bitplane_codec$(OBJ) setup_cxt_tables$(OBJ)

DWT_ENC_OBJS = dwt_bitplane_enc$(OBJ) dwt_bitplane_enc_cxt_AC$(OBJ) enc_subband_tree$(OBJ) dwt_bitplane_enc_pos_dep_cxt_AC$(OBJ)

DWT_DEC_OBJS = dwt_bitplane_dec$(OBJ) dwt_bitplane_dec_cxt_AC$(OBJ) dec_subband_tree$(OBJ) dwt_bitplane_dec_pos_dep_cxt_AC$(OBJ)

3D_EZBC_CODEC_OBJS = ezbc_codec_3d$(OBJ)

3D_EZBC_ENC_OBJS = ezbc_enc_3d$(OBJ)

3D_EZBC_DEC_OBJS = ezbc_dec_3d$(OBJ)

BASIC_INC = $(BASIC_SRC_DIR)\general.h $(AR_CODE_SRC_DIR)\$E.h $(BASIC_SRC_DIR)\image_bw.h $(BASIC_SRC_DIR)\subband.h 
CODEC_INC = $(BITPLANE_SRC_DIR)\context_status_consts.h $(BITPLANE_SRC_DIR)\dwt_bitplane_codec.h
3D_CODEC_INC =  $(3D_EZBC_DIR)\struct_sht.h $(3D_EZBC_DIR)\ezbc_codec_3d.h 
#$(TSUB_DIR)\structN.h
BIN_DIR = $(HOME)\bin



CC = "CL"
LIB = "LIB"
LINK = "c:\Program Files\Microsoft Visual Studio\VC98\Bin\LINK"
Inc32 = "c:\Program Files\Microsoft Visual Studio\VC98\Include"
Lib = "c:\Program Files\Microsoft Visual Studio\VC98\Lib" 
DLL = "c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin"

OPT_DEBUG   = -DEBUG      -Od -Zi -Gm
OPT_RELEASE = -D "NDEBUG" -Og
OPT =   $(OPT_DEBUG) -O2 -W3 -GX  -D "WIN32" \
       -D "_WIN32" -D "_MT" -D "_DLL" -D "_X86"

INC = -I$(BASIC_SRC_DIR) -I$(BITPLANE_SRC_DIR) -I$(Inc32)

CCFLAGS = $(OPT) $(INC)

linkflags= \
  /machine:I386 /incremental:yes   /pdbtype:sept  /debug 

LDIR =  
#  msvcrt.lib 
#$(HOME)\lib\libbasic.lib
# -LIBPATH:$(Lib) 
# user32.lib  ole32.lib oleaut32.lib odbc32.lib odbccp32.lib  msvcrt.lib  /nodefaultlib:libcd.lib /nodefaultlib:msvcrt.lib
# msvcrtd.lib uuid.lib libc.lib  kernel32.lib user32.lib  gdi32.lib winspool.lib comdlg32.lib  shell32.lib advapi32.lib
#------- executibles-----------------------------------------------------------
all: 3d_ezbc$(VER).lib 3d_ezbc_dec$(VER).lib 
#ezbc$(VER) ezbc_dec$(VER)

3d_ezbc$(VER).lib : $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_ENC_OBJS) $(3D_EZBC_CODEC_OBJS) $(3D_EZBC_ENC_OBJS) 3d_enc_main$(OBJ) video_utils$(OBJ)
	$(LIB) -out:$(HOME)\lib\3d_ezbc$(VER).lib 3d_enc_main$(OBJ) video_utils$(OBJ) $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_ENC_OBJS)  $(3D_EZBC_CODEC_OBJS) $(3D_EZBC_ENC_OBJS) $(LDIR)
#$(linkflags)  /pdb:"3dezbc.pdb" 

3d_ezbc_dec$(VER).lib : $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_DEC_OBJS) $(3D_EZBC_CODEC_OBJS) $(3D_EZBC_DEC_OBJS) 3d_dec_main$(OBJ) video_utils$(OBJ)
	$(LIB) -out:$(HOME)\lib\3d_ezbc_dec$(VER).lib 3d_dec_main$(OBJ) video_utils$(OBJ) $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_DEC_OBJS)  $(3D_EZBC_CODEC_OBJS) $(3D_EZBC_DEC_OBJS) $(LDIR) 
#$(linkflags)   /pdb:"3dezbc_dec.pdb" 

ezbc$(VER) : $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_ENC_OBJS) enc_main$(OBJ)
	$(LINK) -out:$(BIN_DIR)\ezbc$(VER).exe enc_main$(OBJ) $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_ENC_OBJS) $(LDIR) $(linkflags)

ezbc_dec$(VER) : $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_DEC_OBJS) dec_main$(OBJ)
	$(LINK) -out:$(BIN_DIR)\ezbc_dec$(VER).exe dec_main$(OBJ) $(BASIC_OBJS) $(DWT_CODEC_OBJS) $(DWT_DEC_OBJS) $(LDIR) $(linkflags)


#-----------------OBJ files---------------------------------------------------
#-----------------------------------------------------------------------------
3d_enc_main$(OBJ) :  $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(3D_CODEC_INC) $(3D_EZBC_DIR)\ezbc_enc_3d.h $(3D_EZBC_DIR)\video_utils.h $(3D_EZBC_DIR)\3d_enc_main.cpp
	$(CC) -c -$(CCFLAGS) $(3D_EZBC_DIR)\3d_enc_main.cpp

3d_dec_main$(OBJ) :  $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(3D_CODEC_INC) $(3D_EZBC_DIR)\ezbc_dec_3d.h $(3D_EZBC_DIR)\video_utils.h $(3D_EZBC_DIR)\3d_dec_main.cpp
	$(CC) -c $(CCFLAGS) $(3D_EZBC_DIR)\3d_dec_main.cpp
 
enc_main$(OBJ) :  $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(BITPLANE_SRC_DIR)\enc_main.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\enc_main.cpp 
 
dec_main$(OBJ) :  $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(BITPLANE_SRC_DIR)\dec_main.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dec_main.cpp

# basic objs ................ 

general$(OBJ) : $(BASIC_SRC_DIR)\general.h $(BASIC_SRC_DIR)\general.cpp
	$(CC) -c $(CCFLAGS) $(BASIC_SRC_DIR)\general.cpp

$E$(OBJ) : $(BASIC_SRC_DIR)\general.h $(AR_CODE_SRC_DIR)\$E.h $(AR_CODE_SRC_DIR)\$E.cpp
	$(CC) -c $(CCFLAGS) $(AR_CODE_SRC_DIR)\$E.cpp

image_bw$(OBJ) : $(BASIC_SRC_DIR)\general.h $(BASIC_SRC_DIR)\image_bw.h $(BASIC_SRC_DIR)\image_bw.cpp
	$(CC) -c $(CCFLAGS) $(BASIC_SRC_DIR)\image_bw.cpp

subband$(OBJ) : $(BASIC_INC) $(BASIC_SRC_DIR)\subband.cpp
	$(CC) -c $(CCFLAGS) $(BASIC_SRC_DIR)\subband.cpp

# DWT_CODEC_OBJS.................. 

dwt_bitplane_codec$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_codec.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_codec.cpp

setup_cxt_tables$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\setup_cxt_tables.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\setup_cxt_tables.cpp


# DWT_ENC_OBJS ...............................

dwt_bitplane_enc$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.cpp

dwt_bitplane_enc_cxt_AC$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(BITPLANE_SRC_DIR)\dwt_bitplane_enc_cxt_AC.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc_cxt_AC.cpp

dwt_bitplane_enc_pos_dep_cxt_AC$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(BITPLANE_SRC_DIR)\dwt_bitplane_enc_pos_dep_cxt_AC.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc_pos_dep_cxt_AC.cpp


enc_subband_tree$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_enc.h $(BITPLANE_SRC_DIR)\enc_subband_tree.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\enc_subband_tree.cpp


# DWT_DEC_OBJS ...............................

dwt_bitplane_dec$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.cpp

dwt_bitplane_dec_cxt_AC$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(BITPLANE_SRC_DIR)\dwt_bitplane_dec_cxt_AC.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec_cxt_AC.cpp

dwt_bitplane_dec_pos_dep_cxt_AC$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(BITPLANE_SRC_DIR)\dwt_bitplane_dec_pos_dep_cxt_AC.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec_pos_dep_cxt_AC.cpp

dec_subband_tree$(OBJ): $(BASIC_INC) $(CODEC_INC) $(BITPLANE_SRC_DIR)\dwt_bitplane_dec.h $(BITPLANE_SRC_DIR)\dec_subband_tree.cpp
	$(CC) -c $(CCFLAGS) $(BITPLANE_SRC_DIR)\dec_subband_tree.cpp

#3D_EZBC_CODEC_OBJS...........................................................
ezbc_codec_3d$(OBJ): $(CODEC_INC) $(3D_CODEC_INC) $(3D_EZBC_DIR)\ezbc_codec_3d.cpp
	$(CC) -c $(CCFLAGS) $(3D_EZBC_DIR)\ezbc_codec_3d.cpp

#3D_EZBC_ENC_OBJS...........................................................
ezbc_enc_3d$(OBJ): $(CODEC_INC) $(3D_CODEC_INC) $(3D_EZBC_DIR)\ezbc_enc_3d.h $(3D_EZBC_DIR)\ezbc_enc_3d.cpp
	$(CC) -c $(CCFLAGS) $(3D_EZBC_DIR)\ezbc_enc_3d.cpp

#3D_EZBC_DEC_OBJS...........................................................
ezbc_dec_3d$(OBJ): $(CODEC_INC) $(3D_CODEC_INC) $(3D_EZBC_DIR)\ezbc_dec_3d.h $(3D_EZBC_DIR)\ezbc_dec_3d.cpp
	$(CC) -c $(CCFLAGS) $(3D_EZBC_DIR)\ezbc_dec_3d.cpp

video_utils$(OBJ): $(BASIC_INC) $(3D_EZBC_DIR)\struct_sht.h $(3D_EZBC_DIR)\video_utils.h $(3D_EZBC_DIR)\video_utils.cpp
	$(CC) -c $(CCFLAGS) $(3D_EZBC_DIR)\video_utils.cpp
#----------------------------------------------------------------------------
clean:
	rm -f *$(OBJ) $(TSUB_DIR)\*~ $(BITPLANE_SRC_DIR)\*~ $(BASIC_SRC_DIR)\*~
	rm -f $(3D_EZBC_DIR)\*~
clear:
	rm -f *$(OBJ)








