if USE_ASSRENDER
ASSRENDER_DIR = assrender
else
ASSRENDER_DIR =
endif

if USE_AOM
AOM_DIR= aom
else
AOM_DIR=
endif

if USE_VOAMRWBENC
VOAMRWBENC_DIR = voamrwbenc
else
VOAMRWBENC_DIR =
endif

if USE_BS2B
BS2B_DIR=bs2b
else
BS2B_DIR=
endif

if USE_BZ2
BZ2_DIR=bz2
else
BZ2_DIR=
endif

if USE_LCMS2
COLORMANAGEMENT_DIR=colormanagement
else
COLORMANAGEMENT_DIR=
endif

if USE_CHROMAPRINT
CHROMAPRINT_DIR=chromaprint
else
CHROMAPRINT_DIR=
endif

if USE_CURL
CURL_DIR=curl
else
CURL_DIR=
endif

if USE_DASH
DASH_DIR=dash
else
DASH_DIR=
endif

if USE_DC1394
DC1394_DIR=dc1394
else
DC1394_DIR=
endif

if USE_DIRECTFB
DIRECTFB_DIR=directfb
else
DIRECTFB_DIR=
endif

if USE_WAYLAND
WAYLAND_DIR=wayland
else
WAYLAND_DIR=
endif

if USE_DAALA
DAALA_DIR=daala
else
DAALA_DIR=
endif

if USE_DTS
DTS_DIR=dts
else
DTS_DIR=
endif

if USE_GL
GL_DIR=gl
else
GL_DIR=
endif

if USE_RESINDVD
 RESINDVD_DIR = resindvd
else
 RESINDVD_DIR =
endif

if USE_FAAC
FAAC_DIR=faac
else
FAAC_DIR=
endif

if USE_FAAD
 FAAD_DIR=faad
else
 FAAD_DIR=
endif

if USE_FDK_AAC
 FDK_AAC_DIR=fdkaac
else
 FDK_AAC_DIR=
endif

if USE_VOAACENC
 VOAACENC_DIR=voaacenc
else
 VOAACENC_DIR=
endif

if USE_FLITE
FLITE_DIR=flite
else
FLITE_DIR=
endif

#if USE_G729
#G729_DIR=g729
#else
G729_DIR=
#endif

if USE_GSM
GSM_DIR=gsm
else
GSM_DIR=
endif

if USE_IQA
IQA_DIR = iqa
else
IQA_DIR =
endif

if USE_KATE
KATE_DIR=kate
else
KATE_DIR=
endif

if USE_LADSPA
LADSPA_DIR = ladspa
else
LADSPA_DIR =
endif

if USE_LV2
LV2_DIR = lv2
else
LV2_DIR =
endif

if USE_LIBDE265
LIBDE265_DIR = libde265
else
LIBDE265_DIR =
endif

if USE_LIBMMS
LIBMMS_DIR=libmms
else
LIBMMS_DIR=
endif

if USE_MODPLUG
MODPLUG_DIR=modplug
else
MODPLUG_DIR=
endif

if USE_MPEG2ENC
MPEG2ENC_DIR=mpeg2enc
else
MPEG2ENC_DIR=
endif

if USE_MPLEX
MPLEX_DIR=mplex
else
MPLEX_DIR=
endif

if USE_MUSEPACK
MUSEPACK_DIR=musepack
else
MUSEPACK_DIR=
endif

if USE_NEON
NEON_DIR=neon
else
NEON_DIR=
endif

if USE_OFA
OFA_DIR=ofa
else
OFA_DIR=
endif

if USE_OPENAL
OPENAL_DIR=openal
else
OPENAL_DIR=
endif

if USE_OPENCV
OPENCV_DIR=opencv
else
OPENCV_DIR=
endif

if USE_OPENEXR
OPENEXR_DIR = openexr
else
OPENEXR_DIR =
endif

if USE_OPENH264
OPENH264_DIR = openh264
else
OPENH264_DIR =
endif

if USE_OPENMPT
OPENMPT_DIR=openmpt
else
OPENMPT_DIR=
endif

if USE_OPENNI2
OPENNI2_DIR=openni2
else
OPENNI2_DIR=
endif

if USE_OPENJPEG
OPENJPEG_DIR = openjpeg
else
OPENJPEG_DIR =
endif

if USE_OPUS
OPUS_DIR=opus
else
OPUS_DIR=
endif

if USE_RSVG
RSVG_DIR=rsvg
else
RSVG_DIR=
endif

if USE_WILDMIDI
WILDMIDI_DIR=wildmidi
endif

if !USE_WILDMIDI
WILDMIDI_DIR=
endif

if USE_FLUIDSYNTH
FLUIDSYNTH_DIR=fluidsynth
endif

if USE_SBC
SBC_DIR=sbc
else
SBC_DIR=
endif

if USE_SMOOTHSTREAMING
SMOOTHSTREAMING_DIR = smoothstreaming
else
SMOOTHSTREAMING_DIR =
endif

# if USE_SMOOTHWAVE
# SMOOTHWAVE_DIR=smoothwave
# else
SMOOTHWAVE_DIR=
# endif

if USE_SNDFILE
SNDFILE_DIR=sndfile
else
SNDFILE_DIR=
endif

if USE_SOUNDTOUCH
SOUNDTOUCH_DIR=soundtouch
else
SOUNDTOUCH_DIR=
endif

if USE_SPANDSP
SPANDSP_DIR = spandsp
else
SPANDSP_DIR =
endif

if USE_SPC
SPC_DIR=spc
else
SPC_DIR=
endif

if USE_SRT
SRT_DIR=srt
else
SRT_DIR=
endif

if USE_SRTP
SRTP_DIR=srtp
else
SRTP_DIR=
endif

if USE_GME
GME_DIR=gme
else
GME_DIR=
endif

if USE_TELETEXTDEC
TELETEXTDEC_DIR=teletextdec
else
TELETEXTDEC_DIR=
endif

if USE_ZBAR
ZBAR_DIR=zbar
else
ZBAR_DIR=
endif

if USE_RTMP
RTMP_DIR = rtmp
else
RTMP_DIR =
endif

if USE_HLS
HLS_DIR = hls
else
HLS_DIR =
endif

if USE_WEBP
WEBP_DIR=webp
else
WEBP_DIR=
endif

if USE_X265
X265_DIR=x265
else
X265_DIR=
endif

if USE_DTLS
DTLS_DIR=dtls
else
DTLS_DIR=
endif

if USE_VULKAN
VULKAN_DIR=vulkan
else
VULKAN_DIR=
endif

if USE_WEBRTCDSP
WEBRTCDSP_DIR=webrtcdsp
else
WEBRTCDSP_DIR=
endif

if USE_WEBRTC
WEBRTC_DIR=webrtc
else
WEBRTC_DIR=
endif

if USE_TTML
TTML_DIR=ttml
else
TTML_DIR=
endif

SUBDIRS=\
	$(VOAACENC_DIR) \
	$(ASSRENDER_DIR) \
	$(AOM_DIR) \
	$(VOAMRWBENC_DIR) \
	$(AUDIOFILE_DIR) \
	$(BS2B_DIR) \
	$(BZ2_DIR) \
	$(COLORMANAGEMENT_DIR) \
	$(CHROMAPRINT_DIR) \
	$(CURL_DIR) \
	$(DASH_DIR) \
	$(DC1394_DIR) \
	$(DIRECTFB_DIR) \
	$(WAYLAND_DIR) \
	$(DAALA_DIR) \
	$(DTS_DIR) \
	$(RESINDVD_DIR) \
	$(GL_DIR) \
	$(FAAC_DIR) \
	$(FAAD_DIR) \
	$(FDK_AAC_DIR) \
	$(FLITE_DIR) \
	$(FLUIDSYNTH_DIR) \
	$(GSM_DIR) \
	$(G729_DIR) \
	$(IQA_DIR) \
	$(KATE_DIR) \
	$(LADSPA_DIR) \
	$(LV2_DIR) \
	$(LIBDE265_DIR) \
	$(LIBMMS_DIR) \
	$(MODPLUG_DIR) \
	$(MPEG2ENC_DIR) \
	$(MPLEX_DIR) \
	$(MUSEPACK_DIR) \
	$(NEON_DIR) \
	$(OFA_DIR) \
	$(OPENAL_DIR) \
	$(OPENCV_DIR) \
	$(OPENEXR_DIR) \
	$(OPENH264_DIR) \
	$(OPENJPEG_DIR) \
	$(OPENMPT_DIR) \
	$(OPENNI2_DIR) \
	$(OPUS_DIR) \
	$(RSVG_DIR) \
	$(SBC_DIR) \
	$(SMOOTHSTREAMING_DIR) \
	$(SMOOTHWAVE_DIR) \
	$(SNDFILE_DIR) \
	$(SOUNDTOUCH_DIR) \
	$(SPANDSP_DIR) \
	$(GME_DIR) \
	$(SPC_DIR) \
	$(SRT_DIR) \
	$(SRTP_DIR) \
	$(TELETEXTDEC_DIR) \
	$(WILDMIDI_DIR) \
	$(ZBAR_DIR) \
	$(RTMP_DIR) \
	$(HLS_DIR) \
	$(WEBP_DIR) \
	$(X265_DIR) \
	$(DTLS_DIR) \
	$(VULKAN_DIR) \
	$(WEBRTCDSP_DIR) \
	$(TTML_DIR) \
	$(WEBRTC_DIR)

DIST_SUBDIRS = \
	assrender \
	aom \
	bs2b \
	bz2 \
	colormanagement \
	chromaprint \
	curl \
	dash \
	dc1394 \
	directfb \
	wayland \
	faac \
	faad \
	fdkaac \
	flite \
	fluidsynth \
	gsm \
	hls \
	iqa \
	ladspa \
	kate \
	libde265 \
	libmms \
	lv2 \
	daala \
	dts \
	gl \
	modplug \
	mpeg2enc \
	mplex \
	musepack \
	neon \
	ofa \
	openal \
	opencv \
	openexr \
	openh264 \
	openmpt \
	openni2 \
	openjpeg \
	opus \
	rsvg \
	resindvd \
	sbc \
	smoothstreaming \
	sndfile \
	soundtouch \
	spandsp \
	spc \
	srt \
	srtp \
	gme \
	teletextdec \
	wildmidi \
	voaacenc \
	voamrwbenc \
	zbar \
	rtmp \
	webp \
	x265 \
	dtls \
	vulkan \
	webrtcdsp \
	ttml \
	webrtc

include $(top_srcdir)/common/parallel-subdirs.mak
