if USE_ASSRENDER
ASSRENDER_DIR = assrender
else
ASSRENDER_DIR =
endif

if USE_VOAMRWBENC
VOAMRWBENC_DIR = voamrwbenc
else
VOAMRWBENC_DIR =
endif

if USE_APEXSINK
APEXSINK_DIR = apexsink
else
APEXSINK_DIR =
endif

# if USE_AUDIOFILE
# AUDIOFILE_DIR=audiofile
# else
AUDIOFILE_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_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_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_LIBFAME
# LIBFAME_DIR=libfame
# else
LIBFAME_DIR=
# endif

if USE_LIBMMS
LIBMMS_DIR=libmms
else
LIBMMS_DIR=
endif

if USE_LIBVISUAL
LIBVISUAL_DIR=libvisual
else
LIBVISUAL_DIR=
endif

if USE_MODPLUG
MODPLUG_DIR=modplug
else
MODPLUG_DIR=
endif

if USE_MPEG2ENC
MPEG2ENC_DIR=mpeg2enc
else
MPEG2ENC_DIR=
endif

if USE_MPG123
MPG123_DIR=mpg123
else
MPG123_DIR=
endif

if USE_MIMIC
MIMIC_DIR=mimic
else
MIMIC_DIR=
endif

if USE_MPLEX
MPLEX_DIR=mplex
else
MPLEX_DIR=
endif

if USE_MUSEPACK
MUSEPACK_DIR=musepack
else
MUSEPACK_DIR=
endif

if USE_NAS
NAS_DIR=nas
else
NAS_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_TIMIDITY
TIMIDITY_DIR=timidity
endif

if USE_WILDMIDI
TIMIDITY_DIR=timidity
endif

if !USE_WILDMIDI
if !USE_TIMIDITY
TIMIDITY_DIR=
endif
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_SDL
SDL_DIR=sdl
else
SDL_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_SNDIO
SNDIO_DIR = sndio
else
SNDIO_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_GSETTINGS
GSETTINGS_DIR=gsettings
else
GSETTINGS_DIR=
endif

if USE_XVID
XVID_DIR=xvid
else
XVID_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

SUBDIRS=\
	$(VOAACENC_DIR) \
	$(ASSRENDER_DIR) \
	$(VOAMRWBENC_DIR) \
	$(APEXSINK_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) \
	$(FLITE_DIR) \
	$(FLUIDSYNTH_DIR) \
	$(GSETTINGS_DIR) \
	$(GSM_DIR) \
	$(G729_DIR) \
	$(KATE_DIR) \
	$(LADSPA_DIR) \
	$(LV2_DIR) \
	$(LIBDE265_DIR) \
	$(LIBFAME_DIR) \
	$(LIBMMS_DIR) \
	$(LIBVISUAL_DIR) \
	$(MODPLUG_DIR) \
	$(MPEG2ENC_DIR) \
	$(MPG123_DIR) \
	$(MIMIC_DIR) \
	$(MPLEX_DIR) \
	$(MUSEPACK_DIR) \
	$(NAS_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) \
	$(SDL_DIR) \
	$(SMOOTHSTREAMING_DIR) \
	$(SMOOTHWAVE_DIR) \
	$(SNDFILE_DIR) \
	$(SNDIO_DIR) \
	$(SOUNDTOUCH_DIR) \
	$(SPANDSP_DIR) \
	$(GME_DIR) \
	$(SPC_DIR) \
	$(SRTP_DIR) \
	$(TELETEXTDEC_DIR) \
	$(TIMIDITY_DIR) \
	$(XVID_DIR) \
	$(ZBAR_DIR) \
	$(RTMP_DIR) \
	$(HLS_DIR) \
	$(WEBP_DIR) \
	$(X265_DIR) \
	$(DTLS_DIR)

DIST_SUBDIRS = \
	assrender \
	apexsink \
	bs2b \
	bz2 \
	chromaprint \
	curl \
	dash \
	dc1394 \
	directfb \
	wayland \
	faac \
	faad \
	flite \
	fluidsynth \
	gsettings \
	gsm \
	hls \
	ladspa \
	kate \
	libde265 \
	libmms \
	libvisual \
	lv2 \
	daala \
	dts \
	gl \
	gtk \
	qt \
	modplug \
	mimic \
	mpeg2enc \
	mpg123 \
	mplex \
	musepack \
	nas \
	neon \
	ofa \
	openal \
	opencv \
	openexr \
	openh264 \
	openni2 \
	openjpeg \
	opus \
	rsvg \
	resindvd \
	sbc \
	schroedinger \
	sdl \
	smoothstreaming \
	sndfile \
	sndio \
	soundtouch \
	spandsp \
	spc \
	srtp \
	gme \
	teletextdec \
	timidity \
	voaacenc \
	voamrwbenc \
	xvid \
	zbar \
	rtmp \
	webp \
	x265 \
	dtls

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