LAVC_DIR=libavcodec
LAVF_DIR=libavformat
LAVU_DIR=libavutil
ZLIB_DIR=../zlib
PNG_DIR =../png

CFLAGS+= -I. -I.. -I$(LAVC_DIR) -I$(LAVU_DIR) -I../codecs -I../imgFilters -I../zlib \
         -DHAVE_AV_CONFIG_H

ifeq ($(CC),icl)
CFLAGS+=-Qc99
else
ifneq ($(CC),cl)
CFLAGS+=-std=gnu99
endif
endif

#CFLAGS+=-fverbose-asm -save-temps -fno-stack-check
       
SRCS_C=DllEntry.c \
      $(LAVC_DIR)/allcodecs.c $(LAVC_DIR)/mem.c $(LAVC_DIR)/bitstream.c \
      $(LAVC_DIR)/utils.c $(LAVC_DIR)/mpegvideo.c $(LAVC_DIR)/h263.c \
      $(LAVC_DIR)/dsputil.c $(LAVC_DIR)/msmpeg4.c $(LAVC_DIR)/mpeg12.c \
      $(LAVC_DIR)/h263dec.c $(LAVC_DIR)/jrevdct.c $(LAVC_DIR)/simple_idct.c \
      $(LAVC_DIR)/mjpeg.c $(LAVC_DIR)/dv.c $(LAVC_DIR)/lcl.c $(LAVC_DIR)/zmbv.c \
      $(LAVC_DIR)/error_resilience.c $(LAVC_DIR)/huffyuv.c $(LAVC_DIR)/cyuv.c \
      $(LAVC_DIR)/imgconvert.c $(LAVC_DIR)/asv1.c $(LAVC_DIR)/ulti.c \
      $(LAVC_DIR)/golomb.c $(LAVC_DIR)/h264.c $(LAVC_DIR)/svq1.c $(LAVC_DIR)/rv10.c \
      $(LAVC_DIR)/skl_dct_c.c $(LAVC_DIR)/msvideo1.c $(LAVC_DIR)/wmadec.c \
      $(LAVC_DIR)/mdct.c $(LAVC_DIR)/fft.c $(LAVC_DIR)/indeo3.c $(LAVC_DIR)/cinepak.c \
      $(LAVU_DIR)/rational.c $(LAVC_DIR)/faandct.c $(LAVC_DIR)/vp3dsp.c \
      $(LAVC_DIR)/parser.c $(LAVC_DIR)/8bps.c $(LAVC_DIR)/corepng.c \
      $(LAVU_DIR)/integer.c $(LAVC_DIR)/qtrle.c $(LAVC_DIR)/ac3enc.c \
      $(LAVC_DIR)/amr.c $(LAVC_DIR)/amr_float/interf_dec.c $(LAVC_DIR)/amr_float/sp_dec.c \
      $(LAVC_DIR)/cabac.c $(LAVC_DIR)/ffv1.c $(LAVC_DIR)/motion_est.c \
      $(LAVC_DIR)/ratecontrol.c $(LAVC_DIR)/jfdctfst.c $(LAVC_DIR)/jfdctint.c \
      $(LAVU_DIR)/eval.c $(LAVC_DIR)/vp3.c $(LAVC_DIR)/vcr1.c $(LAVC_DIR)/msrle.c \
      $(LAVC_DIR)/w32thread.c $(LAVC_DIR)/truemotion1.c $(LAVC_DIR)/adpcm.c \
      $(LAVC_DIR)/flac.c $(LAVC_DIR)/tscc.c $(LAVC_DIR)/snow.c $(LAVC_DIR)/mace.c \
      $(LAVC_DIR)/h264idct.c $(LAVC_DIR)/pcm.c $(LAVC_DIR)/gsm.c \
      $(LAVC_DIR)/rangecoder.c $(LAVC_DIR)/h261.c $(LAVC_DIR)/png.c \
      $(LAVC_DIR)/loco.c $(LAVC_DIR)/wnv1.c $(LAVC_DIR)/tta.c $(LAVC_DIR)/cook.c \
      $(LAVC_DIR)/qpeg.c $(LAVC_DIR)/vorbis.c $(LAVC_DIR)/g726.c \
      $(LAVC_DIR)/truemotion2.c $(LAVC_DIR)/mpegaudiodec.c $(LAVC_DIR)/qdm2.c \
      $(LAVC_DIR)/truespeech.c $(LAVC_DIR)/cscd.c $(LAVC_DIR)/lzo.c \
      $(LAVF_DIR)/allformats.c $(LAVF_DIR)/avio.c $(LAVF_DIR)/aviobuf.c \
      $(LAVF_DIR)/cutils.c $(LAVF_DIR)/file.c $(LAVF_DIR)/mpeg.c $(LAVF_DIR)/utils.c \
      $(LAVF_DIR)/flvenc.c $(LAVU_DIR)/mathematics.c $(LAVU_DIR)/crc.c \
      $(ZLIB_DIR)/adler32.c $(ZLIB_DIR)/compress.c $(ZLIB_DIR)/crc32.c \
      $(ZLIB_DIR)/deflate.c $(ZLIB_DIR)/infback.c $(ZLIB_DIR)/inffast.c \
      $(ZLIB_DIR)/inflate.c $(ZLIB_DIR)/inftrees.c $(ZLIB_DIR)/trees.c \
      $(ZLIB_DIR)/uncompr.c $(ZLIB_DIR)/zutil.c \
      $(LAVC_DIR)/i386/fft_sse.c

ifneq ($(CC),icl)
ifneq ($(CC),cl)
SRCS_C+=$(LAVC_DIR)/i386/cputest.c $(LAVC_DIR)/i386/snowdsp_mmx.c \
        $(LAVC_DIR)/i386/fdct_mmx.c $(LAVC_DIR)/i386/vp3dsp_mmx.c \
        $(LAVC_DIR)/i386/dsputil_mmx.c $(LAVC_DIR)/i386/mpegvideo_mmx.c \
        $(LAVC_DIR)/i386/idct_mmx.c $(LAVC_DIR)/i386/motion_est_mmx.c \
        $(LAVC_DIR)/i386/simple_idct_mmx.c $(LAVC_DIR)/i386/vp3dsp_sse2.c \
        $(LAVC_DIR)/i386/idct_mmx_xvid.c 
SRCS_NASM=$(LAVC_DIR)/i386/skl_dct_sse.asm $(LAVC_DIR)/i386/skl_dct_sse2.asm

NASMFLAGS=-DPREFIX -DWIN32
endif
endif


ifeq ($(DECODERS_ONLY),yes)
 CFLAGS+=-DDECODERS_ONLY
 SLIB= ../../bin/libavcodec_dec.dll
 DEF=libavcodec_dec.def
else
 SLIB= ../../bin/libavcodec.dll
 DEF=libavcodec.def
endif

NOINTRIN=1

GCCDLLENTRY=--entry=_DllEntryPoint@12
ifeq ($(CC),icl)
CLDLLENTRY=/entry:"DllEntryPoint"
else
CLDLLENTRY=/entry:"DllEntryPoint@12"
endif

include ../makefile_c.inc

$(LAVC_DIR)/i386/fft_sse.o:CFLAGS+=-msse

.all: $(SLIB)

clean: 
	rm -f *.o $(LAVC_DIR)/*.o *~ $(SLIB) $(LAVC_DIR)/i386/*.o $(LAVC_DIR)/i386/*~ $(LAVC_DIR)/liba52/*.o $(LAVC_DIR)/amr_float/*.o $(LAVF_DIR)/*.o $(ZLIB_DIR)/*.o $(PNG_DIR)/*.o $(LAVU_DIR)/*.o

#
# include dependency files if they exist
#
ifneq ($(wildcard .depend),)
include .depend
endif
