LIBRETRO_SWITCH        = 0

INTERNAL_LIBAVCODEC    = 0
INTERNAL_LIBAVFORMAT   = 0
INTERNAL_LIBAVUTIL     = 0
INTERNAL_LIBSWRESAMPLE = 0
INTERNAL_LIBSWSCALE    = 0

INTERNAL_LIBFLAC       = 0
INTERNAL_LIBOGG        = 0
INTERNAL_LIBLAME       = 0
INTERNAL_LIBFAAC       = 0
INTERNAL_LIBSPEEX      = 0
INTERNAL_LIBTHEORA     = 0
INTERNAL_LIBOPUS       = 0  
INTERNAL_LIBVORBIS     = 0
INTERNAL_WEBP          = 0
INTERNAL_ZLIB          = 0
INTERNAL_WAVPACK       = 0
INTERNAL_XVIDCORE      = 0
INTERNAL_VPX           = 0


BAKE_IN_FFMPEG := 0

#CPU Optimization flags
HAVE_SSE2 = 0
HAVE_MMX = 0
HAVE_THREADS = 1

#Additional codec support for internal FFmpeg
HAVE_WAVPACK   = 0
HAVE_LIBSPEEX  = 0
HAVE_LIBWEBP   = 0
HAVE_LIBOGG    = 0
HAVE_LIBX264   = 0
HAVE_LIBX265   = 0
HAVE_LIBFAAC   = 0
HAVE_LIBFLAC   = 0
HAVE_LIBLAME   = 0
HAVE_LIBTWOLAME = 0
HAVE_LIBVORBIS = 0
HAVE_LIBTHEORA = 0
HAVE_LIBOPUS   = 0
HAVE_ZLIB      = 0

#Video support
OPENGL = 1
HAVE_CODEC_HW = 0

ifeq ($(platform),)
platform = unix
ifeq ($(shell uname -a),)
   platform = win
else ifneq ($(findstring MINGW,$(shell uname -a)),)
   platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
   platform = osx
else ifneq ($(findstring win,$(shell uname -a)),)
   platform = win
endif
endif

system = $(shell uname -m)

ifeq ($(system),x86_64)
ARCH_X86 = 1
ARCH_X86_64 = 1
endif

TARGET_NAME := ffmpeg

ifneq (,$(findstring unix,$(platform)))
	ARCH_X86 = 1
   TARGET := $(TARGET_NAME)_libretro.so
   fpic := -fPIC
   SHARED := -shared -Wl,--version-script=link.T -Wl,--no-undefined -fPIC
ifeq ($(OPENGL),1)
   GL_LIB := -lGL
   CFLAGS += -DHAVE_OPENGL
   HAVE_GL := 1
	HAVE_GL_FFT := 1
endif
   HAVE_SSA := 1

   LIBS = $(shell pkg-config libass --libs) -pthread
   CFLAGS += $(shell pkg-config libass --cflags) -pthread
	CFLAGS += -DHAVE_STRUCT_SOCKADDR_STORAGE -DHAVE_STRUCT_ADDRINFO -DHAVE_FMINF
	HAVE_POLL_H = 1
	HAVE_GETADDRINFO = 1
	HAVE_NETWORK = 1
	HAVE_SOCKLEN = 1
	HAVE_PTHREADS = 1
ifneq ($(INTERNAL_LIBAVCODEC),1)
   LIBS += $(shell pkg-config libavcodec --libs)
   CFLAGS += $(shell pkg-config libavcodec --cflags)
endif
ifneq ($(INTERNAL_LIBAVFORMAT),1)
   LIBS += $(shell pkg-config libavformat --libs)
   CFLAGS += $(shell pkg-config libavformat --cflags)
endif
ifneq ($(INTERNAL_LIBSWRESAMPLE),1)
   LIBS += $(shell pkg-config libswresample --libs)
   CFLAGS += $(shell pkg-config libswresample --cflags)
endif
ifneq ($(INTERNAL_LIBAVUTIL),1)
   LIBS += $(shell pkg-config libavutil --libs)
   CFLAGS += $(shell pkg-config libavutil --cflags)
endif
ifneq ($(INTERNAL_LIBSWSCALE),1)
   LIBS += $(shell pkg-config libswscale --libs)
   CFLAGS += $(shell pkg-config libswscale --cflags)
endif
else ifneq (,$(findstring osx,$(platform)))
	ARCH_X86 = 1
   LIBRETRO_SWITCH = 1
   TARGET := $(TARGET_NAME)_libretro.dylib
   fpic := -fPIC
   SHARED := -dynamiclib
   CFLAGS += -I. -I.. -DHAVE_FMINF
ifeq ($(OPENGL),1)
   GL_LIB := -framework OpenGL
   HAVE_GL := 1
   HAVE_GL_FFT := 1
   CFLAGS += -DHAVE_GL
endif
HAVE_PTHREADS = 1
   OSXVER = `sw_vers -productVersion | cut -d. -f 2`
   OSX_LT_MAVERICKS = `(( $(OSXVER) <= 9)) && echo "YES"`
   fpic += -mmacosx-version-min=10.1
	CFLAGS += -DHAVE_STRUCT_SOCKADDR_STORAGE -DHAVE_STRUCT_ADDRINFO
	HAVE_POLL_H = 1
	HAVE_GETADDRINFO = 1
	HAVE_NETWORK = 1
	HAVE_SOCKLEN = 1

   LIBS = $(shell pkg-config libass --libs) -pthread
   CFLAGS += $(shell pkg-config libass --cflags) -pthread
ifneq ($(INTERNAL_LIBAVCODEC),1)
   LIBS += $(shell pkg-config libavcodec --libs)
   CFLAGS += $(shell pkg-config libavcodec --cflags)
endif
ifneq ($(INTERNAL_LIBAVFORMAT),1)
   LIBS += $(shell pkg-config libavformat --libs)
   CFLAGS += $(shell pkg-config libavformat --cflags)
endif
ifneq ($(INTERNAL_LIBSWRESAMPLE),1)
   LIBS += $(shell pkg-config libswresample --libs)
   CFLAGS += $(shell pkg-config libswresample --cflags)
endif
ifneq ($(INTERNAL_LIBAVUTIL),1)
   LIBS += $(shell pkg-config libavutil --libs)
   CFLAGS += $(shell pkg-config libavutil --cflags)
endif
ifneq ($(INTERNAL_LIBSWSCALE),1)
   LIBS += $(shell pkg-config libswscale --libs)
   CFLAGS += $(shell pkg-config libswscale --cflags)
endif
else ifneq (,$(findstring win,$(platform)))
	ARCH_X86 = 1
   CC = gcc
	CXX = g++
   TARGET := $(TARGET_NAME)_libretro.dll
   SHARED := -shared -static-libgcc -static-libstdc++ -s -Wl,--version-script=link.T -Wl,--no-undefined
   CFLAGS += -Iffmpeg
ifeq ($(OPENGL),1)
   GL_LIB := -lopengl32
   CFLAGS += -DHAVE_OPENGL
   HAVE_GL := 1
	HAVE_GL_FFT := 1
	WIN32_PLATFORM := 1
endif
   LIBS += -L.
ifneq ($(INTERNAL_LIBAVCODEC),1)
   LIBS += -lavcodec
endif
ifneq ($(INTERNAL_LIBAVFORMAT),1)
   LIBS += -lavformat
endif
ifneq ($(INTERNAL_LIBSWRESAMPLE),1)
   LIBS += -lswresample
endif
ifneq ($(INTERNAL_LIBAVUTIL),1)
   LIBS += -lavutil
endif
ifneq ($(INTERNAL_LIBSWSCALE),1)
	LIBS += -lswscale
endif
endif

ifeq ($(LIBRETRO_SWITCH),1)
CFLAGS += -DLIBRETRO_SWITCH=1
INTERNAL_LIBAVCODEC    = 1
INTERNAL_LIBAVFORMAT   = 1
INTERNAL_LIBAVUTIL     = 1
INTERNAL_LIBSWRESAMPLE = 1
INTERNAL_LIBSWSCALE    = 1

INTERNAL_LIBFLAC       = 1
INTERNAL_LIBOGG        = 1
INTERNAL_LIBLAME       = 1
INTERNAL_LIBFAAC       = 1
INTERNAL_LIBVORBIS     = 1
INTERNAL_ZLIB          = 1
endif

ifeq ($(INTERNAL_LIBAVCODEC),1)
	BAKE_IN_FFMPEG += 1
endif

ifeq ($(INTERNAL_LIBAVFORMAT),1)
	BAKE_IN_FFMPEG += 1
endif

ifeq ($(INTERNAL_LIBSWRESAMPLE),1)
	BAKE_IN_FFMPEG += 1
endif

ifeq ($(INTERNAL_LIBWSCALE),1)
	BAKE_IN_FFMPEG += 1
endif

ifeq ($(INTERNAL_LIBAVUTIL),1)
	BAKE_IN_FFMPEG += 1
endif

CFLAGS += -D__LIBRETRO__

ifeq ($(HAVE_SSA), 1)
   LIBS += $(shell pkg-config libass --libs)
   CFLAGS += -DHAVE_SSA
endif

LIBRETROCOMM_DIR := ../../libretro-common

LIBAVCODEC_SOURCE :=
LIBAVFORMAT_SOURCE :=
LIBAVUTIL_SOURCE :=
LIBRETRO_SOURCE := ffmpeg_core.c \
						 $(LIBRETROCOMM_DIR)/queues/fifo_buffer.c \
						 $(LIBRETROCOMM_DIR)/rthreads/rthreads.c
DEPS_SOURCE :=

ifeq ($(HAVE_BIGENDIAN),1)
CPUOPTS += -DHAVE_BIGENDIAN=1
else
CPUOPTS += -DHAVE_BIGENDIAN=0
endif

ifneq ($(BAKE_IN_FFMPEG),0)

ifeq ($(INTERNAL_LIBAVCODEC),1)

ifeq ($(INTERNAL_ZLIB),0)
	LIBS += -lz
	HAVE_ZLIB = 1
else
	HAVE_ZLIB = 1
	DEPS_SOURCE += $(wildcard libz/*.c)
endif

ifeq ($(INTERNAL_LIBFLAC),0)
	LIBS += -lFLAC
	HAVE_LIBFLAC = 1
else
	CFLAGS += -I. -IlibFLAC -IlibFLAC/include -DHAVE_LROUND
	HAVE_LIBFLAC = 1
	DEPS_SOURCE += $(wildcard libFLAC/*.c)
endif

ifeq ($(INTERNAL_LIBOPUS),0)
	#LIBS += -lopus
	#HAVE_LIBOPUS = 1
else
	#CFLAGS += -I. -Ilibopus -Ilibopus/celt -DUSE_ALLOCA -DOPUS_BUILD
	#HAVE_LIBOPUS = 1
	#DEPS_SOURCE += $(wildcard libopus/*.c) $(wildcard libopus/celt/*.c)
endif

ifeq ($(INTERNAL_LIBVORBIS),0)
	LIBS += -lvorbis -lvorbisenc -lvorbisfile
	HAVE_LIBVORBIS = 1
else
	CFLAGS += -DOV_EXCLUDE_STATIC_CALLBACKS -Ivorbis
	HAVE_LIBVORBIS = 1
	DEPS_SOURCE += $(wildcard vorbis/*.c)
endif

ifeq ($(INTERNAL_LIBLAME),0)
	LIBS += -lmp3lame
	HAVE_LIBLAME = 1
else
	HAVE_LIBLAME = 1
	CFLAGS += -Ilibmp3lame
	DEPS_SOURCE += $(wildcard libmp3lame/*.c)
endif

ifeq ($(INTERNAL_LIBSPEEX),0)
	LIBS += -lspeex
	HAVE_LIBSPEEX = 1
endif

ifeq ($(INTERNAL_WEBP),0)
	LIBS += -lwebp
	HAVE_LIBWEBP = 1
endif

ifeq ($(INTERNAL_LIBOGG),0)
	LIBS += -logg
	HAVE_LIBOGG = 1
else
	CFLAGS += -DOV_EXCLUDE_STATIC_CALLBACKS
	HAVE_LIBOGG = 1
	DEPS_SOURCE += ogg/bitwise.c ogg/framing.c
endif

ifeq ($(INTERNAL_LIBFAAC),0)
	LIBS += -lfaac
	HAVE_LIBFAAC = 1
else
	CFLAGS += -Ilibfaac
	HAVE_LIBFAAC = 1
	DEPS_SOURCE += $(wildcard libfaac/*.c)
endif

ifeq ($(INTERNAL_WAVPACK),0)
	LIBS += -lwavpack
	HAVE_WAVPACK = 1
endif

ifeq ($(INTERNAL_XVIDCORE),0)
   LIBS += -lxvidcore
endif

ifeq ($(INTERNAL_LIBTHEORA),0)
	LIBS += -ltheora -ltheoraenc -ltheoradec
	HAVE_LIBTHEORA = 1
endif

ifeq ($(INTERNAL_VPX),0)
	LIBS += -lvpx
	HAVE_VPX = 1
endif

endif

LIBS += -lm

CFLAGS += -DCONFIG_SMALL=0

## CPU Flags

#Blackfin DSP. Pretty sure we won't target this for libretro (if ever).

CPUOPTS += -DARCH_BFIN=0

#We can reasonably assume MMX will be there on all x86 CPUs from 1997 and up at least
#SSE2 can be assumed from Pentium 4 and up - can be switched on or off with the switch HAVE_SSE2

CPUOPTS += -DHAVE_AMD3DNOW_INLINE=0
CPUOPTS += -DHAVE_AMD3DNOWEXT_EXTERNAL=0

ifeq ($(ARCH_X86),1)
CPUOPTS += -DARCH_X86=1
ifneq ($(ARCH_X86_64),1)
CPUOPTS += -DARCH_X86_32=1
endif
CPUOPTS += -DHAVE_MMX2=0
CPUOPTS += -DHAVE_EBX_AVAILABLE=1
CPUOPTS += -DHAVE_EBP_AVAILABLE=1
ifeq ($(HAVE_MMX), 1)
CPUOPTS += -DHAVE_MMX=1
CPUOPTS += -DHAVE_MMXEXT=1
CPUOPTS += -DHAVE_MMX_EXTERNAL=1
CPUOPTS += -DHAVE_MMXEXT_EXTERNAL=1
CPUOPTS += -DHAVE_AMD3DNOW_EXTERNAL=0
CPUOPTS += -DHAVE_MMX_INLINE=1 -DHAVE_MMXEXT_INLINE=0
else
CPUOPTS += -DHAVE_MMX=0
CPUOPTS += -DHAVE_MMXEXT=0
CPUOPTS += -DHAVE_MMX_EXTERNAL=0
CPUOPTS += -DHAVE_MMXEXT_EXTERNAL=0
CPUOPTS += -DHAVE_AMD3DNOW_EXTERNAL=0
CPUOPTS += -DHAVE_XOP_EXTERNAL=0
CPUOPTS += -DHAVE_MMX_INLINE=0 -DHAVE_MMXEXT_INLINE=0
endif
CPUOPTS += -DHAVE_ALIGNED_STACK -DHAVE_FAST_UNALIGNED=0

ifeq ($(HAVE_SSE1),1)
CPUOPTS += -DHAVE_SSE=1
CPUOPTS += -DHAVE_SSE_EXTERNAL=1
else
CPUOPTS += -DHAVE_SSE=0
CPUOPTS += -DHAVE_SSE_EXTERNAL=0
endif

ifeq ($(HAVE_SSE2),1)
CPUOPTS += -DHAVE_SSE2=1
CPUOPTS += -DHAVE_SSE2_EXTERNAL=1
CPUOPTS += -DHAVE_SSE2_INLINE=1

else
CPUOPTS += -DHAVE_SSE2=0
CPUOPTS += -DHAVE_SSE2_EXTERNAL=0
CPUOPTS += -DHAVE_SSE2_INLINE=0

endif

CPUOPTS += -DHAVE_FMA3_EXTERNAL=0
CPUOPTS += -DHAVE_SSE3_EXTERNAL=0
CPUOPTS += -DHAVE_SSSE3_EXTERNAL=0
CPUOPTS += -DHAVE_SSE4_EXTERNAL=0
CPUOPTS += -DHAVE_SSE42_EXTERNAL=0
CPUOPTS += -DHAVE_AVX_EXTERNAL=0
CPUOPTS += -DHAVE_AVX2_EXTERNAL=0
else
CPUOPTS += -DHAVE_FMA3_EXTERNAL=0
CPUOPTS += -DHAVE_SSE_EXTERNAL=0
CPUOPTS += -DHAVE_SSE2_INLINE=0
CPUOPTS += -DHAVE_SSE2_EXTERNAL=0
CPUOPTS += -DHAVE_SSE3_EXTERNAL=0
CPUOPTS += -DHAVE_SSSE3_EXTERNAL=0
CPUOPTS += -DHAVE_SSE4_EXTERNAL=0
CPUOPTS += -DHAVE_SSE42_EXTERNAL=0
CPUOPTS += -DHAVE_AVX_EXTERNAL=0
CPUOPTS += -DHAVE_AVX2_EXTERNAL=0
endif

ifeq ($(ARCH_X86_64),1)
CPUOPTS += -DARCH_X86_64=1
CPUOPTS += -DARCH_X86_32=0
CFLAGS += -DHAVE_FAST_64BIT=1
else
CPUOPTS += -DARCH_X86_64=0
CFLAGS += -DHAVE_FAST_64BIT=0
endif

#This is ARMv8/NEON
ifeq ($(ARCH_AARCH64),1)
CPUOPTS += -DARCH_AARCH64=1
else
CPUOPTS += -DARCH_AARCH64=0
endif

ifeq ($(ARCH_ARM),1)
CPUOPTS += -DARCH_ARM=1
else
CPUOPTS += -DARCH_ARM=0
endif
ifeq ($(ARCH_PPC),1)
CPUOPTS += -DARCH_PPC=1
else
CPUOPTS += -DARCH_PPC=0
endif

ifeq ($(HAVE_ALTIVEC),1)
CPUOPTS += -DHAVE_ALTIVEC=1
else
CPUOPTS += -DHAVE_ALTIVEC=0
endif

ifeq ($(ARCH_MIPS),1)
# Not sure if we can just define this for all MIPS archs - probably not
CPUOPTS += -DHAVE_MIPSFPU=1
CPUOPTS += -DARCH_MIPS=1
CPUOPTS += -DHAVE_MIPSDSPR1=0
else
CPUOPTS += -DHAVE_MIPSFPU=0
CPUOPTS += -DARCH_MIPS=0
CPUOPTS += -DHAVE_MIPSDSPR1=0
endif

ifeq ($(ARCH_ALPHA),1)
CPUOPTS += -DARCH_ALPHA=1
else
CPUOPTS += -DARCH_ALPHA=0
endif

CFLAGS += -I$(BASE_DIR) -I. -DHAVE_CBRT -DHAVE_CBRTF -DHAVE_ISINF -DHAVE_ISNAN -DHAVE_RINT -DHAVE_LRINT -DHAVE_LRINTF -DHAVE_ROUND -DHAVE_ROUNDF -DHAVE_TRUNC -DHAVE_TRUNCF -DHAVE_YASM=0 $(CPUOPTS)

ifeq ($(HAVE_POLL_H),1)
CFLAGS += -DHAVE_POLL_H
endif

ifeq ($(HAVE_SOCKLEN),1)
CFLAGS += -DHAVE_SOCKLEN_T
endif

ifeq ($(HAVE_GETADDRINFO),1)
CFLAGS += -DHAVE_GETADDRINFO=1
endif

ifeq ($(HAVE_NETWORK),1)
CFLAGS += -DCONFIG_NETWORK=1
endif

# Threading flags

ifeq ($(HAVE_THREADS),1)
CFLAGS += -DHAVE_THREADS=1

ifeq ($(ARCH_X86),1)
CFLAGS += -DHAVE_ATOMICS_GCC=1 -DHAVE_ATOMICS_NATIVE=1
endif

ifeq ($(ARCH_X86_64),1)
CFLAGS += -DHAVE_ATOMICS_GCC=1 -DHAVE_ATOMICS_NATIVE=1
endif

ifeq ($(WIN32_PLATFORM),1)
CFLAGS += HAVE_ATOMICS_WIN32=1 -DHAVE_ATOMICS_NATIVE=1
endif

ifeq ($(HAVE_PTHREADS),1)
CFLAGS += -DHAVE_PTHREADS=1
endif

else
CFLAGS += -DHAVE_THREADS=0
CFLAGS += -DHAVE_PTHREADS=0
endif

ifeq ($(HAVE_LIBLAME),1)
CFLAGS += -DCONFIG_LIBMP3LAME=1 \
			 -DCONFIG_LIBMP3LAME_ENCODER=1
else
CFLAGS += -DCONFIG_LIBMP3LAME=0 \
			 -DCONFIG_LIBMP3LAME_ENCODER=0
endif

ifeq ($(HAVE_LIBVORBIS),1)
CFLAGS += -DCONFIG_LIBVORBIS=1 \
			 -DCONFIG_VORBIS_ENCODER=1 \
			 -DCONFIG_LIBVORBIS_ENCODER=1 \
			 -DCONFIG_VORBIS_DECODER=1 \
			 -DCONFIG_LIBVORBIS_DECODER=1 \
			 -DCONFIG_VORBIS_PARSER=1
else
CFLAGS += -DCONFIG_LIBVORBIS=0 \
			 -DCONFIG_VORBIS_ENCODER=0 \
			 -DCONFIG_LIBVORBIS_ENCODER=0 \
			 -DCONFIG_VORBIS_DECODER=0 \
			 -DCONFIG_LIBVORBIS_DECODER=0 \
			 -DCONFIG_VORBIS_PARSER=0
endif

ifeq ($(HAVE_LIBTHEORA),1)
CFLAGS += -DCONFIG_LIBTHEORA_ENCODER=1 \
			 -DCONFIG_THEORA_DECODER=1
else
CFLAGS += -DCONFIG_LIBTHEORA_ENCODER=0 \
			 -DCONFIG_THEORA_DECODER=0
endif

ifeq ($(HAVE_ZLIB),1)
CFLAGS += -DCONFIG_ZLIB=1
else
CFLAGS += -DCONFIG_ZLIB=0 
endif

#Protocol flags
CFLAGS +=  \
			  -DCONFIG_BLURAY_PROTOCOL=0 \
			  -DCONFIG_CACHE_PROTOCOL=1 \
			  -DCONFIG_CONCAT_PROTOCOL=1 \
			  -DCONFIG_CRYPTO_PROTOCOL=1 \
			  -DCONFIG_DATA_PROTOCOL=1 \
			  -DCONFIG_ICECAST_PROTOCOL=0 \
			  -DCONFIG_FFRTMPCRYPT_PROTOCOL=0 \
			  -DCONFIG_FFRTMPHTTP_PROTOCOL=1 \
			  -DCONFIG_FILE_PROTOCOL=1 \
			  -DCONFIG_FTP_PROTOCOL=1 \
			  -DCONFIG_GOPHER_PROTOCOL=1 \
			  -DCONFIG_HLS_PROTOCOL=1 \
			  -DCONFIG_SUBFILE_PROTOCOL=0 \
			  -DCONFIG_HTTP_PROTOCOL=1 \
			  -DCONFIG_HTTPPROXY_PROTOCOL=1 \
			  -DCONFIG_HTTPS_PROTOCOL=0 \
			  -DCONFIG_MMSH_PROTOCOL=1 \
			  -DCONFIG_MMST_PROTOCOL=1 \
			  -DCONFIG_MD5_PROTOCOL=1 \
			  -DCONFIG_PIPE_PROTOCOL=1 \
			  -DCONFIG_RTMP_PROTOCOL=1 \
			  -DCONFIG_RTMPE_PROTOCOL=0 \
			  -DCONFIG_RTMPS_PROTOCOL=0 \
			  -DCONFIG_RTMPT_PROTOCOL=1 \
			  -DCONFIG_RTMPTE_PROTOCOL=0 \
			  -DCONFIG_LIBSMBCLIENT_PROTOCOL=0 \
			  -DCONFIG_RTMPTS_PROTOCOL=0 \
			  -DCONFIG_RTP_PROTOCOL=1 \
			  -DCONFIG_SCTP_PROTOCOL=0 \
			  -DCONFIG_SRTP_PROTOCOL=1 \
			  -DCONFIG_TCP_PROTOCOL=1 \
			  -DCONFIG_TLS_PROTOCOL=0 \
			  -DCONFIG_UDP_PROTOCOL=1 \
			  -DCONFIG_UNIX_PROTOCOL=1 \
			  -DCONFIG_LIBRTMP_PROTOCOL=0 \
			  -DCONFIG_LIBRTMPE_PROTOCOL=0 \
			  -DCONFIG_LIBRTMPS_PROTOCOL=0 \
			  -DCONFIG_LIBRTMPT_PROTOCOL=0 \
			  -DCONFIG_LIBRTMPTE_PROTOCOL=0 \
			  -DCONFIG_LIBSSH_PROTOCOL=0

# Encoder switches

CFLAGS += \
			 -DCONFIG_ALIAS_PIX_ENCODER=1 \
			 -DCONFIG_A64MULTI_ENCODER=1 \
			 -DCONFIG_A64MULTI5_ENCODER=1 \
			 -DCONFIG_AMV_ENCODER=1 \
			 -DCONFIG_ASV1_ENCODER=1 \
			 -DCONFIG_ASV2_ENCODER=1 \
			 -DCONFIG_AVRP_ENCODER=1 \
			 -DCONFIG_AVUI_ENCODER=1 \
			 -DCONFIG_AYUV_ENCODER=1 \
			 -DCONFIG_BMP_ENCODER=1 \
			 -DCONFIG_CINEPAK_ENCODER=1 \
			 -DCONFIG_CLJR_ENCODER=1 \
			 -DCONFIG_COMFORTNOISE_ENCODER=1 \
			 -DCONFIG_DNXHD_ENCODER=1 \
			 -DCONFIG_DPX_ENCODER=1 \
			 -DCONFIG_DVVIDEO_ENCODER=1 \
			 -DCONFIG_DVPROFILE=1 \
			 -DCONFIG_FFV1_ENCODER=1 \
			 -DCONFIG_FFVHUFF_ENCODER=1 \
			 -DCONFIG_FLASHSV_ENCODER=1 \
			 -DCONFIG_FLASHSV2_ENCODER=1 \
			 -DCONFIG_FLV_ENCODER=1 \
			 -DCONFIG_GIF_ENCODER=1 \
			 -DCONFIG_H261_ENCODER=1 \
			 -DCONFIG_H263_ENCODER=1 \
			 -DCONFIG_H263P_ENCODER=1 \
			 -DCONFIG_HUFFYUV_ENCODER=1 \
			 -DCONFIG_JPEG2000_ENCODER=1 \
			 -DCONFIG_JPEGLS_ENCODER=1 \
			 -DCONFIG_LJPEG_ENCODER=1 \
			 -DCONFIG_MJPEG_ENCODER=1 \
			 -DCONFIG_MPEG1VIDEO_ENCODER=1 \
			 -DCONFIG_MPEG2VIDEO_ENCODER=1 \
			 -DCONFIG_MPEG4_ENCODER=1 \
			 -DCONFIG_MSMPEG4V2_ENCODER=1 \
			 -DCONFIG_MSMPEG4V3_ENCODER=1 \
			 -DCONFIG_MSVIDEO1_ENCODER=1 \
			 -DCONFIG_PAM_ENCODER=1 \
			 -DCONFIG_PBM_ENCODER=1 \
			 -DCONFIG_PCX_ENCODER=1 \
			 -DCONFIG_PGM_ENCODER=1 \
			 -DCONFIG_PGMYUV_ENCODER=1 \
			 -DCONFIG_PNG_ENCODER=1 \
			 -DCONFIG_PPM_ENCODER=1 \
			 -DCONFIG_PRORES_ENCODER=1 \
			 -DCONFIG_PRORES_AW_ENCODER=1 \
			 -DCONFIG_PRORES_KS_ENCODER=1 \
			 -DCONFIG_QTRLE_ENCODER=1 \
			 -DCONFIG_R10K_ENCODER=1 \
			 -DCONFIG_R210_ENCODER=1 \
			 -DCONFIG_RAWVIDEO_ENCODER=1 \
			 -DCONFIG_ROQ_ENCODER=1 \
			 -DCONFIG_RV10_ENCODER=1 \
			 -DCONFIG_RV20_ENCODER=1 \
			 -DCONFIG_S302M_ENCODER=1 \
			 -DCONFIG_SGI_ENCODER=1 \
			 -DCONFIG_SNOW_ENCODER=1 \
			 -DCONFIG_SUNRAST_ENCODER=1 \
			 -DCONFIG_SVQ1_ENCODER=1 \
			 -DCONFIG_TARGA_ENCODER=1 \
			 -DCONFIG_TIFF_ENCODER=1 \
			 -DCONFIG_UTVIDEO_ENCODER=1 \
			 -DCONFIG_V210_ENCODER=1 \
			 -DCONFIG_V308_ENCODER=1 \
			 -DCONFIG_V408_ENCODER=1 \
			 -DCONFIG_V410_ENCODER=1 \
			 -DCONFIG_WMV1_ENCODER=1 \
			 -DCONFIG_WMV2_ENCODER=1 \
			 -DCONFIG_XBM_ENCODER=1 \
			 -DCONFIG_XFACE_ENCODER=1 \
			 -DCONFIG_XWD_ENCODER=1 \
			 -DCONFIG_Y41P_ENCODER=1 \
			 -DCONFIG_YUV4_ENCODER=1 \
			 -DCONFIG_ZMBV_ENCODER=1 \
			 -DCONFIG_AAC_ENCODER=1 \
			 -DCONFIG_AC3_ENCODER=1 \
			 -DCONFIG_AC3_FIXED_ENCODER=1 \
			 -DCONFIG_ALAC_ENCODER=1 \
			 -DCONFIG_DCA_ENCODER=1 \
			 -DCONFIG_EAC3_ENCODER=1 \
			 -DCONFIG_G723_1_ENCODER=1 \
			 -DCONFIG_MP2_ENCODER=1 \
			 -DCONFIG_NELLYMOSER_ENCODER=1 \
			 -DCONFIG_RA_144_ENCODER=1 \
			 -DCONFIG_SONIC_ENCODER=1 \
			 -DCONFIG_SONIC_LS_ENCODER=1 \
			 -DCONFIG_TTA_ENCODER=1 \
			 -DCONFIG_WMAV1_ENCODER=1 \
			 -DCONFIG_WMAV2_ENCODER=1 \
			 -DCONFIG_PCM_ALAW_ENCODER=1 \
			 -DCONFIG_PCM_F32BE_ENCODER=1 \
			 -DCONFIG_PCM_F32LE_ENCODER=1 \
			 -DCONFIG_PCM_F64BE_ENCODER=1 \
			 -DCONFIG_PCM_F64LE_ENCODER=1 \
			 -DCONFIG_PCM_MULAW_ENCODER=1 \
			 -DCONFIG_PCM_S8_ENCODER=1 \
			 -DCONFIG_PCM_S8_PLANAR_ENCODER=1 \
			 -DCONFIG_PCM_S16BE_ENCODER=1 \
			 -DCONFIG_PCM_S16BE_PLANAR_ENCODER=1 \
			 -DCONFIG_PCM_S16LE_ENCODER=1 \
			 -DCONFIG_PCM_S16LE_PLANAR_ENCODER=1 \
			 -DCONFIG_PCM_S24BE_ENCODER=1 \
			 -DCONFIG_PCM_S24DAUD_ENCODER=1 \
			 -DCONFIG_PCM_S24LE_ENCODER=1 \
			 -DCONFIG_PCM_S24LE_PLANAR_ENCODER=1 \
			 -DCONFIG_PCM_S32BE_ENCODER=1 \
			 -DCONFIG_PCM_S32LE_ENCODER=1 \
			 -DCONFIG_PCM_S32LE_PLANAR_ENCODER=1 \
			 -DCONFIG_PCM_U8_ENCODER=1 \
			 -DCONFIG_PCM_U16BE_ENCODER=1 \
			 -DCONFIG_PCM_U16LE_ENCODER=1 \
			 -DCONFIG_PCM_U24BE_ENCODER=1 \
			 -DCONFIG_PCM_U24LE_ENCODER=1 \
			 -DCONFIG_PCM_U32BE_ENCODER=1 \
			 -DCONFIG_PCM_U32LE_ENCODER=1 \
			 -DCONFIG_ROQ_DPCM_ENCODER=1 \
			 -DCONFIG_ADPCM_ADX_ENCODER=1 \
			 -DCONFIG_ADPCM_G722_ENCODER=1 \
			 -DCONFIG_ADPCM_G726_ENCODER=1 \
			 -DCONFIG_ADPCM_IMA_QT_ENCODER=1 \
			 -DCONFIG_ADPCM_IMA_WAV_ENCODER=1 \
			 -DCONFIG_ADPCM_MS_ENCODER=1 \
			 -DCONFIG_ADPCM_SWF_ENCODER=1 \
			 -DCONFIG_ADPCM_YAMAHA_ENCODER=1 \
			 -DCONFIG_DVBSUB_ENCODER=1 \
			 -DCONFIG_DVDSUB_ENCODER=1 \
			 -DCONFIG_MOVTEXT_ENCODER=1 \
			 -DCONFIG_SRT_ENCODER=1 \
			 -DCONFIG_SUBRIP_ENCODER=1 \
			 -DCONFIG_XSUB_ENCODER=1 \
			 -DCONFIG_LIBFDK_AAC_ENCODER=0 \
			 -DCONFIG_LIBGSM_ENCODER=0 \
			 -DCONFIG_LIBGSM_MS_ENCODER=0 \
			 -DCONFIG_LIBILBC_ENCODER=0 \
			 -DCONFIG_LIBOPENCORE_AMRNB_ENCODER=0 \
			 -DCONFIG_LIBOPENJPEG_ENCODER=0 \
			 -DCONFIG_LIBSCHROEDINGER_ENCODER=0 \
			 -DCONFIG_LIBSHINE_ENCODER=0 \
			 -DCONFIG_LIBUTVIDEO_ENCODER=0 \
			 -DCONFIG_LIBVO_AACENC_ENCODER=0 \
			 -DCONFIG_LIBVO_AMRWBENC_ENCODER=0 \
			 -DCONFIG_LIBXAVS_ENCODER=0 \
			 -DCONFIG_LIBXVID_ENCODER=1 \
			 -DCONFIG_MP2FIXED_ENCODER=1 \
			 -DCONFIG_LIBAACPLUS_ENCODER=0

ifeq ($(HAVE_LIBTWOLAME),1)
CFLAGS += -DCONFIG_LIBTWOLAME_ENCODER=1
else
CFLAGS += -DCONFIG_LIBTWOLAME_ENCODER=0
endif

ifeq ($(HAVE_ZLIB),1)
CFLAGS += -DCONFIG_ZLIB_ENCODER=1
else
CFLAGS += -DCONFIG_ZLIB_ENCODER=0
endif

ifeq ($(HAVE_SSA),1)
CFLAGS += -DCONFIG_SSA_ENCODER=1
CFLAGS += -DCONFIG_ASS_ENCODER=1
else
CFLAGS += -DCONFIG_SSA_ENCODER=0
CFLAGS += -DCONFIG_ASS_ENCODER=0
endif

ifeq ($(HAVE_WAVPACK),1)
CFLAGS += -DCONFIG_WAVPACK_ENCODER=1
CFLAGS += -DCONFIG_LIBWAVPACK_ENCODER=1
else
CFLAGS += -DCONFIG_WAVPACK_ENCODER=0
CFLAGS += -DCONFIG_LIBWAVPACK_ENCODER=0
endif

ifeq ($(HAVE_LIBFLAC),1)
CFLAGS += -DCONFIG_FLAC_ENCODER=1 \
			 -DCONFIG_FLAC_PARSER=1
else
CFLAGS += -DCONFIG_FLAC_ENCODER=0 \
			 -DCONFIG_FLAC_PARSER=0
endif

ifeq ($(HAVE_LIBWEBP),1)
CFLAGS += -DCONFIG_LIBWEBP_ENCODER=1
else
CFLAGS += -DCONFIG_LIBWEBP_ENCODER=0
endif

ifeq ($(HAVE_VPX),1)
CFLAGS += -DCONFIG_LIBVPX_VP8_ENCODER=1 \
			 -DCONFIG_LIBVPX_VP9_ENCODER=1
else
CFLAGS += -DCONFIG_LIBVPX_VP8_ENCODER=0 \
			 -DCONFIG_LIBVPX_VP9_ENCODER=0
endif

ifeq ($(HAVE_LIBFAAC),1)
CFLAGS += -DCONFIG_LIBFAAC_ENCODER=1
else
CFLAGS += -DCONFIG_LIBFAAC_ENCODER=0
endif
ifeq ($(HAVE_LIBX264),1)
CFLAGS += \
			 -DCONFIG_LIBX264_ENCODER=1 \
			 -DCONFIG_LIBX264RGB_ENCODER=1
else
CFLAGS += \
			 -DCONFIG_LIBX264_ENCODER=0 \
			 -DCONFIG_LIBX264RGB_ENCODER=0
endif

ifeq ($(HAVE_LIBX265),1)
CFLAGS += -DCONFIG_LIBX265_ENCODER=1
else
CFLAGS += -DCONFIG_LIBX265_ENCODER=0
endif

ifeq ($(HAVE_LIBSPEEX),1)
CFLAGS += -DCONFIG_LIBSPEEX_ENCODER=1
else
CFLAGS += -DCONFIG_LIBSPEEX_ENCODER=0
endif


ifeq ($(HAVE_LIBOPUS),1)
CFLAGS += -DCONFIG_LIBOPUS_ENCODER=1 -DCONFIG_OPUS_PARSER=1 -DCONFIG_OPUS_DECODER=1
else
CFLAGS += -DCONFIG_LIBOPUS_ENCODER=0 -DCONFIG_OPUS_PARSER=0 -DCONFIG_OPUS_DECODER=0
endif

# Decoder switches

CFLAGS += \
			 -DCONFIG_ALIAS_PIX_DECODER=1 \
			 -DCONFIG_AC3_FIXED_DECODER=1 \
			 -DCONFIG_ATRAC3P_DECODER=1 \
			 -DCONFIG_DSD_LSBF_DECODER=1 \
			 -DCONFIG_DSD_MSBF_DECODER=1 \
			 -DCONFIG_DSD_LSBF_PLANAR_DECODER=1 \
			 -DCONFIG_DSD_MSBF_PLANAR_DECODER=1 \
			 -DCONFIG_ADPCM_VIMA_DECODER=1 \
			 -DCONFIG_ON2AVC_DECODER=1 \
			 -DCONFIG_AASC_DECODER=1 \
			 -DCONFIG_AIC_DECODER=1 \
			 -DCONFIG_AMV_DECODER=1 \
			 -DCONFIG_ANM_DECODER=1 \
			 -DCONFIG_ANSI_DECODER=1 \
			 -DCONFIG_ASV1_DECODER=1 \
			 -DCONFIG_ASV2_DECODER=1 \
			 -DCONFIG_AURA_DECODER=1 \
			 -DCONFIG_AURA2_DECODER=1 \
			 -DCONFIG_AVRP_DECODER=1 \
			 -DCONFIG_AVRN_DECODER=1 \
			 -DCONFIG_AVS_DECODER=1 \
			 -DCONFIG_AVUI_DECODER=1 \
			 -DCONFIG_AYUV_DECODER=1 \
			 -DCONFIG_BETHSOFTVID_DECODER=1 \
			 -DCONFIG_BFI_DECODER=1 \
			 -DCONFIG_BINK_DECODER=1 \
			 -DCONFIG_BMP_DECODER=1 \
			 -DCONFIG_BMV_VIDEO_DECODER=1 \
			 -DCONFIG_BRENDER_PIX_DECODER=1 \
			 -DCONFIG_C93_DECODER=1 \
			 -DCONFIG_CAVS_DECODER=1 \
			 -DCONFIG_CDGRAPHICS_DECODER=1 \
			 -DCONFIG_CDXL_DECODER=1 \
			 -DCONFIG_CINEPAK_DECODER=1 \
			 -DCONFIG_CLJR_DECODER=1 \
			 -DCONFIG_CLLC_DECODER=1 \
			 -DCONFIG_COMFORTNOISE_DECODER=1 \
			 -DCONFIG_CPIA_DECODER=1 \
			 -DCONFIG_CSCD_DECODER=1 \
			 -DCONFIG_CYUV_DECODER=1 \
			 -DCONFIG_DFA_DECODER=1 \
			 -DCONFIG_DIRAC_DECODER=1 \
			 -DCONFIG_DNXHD_DECODER=1 \
			 -DCONFIG_DPX_DECODER=1 \
			 -DCONFIG_DSICINVIDEO_DECODER=1 \
			 -DCONFIG_DVVIDEO_DECODER=1 \
			 -DCONFIG_DXA_DECODER=0 \
			 -DCONFIG_DXTORY_DECODER=1 \
			 -DCONFIG_EACMV_DECODER=1 \
			 -DCONFIG_EAMAD_DECODER=1 \
			 -DCONFIG_EATGQ_DECODER=1 \
			 -DCONFIG_EATGV_DECODER=1 \
			 -DCONFIG_EATQI_DECODER=1 \
			 -DCONFIG_EIGHTBPS_DECODER=1 \
			 -DCONFIG_EIGHTSVX_EXP_DECODER=1 \
			 -DCONFIG_EIGHTSVX_FIB_DECODER=1 \
			 -DCONFIG_ESCAPE124_DECODER=1 \
			 -DCONFIG_ESCAPE130_DECODER=1 \
			 -DCONFIG_EXR_DECODER=1 \
			 -DCONFIG_FFV1_DECODER=1 \
			 -DCONFIG_FFVHUFF_DECODER=1 \
			 -DCONFIG_FIC_DECODER=1 \
			 -DCONFIG_FLASHSV_DECODER=1 \
			 -DCONFIG_FLASHSV2_DECODER=1 \
			 -DCONFIG_FLIC_DECODER=1 \
			 -DCONFIG_FLV_DECODER=1 \
			 -DCONFIG_FOURXM_DECODER=1 \
			 -DCONFIG_FRAPS_DECODER=1 \
			 -DCONFIG_FRWU_DECODER=1 \
			 -DCONFIG_G2M_DECODER=1 \
			 -DCONFIG_GIF_DECODER=1 \
			 -DCONFIG_H261_DECODER=1 \
			 -DCONFIG_H263_DECODER=1 \
			 -DCONFIG_H263I_DECODER=1 \
			 -DCONFIG_H263P_DECODER=1 \
			 -DCONFIG_H264_DECODER=1 \
			 -DCONFIG_H264_CRYSTALHD_DECODER=0 \
			 -DCONFIG_H264_VDA_OLD_HWACCEL=0 \
			 -DCONFIG_H264_VDA_DECODER=0 \
			 -DCONFIG_HEVC_DECODER=1 \
			 -DCONFIG_HNM4_VIDEO_DECODER=1 \
			 -DCONFIG_HUFFYUV_DECODER=1 \
			 -DCONFIG_IDCIN_DECODER=1 \
			 -DCONFIG_IFF_BYTERUN1_DECODER=1 \
			 -DCONFIG_IFF_ILBM_DECODER=1 \
			 -DCONFIG_INDEO2_DECODER=1 \
			 -DCONFIG_INDEO3_DECODER=1 \
			 -DCONFIG_INDEO4_DECODER=1 \
			 -DCONFIG_INDEO5_DECODER=1 \
			 -DCONFIG_INTERPLAY_VIDEO_DECODER=1 \
			 -DCONFIG_JPEG2000_DECODER=1 \
			 -DCONFIG_JPEGLS_DECODER=1 \
			 -DCONFIG_JV_DECODER=1 \
			 -DCONFIG_KGV1_DECODER=1 \
			 -DCONFIG_KMVC_DECODER=1 \
			 -DCONFIG_LAGARITH_DECODER=1 \
			 -DCONFIG_LOCO_DECODER=1 \
			 -DCONFIG_MDEC_DECODER=1 \
			 -DCONFIG_MIMIC_DECODER=1 \
			 -DCONFIG_MJPEG_DECODER=1 \
			 -DCONFIG_MJPEGB_DECODER=1 \
			 -DCONFIG_MMVIDEO_DECODER=1 \
			 -DCONFIG_MOTIONPIXELS_DECODER=1 \
			 -DCONFIG_MPEG_XVMC_DECODER=1 \
			 -DCONFIG_MPEG1VIDEO_DECODER=1 \
			 -DCONFIG_MPEG2VIDEO_DECODER=1 \
			 -DCONFIG_MPEG4_DECODER=1 \
			 -DCONFIG_MPEG4_CRYSTALHD_DECODER=0 \
			 -DCONFIG_MPEGVIDEO_DECODER=1 \
			 -DCONFIG_MPEG2_CRYSTALHD_DECODER=0 \
			 -DCONFIG_MSA1_DECODER=1 \
			 -DCONFIG_MSMPEG4_CRYSTALHD_DECODER=0 \
			 -DCONFIG_MSMPEG4V1_DECODER=1 \
			 -DCONFIG_MSMPEG4V2_DECODER=1 \
			 -DCONFIG_MSMPEG4V3_DECODER=1 \
			 -DCONFIG_MSRLE_DECODER=1 \
			 -DCONFIG_MSS1_DECODER=1 \
			 -DCONFIG_MSS2_DECODER=1 \
			 -DCONFIG_MSVIDEO1_DECODER=1 \
			 -DCONFIG_MSZH_DECODER=1 \
			 -DCONFIG_MTS2_DECODER=1 \
			 -DCONFIG_MVC1_DECODER=1 \
			 -DCONFIG_MVC2_DECODER=1 \
			 -DCONFIG_MXPEG_DECODER=1 \
			 -DCONFIG_NUV_DECODER=1 \
			 -DCONFIG_PAF_VIDEO_DECODER=1 \
			 -DCONFIG_PAM_DECODER=1 \
			 -DCONFIG_PBM_DECODER=1 \
			 -DCONFIG_PCX_DECODER=1 \
			 -DCONFIG_PGM_DECODER=1 \
			 -DCONFIG_PGMYUV_DECODER=1 \
			 -DCONFIG_PICTOR_DECODER=1 \
			 -DCONFIG_PNG_DECODER=1 \
			 -DCONFIG_PPM_DECODER=1 \
			 -DCONFIG_PRORES_DECODER=1 \
			 -DCONFIG_PRORES_LGPL_DECODER=1 \
			 -DCONFIG_PTX_DECODER=1 \
			 -DCONFIG_QDRAW_DECODER=1 \
			 -DCONFIG_QPEG_DECODER=1 \
			 -DCONFIG_QTRLE_DECODER=1 \
			 -DCONFIG_R10K_DECODER=1 \
			 -DCONFIG_R210_DECODER=1 \
			 -DCONFIG_RAWVIDEO_DECODER=1 \
			 -DCONFIG_RL2_DECODER=1 \
			 -DCONFIG_ROQ_DECODER=1 \
			 -DCONFIG_RPZA_DECODER=1 \
			 -DCONFIG_RV10_DECODER=1 \
			 -DCONFIG_RV20_DECODER=1 \
			 -DCONFIG_RV30_DECODER=1 \
			 -DCONFIG_RV40_DECODER=1 \
			 -DCONFIG_S302M_DECODER=1 \
			 -DCONFIG_SANM_DECODER=1 \
			 -DCONFIG_SGI_DECODER=1 \
			 -DCONFIG_SGIRLE_DECODER=1 \
			 -DCONFIG_SMACKER_DECODER=1 \
			 -DCONFIG_SMC_DECODER=1 \
			 -DCONFIG_SMVJPEG_DECODER=1 \
			 -DCONFIG_SNOW_DECODER=1 \
			 -DCONFIG_SP5X_DECODER=1 \
			 -DCONFIG_SUNRAST_DECODER=1 \
			 -DCONFIG_SVQ1_DECODER=1 \
			 -DCONFIG_SVQ3_DECODER=1 \
			 -DCONFIG_TARGA_DECODER=1 \
			 -DCONFIG_TARGA_Y216_DECODER=1 \
			 -DCONFIG_THP_DECODER=1 \
			 -DCONFIG_TIERTEXSEQVIDEO_DECODER=1 \
			 -DCONFIG_TIFF_DECODER=1 \
			 -DCONFIG_TMV_DECODER=1 \
			 -DCONFIG_TRUEMOTION1_DECODER=1 \
			 -DCONFIG_TRUEMOTION2_DECODER=1 \
			 -DCONFIG_TSCC_DECODER=1 \
			 -DCONFIG_TSCC2_DECODER=1 \
			 -DCONFIG_TXD_DECODER=1 \
			 -DCONFIG_ULTI_DECODER=1 \
			 -DCONFIG_UTVIDEO_DECODER=1 \
			 -DCONFIG_V210_DECODER=1 \
			 -DCONFIG_V210X_DECODER=1 \
			 -DCONFIG_V308_DECODER=1 \
			 -DCONFIG_V408_DECODER=1 \
			 -DCONFIG_V410_DECODER=1 \
			 -DCONFIG_VB_DECODER=1 \
			 -DCONFIG_VBLE_DECODER=1 \
			 -DCONFIG_VC1_DECODER=1 \
			 -DCONFIG_VC1_CRYSTALHD_DECODER=0 \
			 -DCONFIG_VC1IMAGE_DECODER=1 \
			 -DCONFIG_VCR1_DECODER=1 \
			 -DCONFIG_VMDVIDEO_DECODER=1 \
			 -DCONFIG_VMNC_DECODER=1 \
			 -DCONFIG_VP3_DECODER=1 \
			 -DCONFIG_VP5_DECODER=1 \
			 -DCONFIG_VP6_DECODER=1 \
			 -DCONFIG_VP6A_DECODER=1 \
			 -DCONFIG_VP6F_DECODER=1 \
			 -DCONFIG_VP7_DECODER=1 \
			 -DCONFIG_VP8_DECODER=1 \
			 -DCONFIG_VP9_DECODER=1 \
			 -DCONFIG_VQA_DECODER=1 \
			 -DCONFIG_WMV1_DECODER=1 \
			 -DCONFIG_WMV2_DECODER=1 \
			 -DCONFIG_WMV3_DECODER=1 \
			 -DCONFIG_WMV3_CRYSTALHD_DECODER=0 \
			 -DCONFIG_WMV3IMAGE_DECODER=1 \
			 -DCONFIG_WNV1_DECODER=1 \
			 -DCONFIG_XAN_WC3_DECODER=1 \
			 -DCONFIG_XAN_WC4_DECODER=1 \
			 -DCONFIG_XBM_DECODER=1 \
			 -DCONFIG_XFACE_DECODER=1 \
			 -DCONFIG_XL_DECODER=1 \
			 -DCONFIG_XWD_DECODER=1 \
			 -DCONFIG_Y41P_DECODER=1 \
			 -DCONFIG_YOP_DECODER=1 \
			 -DCONFIG_YUV4_DECODER=1 \
			 -DCONFIG_ZERO12V_DECODER=1 \
			 -DCONFIG_ZEROCODEC_DECODER=1 \
			 -DCONFIG_ZMBV_DECODER=1 \
			 -DCONFIG_AAC_DECODER=1 \
			 -DCONFIG_AAC_LATM_DECODER=1 \
			 -DCONFIG_AC3_DECODER=1 \
			 -DCONFIG_ALAC_DECODER=1 \
			 -DCONFIG_ALS_DECODER=1 \
			 -DCONFIG_AMRNB_DECODER=1 \
			 -DCONFIG_AMRWB_DECODER=1 \
			 -DCONFIG_APE_DECODER=1 \
			 -DCONFIG_ATRAC1_DECODER=1 \
			 -DCONFIG_ATRAC3_DECODER=1 \
			 -DCONFIG_BINKAUDIO_DCT_DECODER=1 \
			 -DCONFIG_BINKAUDIO_RDFT_DECODER=1 \
			 -DCONFIG_BMV_AUDIO_DECODER=1 \
			 -DCONFIG_COOK_DECODER=1 \
			 -DCONFIG_DCA_DECODER=1 \
			 -DCONFIG_DSICINAUDIO_DECODER=1 \
			 -DCONFIG_EAC3_DECODER=1 \
			 -DCONFIG_EVRC_DECODER=1 \
			 -DCONFIG_FFWAVESYNTH_DECODER=1 \
			 -DCONFIG_G723_1_DECODER=1 \
			 -DCONFIG_G729_DECODER=1 \
			 -DCONFIG_GSM_DECODER=1 \
			 -DCONFIG_GSM_MS_DECODER=1 \
			 -DCONFIG_IAC_DECODER=1 \
			 -DCONFIG_IMC_DECODER=1 \
			 -DCONFIG_MACE3_DECODER=1 \
			 -DCONFIG_MACE6_DECODER=1 \
			 -DCONFIG_METASOUND_DECODER=1 \
			 -DCONFIG_MLP_DECODER=1 \
			 -DCONFIG_MP1_DECODER=1 \
			 -DCONFIG_MP1FLOAT_DECODER=1 \
			 -DCONFIG_MP2_DECODER=1 \
			 -DCONFIG_MP2FLOAT_DECODER=1 \
			 -DCONFIG_MP3_DECODER=1 \
			 -DCONFIG_MP3FLOAT_DECODER=1 \
			 -DCONFIG_MP3ADU_DECODER=1 \
			 -DCONFIG_MP3ADUFLOAT_DECODER=1 \
			 -DCONFIG_MP3ON4_DECODER=1 \
			 -DCONFIG_MP3ON4FLOAT_DECODER=1 \
			 -DCONFIG_MPC7_DECODER=1 \
			 -DCONFIG_MPC8_DECODER=1 \
			 -DCONFIG_NELLYMOSER_DECODER=1 \
			 -DCONFIG_PAF_AUDIO_DECODER=1 \
			 -DCONFIG_QCELP_DECODER=1 \
			 -DCONFIG_QDM2_DECODER=1 \
			 -DCONFIG_RA_144_DECODER=1 \
			 -DCONFIG_RA_288_DECODER=1 \
			 -DCONFIG_RALF_DECODER=1 \
			 -DCONFIG_SHORTEN_DECODER=1 \
			 -DCONFIG_SIPR_DECODER=1 \
			 -DCONFIG_SMACKAUD_DECODER=1 \
			 -DCONFIG_SONIC_DECODER=1 \
			 -DCONFIG_TAK_DECODER=1 \
			 -DCONFIG_TRUEHD_DECODER=1 \
			 -DCONFIG_TRUESPEECH_DECODER=1 \
			 -DCONFIG_TTA_DECODER=1 \
			 -DCONFIG_TWINVQ_DECODER=1 \
			 -DCONFIG_VMDAUDIO_DECODER=1 \
			 -DCONFIG_WMALOSSLESS_DECODER=1 \
			 -DCONFIG_WMAPRO_DECODER=1 \
			 -DCONFIG_WMAV1_DECODER=1 \
			 -DCONFIG_WMAV2_DECODER=1 \
			 -DCONFIG_WMAVOICE_DECODER=1 \
			 -DCONFIG_WS_SND1_DECODER=1 \
			 -DCONFIG_PCM_ALAW_DECODER=1 \
			 -DCONFIG_PCM_BLURAY_DECODER=1 \
			 -DCONFIG_PCM_DVD_DECODER=1 \
			 -DCONFIG_PCM_F32BE_DECODER=1 \
			 -DCONFIG_PCM_F32LE_DECODER=1 \
			 -DCONFIG_PCM_F64BE_DECODER=1 \
			 -DCONFIG_PCM_F64LE_DECODER=1 \
			 -DCONFIG_PCM_LXF_DECODER=1 \
			 -DCONFIG_PCM_MULAW_DECODER=1 \
			 -DCONFIG_PCM_S8_DECODER=1 \
			 -DCONFIG_PCM_S8_PLANAR_DECODER=1 \
			 -DCONFIG_PCM_S16BE_DECODER=1 \
			 -DCONFIG_PCM_S16BE_PLANAR_DECODER=1 \
			 -DCONFIG_PCM_S16LE_DECODER=1 \
			 -DCONFIG_PCM_S16LE_PLANAR_DECODER=1 \
			 -DCONFIG_PCM_S24BE_DECODER=1 \
			 -DCONFIG_PCM_S24DAUD_DECODER=1 \
			 -DCONFIG_PCM_S24LE_DECODER=1 \
			 -DCONFIG_PCM_S24LE_PLANAR_DECODER=1 \
			 -DCONFIG_PCM_S32BE_DECODER=1 \
			 -DCONFIG_PCM_S32LE_DECODER=1 \
			 -DCONFIG_PCM_S32LE_PLANAR_DECODER=1 \
			 -DCONFIG_PCM_U8_DECODER=1 \
			 -DCONFIG_PCM_U16BE_DECODER=1 \
			 -DCONFIG_PCM_U16LE_DECODER=1 \
			 -DCONFIG_PCM_U24BE_DECODER=1 \
			 -DCONFIG_PCM_U24LE_DECODER=1 \
			 -DCONFIG_PCM_U32BE_DECODER=1 \
			 -DCONFIG_PCM_U32LE_DECODER=1 \
			 -DCONFIG_PCM_ZORK_DECODER=1 \
			 -DCONFIG_INTERPLAY_DPCM_DECODER=1 \
			 -DCONFIG_ROQ_DPCM_DECODER=1 \
			 -DCONFIG_SOL_DPCM_DECODER=1 \
			 -DCONFIG_XAN_DPCM_DECODER=1 \
			 -DCONFIG_ADPCM_4XM_DECODER=1 \
			 -DCONFIG_ADPCM_ADX_DECODER=1 \
			 -DCONFIG_ADPCM_AFC_DECODER=1 \
			 -DCONFIG_ADPCM_CT_DECODER=1 \
			 -DCONFIG_ADPCM_DTK_DECODER=1 \
			 -DCONFIG_ADPCM_EA_DECODER=1 \
			 -DCONFIG_ADPCM_EA_MAXIS_XA_DECODER=1 \
			 -DCONFIG_ADPCM_EA_R1_DECODER=1 \
			 -DCONFIG_ADPCM_EA_R2_DECODER=1 \
			 -DCONFIG_ADPCM_EA_R3_DECODER=1 \
			 -DCONFIG_ADPCM_EA_XAS_DECODER=1 \
			 -DCONFIG_ADPCM_G722_DECODER=1 \
			 -DCONFIG_ADPCM_G726_DECODER=1 \
			 -DCONFIG_ADPCM_G726LE_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_AMV_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_APC_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_DK3_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_DK4_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_EA_EACS_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_EA_SEAD_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_ISS_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_OKI_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_QT_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_RAD_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_SMJPEG_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_WAV_DECODER=1 \
			 -DCONFIG_ADPCM_IMA_WS_DECODER=1 \
			 -DCONFIG_ADPCM_MS_DECODER=1 \
			 -DCONFIG_ADPCM_SBPRO_2_DECODER=1 \
			 -DCONFIG_ADPCM_SBPRO_3_DECODER=1 \
			 -DCONFIG_ADPCM_SBPRO_4_DECODER=1 \
			 -DCONFIG_ADPCM_SWF_DECODER=1 \
			 -DCONFIG_ADPCM_THP_DECODER=1 \
			 -DCONFIG_ADPCM_XA_DECODER=1 \
			 -DCONFIG_ADPCM_YAMAHA_DECODER=1 \
			 -DCONFIG_VIMA_DECODER=1 \
			 -DCONFIG_DVBSUB_DECODER=1 \
			 -DCONFIG_DVDSUB_DECODER=1 \
			 -DCONFIG_JACOSUB_DECODER=1 \
			 -DCONFIG_MICRODVD_DECODER=1 \
			 -DCONFIG_MOVTEXT_DECODER=1 \
			 -DCONFIG_MPL2_DECODER=1 \
			 -DCONFIG_PGSSUB_DECODER=1 \
			 -DCONFIG_PJS_DECODER=1 \
			 -DCONFIG_REALTEXT_DECODER=1 \
			 -DCONFIG_SAMI_DECODER=1 \
			 -DCONFIG_SRT_DECODER=1 \
			 -DCONFIG_SUBRIP_DECODER=1 \
			 -DCONFIG_SUBVIEWER_DECODER=1 \
			 -DCONFIG_SUBVIEWER1_DECODER=1 \
			 -DCONFIG_TEXT_DECODER=1 \
			 -DCONFIG_VPLAYER_DECODER=1 \
			 -DCONFIG_WEBVTT_ENCODER=1 \
			 -DCONFIG_WEBVTT_DECODER=1 \
			 -DCONFIG_XSUB_DECODER=1 \
			 -DCONFIG_LIBCELT_DECODER=0 \
			 -DCONFIG_LIBFDK_AAC_DECODER=0 \
			 -DCONFIG_LIBGSM_DECODER=0 \
			 -DCONFIG_LIBGSM_MS_DECODER=0 \
			 -DCONFIG_LIBILBC_DECODER=0 \
			 -DCONFIG_LIBOPENCORE_AMRNB_DECODER=0 \
			 -DCONFIG_LIBOPENCORE_AMRWB_DECODER=0 \
			 -DCONFIG_LIBOPENJPEG_DECODER=0 \
			 -DCONFIG_LIBSCHROEDINGER_DECODER=0 \
			 -DCONFIG_LIBSTAGEFRIGHT_H264_DECODER=0 \
			 -DCONFIG_LIBUTVIDEO_DECODER=0 \
			 -DCONFIG_LIBZVBI_TELETEXT_DECODER=0 \
			 -DCONFIG_BINTEXT_DECODER=1 \
			 -DCONFIG_XBIN_DECODER=1 \
			 -DCONFIG_IDF_DECODER=1 

ifeq ($(HAVE_ZLIB),1)
CFLAGS += -DCONFIG_ZLIB_DECODER=1
else
CFLAGS += -DCONFIG_ZLIB_DECODER=0
endif

ifeq ($(HAVE_SSA),1)
CFLAGS += -DCONFIG_SSA_DECODER=1
CFLAGS += -DCONFIG_ASS_DECODER=1
else
CFLAGS += -DCONFIG_SSA_DECODER=0
CFLAGS += -DCONFIG_ASS_DECODER=0
endif

ifeq ($(HAVE_WAVPACK),1)
CFLAGS += -DCONFIG_WAVPACK_DECODER=1
else
CFLAGS += -DCONFIG_WAVPACK_DECODER=0
endif

ifeq ($(HAVE_LIBFLAC),1)
CFLAGS += -DCONFIG_FLAC_DECODER=1
else
CFLAGS += -DCONFIG_FLAC_DECODER=0
endif

ifeq ($(HAVE_LIBWEBP),1)
CFLAGS += -DCONFIG_WEBP_DECODER=1
else
CFLAGS += -DCONFIG_WEBP_DECODER=0
endif

ifeq ($(HAVE_VPX),1)
CFLAGS += \
			 -DCONFIG_LIBVPX_VP8_DECODER=1 \
			 -DCONFIG_LIBVPX_VP9_DECODER=1
else
CFLAGS += -DCONFIG_LIBVPX_VP8_DECODER=0 \
			 -DCONFIG_LIBVPX_VP9_DECODER=0
endif

ifeq ($(HAVE_LIBSPEEX),1)
CFLAGS += -DCONFIG_LIBSPEEX_DECODER=1
else
CFLAGS += -DCONFIG_LIBSPEEX_DECODER=0
endif

ifeq ($(HAVE_LIBOPUS),1)
CFLAGS += -DCONFIG_OPUS_MUXER=1
CFLAGS += -DCONFIG_LIBOPUS_DECODER=1
else
CFLAGS += -DCONFIG_LIBOPUS_DECODER=0
CFLAGS += -DCONFIG_OPUS_MUXER=0
endif

AVFORMAT_DIR   := ../libavformat
AVCODEC_DIR    := ../libavcodec
AVUTIL_DIR     := ../libavutil
SWSCALE_DIR    := ../libswscale
SWRESAMPLE_DIR := ../libswresample
BASE_DIR := ../

#libavutil
ifeq ($(INTERNAL_LIBAVUTIL),1)
CFLAGS += -DHAVE_AV_CONFIG_H

LIBAVUTIL_SOURCE += \
						  $(AVUTIL_DIR)/downmix_info.c \
						  $(AVUTIL_DIR)/xga_font_data.c \
						  $(AVUTIL_DIR)/intfloat_readwrite.c \
						  $(AVUTIL_DIR)/intmath.c \
						  $(AVUTIL_DIR)/atomic.c \
						  $(AVUTIL_DIR)/audio_fifo.c \
						  $(AVUTIL_DIR)/adler32.c \
						  $(AVUTIL_DIR)/aes.c \
						  $(AVUTIL_DIR)/lls.c \
						  $(AVUTIL_DIR)/lzo.c \
						  $(AVUTIL_DIR)/fixed_dsp.c \
						  $(AVUTIL_DIR)/avstring.c \
						  $(AVUTIL_DIR)/base64.c \
						  $(AVUTIL_DIR)/buffer.c \
						  $(AVUTIL_DIR)/crc.c \
						  $(AVUTIL_DIR)/des.c \
						  $(AVUTIL_DIR)/dict.c \
						  $(AVUTIL_DIR)/eval.c \
						  $(AVUTIL_DIR)/error.c \
						  $(AVUTIL_DIR)/file.c \
						  $(AVUTIL_DIR)/file_open.c \
						  $(AVUTIL_DIR)/fifo.c \
						  $(AVUTIL_DIR)/float_dsp.c \
						  $(AVUTIL_DIR)/frame.c \
						  $(AVUTIL_DIR)/hash.c \
						  $(AVUTIL_DIR)/display.c \
						  $(AVUTIL_DIR)/hmac.c \
						  $(AVUTIL_DIR)/lfg.c \
						  $(AVUTIL_DIR)/mathematics.c \
						  $(AVUTIL_DIR)/mem.c \
						  $(AVUTIL_DIR)/murmur3.c \
						  $(AVUTIL_DIR)/channel_layout.c \
						  $(AVUTIL_DIR)/opt.c \
						  $(AVUTIL_DIR)/sha.c \
						  $(AVUTIL_DIR)/sha512.c \
						  $(AVUTIL_DIR)/bprint.c \
						  $(AVUTIL_DIR)/parseutils.c \
						  $(AVUTIL_DIR)/random_seed.c \
						  $(AVUTIL_DIR)/rc4.c \
						  $(AVUTIL_DIR)/pixdesc.c \
						  $(AVUTIL_DIR)/rational.c \
						  $(AVUTIL_DIR)/ripemd.c \
						  $(AVUTIL_DIR)/imgutils.c \
						  $(AVUTIL_DIR)/samplefmt.c \
						  $(AVUTIL_DIR)/log.c \
						  $(AVUTIL_DIR)/stereo3d.c \
						  $(AVUTIL_DIR)/cpu.c \
						  $(AVUTIL_DIR)/time.c \
						  $(AVUTIL_DIR)/timecode.c \
						  $(AVUTIL_DIR)/tree.c \
						  $(AVUTIL_DIR)/utils.c \
						  $(AVUTIL_DIR)/md5.c \
						  $(AVUTIL_DIR)/log2_tab.c

ifeq ($(ARCH_X86),1)
			 LIBAVUTIL_SOURCE += \
						  $(AVUTIL_DIR)/x86/cpu.c \
						  $(AVUTIL_DIR)/x86/lls_init.c \
						  $(AVUTIL_DIR)/x86/float_dsp_init.c
endif


ifeq ($(ARCH_PPC),1)
			LIBAVUTIL_SOURCE += $(AVUTIL_DIR)/ppc/cpu.c \
						 $(AVUTIL_DIR)/ppc/float_dsp_init.c
endif

ifeq ($(HAVE_ALTIVEC),1)
			LIBAVUTIL_SOURCE += $(AVUTIL_DIR)/ppc/float_dsp_altivec.c
endif

ifeq ($(ARCH_ARM),1)
			 LIBAVUTIL_SOURCE += $(AVUTIL_DIR)/arm/cpu.c
endif

endif

#libswscale
ifeq ($(INTERNAL_LIBSWSCALE),1)
CFLAGS += -DHAVE_SWSCALE_H -DCONFIG_SWSCALE_ALPHA=1 -DSWS_MAX_FILTER_SIZE=256
LIBSWSCALE_SOURCE += $(SWSCALE_DIR)/input.c \
			 $(SWSCALE_DIR)/options.c \
			 $(SWSCALE_DIR)/output.c \
			 $(SWSCALE_DIR)/rgb2rgb.c \
			 $(SWSCALE_DIR)/swscale.c \
			 $(SWSCALE_DIR)/swscale_unscaled.c \
			 $(SWSCALE_DIR)/utils.c \
			 $(SWSCALE_DIR)/hscale_fast_bilinear.c \
			 $(SWSCALE_DIR)/yuv2rgb.c

ifeq ($(ARCH_X86),1)
			 LIBSWSCALE_SOURCE += $(SWSCALE_DIR)/x86/rgb2rgb.c \
				 			$(SWSCALE_DIR)/x86/swscale.c \
							$(SWSCALE_DIR)/x86/yuv2rgb.c
endif

ifeq ($(ARCH_ARM),1)
			 LIBSWSCALE_SOURCE += $(SWSCALE_DIR)/arm/swscale_unscaled.c
endif
endif

#libswresample
ifeq ($(INTERNAL_LIBSWRESAMPLE),1)
LIBSWRESAMPLE_SOURCE += $(SWRESAMPLE_DIR)/audioconvert.c \
			 $(SWRESAMPLE_DIR)/dither.c \
			 $(SWRESAMPLE_DIR)/rematrix.c \
			 $(SWRESAMPLE_DIR)/resample.c \
			 $(SWRESAMPLE_DIR)/options.c \
			 $(SWRESAMPLE_DIR)/swresample.c
endif

#libavformat
ifeq ($(INTERNAL_LIBAVFORMAT),1)
CFLAGS += -DHAVE_AVFORMAT_H
CFLAGS += -DCONFIG_MUXERS=1

AVFORMAT_BLACKLIST := \
	$(AVFORMAT_DIR)/bluray.c \
	$(AVFORMAT_DIR)/libnut.c \
	$(AVFORMAT_DIR)/file_open.c \
	$(AVFORMAT_DIR)/tls.c \
	$(AVFORMAT_DIR)/golomb_tab.c \
	$(AVFORMAT_DIR)/libgme.c \
	$(AVFORMAT_DIR)/libquvi.c \
	$(AVFORMAT_DIR)/libmodplug.c \
	$(AVFORMAT_DIR)/librtmp.c \
	$(AVFORMAT_DIR)/libssh.c \
	$(AVFORMAT_DIR)/avisynth.c \
	$(AVFORMAT_DIR)/log2_tab.c \
	$(AVFORMAT_DIR)/rtmpd.c \
	$(AVFORMAT_DIR)/noproxy-test.c \
	$(AVFORMAT_DIR)/seek-test.c \
	$(AVFORMAT_DIR)/rtmpdh.c \
	$(AVFORMAT_DIR)/rtmpcrypt.c \
	$(AVFORMAT_DIR)/libsmbclient.c \
	$(AVFORMAT_DIR)/url-test.c \
	$(AVFORMAT_DIR)/sctp.c

ifneq ($(INTERNAL_LIBAVCODEC),1)
LIBAVFORMAT_SOURCE += $(AVCODEC_DIR)/exif.c $(AVCODEC_DIR)/tiff_common.c $(AVCODEC_DIR)/raw.c
endif

ifneq ($(HAVE_POLL_H),1)
AVFORMAT_BLACKLIST += $(AVFORMAT_DIR)/sapdec.c
endif

LIBAVFORMAT_SOURCE += $(filter-out $(AVFORMAT_BLACKLIST),$(wildcard $(AVFORMAT_DIR)/*.c))
endif

#libavcodec
ifeq ($(INTERNAL_LIBAVCODEC),1)
CFLAGS += -DHAVE_AVCODEC_H \
			 -DCONFIG_ENCODERS=1 \
			 -DCONFIG_DECODERS=1 \
			 -DCONFIG_MDCT=1 \
			 -DCONFIG_RDFT=1 \
			 -DCONFIG_RUNTIME_CPUDETECT=1 \
			 -DCONFIG_GRAY=1 \
			 -DCONFIG_XVMC=0 \
			 -DCONFIG_DSPUTIL=1 \
			 -DCONFIG_FRAME_THREAD_ENCODER=1 \
			 -DCONFIG_ERROR_RESILIENCE=1 \
			 -DCONFIG_MPEGVIDEO=1 \
			 -DCONFIG_MPEGVIDEOENC=1 \
			 -DCONFIG_LIBSHINE=0 \
			 -DCONFIG_GOLOMB=1 \
			 -DCONFIG_ME_CMP=0

AVCODEC_BLACKLIST := \
	$(AVCODEC_DIR)/vda.c \
	$(AVCODEC_DIR)/libgsm.c \
	$(AVCODEC_DIR)/libvo-aacenc.c \
	$(AVCODEC_DIR)/libvo-amrwbenc.c \
	$(AVCODEC_DIR)/qpel_template.c \
	$(AVCODEC_DIR)/x86/diracdsp_mmx.c \
	$(AVCODEC_DIR)/x86/mpegvideoenc_qns_template.c \
	$(AVCODEC_DIR)/dsputil_template.c \
	$(AVCODEC_DIR)/libcelt_dec.c \
	$(AVCODEC_DIR)/fft-fixed-test.c \
	$(AVCODEC_DIR)/fft_template.c \
	$(AVCODEC_DIR)/ac3enc_template.c \
	$(AVCODEC_DIR)/jfdctint_template.c \
	$(AVCODEC_DIR)/fft-test.c \
	$(AVCODEC_DIR)/x86/dct-test.c \
	$(AVCODEC_DIR)/motion-test.c \
	$(AVCODEC_DIR)/aac_tablegen.c \
	$(AVCODEC_DIR)/aacsbr_tablegen.c \
	$(AVCODEC_DIR)/cos_tablegen.c \
	$(AVCODEC_DIR)/cabac_tablegen.c \
	$(AVCODEC_DIR)/dv_tablegen.c \
	$(AVCODEC_DIR)/dct32_template.c \
	$(AVCODEC_DIR)/fft-fixed32-test.c \
	$(AVCODEC_DIR)/mpegaudiodsp_fixed.c \
	$(AVCODEC_DIR)/motionpixels_tablegen.c \
	$(AVCODEC_DIR)/videodsp_template.c \
	$(AVCODEC_DIR)/log2_tab.c \
	$(AVCODEC_DIR)/mpegaudio_tablegen.c \
	$(AVCODEC_DIR)/cbrt_tablegen.c \
	$(AVCODEC_DIR)/dsd_tablegen.c \
	$(AVCODEC_DIR)/aacps_tablegen.c \
	$(AVCODEC_DIR)/qdm2_tablegen.c \
	$(AVCODEC_DIR)/sinewin_tablegen.c \
	$(AVCODEC_DIR)/pcm_tablegen.c \
	$(AVCODEC_DIR)/aacpsdata.c \
	$(AVCODEC_DIR)/mdct_template.c \
	$(AVCODEC_DIR)/libfdk-aacenc.c \
	$(AVCODEC_DIR)/libfdk-aacdec.c \
	$(AVCODEC_DIR)/libschroedingerenc.c \
	$(AVCODEC_DIR)/libschroedingerdec.c \
	$(AVCODEC_DIR)/libschroedinger.c \
	$(AVCODEC_DIR)/libopenjpegenc.c \
	$(AVCODEC_DIR)/libopenjpegdec.c \
	$(AVCODEC_DIR)/libaacplus.c \
	$(AVCODEC_DIR)/ac3enc_opts_template.c \
	$(AVCODEC_DIR)/h264idct_template.c \
	$(AVCODEC_DIR)/simple_idct_template.c \
	$(AVCODEC_DIR)/golomb-test.c \
	$(AVCODEC_DIR)/h264_mb_template.c \
	$(AVCODEC_DIR)/mpegaudiodec_template.c \
	$(AVCODEC_DIR)/hevcdsp_template.c \
	$(AVCODEC_DIR)/libshine.c \
	$(AVCODEC_DIR)/h264_mc_template.c \
	$(AVCODEC_DIR)/h264qpel_template.c \
	$(AVCODEC_DIR)/motion_est_template.c \
	$(AVCODEC_DIR)/hevcpred_template.c \
	$(AVCODEC_DIR)/libxavs.c \
	$(AVCODEC_DIR)/libzvbi-teletextdec.c \
	$(AVCODEC_DIR)/libilbc.c \
	$(AVCODEC_DIR)/crystalhd.c \
	$(AVCODEC_DIR)/vda_h264.c \
	$(AVCODEC_DIR)/vda_h264_dec.c \
	$(AVCODEC_DIR)/x86/rnd_template.c \
	$(AVCODEC_DIR)/x86/dsputil_qns_template.c \
	$(AVCODEC_DIR)/x86/mpegvideoenc_template.c \
	$(AVCODEC_DIR)/x86/hpeldsp_rnd_template.c \
	$(AVCODEC_DIR)/x86/w64xmmtest.c \
	$(AVCODEC_DIR)/dct-test.c

ifeq ($(HAVE_LIBTWOLAME),0)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/libtwolame.c
endif

ifeq ($(HAVE_LIBWEBP),0)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/libwebpenc.c
endif

ifeq ($(HAVE_LIBFAAC),0)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/libfaac.c
endif
ifeq ($(HAVE_LIBVORBIS),0)
	AVCODEC_BLACKLIST += \
								$(AVCODEC_DIR)/libvorbisenc.c \
								$(AVCODEC_DIR)/libvorbisdec.c
endif
ifeq ($(HAVE_LIBLAME),0)
	AVCODEC_BLACKLIST += \
								$(AVCODEC_DIR)/liblame.c \
								$(AVCODEC_DIR)/libmp3lame.c
endif

ifeq ($(HAVE_LIBX264),0)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/libx264.c
endif

ifeq ($(HAVE_LIBX265),0)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/libx265.c
endif

ifeq ($(HAVE_LIBSPEEX),0)
	AVCODEC_BLACKLIST += \
								$(AVCODEC_DIR)/libspeexenc.c \
								$(AVCODEC_DIR)/libspeexdec.c
endif

ifeq ($(HAVE_LIBOPUS),0)
	AVCODEC_BLACKLIST += \
								$(AVCODEC_DIR)/libopusenc.c \
								$(AVCODEC_DIR)/libopusdec.c \
								$(AVCODEC_DIR)/libopus.c
endif

ifeq ($(HAVE_LIBTHEORA),0)
	AVCODEC_BLACKLIST += \
								$(AVCODEC_DIR)/libtheoraenc.c
endif

ifeq ($(INTERNAL_LIBAVUTIL),1)
	AVCODEC_BLACKLIST += $(AVCODEC_DIR)/file_open.c
endif

#Codec HW Acceleration flags - all disabled for now - not sure if 
# libretro will ever support this

ifeq ($(HAVE_CODEC_HW),1)
CFLAGS += -DCONFIG_H263_VAAPI_HWACCEL=1 \
			 -DCONFIG_H263_VDPAU_HWACCEL=1 \
			 -DCONFIG_H264_DXVA2_HWACCEL=1 \
			 -DCONFIG_H264_VAAPI_HWACCEL=1 \
			 -DCONFIG_H264_VDA_HWACCEL=1 \
			 -DCONFIG_H264_VDPAU_HWACCEL=1 \
			 -DCONFIG_H264_VDPAU_HWACCEL=1 \
			 -DCONFIG_MPEG1_XVMC_HWACCEL=1 \
			 -DCONFIG_MPEG1_VDPAU_HWACCEL=1 \
			 -DCONFIG_MPEG2_XBMC_HWACCEL=1 \
			 -DCONFIG_MPEG2_DXVA2_HWACCEL=1 \
			 -DCONFIG_MPEG2_VAAPI_HWACCEL=1 \
			 -DCONFIG_MPEG2_XVMC_HWACCEL=1 \
			 -DCONFIG_MPEG2_VDPAU_HWACCEL=1 \
			 -DCONFIG_MPEG4_VAAPI_HWACCEL=1 \
			 -DCONFIG_MPEG4_VDPAU_HWACCEL=1 \
			 -DCONFIG_VC1_VDPAU_DECODER=1 \
			 -DCONFIG_VC1_DXVA2_HWACCEL=1 \
			 -DCONFIG_VC1_VAAPI_HWACCEL=1 \
			 -DCONFIG_VC1_VDPAU_HWACCEL=1 \
			 -DCONFIG_WMV3_DXVA2_HWACCEL=1 \
			 -DCONFIG_WMV3_VAAPI_HWACCEL=1 \
			 -DCONFIG_WMV3_VDPAU_HWACCEL=1 \
			 -DCONFIG_WMV3_VDPAU_DECODER=1 \
			 -DCONFIG_H264_VDPAU_DECODER=1 \
			 -DCONFIG_MPEG4_VDPAU_DECODER=1 \
			 -DCONFIG_MPEG_VDPAU_DECODER=1 \
			 -DCONFIG_MPEG1_VDPAU_DECODER=1
else
CFLAGS += -DCONFIG_H263_VAAPI_HWACCEL=0 \
			 -DCONFIG_H263_VDPAU_HWACCEL=0 \
			 -DCONFIG_H264_DXVA2_HWACCEL=0 \
			 -DCONFIG_H264_VAAPI_HWACCEL=0 \
			 -DCONFIG_H264_VDA_HWACCEL=0 \
			 -DCONFIG_H264_VDPAU_HWACCEL=0 \
			 -DCONFIG_H264_VDPAU_HWACCEL=0 \
			 -DCONFIG_MPEG1_XVMC_HWACCEL=0 \
			 -DCONFIG_MPEG1_VDPAU_HWACCEL=0 \
			 -DCONFIG_MPEG2_XBMC_HWACCEL=0 \
			 -DCONFIG_MPEG2_DXVA2_HWACCEL=0 \
			 -DCONFIG_MPEG2_VAAPI_HWACCEL=0 \
			 -DCONFIG_MPEG2_XVMC_HWACCEL=0 \
			 -DCONFIG_MPEG2_VDPAU_HWACCEL=0 \
			 -DCONFIG_MPEG4_VAAPI_HWACCEL=0 \
			 -DCONFIG_MPEG4_VDPAU_HWACCEL=0 \
			 -DCONFIG_VC1_VDPAU_DECODER=0 \
			 -DCONFIG_VC1_DXVA2_HWACCEL=0 \
			 -DCONFIG_VC1_VAAPI_HWACCEL=0 \
			 -DCONFIG_VC1_VDPAU_HWACCEL=0 \
			 -DCONFIG_WMV3_DXVA2_HWACCEL=0 \
			 -DCONFIG_WMV3_VAAPI_HWACCEL=0 \
			 -DCONFIG_WMV3_VDPAU_HWACCEL=0 \
			 -DCONFIG_WMV3_VDPAU_DECODER=0 \
			 -DCONFIG_H264_VDPAU_DECODER=0 \
			 -DCONFIG_MPEG4_VDPAU_DECODER=0 \
			 -DCONFIG_MPEG_VDPAU_DECODER=0 \
			 -DCONFIG_MPEG1_VDPAU_DECODER=0 

AVCODEC_BLACKLIST += \
							$(AVCODEC_DIR)/vdpau.c \
							$(AVCODEC_DIR)/vdpau_vc1.c \
							$(AVCODEC_DIR)/vdpau_mpeg12.c \
							$(AVCODEC_DIR)/vdpau_mpeg4.c \
							$(AVCODEC_DIR)/vdpau_h264.c \
							$(AVCODEC_DIR)/dxva2.c \
							$(AVCODEC_DIR)/dxva2_vc1.c \
							$(AVCODEC_DIR)/dxva2_mpeg2.c \
							$(AVCODEC_DIR)/dxva2_h264.c \
							$(AVCODEC_DIR)/vaapi_h264.c \
							$(AVCODEC_DIR)/vaapi_mpeg.c \
							$(AVCODEC_DIR)/vaapi_mpeg2.c \
							$(AVCODEC_DIR)/vaapi_vc1.c \
							$(AVCODEC_DIR)/dxa.c \
							$(AVCODEC_DIR)/vaapi.c
endif

LIBAVCODEC_SOURCE += $(filter-out $(AVCODEC_BLACKLIST),$(wildcard $(AVCODEC_DIR)/*.c))

ifeq ($(ARCH_X86),1)
LIBAVCODEC_SOURCE += $(filter-out $(AVCODEC_BLACKLIST),$(wildcard $(AVCODEC_DIR)/x86/*.c))
endif
endif

# Parser switches

CFLAGS += \
			 -DCONFIG_AAC_PARSER=1 \
			 -DCONFIG_AAC_LATM_PARSER=1 \
			 -DCONFIG_AC3_PARSER=1 \
			 -DCONFIG_ADX_PARSER=1 \
			 -DCONFIG_BMP_PARSER=1 \
			 -DCONFIG_CAVSVIDEO_PARSER=1 \
			 -DCONFIG_COOK_PARSER=1 \
			 -DCONFIG_DCA_PARSER=1 \
			 -DCONFIG_DIRAC_PARSER=1 \
			 -DCONFIG_DNXHD_PARSER=1 \
			 -DCONFIG_DPX_PARSER=1 \
			 -DCONFIG_DVBSUB_PARSER=1 \
			 -DCONFIG_DVDSUB_PARSER=1 \
			 -DCONFIG_DVD_NAV_PARSER=1 \
			 -DCONFIG_GSM_PARSER=1 \
			 -DCONFIG_H261_PARSER=1 \
			 -DCONFIG_H263_PARSER=1 \
			 -DCONFIG_H264_PARSER=1 \
			 -DCONFIG_HEVC_PARSER=1 \
			 -DCONFIG_MJPEG_PARSER=1 \
			 -DCONFIG_MLP_PARSER=1 \
			 -DCONFIG_MPEG4VIDEO_PARSER=1 \
			 -DCONFIG_MPEGAUDIO_PARSER=1 \
			 -DCONFIG_MPEGVIDEO_PARSER=1 \
			 -DCONFIG_PNG_PARSER=1 \
			 -DCONFIG_PNM_PARSER=1 \
			 -DCONFIG_RV30_PARSER=1 \
			 -DCONFIG_RV40_PARSER=1 \
			 -DCONFIG_TAK_PARSER=1 \
			 -DCONFIG_VC1_PARSER=1 \
			 -DCONFIG_VP3_PARSER=1 \
			 -DCONFIG_VP8_PARSER=1 \
			 -DCONFIG_VP9_PARSER=1

#BSF switches
CFLAGS += \
			 -DCONFIG_AAC_ADTSTOASC_BSF=1 \
			 -DCONFIG_CHOMP_BSF=1 \
			 -DCONFIG_DUMP_EXTRADATA_BSF=1 \
			 -DCONFIG_H264_MP4TOANNEXB_BSF=1 \
			 -DCONFIG_IMX_DUMP_HEADER_BSF=1 \
			 -DCONFIG_MJPEG2JPEG_BSF=1 \
			 -DCONFIG_MJPEGA_DUMP_HEADER_BSF=1 \
			 -DCONFIG_MP3_HEADER_COMPRESS_BSF=1 \
			 -DCONFIG_MP3_HEADER_DECOMPRESS_BSF=1 \
			 -DCONFIG_MOV2TEXTSUB_BSF=1 \
			 -DCONFIG_NOISE_BSF=1 \
			 -DCONFIG_REMOVE_EXTRADATA_BSF=1 \
			 -DCONFIG_TEXT2MOVSUB_BSF=1

CFLAGS += -DCONFIG_RTPDEC=1

# Muxers
CFLAGS += -DCONFIG_A64_MUXER=1 \
			 -DCONFIG_AC3_MUXER=1 \
			 -DCONFIG_WEBM_DASH_MANIFEST_MUXER=0 \
			 -DCONFIG_ADTS_MUXER=1 \
			 -DCONFIG_ADX_MUXER=1 \
			 -DCONFIG_SPX_MUXER=0 \
			 -DCONFIG_AIFF_MUXER=1 \
			 -DCONFIG_AMR_MUXER=1 \
			 -DCONFIG_ASF_MUXER=1 \
			 -DCONFIG_AST_MUXER=1 \
			 -DCONFIG_ASF_STREAM_MUXER=1 \
			 -DCONFIG_AU_MUXER=1 \
			 -DCONFIG_AVI_MUXER=1 \
			 -DCONFIG_AVM2_MUXER=1 \
			 -DCONFIG_BIT_MUXER=1 \
			 -DCONFIG_CAF_MUXER=1 \
			 -DCONFIG_CAVSVIDEO_MUXER=1 \
			 -DCONFIG_CRC_MUXER=1 \
			 -DCONFIG_DATA_MUXER=1 \
			 -DCONFIG_DAUD_MUXER=1 \
			 -DCONFIG_DIRAC_MUXER=1 \
			 -DCONFIG_DNXHD_MUXER=1 \
			 -DCONFIG_DTS_MUXER=1 \
			 -DCONFIG_DV_MUXER=1 \
			 -DCONFIG_EAC3_MUXER=1 \
			 -DCONFIG_F4V_MUXER=1 \
			 -DCONFIG_FFM_MUXER=1 \
			 -DCONFIG_FFMETADATA_MUXER=1 \
			 -DCONFIG_FILMSTRIP_MUXER=1 \
			 -DCONFIG_FLV_MUXER=1 \
			 -DCONFIG_FRAMECRC_MUXER=1 \
			 -DCONFIG_FRAMEMD5_MUXER=1 \
			 -DCONFIG_G722_MUXER=1 \
			 -DCONFIG_G723_1_MUXER=1 \
			 -DCONFIG_GIF_MUXER=1 \
			 -DCONFIG_GXF_MUXER=1 \
			 -DCONFIG_H261_MUXER=1 \
			 -DCONFIG_H263_MUXER=1 \
			 -DCONFIG_H264_MUXER=1 \
			 -DCONFIG_HLS_MUXER=1 \
			 -DCONFIG_ICO_MUXER=1 \
			 -DCONFIG_ILBC_MUXER=1 \
			 -DCONFIG_IMAGE2_MUXER=1 \
			 -DCONFIG_IMAGE2PIPE_MUXER=1 \
			 -DCONFIG_IPOD_MUXER=1 \
			 -DCONFIG_LRC_MUXER=1 \
			 -DCONFIG_IRCAM_MUXER=1 \
			 -DCONFIG_ISMV_MUXER=1 \
			 -DCONFIG_IVF_MUXER=1 \
			 -DCONFIG_JACOSUB_MUXER=1 \
			 -DCONFIG_LATM_MUXER=1 \
			 -DCONFIG_M4V_MUXER=1 \
			 -DCONFIG_MD5_MUXER=1 \
			 -DCONFIG_MATROSKA_MUXER=1 \
			 -DCONFIG_MATROSKA_AUDIO_MUXER=1 \
			 -DCONFIG_MICRODVD_MUXER=1 \
			 -DCONFIG_MJPEG_MUXER=1 \
			 -DCONFIG_HDS_MUXER=1 \
			 -DCONFIG_HEVC_MUXER=1 \
			 -DCONFIG_MLP_MUXER=1 \
			 -DCONFIG_MMF_MUXER=1 \
			 -DCONFIG_MOV_MUXER=1 \
			 -DCONFIG_MP2_MUXER=1 \
			 -DCONFIG_MP3_MUXER=1 \
			 -DCONFIG_MP4_MUXER=1 \
			 -DCONFIG_MPEG1SYSTEM_MUXER=1 \
			 -DCONFIG_MPEG1VCD_MUXER=1 \
			 -DCONFIG_MPEG1VIDEO_MUXER=1 \
			 -DCONFIG_MPEG2DVD_MUXER=1 \
			 -DCONFIG_MPEG2SVCD_MUXER=1 \
			 -DCONFIG_MPEG2VIDEO_MUXER=1 \
			 -DCONFIG_MPEG2VOB_MUXER=1 \
			 -DCONFIG_MPEGTS_MUXER=1 \
			 -DCONFIG_MPJPEG_MUXER=1 \
			 -DCONFIG_MXF_MUXER=1 \
			 -DCONFIG_MXF_D10_MUXER=1 \
			 -DCONFIG_LIBNUT_MUXER=0 \
			 -DCONFIG_NULL_MUXER=1 \
			 -DCONFIG_NUT_MUXER=1 \
			 -DCONFIG_OMA_MUXER=1 \
			 -DCONFIG_PCM_ALAW_MUXER=1 \
			 -DCONFIG_PCM_MULAW_MUXER=1 \
			 -DCONFIG_PCM_F64BE_MUXER=1 \
			 -DCONFIG_PCM_F64LE_MUXER=1 \
			 -DCONFIG_PCM_F32BE_MUXER=1 \
			 -DCONFIG_PCM_F32LE_MUXER=1 \
			 -DCONFIG_PCM_S32BE_MUXER=1 \
			 -DCONFIG_PCM_S32LE_MUXER=1 \
			 -DCONFIG_PCM_S24BE_MUXER=1 \
			 -DCONFIG_PCM_S24LE_MUXER=1 \
			 -DCONFIG_PCM_S16BE_MUXER=1 \
			 -DCONFIG_PCM_S16LE_MUXER=1 \
			 -DCONFIG_PCM_S8_MUXER=1 \
			 -DCONFIG_PCM_U32BE_MUXER=1 \
			 -DCONFIG_PCM_U32LE_MUXER=1 \
			 -DCONFIG_PCM_U24BE_MUXER=1 \
			 -DCONFIG_PCM_U24LE_MUXER=1 \
			 -DCONFIG_PCM_U16BE_MUXER=1 \
			 -DCONFIG_PCM_U16LE_MUXER=1 \
			 -DCONFIG_PCM_U8_MUXER=1 \
			 -DCONFIG_PSP_MUXER=1 \
			 -DCONFIG_RAWVIDEO_MUXER=1 \
			 -DCONFIG_RM_MUXER=1 \
			 -DCONFIG_ROQ_MUXER=1 \
			 -DCONFIG_RSO_MUXER=1 \
			 -DCONFIG_RTP_MUXER=1 \
			 -DCONFIG_OGA_MUXER=1 \
			 -DCONFIG_RTSP_MUXER=1 \
			 -DCONFIG_SAP_MUXER=1 \
			 -DCONFIG_SEGMENT_MUXER=1 \
			 -DCONFIG_STREAM_SEGMENT_MUXER=1 \
			 -DCONFIG_SMJPEG_MUXER=1 \
			 -DCONFIG_SMOOTHSTREAMING_MUXER=1 \
			 -DCONFIG_SOX_MUXER=1 \
			 -DCONFIG_SPDIF_MUXER=1 \
			 -DCONFIG_SRT_MUXER=1 \
			 -DCONFIG_SWF_MUXER=1 \
			 -DCONFIG_TEE_MUXER=1 \
			 -DCONFIG_TG2_MUXER=1 \
			 -DCONFIG_TGP_MUXER=1 \
			 -DCONFIG_MKVTIMESTAMP_V2_MUXER=1 \
			 -DCONFIG_TRUEHD_MUXER=1 \
			 -DCONFIG_VC1_MUXER=1 \
			 -DCONFIG_VC1T_MUXER=1 \
			 -DCONFIG_VOC_MUXER=1 \
			 -DCONFIG_UNCODEDFRAMECRC_MUXER=1 \
			 -DCONFIG_W64_MUXER=1 \
			 -DCONFIG_WAV_MUXER=1 \
			 -DCONFIG_WEBM_MUXER=1 \
			 -DCONFIG_WEBVTT_MUXER=1 \
			 -DCONFIG_WTV_MUXER=1 \
			 -DCONFIG_WV_MUXER=1 \
			 -DCONFIG_YUV4MPEGPIPE_MUXER=1 \
			 -DCONFIG_LIBNUT_MUXER=0

ifeq ($(HAVE_SSA),1)
CFLAGS += -DCONFIG_ASS_MUXER=1
else
CFLAGS += -DCONFIG_ASS_MUXER=0
endif

ifeq ($(HAVE_LIBOGG),1)
CFLAGS += -DCONFIG_OGG_MUXER=1
else
CFLAGS += -DCONFIG_OGG_MUXER=0
endif

ifeq ($(HAVE_LIBFLAC),1)
CFLAGS += -DCONFIG_FLAC_MUXER=1
else
CFLAGS += -DCONFIG_FLAC_MUXER=0
endif

ifeq ($(HAVE_LIBSPEEX),1)
CFLAGS += -DCONFIG_SPEEX_MUXER=1
else
CFLAGS += -DCONFIG_SPEEX_MUXER=0
endif

CFLAGS += -DCONFIG_AAC_DEMUXER=1 \
			 -DCONFIG_AC3_DEMUXER=1 \
			 -DCONFIG_WEBM_DASH_MANIFEST_DEMUXER=0 \
			 -DCONFIG_IMAGE_JPEGLS_PIPE_DEMUXER=0 \
			 -DCONFIG_IMAGE_WEBP_PIPE_DEMUXER=1 \
			 -DCONFIG_ACT_DEMUXER=1 \
			 -DCONFIG_ADF_DEMUXER=1 \
			 -DCONFIG_SDR2_DEMUXER=1 \
			 -DCONFIG_ADP_DEMUXER=1 \
			 -DCONFIG_ADX_DEMUXER=1 \
			 -DCONFIG_AEA_DEMUXER=1 \
			 -DCONFIG_AFC_DEMUXER=1 \
			 -DCONFIG_AIFF_DEMUXER=1 \
			 -DCONFIG_AMR_DEMUXER=1 \
			 -DCONFIG_ANM_DEMUXER=1 \
			 -DCONFIG_APC_DEMUXER=1 \
			 -DCONFIG_APE_DEMUXER=1 \
			 -DCONFIG_AQTITLE_DEMUXER=1 \
			 -DCONFIG_ASF_DEMUXER=1 \
			 -DCONFIG_AST_DEMUXER=1 \
			 -DCONFIG_AU_DEMUXER=1 \
			 -DCONFIG_AVI_DEMUXER=1 \
			 -DCONFIG_AVISYNTH_DEMUXER=0 \
			 -DCONFIG_AVR_DEMUXER=1 \
			 -DCONFIG_AVS_DEMUXER=1 \
			 -DCONFIG_BETHSOFTVID_DEMUXER=1 \
			 -DCONFIG_BFI_DEMUXER=1 \
			 -DCONFIG_BINTEXT_DEMUXER=1 \
			 -DCONFIG_BINK_DEMUXER=1 \
			 -DCONFIG_BIT_DEMUXER=1 \
			 -DCONFIG_BMV_DEMUXER=1 \
			 -DCONFIG_BRSTM_DEMUXER=1 \
			 -DCONFIG_BOA_DEMUXER=1 \
			 -DCONFIG_C93_DEMUXER=1 \
			 -DCONFIG_CAF_DEMUXER=1 \
			 -DCONFIG_CAVSVIDEO_DEMUXER=1 \
			 -DCONFIG_CINE_DEMUXER=1 \
			 -DCONFIG_LRC_DEMUXER=1 \
			 -DCONFIG_CDG_DEMUXER=1 \
			 -DCONFIG_CDXL_DEMUXER=1 \
			 -DCONFIG_CONCAT_DEMUXER=1 \
			 -DCONFIG_DATA_DEMUXER=1 \
			 -DCONFIG_DAUD_DEMUXER=1 \
			 -DCONFIG_DFA_DEMUXER=1 \
			 -DCONFIG_DSF_DEMUXER=1 \
			 -DCONFIG_DIRAC_DEMUXER=1 \
			 -DCONFIG_DNXHD_DEMUXER=1 \
			 -DCONFIG_DSICIN_DEMUXER=1 \
			 -DCONFIG_DTS_DEMUXER=1 \
			 -DCONFIG_DTSHD_DEMUXER=1 \
			 -DCONFIG_DV_DEMUXER=1 \
			 -DCONFIG_DXA_DEMUXER=0 \
			 -DCONFIG_EA_DEMUXER=1 \
			 -DCONFIG_EA_CDATA_DEMUXER=1 \
			 -DCONFIG_EAC3_DEMUXER=1 \
			 -DCONFIG_EPAF_DEMUXER=1 \
			 -DCONFIG_FFM_DEMUXER=1 \
			 -DCONFIG_FFMETADATA_DEMUXER=1 \
			 -DCONFIG_FILMSTRIP_DEMUXER=1 \
			 -DCONFIG_IMAGE2_ALIAS_PIX_DEMUXER=1 \
			 -DCONFIG_IMAGE2_BRENDER_PIX_DEMUXER=1 \
			 -DCONFIG_FLIC_DEMUXER=1 \
			 -DCONFIG_IMAGE_PNG_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_SGI_PIPE_DEMUXER=1 \
			 -DCONFIG_FLV_DEMUXER=1 \
			 -DCONFIG_LIVE_FLV_DEMUXER=1 \
			 -DCONFIG_SLN_DEMUXER=1 \
			 -DCONFIG_IMAGE_TIFF_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_BMP_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_DPX_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_EXR_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_J2K_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_PICTOR_PIPE_DEMUXER=1 \
			 -DCONFIG_IMAGE_SUNRAST_PIPE_DEMUXER=1 \
			 -DCONFIG_FOURXM_DEMUXER=1 \
			 -DCONFIG_FRM_DEMUXER=1 \
			 -DCONFIG_G722_DEMUXER=1 \
			 -DCONFIG_G723_1_DEMUXER=1 \
			 -DCONFIG_G729_DEMUXER=1 \
			 -DCONFIG_GIF_DEMUXER=1 \
			 -DCONFIG_GSM_DEMUXER=1 \
			 -DCONFIG_GXF_DEMUXER=1 \
			 -DCONFIG_H261_DEMUXER=1 \
			 -DCONFIG_H263_DEMUXER=1 \
			 -DCONFIG_H264_DEMUXER=1 \
			 -DCONFIG_HEVC_DEMUXER=1 \
			 -DCONFIG_HLS_DEMUXER=1 \
			 -DCONFIG_HNM_DEMUXER=1 \
			 -DCONFIG_ICO_DEMUXER=1 \
			 -DCONFIG_IDCIN_DEMUXER=1 \
			 -DCONFIG_IDF_DEMUXER=1 \
			 -DCONFIG_IFF_DEMUXER=1 \
			 -DCONFIG_ILBC_DEMUXER=1 \
			 -DCONFIG_IMAGE2_DEMUXER=1 \
			 -DCONFIG_IMAGE2PIPE_DEMUXER=1 \
			 -DCONFIG_INGENIENT_DEMUXER=1 \
			 -DCONFIG_IPMOVIE_DEMUXER=1 \
			 -DCONFIG_IRCAM_DEMUXER=1 \
			 -DCONFIG_ISS_DEMUXER=1 \
			 -DCONFIG_IV8_DEMUXER=1 \
			 -DCONFIG_IVF_DEMUXER=1 \
			 -DCONFIG_JACOSUB_DEMUXER=1 \
			 -DCONFIG_JV_DEMUXER=1 \
			 -DCONFIG_LATM_DEMUXER=1 \
			 -DCONFIG_LMLM4_DEMUXER=1 \
			 -DCONFIG_LOAS_DEMUXER=1 \
			 -DCONFIG_LVF_DEMUXER=1 \
			 -DCONFIG_LXF_DEMUXER=1 \
			 -DCONFIG_M4V_DEMUXER=1 \
			 -DCONFIG_MATROSKA_DEMUXER=1 \
			 -DCONFIG_MGSTS_DEMUXER=1 \
			 -DCONFIG_MICRODVD_DEMUXER=1 \
			 -DCONFIG_MJPEG_DEMUXER=1 \
			 -DCONFIG_MLP_DEMUXER=1 \
			 -DCONFIG_MM_DEMUXER=1 \
			 -DCONFIG_MMF_DEMUXER=1 \
			 -DCONFIG_MOV_DEMUXER=1 \
			 -DCONFIG_MP3_DEMUXER=1 \
			 -DCONFIG_MPC_DEMUXER=1 \
			 -DCONFIG_MPC8_DEMUXER=1 \
			 -DCONFIG_MPEGPS_DEMUXER=1 \
			 -DCONFIG_MPEGTS_DEMUXER=1 \
			 -DCONFIG_MPEGTSRAW_DEMUXER=1 \
			 -DCONFIG_MPEGVIDEO_DEMUXER=1 \
			 -DCONFIG_MPL2_DEMUXER=1 \
			 -DCONFIG_MLV_DEMUXER=1 \
			 -DCONFIG_MPSUB_DEMUXER=1 \
			 -DCONFIG_MSNWC_TCP_DEMUXER=1 \
			 -DCONFIG_MTV_DEMUXER=1 \
			 -DCONFIG_MV_DEMUXER=1 \
			 -DCONFIG_MVI_DEMUXER=1 \
			 -DCONFIG_MXF_DEMUXER=1 \
			 -DCONFIG_MXG_DEMUXER=1 \
			 -DCONFIG_NC_DEMUXER=1 \
			 -DCONFIG_NISTSPHERE_DEMUXER=1 \
			 -DCONFIG_NSV_DEMUXER=1 \
			 -DCONFIG_NUT_DEMUXER=1 \
			 -DCONFIG_NUV_DEMUXER=1 \
			 -DCONFIG_OMA_DEMUXER=1 \
			 -DCONFIG_PAF_DEMUXER=1 \
			 -DCONFIG_PCM_ALAW_DEMUXER=1 \
			 -DCONFIG_PCM_MULAW_DEMUXER=1 \
			 -DCONFIG_PCM_F64BE_DEMUXER=1 \
			 -DCONFIG_PCM_F64LE_DEMUXER=1 \
			 -DCONFIG_PCM_F32BE_DEMUXER=1 \
			 -DCONFIG_PCM_F32LE_DEMUXER=1 \
			 -DCONFIG_PCM_S32BE_DEMUXER=1 \
			 -DCONFIG_PCM_S32LE_DEMUXER=1 \
			 -DCONFIG_PCM_S24BE_DEMUXER=1 \
			 -DCONFIG_PCM_S24LE_DEMUXER=1 \
			 -DCONFIG_PCM_S16BE_DEMUXER=1 \
			 -DCONFIG_PCM_S16LE_DEMUXER=1 \
			 -DCONFIG_PCM_S8_DEMUXER=1 \
			 -DCONFIG_PCM_U32BE_DEMUXER=1 \
			 -DCONFIG_PCM_U32LE_DEMUXER=1 \
			 -DCONFIG_PCM_U24BE_DEMUXER=1 \
			 -DCONFIG_PCM_U24LE_DEMUXER=1 \
			 -DCONFIG_PCM_U16BE_DEMUXER=1 \
			 -DCONFIG_PCM_U16LE_DEMUXER=1 \
			 -DCONFIG_PCM_U8_DEMUXER=1 \
			 -DCONFIG_PJS_DEMUXER=1 \
			 -DCONFIG_PMP_DEMUXER=1 \
			 -DCONFIG_PVA_DEMUXER=1 \
			 -DCONFIG_PVF_DEMUXER=1 \
			 -DCONFIG_QCP_DEMUXER=1 \
			 -DCONFIG_R3D_DEMUXER=1 \
			 -DCONFIG_RAWVIDEO_DEMUXER=1 \
			 -DCONFIG_REALTEXT_DEMUXER=1 \
			 -DCONFIG_REDSPARK_DEMUXER=1 \
			 -DCONFIG_RL2_DEMUXER=1 \
			 -DCONFIG_RM_DEMUXER=1 \
			 -DCONFIG_ROQ_DEMUXER=1 \
			 -DCONFIG_RPL_DEMUXER=1 \
			 -DCONFIG_RSD_DEMUXER=1 \
			 -DCONFIG_RSO_DEMUXER=1 \
			 -DCONFIG_RTP_DEMUXER=1 \
			 -DCONFIG_RTSP_DEMUXER=1 \
			 -DCONFIG_SAMI_DEMUXER=1 \
			 -DCONFIG_SAP_DEMUXER=1 \
			 -DCONFIG_SBG_DEMUXER=1 \
			 -DCONFIG_SDP_DEMUXER=1 \
			 -DCONFIG_SEGAFILM_DEMUXER=1 \
			 -DCONFIG_SHORTEN_DEMUXER=1 \
			 -DCONFIG_SIFF_DEMUXER=1 \
			 -DCONFIG_SMACKER_DEMUXER=1 \
			 -DCONFIG_SMJPEG_DEMUXER=1 \
			 -DCONFIG_SMUSH_DEMUXER=1 \
			 -DCONFIG_SOL_DEMUXER=1 \
			 -DCONFIG_SOX_DEMUXER=1 \
			 -DCONFIG_SPDIF_DEMUXER=1 \
			 -DCONFIG_SRT_DEMUXER=1 \
			 -DCONFIG_STR_DEMUXER=1 \
			 -DCONFIG_SUBVIEWER1_DEMUXER=1 \
			 -DCONFIG_SUBVIEWER_DEMUXER=1 \
			 -DCONFIG_SWF_DEMUXER=1 \
			 -DCONFIG_TAK_DEMUXER=1 \
			 -DCONFIG_TEDCAPTIONS_DEMUXER=1 \
			 -DCONFIG_THP_DEMUXER=1 \
			 -DCONFIG_TIERTEXSEQ_DEMUXER=1 \
			 -DCONFIG_TMV_DEMUXER=1 \
			 -DCONFIG_TRUEHD_DEMUXER=1 \
			 -DCONFIG_TTA_DEMUXER=1 \
			 -DCONFIG_TXD_DEMUXER=1 \
			 -DCONFIG_TTY_DEMUXER=1 \
			 -DCONFIG_VC1_DEMUXER=1 \
			 -DCONFIG_VC1T_DEMUXER=1 \
			 -DCONFIG_VIVO_DEMUXER=1 \
			 -DCONFIG_VMD_DEMUXER=1 \
			 -DCONFIG_VOBSUB_DEMUXER=1 \
			 -DCONFIG_VOC_DEMUXER=1 \
			 -DCONFIG_VPLAYER_DEMUXER=1 \
			 -DCONFIG_VQF_DEMUXER=1 \
			 -DCONFIG_W64_DEMUXER=1 \
			 -DCONFIG_WAV_DEMUXER=1 \
			 -DCONFIG_WC3_DEMUXER=1 \
			 -DCONFIG_WEBVTT_DEMUXER=1 \
			 -DCONFIG_WSAUD_DEMUXER=1 \
			 -DCONFIG_WSVQA_DEMUXER=1 \
			 -DCONFIG_WTV_DEMUXER=1 \
			 -DCONFIG_WV_DEMUXER=1 \
			 -DCONFIG_XA_DEMUXER=1 \
			 -DCONFIG_XBIN_DEMUXER=1 \
			 -DCONFIG_XMV_DEMUXER=1 \
			 -DCONFIG_XWMA_DEMUXER=1 \
			 -DCONFIG_YOP_DEMUXER=1 \
			 -DCONFIG_YUV4MPEGPIPE_DEMUXER=1 \
			 -DCONFIG_LIBGME_DEMUXER=0 \
			 -DCONFIG_LIBMODPLUG_DEMUXER=0 \
			 -DCONFIG_LIBNUT_DEMUXER=0 \
			 -DCONFIG_LIBQUVI_DEMUXER=0

ifeq ($(HAVE_SSA),1)
CFLAGS += -DCONFIG_ASS_DEMUXER=1
else
CFLAGS += -DCONFIG_ASS_DEMUXER=0
endif

ifeq ($(HAVE_LIBOGG),1)
CFLAGS += -DCONFIG_OGG_DEMUXER=1
else
CFLAGS += -DCONFIG_OGG_DEMUXER=0
endif

ifeq ($(HAVE_LIBFLAC),1)
CFLAGS += -DCONFIG_FLAC_DEMUXER=1
else
CFLAGS += -DCONFIG_FLAC_DEMUXER=0
endif

endif

ifeq ($(HAVE_GL_FFT), 1)
   CFLAGS += -DHAVE_GL_FFT
   ifeq ($(GLES), 1)
      CFLAGS += -DHAVE_OPENGLES3
   endif
   FFT_SOURCE += fft/fft.cpp
endif

CFLAGS += -Wall $(fpic)

ifeq ($(DEBUG), 1)
   CFLAGS += -O0 -g
else
   CFLAGS += -O3
endif

ifeq ($(HAVE_GL), 1)
   ifeq ($(GLES), 1)
      LIBS += -lGLESv2
      CFLAGS += -DHAVE_OPENGLES -DHAVE_OPENGLES2
		SOURCE += $(LIBRETROCOMM_DIR)/glsym/glsym_es2.c
   else
      LIBS += $(GL_LIB)
   endif
   LIBRETRO_SOURCE += $(LIBRETROCOMM_DIR)/glsym/glsym_gl.c \
							 $(LIBRETROCOMM_DIR)/glsym/rglgen.c
endif

ifeq ($(HAVE_NEON),1)
	CFLAGS += -DHAVE_INTRINSICS_NEON=1
else
	CFLAGS += -DHAVE_INTRINSICS_NEON=0
endif

CFLAGS += -Ilibretro-common/include 

OBJECTS := $(DEPS_SOURCE:.c=.o) $(LIBRETRO_SOURCE:.c=.o) $(FFT_SOURCE:.cpp=.o) $(LIBAVUTIL_SOURCE:.c=.o) $(LIBAVFORMAT_SOURCE:.c=.o) $(LIBSWSCALE_SOURCE:.c=.o) $(LIBAVCODEC_SOURCE:.c=.o) $(LIBSWRESAMPLE_SOURCE:.c=.o)

all: $(TARGET)

%.o: %.c
	$(CC) -c -std=gnu99 -o $@ $< $(CFLAGS)

%.o: %.cpp
	$(CXX) -c -fno-strict-aliasing -o $@ $< $(CFLAGS)

$(TARGET): $(OBJECTS)
	$(CXX) -o $@ $^ $(LIBS) $(SHARED)

clean:
	rm -f $(OBJECTS)
	rm -f $(TARGET)

.PHONY: clean

