OBJS   := ./common/fileio.o ./common/image.o ./common/oflow.o \
	./common/codec.o ./linux/communication.o \
	./linux/platform.o ./linux/addressmap.o
#CFLAGS := -I./common -I./linux
CFLAGS := -D__DEBUG_ON_LINUX__ -g -I./common -I./linux
MAIN_OBJ := ./linux/bmp.o ./common/main.o
DECODER_OBJS := ./linux/bmp.o ./linux/decoder.o
ENCODER_OBJS := ./linux/bmp.o ./linux/encoder.o
RGB2YCRCB_OBJS := ./linux/bmp.o ./linux/rgb2ycrcb.o

default: 400_oflow decoder encoder rgb2ycrcb make32KBdata

400_oflow: $(OBJS) $(MAIN_OBJ)
	$(CC) $(CFLAGS) $(OBJS) $(MAIN_OBJ) -o 400_oflow

decoder: $(OBJS) $(DECODER_OBJS)
	$(CC) $(CFLAGS) $(OBJS) $(DECODER_OBJS) -o decoder

encoder: $(OBJS) $(ENCODER_OBJS)
	$(CC) $(CFLAGS) $(OBJS) $(ENCODER_OBJS) -o encoder

rgb2ycrcb: $(OBJS) $(RGB2YCRCB_OBJS)
	$(CC) $(CFLAGS) $(OBJS) $(RGB2YCRCB_OBJS) -o rgb2ycrcb

make32KBdata: ./linux/make32KBdata.o
	$(CC) $(CFLAGS) ./linux/make32KBdata.o -o make32KBdata


export:
	mkdir export
	mkdir export/xilinx
	mkdir export/xilinx/src
	cp common/*.c common/*.h xilinx/*.c xilinx/*.h export/xilinx/src
	mkdir export/altera
	mkdir export/altera/src
	cp common/*.c common/*.h altera/*.c altera/*.h export/altera/src

tar:
	make clean
	make export
	cd ..; tar zcvf 400_oflow.tgz 400_oflow

clean:
	cd common; make clean
	cd xilinx; make clean
	cd altera; make clean
	cd linux;  make clean
	cd client; make clean
	rm -rf *~ 400_oflow decoder encoder rgb2ycrcb make32KBdata *.bmp export

