CC	=	g++
COPT	=	-O3 -I ../declib_src/ #-ansi
LIBOPT	=	-O3 -L $(BDIR)
COPTD	=	-I ../TestDec/
COPTE	=	-I ../TestEnc/ -I ../TestDec/ -DTVQENCODE
ENCDIR	=	../TestEnc/
DECDIR	=	../TestDec/
BDIR	=	../exec/
ENCOBJ	=	$(ENCDIR)encoder.o $(ENCDIR)bfile.o \
		$(ENCDIR)bfile_e.o $(ENCDIR)bstream_e.o \
		$(DECDIR)Chunk.o $(ENCDIR)ChunkHelper.o $(DECDIR)HeaderManager.o
DECOBJ	=	$(DECDIR)decoder.o $(DECDIR)bfile.o $(DECDIR)bstream.o \
		$(DECDIR)Chunk.o $(ENCDIR)ChunkHelper.o $(DECDIR)HeaderManager.o
ENCLIBOBJ =     $(BDIR)libtvqe.a
DECLIBOBJ =	$(BDIR)libtvqd.a

all: TestEnc TestDec

####### sample application
TestEnc: $(ENCOBJ) # $(ENCLIBOBJ)
	$(CC) $(LIBOPT) -o $(BDIR)TestEnc $(ENCOBJ) -ltvqe -lm

TestDec: $(DECOBJ) # $(DECLIBOBJ)
	$(CC) $(LIBOPT) -o $(BDIR)TestDec $(DECOBJ) -ltvqd -lm

####### code for sample application
$(ENCDIR)encoder.o:	$(ENCDIR)encoder.cxx $(ENCDIR)tvqenc.h $(DECDIR)twinvq.h
	$(CC) $(COPT) $(COPTD) $(COPTE) -c -o $(ENCDIR)encoder.o $(ENCDIR)encoder.cxx

$(ENCDIR)bfile.o:	$(DECDIR)bfile.cxx $(DECDIR)bfile.h
	$(CC) $(COPT) $(COPTD) $(COPTE) -c -o $(ENCDIR)bfile.o $(DECDIR)bfile.cxx

$(ENCDIR)bfile_e.o:	$(ENCDIR)bfile_e.cxx $(ENCDIR)bfile_e.h
	$(CC) $(COPT) $(COPTD) $(COPTE) -c -o $(ENCDIR)bfile_e.o $(ENCDIR)bfile_e.cxx

$(ENCDIR)bstream_e.o:	$(ENCDIR)bstream_e.cxx $(ENCDIR)bstream_e.h
	$(CC) $(COPT) $(COPTD) $(COPTE) -c -o $(ENCDIR)bstream_e.o $(ENCDIR)bstream_e.cxx

$(DECDIR)decoder.o:	$(DECDIR)decoder.cxx $(DECDIR)tvqdec.h $(DECDIR)twinvq.h
	$(CC) $(COPT) -c -o $(DECDIR)decoder.o $(DECDIR)decoder.cxx

$(DECDIR)bfile.o:	$(DECDIR)bfile.cxx $(DECDIR)bfile.h
	$(CC) $(COPT) -c -o $(DECDIR)bfile.o $(DECDIR)bfile.cxx

$(DECDIR)bstream.o:	$(DECDIR)bstream.cxx $(DECDIR)bstream.h $(DECDIR)bfile.h \
			 $(DECDIR)tvqdec.h $(DECDIR)twinvq.h
	$(CC) $(COPT) -c -o $(DECDIR)bstream.o $(DECDIR)bstream.cxx

$(DECDIR)HeaderManager.o:	$(DECDIR)HeaderManager.cxx $(DECDIR)Chunk.h \
			 $(DECDIR)tvqdec.h $(DECDIR)twinvq.h
	$(CC) $(COPT) -c -o $(DECDIR)HeaderManager.o $(DECDIR)HeaderManager.cxx

$(ENCDIR)ChunkHelper.o:	$(ENCDIR)ChunkHelper.cxx $(DECDIR)Chunk.h \
			 $(ENCDIR)tvqenc.h $(DECDIR)twinvq.h
	$(CC) $(COPT) $(COPTE) -c -o $(ENCDIR)ChunkHelper.o $(ENCDIR)ChunkHelper.cxx

$(DECDIR)Chunk.o:	$(DECDIR)Chunk.cxx $(DECDIR)Chunk.h $(DECDIR)twinvq.h
	$(CC) $(COPT) -c -o $(DECDIR)Chunk.o $(DECDIR)Chunk.cxx

$(DECDIR)ChunkManager.o:	$(DECDIR)ChunkManager.cxx $(DECDIR)ChunkManager.h $(DECDIR)Chunk.h
	$(CC) $(COPT) -c -o $(DECDIR)ChunkManager.o $(DECDIR)ChunkManager.cxx


clean:
	rm -f $(BDIR)*.o $(DECDIR)*.o $(ENCDIR)*.o
