#
# (C) Copyright 2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

-include $(TOPDIR)/config.mk

LIB	:= $(obj)libcodec.a


# list of used HX8290 source files
OBJ_HX8290_COMMON := hx8290/source/common/encasiccontroller_v2.o \
					hx8290/source/common/encasiccontroller.o \
					hx8290/source/common/encpreprocess.o
OBJ_HX8290_H264  := hx8290/source/h264/H264CodeFrame.o \
					hx8290/source/h264/H264Init.o \
					hx8290/source/h264/H264NalUnit.o\
					hx8290/source/h264/H264PictureParameterSet.o \
					hx8290/source/h264/H264PutBits.o \
					hx8290/source/h264/H264RateControl.o \
					hx8290/source/h264/H264SequenceParameterSet.o \
					hx8290/source/h264/H264Slice.o \
					hx8290/source/h264/H264EncApi.o \
					hx8290/source/h264/h264encapi_ext.o \
					hx8290/source/h264/H264Cabac.o \
					hx8290/source/h264/H264Mad.o \
					hx8290/source/h264/H264Sei.o \
					hx8290/source/h264/H264CodeFrameParameters.o
OBJ_HX8290_JPEG  := hx8290/source/jpeg/EncJpeg.o \
					hx8290/source/jpeg/EncJpegInit.o \
					hx8290/source/jpeg/EncJpegCodeFrame.o \
					hx8290/source/jpeg/EncJpegPutBits.o \
					hx8290/source/jpeg/JpegEncApi.o
OBJ_HX8290_VIDSTAB   := hx8290/source/camstab/vidstabcommon.o \
						hx8290/source/camstab/vidstabalg.o
OBJ_HX8290_VIDSTAB_API   := hx8290/source/camstab/vidstabapi.o \
							hx8290/source/camstab/vidstabinternal.o
OBJ_HX8290_EWL   := hx8290/source/ewl/ewl_x280_common.o \
					hx8290/source/ewl/ewl_x280_polling.o

OBJ_HX8290_ALL   := $(OBJ_HX8290_COMMON) $(OBJ_HX8290_EWL) \
					$(OBJ_HX8290_VIDSTAB) $(OBJ_HX8290_VIDSTAB_API) \
					$(OBJ_HX8290_H264) $(OBJ_HX8290_JPEG) \
					hx8290/source/h264/H264DebugExtra.o
#					hx8290/memory.o hx8290/source/h264/H264DebugExtra.o

ifeq ($(CONFIG_CODEC_HX8290),y)
	CFLAGS   += -I$(TOPDIR)/drivers/codec/hx8290/source/h264 \
				-I$(TOPDIR)/drivers/codec/hx8290/source/jpeg \
				-I$(TOPDIR)/drivers/codec/hx8290/include \
				-I$(TOPDIR)/drivers/codec/hx8290/source/common \
				-I$(TOPDIR)/drivers/codec/hx8290/source/ewl \
				-I$(TOPDIR)/drivers/codec/hx8290/source/camstab \
				-I$(TOPDIR)/drivers/codec/hx8290/source/debug_trace \
				-DVIDEOSTAB_ENABLED
#				-DTRACE_EWL -DH264ENC_TRACE -DVIDEOSTAB_ENABLED
	CPPFLAGS += -I$(TOPDIR)/drivers/codec/hx8290/source/h264 \
				-I$(TOPDIR)/drivers/codec/hx8290/source/jpeg \
				-I$(TOPDIR)/drivers/codec/hx8290/include \
				-I$(TOPDIR)/drivers/codec/hx8290/source/common \
				-I$(TOPDIR)/drivers/codec/hx8290/source/ewl \
				-I$(TOPDIR)/drivers/codec/hx8290/source/camstab \
				-I$(TOPDIR)/drivers/codec/hx8290/source/debug_trace \
				-DVIDEOSTAB_ENABLED
#				-DTRACE_EWL -DH264ENC_TRACE -DVIDEOSTAB_ENABLED
endif


OBJ_HX9170_DWL   := hx9170/source/dwl/dwl_linux.o \
					hx9170/source/dwl/dwl_x170_polling.o
OBJ_HX9170_COMMON:= hx9170/source/common/regdrv.o \
					hx9170/source/common/refbuffer.o \
					hx9170/source/common/workaround.o
OBJ_HX9170_PP    := hx9170/source/pp/ppapi.o hx9170/source/pp/ppinternal.o
OBJ_HX9170_H264  := hx9170/source/h264high/h264decapi.o \
					hx9170/source/h264high/h264hwd_asic.o \
					hx9170/source/h264high/h264hwd_decoder.o \
					hx9170/source/h264high/h264hwd_intra_prediction.o \
					hx9170/source/h264high/h264hwd_inter_prediction.o \
					hx9170/source/h264high/h264hwd_slice_data.o \
					hx9170/source/h264high/h264hwd_macroblock_layer.o \
					hx9170/source/h264high/h264hwd_storage.o \
					hx9170/source/h264high/h264hwd_conceal.o \
					hx9170/source/h264high/h264_pp_pipeline.o \
					hx9170/source/h264high/h264hwd_cabac.o \
					hx9170/source/h264high/h264decapi_e.o \
					hx9170/source/h264high/h264hwd_cavlc.o \
					hx9170/source/h264high/h264hwd_dpb.o \
					hx9170/source/h264high/legacy/h264hwd_util.o \
					hx9170/source/h264high/legacy/h264hwd_byte_stream.o \
					hx9170/source/h264high/legacy/h264hwd_seq_param_set.o \
					hx9170/source/h264high/legacy/h264hwd_pic_param_set.o \
					hx9170/source/h264high/legacy/h264hwd_slice_header.o \
					hx9170/source/h264high/legacy/h264hwd_stream.o \
					hx9170/source/h264high/legacy/h264hwd_vlc.o \
					hx9170/source/h264high/legacy/h264hwd_nal_unit.o \
					hx9170/source/h264high/legacy/h264hwd_neighbour.o \
					hx9170/source/h264high/legacy/h264hwd_slice_group_map.o \
					hx9170/source/h264high/legacy/h264hwd_vui.o \
					hx9170/source/h264high/legacy/h264hwd_pic_order_cnt.o
OBJ_HX9170_MPEG4 := hx9170/source/mpeg4/mp4dechwd_error_conceal.o \
					hx9170/source/mpeg4/mp4decapi.o \
					hx9170/source/mpeg4/mp4decapi_internal.o \
					hx9170/source/mpeg4/mp4dechwd_rvlc.o \
					hx9170/source/mpeg4/mp4dechwd_strmdec.o \
					hx9170/source/mpeg4/mp4dechwd_headers.o \
					hx9170/source/mpeg4/mp4dechwd_motiontexture.o \
					hx9170/source/mpeg4/mp4dechwd_shortvideo.o \
					hx9170/source/mpeg4/mp4dechwd_utils.o \
					hx9170/source/mpeg4/mp4dechwd_videopacket.o \
					hx9170/source/mpeg4/mp4dechwd_vlc.o \
					hx9170/source/mpeg4/mp4dechwd_vop.o \
					hx9170/source/mpeg4/mp4dechwd_generic.o
OBJ_HX9170_JPEG  := hx9170/source/jpeg/jpegdecapi.o \
					hx9170/source/jpeg/jpegdechdrs.o \
					hx9170/source/jpeg/jpegdecinternal.o \
					hx9170/source/jpeg/jpegdecscan.o \
					hx9170/source/jpeg/jpegdecutils.o \
					hx9170/source/jpeg/jpegasicdbgtrace.o

OBJ_HX9170_ALL   := $(OBJ_HX9170_DWL) $(OBJ_HX9170_COMMON) $(OBJ_HX9170_PP) $(OBJ_HX9170_H264) \
					$(OBJ_HX9170_MPEG4) $(OBJ_HX9170_JPEG)

ifeq ($(CONFIG_CODEC_HX9170),y)
	CFLAGS   += -I$(TOPDIR)/drivers/codec/hx9170/include \
				-I$(TOPDIR)/drivers/codec/hx9170/source/dwl \
				-I$(TOPDIR)/drivers/codec/hx9170/source/common \
				-I$(TOPDIR)/drivers/codec/hx9170/source/config \
				-I$(TOPDIR)/drivers/codec/hx9170/source/pp \
				-I$(TOPDIR)/drivers/codec/hx9170/source/jpeg \
				-I$(TOPDIR)/drivers/codec/hx9170/source/mpeg4 \
				-I$(TOPDIR)/drivers/codec/hx9170/source/h264high \
				-I$(TOPDIR)/drivers/codec/hx9170/source/h264high/legacy
	CPPFLAGS += -I$(TOPDIR)/drivers/codec/hx9170/include \
				-I$(TOPDIR)/drivers/codec/hx9170/source/dwl \
				-I$(TOPDIR)/drivers/codec/hx9170/source/common \
				-I$(TOPDIR)/drivers/codec/hx9170/source/config \
				-I$(TOPDIR)/drivers/codec/hx9170/source/pp \
				-I$(TOPDIR)/drivers/codec/hx9170/source/jpeg \
				-I$(TOPDIR)/drivers/codec/hx9170/source/mpeg4 \
				-I$(TOPDIR)/drivers/codec/hx9170/source/h264high \
				-I$(TOPDIR)/drivers/codec/hx9170/source/h264high/legacy
#				-DJPEGDEC_TRACE -DDWL_TRACE
endif


COBJS-$(CONFIG_CODEC_HX8290) += $(OBJ_HX8290_ALL)
COBJS-$(CONFIG_CODEC_HX9170) += $(OBJ_HX9170_ALL)


COBJS	:= $(COBJS-y)
SRCS	:= $(COBJS:.o=.c)
OBJS	:= $(addprefix $(obj),$(COBJS))


all:	$(LIB)

clean:
	rm -f $(OBJ_HX8290_ALL) $(OBJ_HX8290_ALL) $(LIB)

#all:
#	@echo "All variables:"
#	@echo $(src)
#	@echo $(obj)
#	@echo $(COBJS)
#	@echo $(SRCS)
#	@echo $(OBJS)
#	@echo $(SRCTREE)
#	exit 1

$(LIB):	$(obj).depend $(OBJS)
	$(AR) $(ARFLAGS) $@ $(OBJS)

#$(LIB):	$(OBJS)
#	$(AR) $(ARFLAGS) $@ $(OBJS)


#########################################################################

# defines $(obj).depend target
include $(SRCTREE)/rules.mk

sinclude $(obj).depend

#########################################################################
