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_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) \
	$(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 \
	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
