Previously all external library dependencies were added as link-time
dependencies to all components. This adds bogus dependencies to some
components, so only add dependencies to components if said components
actually make use of a dependency.
---
This can still be improved a bit I guess. Better function names welcome for
starters. Janne had some more substantive comments. Our pkg-config files have
many more issues, even after this patch...
Makefile | 2 +-
configure | 247 +++++++++++++++++++++++++++++++++++---------------------------
2 files changed, 141 insertions(+), 108 deletions(-)
diff --git a/Makefile b/Makefile
index 4e026b0..9786a4f 100644
--- a/Makefile
+++ b/Makefile
@@ -151,7 +151,7 @@ OBJS-$(1) += $(1).o $(EXEOBJS) $(OBJS-$(1)-yes)
$(1)$(EXESUF): $$(OBJS-$(1))
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
$(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
-$(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1))
+$(1)$(EXESUF): FF_EXTRALIBS += $(EXTRALIBS-progs) $(EXTRALIBS-$(1))
$(LIBS-$(1))
-include $$(OBJS-$(1):.o=.d)
endef
diff --git a/configure b/configure
index 1484814..3ff0848 100755
--- a/configure
+++ b/configure
@@ -739,6 +739,14 @@ add_extralibs(){
prepend extralibs $($ldflags_filter "$@")
}
+add_extralibs_lib(){
+ libs=$1
+ shift
+ for lib in $libs; do
+ prepend extralibs_${lib} $($ldflags_filter "$@")
+ done
+}
+
add_host_cppflags(){
append host_cppflags "$@"
}
@@ -991,7 +999,24 @@ check_lib(){
headers="$1"
funcs="$2"
shift 2
- check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@"
+ check_func_headers "$headers" "$funcs" "$@"
+}
+
+check_lib_global(){
+ log check_lib_global "$@"
+ headers="$1"
+ funcs="$2"
+ shift 2
+ check_lib "$headers" "$funcs" "$@" && add_extralibs "$@"
+}
+
+check_lib_libs(){
+ log check_lib_libs "$@"
+ libs="$1"
+ headers="$2"
+ funcs="$3"
+ shift 3
+ check_lib "$headers" "$funcs" "$@" && add_extralibs_lib "$libs" "$@"
}
check_pkg_config(){
@@ -1083,18 +1108,21 @@ check_compile_assert(){
}
require(){
- name="$1"
- headers="$2"
- func="$3"
- shift 3
- check_lib "$headers" $func "$@" || die "ERROR: $name not found"
+ lib="$1"
+ name="$2"
+ headers="$3"
+ func="$4"
+ shift 4
+ check_lib_libs $lib "$headers" $func "$@" || die "ERROR: $name not found"
}
require_pkg_config(){
+ lib="$1"
+ shift
pkg="$1"
check_pkg_config "$@" || die "ERROR: $pkg not found"
- add_cflags $(get_safe "${pkg}_cflags")
- add_extralibs $(get_safe "${pkg}_libs")
+ add_cflags $(get_safe "${pkg}_cflags")
+ add_extralibs_lib $lib $(get_safe "${pkg}_libs")
}
hostcc_e(){
@@ -2110,7 +2138,7 @@ d3d11va_deps="d3d11_h dxva_h ID3D11VideoDecoder"
dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode"
vaapi_deps="va_va_h"
vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
-vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration
-framework QuartzCore"
+vda_extralibs_avcodec="-framework CoreFoundation -framework
VideoDecodeAcceleration -framework QuartzCore"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
h263_vaapi_hwaccel_deps="vaapi"
@@ -2176,9 +2204,9 @@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
# hardware-accelerated codecs
nvenc_deps_any="dlopen LoadLibrary"
-nvenc_extralibs='$ldl'
+nvenc_extralibs_avcodec='$ldl'
omx_deps="dlopen pthreads"
-omx_extralibs='$ldl'
+omx_extralibs_avcodec='$ldl'
qsvdec_select="qsv"
qsvenc_select="qsv"
vaapi_encode_deps="vaapi"
@@ -2355,7 +2383,7 @@ sndio_indev_deps="sndio_h"
sndio_outdev_deps="sndio_h"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
-vfwcap_indev_extralibs="-lavicap32"
+vfwcap_indev_extralibs_avdevice="-lavicap32"
xcbgrab_indev_deps="libxcb"
# protocols
@@ -2407,9 +2435,9 @@ deinterlace_qsv_filter_deps="libmfx"
delogo_filter_deps="gpl"
drawtext_filter_deps="libfreetype"
frei0r_filter_deps="frei0r dlopen"
-frei0r_filter_extralibs='$ldl'
+frei0r_filter_extralibs_avfilter='$ldl'
frei0r_src_filter_deps="frei0r dlopen"
-frei0r_src_filter_extralibs='$ldl'
+frei0r_src_filter_extralibs_avfilter='$ldl'
hdcd_filter_deps="libhdcd"
hqdn3d_filter_deps="gpl"
interlace_filter_deps="gpl"
@@ -3775,16 +3803,16 @@ case $target_os in
;;
netbsd)
disable symver
- oss_indev_extralibs="-lossaudio"
- oss_outdev_extralibs="-lossaudio"
+ oss_indev_extralibs_avdevice="-lossaudio"
+ oss_outdev_extralibs_avdevice="-lossaudio"
;;
openbsd|bitrig)
disable symver
SHFLAGS='-shared'
SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
SLIB_INSTALL_LINKS=
- oss_indev_extralibs="-lossaudio"
- oss_outdev_extralibs="-lossaudio"
+ oss_indev_extralibs_avdevice="-lossaudio"
+ oss_outdev_extralibs_avdevice="-lossaudio"
;;
dragonfly)
disable symver
@@ -4457,7 +4485,7 @@ check_func ${malloc_prefix}posix_memalign && enable
posix_memalign
check_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" &&
check_func_headers time.h clock_gettime ||
- { check_lib2 time.h clock_gettime -lrt && LIBRT="-lrt"; }
+ { check_lib_libs avutil time.h clock_gettime -lrt && LIBRT="-lrt"; }
check_func fcntl
check_func fork
@@ -4473,7 +4501,11 @@ check_func mkstemp
check_func mmap
check_func mprotect
# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
-check_func_headers time.h nanosleep || { check_func_headers time.h nanosleep
-lrt && add_extralibs -lrt; }
+# only needed for fbdev in libavdevice
+check_func_headers time.h nanosleep ||
+ { check_func_headers time.h nanosleep -lrt &&
+ add_extralibs_lib avutil -lrt &&
+ add_extralibs_lib avdevice -lrt; }
check_func sched_getaffinity
check_func setrlimit
check_func strerror_r
@@ -4518,9 +4550,9 @@ check_header VideoDecodeAcceleration/VDADecoder.h
check_header windows.h
check_header X11/extensions/XvMClib.h
-check_lib "windows.h shellapi.h" CommandLineToArgvW -lshell32
-check_lib "windows.h wincrypt.h" CryptGenRandom -ladvapi32
-check_lib "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
+check_lib_libs progs "windows.h shellapi.h" CommandLineToArgvW -lshell32
+check_lib_libs avutil "windows.h wincrypt.h" CryptGenRandom -ladvapi32
+check_lib_libs avconv "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
@@ -4552,7 +4584,7 @@ if ! disabled pthreads && ! enabled w32threads; then
add_extralibs -pthreads
elif check_func pthread_join -lpthreadGC2; then
add_extralibs -lpthreadGC2
- elif check_lib pthread.h pthread_join -lpthread; then
+ elif check_lib_global pthread.h pthread_join -lpthread; then
:
elif ! check_func pthread_join; then
disable pthreads
@@ -4562,59 +4594,59 @@ fi
enabled pthreads &&
check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0);
sem_timedwait(s,0); sem_destroy(s)"
-disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
-disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+disabled zlib || check_lib_libs "avcodec avformat" zlib.h zlibVersion
-lz || disable zlib
+disabled bzlib || check_lib_libs avformat bzlib.h BZ2_bzlibVersion
-lbz2 || disable bzlib
-check_lib math.h sin -lm && LIBM="-lm"
+check_lib_libs "avfilter swscale avformat avcodec avresample avutil" math.h
sin -lm && LIBM="-lm"
atan2f_args=2
ldexpf_args=2
powf_args=2
for func in $MATH_FUNCS; do
- eval check_mathfunc $func \${${func}_args:-1}
+ eval check_mathfunc $func \${${func}_args:-1} $LIBM
done
# these are off by default, so fail if requested and not available
-enabled avisynth && { check_lib "avisynth/avisynth_c.h windows.h"
LoadLibrary ||
- check_lib "avxsynth/avxsynth_c.h dlfcn.h"
dlopen -ldl ||
+enabled avisynth && { check_lib_libs avformat "avisynth/avisynth_c.h
windows.h" LoadLibrary ||
+ check_lib_libs avformat "avxsynth/avxsynth_c.h
dlfcn.h" dlopen -ldl ||
die "ERROR: LoadLibrary/dlopen not found, or
avisynth header not found"; }
-enabled cuda && check_lib cuda.h cuInit -lcuda
+enabled cuda && check_lib_libs "avfilter avcodec avutil" cuda.h
cuInit -lcuda
enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h
header not found"; }
-enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h
gnutls_global_init
-enabled libbs2b && require_pkg_config libbs2b bs2b.h bs2b_open
-enabled libdcadec && require libdcadec libdcadec/dca_context.h
dcadec_context_create -ldcadec
-enabled libfaac && require libfaac "stdint.h faac.h"
faacEncGetVersion -lfaac
-enabled libfdk_aac && require_pkg_config fdk-aac "fdk-aac/aacenc_lib.h"
aacEncOpen
-enabled libfontconfig && require_pkg_config fontconfig
"fontconfig/fontconfig.h" FcInit
-enabled libfreetype && require_pkg_config freetype2 "ft2build.h
FT_FREETYPE_H" FT_Init_FreeType
+enabled gnutls && require_pkg_config avformat gnutls
gnutls/gnutls.h gnutls_global_init
+enabled libbs2b && require_pkg_config avfilter libbs2b bs2b.h
bs2b_open
+enabled libdcadec && require avcodec libdcadec libdcadec/dca_context.h
dcadec_context_create -ldcadec
+enabled libfaac && require avcodec libfaac "stdint.h faac.h"
faacEncGetVersion -lfaac
+enabled libfdk_aac && require_pkg_config avcodec fdk-aac
"fdk-aac/aacenc_lib.h" aacEncOpen
+enabled libfontconfig && require_pkg_config avfilter fontconfig
"fontconfig/fontconfig.h" FcInit
+enabled libfreetype && require_pkg_config avfilter freetype2 "ft2build.h
FT_FREETYPE_H" FT_Init_FreeType
enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
- check_lib "${gsm_hdr}" gsm_create -lgsm &&
break;
+ check_lib_libs avcodec "${gsm_hdr}"
gsm_create -lgsm && break;
done || die "ERROR: libgsm not found"; }
-enabled libhdcd && require_pkg_config libhdcd "hdcd/hdcd_simple.h"
hdcd_new
-enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode
-lilbc
-enabled libkvazaar && require_pkg_config "kvazaar >= 0.8.1" kvazaar.h
kvz_api_get
-enabled libmfx && require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit
-enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h
lame_set_VBR_quality -lmp3lame
-enabled libnpp && require libnpp npp.h nppGetLibVersion -lnppi
-lnppc
-enabled libopencore_amrnb && require libopencore_amrnb
opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
-enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h
D_IF_init -lopencore-amrwb
-enabled libopencv && require_pkg_config opencv opencv/cv.h
cvCreateImageHeader
-enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h
WelsGetCodecVersion
-enabled libopenjpeg && { check_lib openjpeg.h opj_version -lopenjpeg
-DOPJ_STATIC ||
- require_pkg_config libopenjpeg1 openjpeg.h
opj_version -DOPJ_STATIC; }
-enabled libopus && require_pkg_config opus opus_multistream.h
opus_multistream_decoder_create
-enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h
pa_simple_new
-enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h
RTMP_Socket
-enabled libschroedinger && require_pkg_config schroedinger-1.0
schroedinger/schro.h schro_init
-enabled libsnappy && require snappy snappy-c.h snappy_compress -lsnappy
-enabled libspeex && require_pkg_config speex speex/speex.h
speex_decoder_init -lspeex
-enabled libtheora && require libtheora theora/theoraenc.h th_info_init
-ltheoraenc -ltheoradec -logg
-enabled libtwolame && require libtwolame twolame.h twolame_init
-ltwolame
-enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h
voGetAACEncAPI -lvo-aacenc
-enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h
E_IF_init -lvo-amrwbenc
-enabled libvorbis && require libvorbis vorbis/vorbisenc.h
vorbis_info_init -lvorbisenc -lvorbis -logg
-enabled libvpx && require_pkg_config "vpx >= 1.3.0" vpx/vpx_codec.h
vpx_codec_version && {
+enabled libhdcd && require_pkg_config avfilter libhdcd
"hdcd/hdcd_simple.h" hdcd_new
+enabled libilbc && require avcodec libilbc ilbc.h
WebRtcIlbcfix_InitDecode -lilbc
+enabled libkvazaar && require_pkg_config avcodec "kvazaar >= 0.8.1"
kvazaar.h kvz_api_get
+enabled libmfx && require_pkg_config avcodec libmfx
"mfx/mfxvideo.h" MFXInit
+enabled libmp3lame && require avcodec "libmp3lame >= 3.98.3"
lame/lame.h lame_set_VBR_quality -lmp3lame
+enabled libnpp && require avfilter libnpp npp.h nppGetLibVersion
-lnppi -lnppc
+enabled libopencore_amrnb && require avcodec libopencore_amrnb
opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
+enabled libopencore_amrwb && require avcodec libopencore_amrwb
opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
+enabled libopencv && require_pkg_config avfilter opencv opencv/cv.h
cvCreateImageHeader
+enabled libopenh264 && require_pkg_config avcodec openh264
wels/codec_api.h WelsGetCodecVersion
+enabled libopenjpeg && { check_lib_libs avcodec openjpeg.h opj_version
-lopenjpeg -DOPJ_STATIC ||
+ require_pkg_config avcodec libopenjpeg1
openjpeg.h opj_version -DOPJ_STATIC; }
+enabled libopus && require_pkg_config avcodec opus
opus_multistream.h opus_multistream_decoder_create
+enabled libpulse && require_pkg_config avdevice libpulse-simple
pulse/simple.h pa_simple_new
+enabled librtmp && require_pkg_config avformat librtmp
librtmp/rtmp.h RTMP_Socket
+enabled libschroedinger && require_pkg_config avcodec schroedinger-1.0
schroedinger/schro.h schro_init
+enabled libsnappy && require avcodec snappy snappy-c.h snappy_compress
-lsnappy
+enabled libspeex && require_pkg_config avcodec speex speex/speex.h
speex_decoder_init -lspeex
+enabled libtheora && require avcodec libtheora theora/theoraenc.h
th_info_init -ltheoraenc -ltheoradec -logg
+enabled libtwolame && require avcodec libtwolame twolame.h twolame_init
-ltwolame
+enabled libvo_aacenc && require avcodec libvo_aacenc vo-aacenc/voAAC.h
voGetAACEncAPI -lvo-aacenc
+enabled libvo_amrwbenc && require avcodec libvo_amrwbenc
vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
+enabled libvorbis && require avcodec libvorbis vorbis/vorbisenc.h
vorbis_info_init -lvorbisenc -lvorbis -logg
+enabled libvpx && require_pkg_config avcodec "vpx >= 1.3.0"
vpx/vpx_codec.h vpx_codec_version && {
enabled libvpx_vp8_decoder && {
check_pkg_config vpx "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp8_dx
||
disable libvpx_vp8_decoder;
@@ -4632,52 +4664,45 @@ enabled libvpx && require_pkg_config "vpx >=
1.3.0" vpx/vpx_codec.h v
disable libvpx_vp9_encoder;
}
if disabled_all libvpx_vp8_decoder libvpx_vp9_decoder libvpx_vp8_encoder
libvpx_vp9_encoder; then
- die "libvpx enabled but no supported decoders found"
+ die "libvpx enabled but no supported decoders/encoders found"
fi
}
-enabled libwavpack && require libwavpack wavpack/wavpack.h
WavpackOpenFileOutput -lwavpack
-enabled libwebp && require_pkg_config libwebp webp/encode.h
WebPGetEncoderVersion
-enabled libx264 && require_pkg_config x264 "stdint.h x264.h"
x264_encoder_encode &&
+enabled libwavpack && require avcodec libwavpack wavpack/wavpack.h
WavpackOpenFileOutput -lwavpack
+enabled libwebp && require_pkg_config avcodec libwebp webp/encode.h
WebPGetEncoderVersion
+enabled libx264 && require_pkg_config avcodec x264 "stdint.h x264.h"
x264_encoder_encode &&
{ check_cpp_condition x264.h "X264_BUILD >= 118"
||
die "ERROR: libx264 version must be >= 0.118.";
} &&
{ check_cpp_condition x264.h "X264_MPEG2" &&
enable libx262; }
-enabled libx265 && require_pkg_config x265 x265.h x265_api_get &&
+enabled libx265 && require_pkg_config avcodec x265 x265.h
x265_api_get &&
{ check_cpp_condition x265.h "X265_BUILD >= 57" ||
die "ERROR: libx265 version must be >= 57."; }
-enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
-enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
-enabled mmal && { check_lib interface/mmal/mmal.h
mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
+enabled libxavs && require avcodec libxavs xavs.h
xavs_encoder_encode -lxavs
+enabled libxvid && require avcodec libxvid xvid.h xvid_global
-lxvidcore
+enabled mmal && { check_lib_libs avcodec interface/mmal/mmal.h
mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
{ ! enabled cross_compile && {
- add_cflags -isystem/opt/vc/include/
-isystem/opt/vc/include/interface/vmcs_host/linux
-isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline ;
- add_extralibs -L/opt/vc/lib/ -lmmal_core
-lmmal_util -lmmal_vc_client -lbcm_host ;
- check_lib interface/mmal/mmal.h
mmal_port_connect ; }
- check_lib interface/mmal/mmal.h
mmal_port_connect ; } ||
+ add_cflags -isystem/opt/vc/include/
-isystem/opt/vc/include/interface/vmcs_host/linux
-isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline;
+ add_extralibs_lib avcodec -L/opt/vc/lib/
-lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host;
+ check_lib_libs avcodec
interface/mmal/mmal.h mmal_port_connect; }
+ check_lib_libs avcodec interface/mmal/mmal.h
mmal_port_connect; } ||
die "ERROR: mmal not found"; }
-enabled mmal && check_func_headers interface/mmal/mmal.h
"MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"
-enabled omx_rpi && enable omx
-enabled omx && { check_header OMX_Core.h ||
- { ! enabled cross_compile && enabled omx_rpi
&& {
- add_cflags -isystem/opt/vc/include/IL ; }
- check_header OMX_Core.h ; } ||
- die "ERROR: OpenMAX IL headers not found"; }
enabled openssl && { check_pkg_config openssl openssl/ssl.h
SSL_library_init && {
- add_cflags $openssl_cflags && add_extralibs
$openssl_libs; }||
- check_lib openssl/ssl.h SSL_library_init -lssl
-lcrypto ||
- check_lib openssl/ssl.h SSL_library_init
-lssl32 -leay32 ||
- check_lib openssl/ssl.h SSL_library_init -lssl
-lcrypto -lws2_32 -lgdi32 ||
+ add_cflags $openssl_cflags && add_extralibs
$openssl_libs; } ||
+ check_lib_libs avformat openssl/ssl.h
SSL_library_init -lssl -lcrypto ||
+ check_lib_libs avformat openssl/ssl.h
SSL_library_init -lssl32 -leay32 ||
+ check_lib_libs avformat openssl/ssl.h
SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
die "ERROR: openssl not found"; }
if enabled gnutls; then
- { check_lib2 gmp.h mpz_export -lgmp && enable gmp; } ||
- { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; }
+ { check_lib_libs avformat nettle/bignum.h nettle_mpz_get_str_256 -lnettle
-lhogweed -lgmp && enable nettle; } ||
+ { check_lib_libs avformat gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt;
}
fi
# libdc1394 check
if enabled libdc1394; then
- { require_pkg_config libdc1394-2 dc1394/dc1394.h dc1394_new &&
+ { require_pkg_config avdevice libdc1394-2 dc1394/dc1394.h dc1394_new &&
enable libdc1394_2; } ||
- { check_lib libdc1394/dc1394_control.h dc1394_create_handle
-ldc1394_control -lraw1394 &&
+ { check_lib_libs avdevice libdc1394/dc1394_control.h dc1394_create_handle
-ldc1394_control -lraw1394 &&
enable libdc1394_1; } ||
die "ERROR: No version of libdc1394 found "
fi
@@ -4708,7 +4733,7 @@ check_header AVFoundation/AVFoundation.h &&
check_header sys/videoio.h
-check_func_headers "windows.h vfw.h" capCreateCaptureWindow
"$vfwcap_indev_extralibs"
+check_func_headers "windows.h vfw.h" capCreateCaptureWindow
"$vfwcap_indev_extralibs_avdevice"
# check that WM_CAP_DRIVER_CONNECT is defined to the proper value
# w32api 3.12 had it defined wrong
check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable
vfwcap_defines
@@ -4727,20 +4752,21 @@ check_header sys/soundcard.h
check_header soundcard.h
enabled_any alsa_indev alsa_outdev &&
- check_lib alsa/asoundlib.h snd_pcm_htimestamp -lasound
+ check_lib_libs avdevice alsa/asoundlib.h snd_pcm_htimestamp -lasound
-enabled jack_indev && check_lib jack/jack.h jack_client_open -ljack &&
+enabled jack_indev &&
+ check_lib_libs avdevice jack/jack.h jack_client_open -ljack &&
check_func jack_port_get_latency_range -ljack
-enabled_any sndio_indev sndio_outdev && check_lib sndio.h sio_open -lsndio
+enabled_any sndio_indev sndio_outdev && check_lib_libs avdevice sndio.h
sio_open -lsndio
if enabled libcdio; then
- check_lib "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia
-lcdio_cdda -lcdio ||
- check_lib "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open
-lcdio_paranoia -lcdio_cdda -lcdio ||
+ check_lib_libs avdevice "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open
-lcdio_paranoia -lcdio_cdda -lcdio ||
+ check_lib_libs avdevice "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h"
cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
die "ERROR: No usable libcdio/cdparanoia found"
fi
-check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib
+check_lib_libs avdevice X11/Xlib.h XOpenDisplay -lX11 && enable xlib
if enabled libxcb; then
check_pkg_config xcb-shape xcb/shape.h xcb_shape_rectangles || {
@@ -4758,10 +4784,10 @@ if enabled libxcb; then
} && enable libxcb_xfixes
add_cflags "$xcb_event_cflags $xcb_shm_cflags $xcb_xfixes_cflags"
- add_extralibs "$xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs"
+ add_extralibs_lib avdevice "$xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs"
fi
-enabled vaapi && require vaapi va/va.h vaInitialize -lva
+enabled vaapi && require avcodec vaapi va/va.h vaInitialize -lva
enabled vaapi &&
check_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" ||
@@ -4769,10 +4795,10 @@ enabled vaapi &&
if enabled vaapi ; then
enabled xlib &&
- check_lib "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
+ check_lib_libs "avcodec avutil" "va/va.h va/va_x11.h" vaGetDisplay -lva
-lva-x11 &&
enable vaapi_x11
- check_lib "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm &&
+ check_lib_libs "avcodec avutil" "va/va.h va/va_drm.h" vaGetDisplayDRM -lva
-lva-drm &&
enable vaapi_drm
fi
@@ -4781,7 +4807,7 @@ enabled vdpau &&
disable vdpau
enabled vdpau && enabled xlib &&
- check_lib "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau
&&
+ check_lib_libs "avutil avcodec" "vdpau/vdpau.h vdpau/vdpau_x11.h"
vdp_device_create_x11 -lvdpau &&
enable vdpau_x11
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
@@ -5245,7 +5271,14 @@ TARGET_SAMPLES=${target_samples:-\$(SAMPLES)}
CFLAGS-avplay=$sdl_cflags
ZLIB=$($ldflags_filter -lz)
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
-EXTRALIBS=$extralibs
+EXTRALIBS=$extralibs_avfilter $extralibs_avdevice $extralibs_avformat
$extralibs_avcodec $extralibs_avutil $extralibs
+EXTRALIBS-avcodec=$extralibs_avcodec
+EXTRALIBS-avdevice=$extralibs_avdevice
+EXTRALIBS-avfilter=$extralibs_avfilter
+EXTRALIBS-avformat=$extralibs_avformat
+EXTRALIBS-avutil=$extralibs_avutil
+EXTRALIBS-progs=$extralibs_progs
+EXTRALIBS-avconv=$extralibs_avconv
COMPAT_OBJS=$compat_objs
EXEOBJS=$exeobjs
INSTALL=install
@@ -5403,9 +5436,9 @@ EOF
}
pkgconfig_generate libavutil "Libav utility library"
"$LIBAVUTIL_VERSION" "$LIBRT $LIBM"
-pkgconfig_generate libavcodec "Libav codec library"
"$LIBAVCODEC_VERSION" "$extralibs"
-pkgconfig_generate libavformat "Libav container format library"
"$LIBAVFORMAT_VERSION" "$extralibs"
-pkgconfig_generate libavdevice "Libav device handling library"
"$LIBAVDEVICE_VERSION" "$extralibs"
-pkgconfig_generate libavfilter "Libav video filtering library"
"$LIBAVFILTER_VERSION" "$extralibs"
+pkgconfig_generate libavcodec "Libav codec library"
"$LIBAVCODEC_VERSION" "$extralibs_avcodec"
+pkgconfig_generate libavformat "Libav container format library"
"$LIBAVFORMAT_VERSION" "$extralibs_avformat"
+pkgconfig_generate libavdevice "Libav device handling library"
"$LIBAVDEVICE_VERSION" "$extralibs_avdevice"
+pkgconfig_generate libavfilter "Libav video filtering library"
"$LIBAVFILTER_VERSION" "$extralibs_avfilter"
pkgconfig_generate libavresample "Libav audio resampling library"
"$LIBAVRESAMPLE_VERSION" "$LIBM"
pkgconfig_generate libswscale "Libav image rescaling library"
"$LIBSWSCALE_VERSION" "$LIBM"
--
2.1.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel