if USE_ASSRENDER
ASSRENDER_DIR = assrender
else
ASSRENDER_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_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_GTK3
GTK3_DIR=gtk
else
GTK3_DIR=
endif

if USE_QT
QT_DIR=qt
else
QT_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_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_SCHRO
SCHRO_DIR=schroedinger
else
SCHRO_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_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_TTML
TTML_DIR=ttml
else
TTML_DIR=
endif

SUBDIRS=\
	$(VOAACENC_DIR) \
	$(ASSRENDER_DIR) \
	$(VOAMRWBENC_DIR) \
	$(AUDIOFILE_DIR) \
	$(BS2B_DIR) \
	$(BZ2_DIR) \
	$(CHROMAPRINT_DIR) \
	$(CURL_DIR) \
	$(DASH_DIR) \
	$(DC1394_DIR) \
	$(DIRECTFB_DIR) \
	$(WAYLAND_DIR) \
	$(DAALA_DIR) \
	$(DTS_DIR) \
	$(RESINDVD_DIR) \
	$(GL_DIR) \
	$(GTK3_DIR) \
	$(QT_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) \
	$(OPENNI2_DIR) \
	$(OPUS_DIR) \
	$(RSVG_DIR) \
	$(SBC_DIR) \
	$(SCHRO_DIR) \
	$(SMOOTHSTREAMING_DIR) \
	$(SMOOTHWAVE_DIR) \
	$(SNDFILE_DIR) \
	$(SOUNDTOUCH_DIR) \
	$(SPANDSP_DIR) \
	$(GME_DIR) \
	$(SPC_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)

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

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