# Makefile for BifsEnc
# @authors  Prashanth Gujjeti (prashanth.gujjeti@sun.com)
# @ 03/27/2003

#
# Include path
#
INCLUDE_PATH=-I. -I./../Include   -I./../Core -I./../Predictive/Encoder -I./../Predictive/Decoder -I./../BifsEnc -I./../Player3d -I./../script/encoder -I./../Craig-IPMP/Include 
CC = CC 
DEBUG_FLAG = -g
#Sources
SOURCES:sh = ls *.cpp
ANIMSRC = ../Animation/MEncQuant.cpp ../Animation/ArithModel.cpp

CORESRC = ../Core/bifs.cpp ../Core/Common.cpp ../Core/Conditional.cpp ../Core/defs.cpp \
../Core/Nodes.cpp ../Core/NodeTabl.cpp ../Core/ODCoder.cpp ../Core/ODEncDec.cpp \
../Core/ODP.cpp ../Core/ODP3.cpp ../Core/sdl.cpp ../Core/SysCoder.cpp ../Core/ztypes.cpp \
../Core/ODP_SLExtension.cpp
#../Core/ODIPMPX.cpp ../Core/ODIPMPXEncDec.cpp

ZTLSRC = ../ZTL/ztl.cpp

ENCSRC = ../script/encoder/Buffer.cpp ../script/encoder/CParser.cpp \
../script/encoder/CToken.cpp ../script/encoder/Expr.cpp ../script/encoder/ScriptImp.cpp \
../script/encoder/StrBuffer.cpp ../script/encoder/VSEvents.cpp \
../script/encoder/VSNodeField.cpp 

PRDENCSRC:sh = ls ../Predictive/Encoder/*.cpp

PRDDECSRC = ../Predictive/Decoder/AQuantize.cpp

#PLYRSRC = ../Player3d/NodeStub.cpp
UISRC = ../UI/ODEncDec2.cpp ../UI/ODP4.cpp

CRIPMPSRC = ../Craig-IPMP/IPMP_Messages/IPMP_Messages.cpp \
../Craig-IPMP/IPMP_Messages/IPMP_MessagesEncDec.cpp 

AFXSRC = ../IM1Decoders/AFX/AFXEncDec.cpp ../IM1Decoders/AFX/ODPAFX.cpp 

#
#OBJECT FILES
#
TMP1=BifsEnc.cpp BifsEncEx.cpp BifsEncQP14.cpp CondEnc.cpp EncField.cpp EncNode.cpp EncOD.cpp EncProto.cpp \
EncQuant.cpp EncScript.cpp main.cpp ODEnc.cpp ODStrEnc.cpp Parser.cpp ScanOD.cpp Token.cpp \
VrmlPars.cpp 

OBJS=${TMP1:%.cpp=%.o}
ANIMOBJ=${ANIMSRC:%.cpp=%.o}
COREOBJ=${CORESRC:%.cpp=%.o}
ZTLOBJ=${ZTLSRC:%.cpp=%.o}
ENCOBJ=${ENCSRC:%.cpp=%.o}
PRDENCOBJ=${PRDENCSRC:%.cpp=%.o}
PRDDECOBJ=${PRDDECSRC:%.cpp=%.o}
UIOBJ=${UISRC:%.cpp=%.o}
CRIPMPOBJ=${CRIPMPSRC:%.cpp=%.o}
AFXOBJ=${AFXSRC:%.cpp=%.o}

#
# TARGET
#

TARGET= bifsenc

all:anim_obj core_obj ztl_obj enc_obj prd_enc_obj prd_dec_obj ui_obj cripmp_obj afx_obj ${TARGET}
${TARGET}:${OBJS} 
# PORTING to CC 5.3
# -ptr is not necessary
#	$(CC) -ptr. -ptr./../Core -ptr./../script/encoder -ptr./../Predictive/Encoder -ptr./../UI \
-o ${TARGET} ${OBJS} ${ANIMOBJ} ${COREOBJ} ${ZTLOBJ} ${ENCOBJ} ${PRDENCOBJ} \
${PRDDECOBJ} ${UIOBJ} -ldl
	$(CC) -ptr. -ptr./../Core -ptr./../script/encoder -ptr./../Predictive/Encoder -ptr./../UI \
-o ${TARGET} ${OBJS} ${ANIMOBJ} ${COREOBJ} ${ZTLOBJ} ${ENCOBJ} ${PRDENCOBJ} \
${PRDDECOBJ} ${UIOBJ} ${CRIPMPOBJ} ${AFXOBJ} -ldl

%.o:%.cpp
	$(CC)  -DBIFSENC -D__UNIX $(INCLUDE_PATH) $(DEBUG_FLAG) -c -KPIC  $?

anim_obj:
#	cd ../Animation; $(CC)  -DBIFSENC $(INCLUDE_PATH) $(DEBUG_FLAG) -c -KPIC ${ANIMSRC}
	cd ../Animation; make bifs

core_obj:
#	cd ../Core; $(CC)  -DBIFSENC $(INCLUDE_PATH) $(DEBUG_FLAG) -c -KPIC  ${CORESRC}
	cd ../Core; make bifs

ztl_obj:
#	cd ../ZTL; $(CC)  -DBIFSENC $(INCLUDE_PATH) $(DEBUG_FLAG) -c -KPIC  ${ZTLSRC}
	cd ../ZTL; make bifs

enc_obj:
#	cd ../script/encoder; make -f MakefileBifs
	cd ../script/encoder; make bifs

prd_enc_obj:
#	cd ../Predictive/Encoder; make -f MakefileBifs
	cd ../Predictive/Encoder; make bifs

prd_dec_obj:
#	cd ../Predictive/Decoder; make -f MakefileBifs
	cd ../Predictive/Decoder; make bifs

ui_obj:
	cd ../UI; make bifs

cripmp_obj:
	cd ../Craig-IPMP/IPMP_Messages; make bifs

afx_obj:
	cd ../IM1Decoders/AFX; make bifs

# The portion corresponding to MUX
MUX_INCLUDE_PATH=-I. -I./../Include   -I./../Core -I./../BifsEnc -I./../Player3d -I./../script/encoder \
-I./../Craig-IPMP/Include 
MUX_CC = CC 
MUX_DEBUG_FLAG = -g
#Sources
MUX_BIFSSRC=EncOD.cpp ODEnc.cpp ScanOD.cpp Token.cpp Parser.cpp VrmlPars.cpp

MUX_BIFSOBJ=${MUX_BIFSSRC:%.cpp=%.m}

.SUFFIXES : .m
mux:${MUX_BIFSOBJ}

%.m:%.cpp
#.cpp.p:
	$(MUX_CC)  -DMUX -D__UNIX $(MUX_INCLUDE_PATH) $(MUX_DEBUG_FLAG) -c -KPIC $<
	cp $*.o $@

# End of MUX

clean:
# PORTING to CC 5.3
# SunWScache instead of Templates.DB
#	rm -rf *.o Templates.DB ./../Core/Templates.DB ./../script/encoder/Templates.DB \
#./../Predictive/Encoder/Templates.DB ./../UI/Templates.DB ${ANIMOBJ} ${COREOBJ} \
#${ZTLOBJ} ${ENCOBJ} ${PRDENCOBJ} ${PRDDECOBJ} ${PLYROBJ}
	rm -rf *.o SunWScache ./../Core/SunWScache ./../script/encoder/SunWScache \
./../Predictive/Encoder/SunWScache ./../UI/SunWScache ${ANIMOBJ} ${COREOBJ} \
${ZTLOBJ} ${ENCOBJ} ${PRDENCOBJ} ${PRDDECOBJ} ${PLYROBJ} ${CRIPMPOBJ} ${AFXOBJ}
	cd ../; rm -f Animation/*.p Core/*.p ZTL/*.p UI/*.p script/encoder/*.p \
Predictive/Encoder/*.p Predictive/Decoder/*.p Craig-IPMP/IPMP_Messages/*.p IM1Decoders/AFX/*.p 
