mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Merge commit 'ab3554e1a7c04a5ea30f9c905de92348478ef7c8'
* commit 'ab3554e1a7c04a5ea30f9c905de92348478ef7c8': configure: Drop check_lib()/require() in favor of check_lib2()/require2() Merged-by: Clément Bœsch <u@pkh.me>
This commit is contained in:
commit
4563a86f01
95
configure
vendored
95
configure
vendored
@ -1216,14 +1216,6 @@ EOF
|
||||
|
||||
check_lib(){
|
||||
log check_lib "$@"
|
||||
header="$1"
|
||||
func="$2"
|
||||
shift 2
|
||||
check_header $header && check_func $func "$@" && add_extralibs "$@"
|
||||
}
|
||||
|
||||
check_lib2(){
|
||||
log check_lib2 "$@"
|
||||
headers="$1"
|
||||
funcs="$2"
|
||||
shift 2
|
||||
@ -1328,19 +1320,11 @@ check_compile_assert(){
|
||||
}
|
||||
|
||||
require(){
|
||||
name="$1"
|
||||
header="$2"
|
||||
func="$3"
|
||||
shift 3
|
||||
check_lib $header $func "$@" || die "ERROR: $name not found"
|
||||
}
|
||||
|
||||
require2(){
|
||||
name="$1"
|
||||
headers="$2"
|
||||
func="$3"
|
||||
shift 3
|
||||
check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
|
||||
check_lib "$headers" $func "$@" || die "ERROR: $name not found"
|
||||
}
|
||||
|
||||
require_cpp(){
|
||||
@ -5581,7 +5565,7 @@ check_func ${malloc_prefix}posix_memalign && enable posix_memalign
|
||||
check_func access
|
||||
check_func_headers stdlib.h arc4random
|
||||
check_func_headers time.h clock_gettime ||
|
||||
{ check_lib2 time.h clock_gettime -lrt && LIBRT="-lrt"; }
|
||||
{ check_lib time.h clock_gettime -lrt && LIBRT="-lrt"; }
|
||||
check_func fcntl
|
||||
check_func fork
|
||||
check_func gethrtime
|
||||
@ -5595,7 +5579,7 @@ check_func mmap
|
||||
check_func mprotect
|
||||
# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
|
||||
check_func_headers time.h nanosleep ||
|
||||
{ check_lib2 time.h nanosleep -lrt && LIBRT="-lrt"; }
|
||||
{ check_lib time.h nanosleep -lrt && LIBRT="-lrt"; }
|
||||
check_func sched_getaffinity
|
||||
check_func setrlimit
|
||||
check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
|
||||
@ -5663,9 +5647,10 @@ check_header asm/types.h
|
||||
# so we also check that atomics actually work here
|
||||
check_builtin stdatomic_h stdatomic.h "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0)"
|
||||
|
||||
check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
|
||||
check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
|
||||
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
|
||||
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 "CoreServices/CoreServices.h" UTGetOSTypeFromString "-framework CoreServices"
|
||||
|
||||
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
||||
@ -5729,9 +5714,9 @@ 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_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
|
||||
disabled lzma || check_lib2 lzma.h lzma_version_number -llzma || disable lzma
|
||||
disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
|
||||
disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
|
||||
disabled lzma || check_lib lzma.h lzma_version_number -llzma || disable lzma
|
||||
|
||||
check_lib math.h sin -lm && LIBM="-lm"
|
||||
disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
|
||||
@ -5752,8 +5737,8 @@ done
|
||||
|
||||
# these are off by default, so fail if requested and not available
|
||||
enabled avfoundation_indev && { check_header_objcc AVFoundation/AVFoundation.h || disable avfoundation_indev; }
|
||||
enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActiveDisplayList -framework CoreGraphics ||
|
||||
check_lib2 ApplicationServices/ApplicationServices.h CGGetActiveDisplayList -framework ApplicationServices; }
|
||||
enabled avfoundation_indev && { check_lib CoreGraphics/CoreGraphics.h CGGetActiveDisplayList -framework CoreGraphics ||
|
||||
check_lib ApplicationServices/ApplicationServices.h CGGetActiveDisplayList -framework ApplicationServices; }
|
||||
enabled cuda && check_header cuda.h # this is not a dependency
|
||||
enabled cuvid && { enabled cuda ||
|
||||
die "ERROR: CUVID requires CUDA"; }
|
||||
@ -5763,10 +5748,10 @@ enabled coreimagesrc_filter && { check_header_objcc QuartzCore/CoreImage.h || di
|
||||
enabled decklink && { { check_header DeckLinkAPI.h || die "ERROR: DeckLinkAPI.h header not found"; } &&
|
||||
{ check_cpp_condition DeckLinkAPIVersion.h "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a060100" || die "ERROR: Decklink API version must be >= 10.6.1."; } }
|
||||
enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; }
|
||||
enabled gmp && require2 gmp gmp.h mpz_export -lgmp
|
||||
enabled gmp && require gmp gmp.h mpz_export -lgmp
|
||||
enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
|
||||
enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads &&
|
||||
check_lib2 "dlfcn.h" dlopen -ldl; }
|
||||
check_lib "dlfcn.h" dlopen -ldl; }
|
||||
enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h header not found"; }
|
||||
enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
|
||||
enabled libass && require_pkg_config libass ass/ass.h ass_library_init
|
||||
@ -5780,7 +5765,7 @@ enabled libfdk_aac && { use_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aac
|
||||
{ require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac &&
|
||||
warn "using libfdk without pkg-config"; } }
|
||||
flite_libs="-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish -lflite_cmulex -lflite"
|
||||
enabled libflite && require2 libflite "flite/flite.h" flite_init $flite_libs
|
||||
enabled libflite && require libflite "flite/flite.h" flite_init $flite_libs
|
||||
enabled fontconfig && enable libfontconfig
|
||||
enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
|
||||
enabled libfreetype && require_libfreetype
|
||||
@ -5803,11 +5788,11 @@ enabled libopencv && { check_header opencv2/core/core_c.h &&
|
||||
require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
|
||||
require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; }
|
||||
enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion
|
||||
enabled libopenjpeg && { { check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
check_lib2 openjpeg-2.1/openjpeg.h opj_version -lopenjp2 ||
|
||||
{ check_lib2 openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
{ check_lib2 openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
{ check_lib2 openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
enabled libopenjpeg && { { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 ||
|
||||
{ check_lib openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
{ check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
{ check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } ||
|
||||
die "ERROR: libopenjpeg not found"; }
|
||||
enabled libopenmpt && require_pkg_config "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create
|
||||
enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
|
||||
@ -5835,22 +5820,22 @@ enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_in
|
||||
enabled libvpx && {
|
||||
enabled libvpx_vp8_decoder && {
|
||||
use_pkg_config "vpx >= 0.9.1" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp8_dx ||
|
||||
check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
|
||||
check_lib "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
|
||||
die "ERROR: libvpx decoder version must be >=0.9.1";
|
||||
}
|
||||
enabled libvpx_vp8_encoder && {
|
||||
use_pkg_config "vpx >= 0.9.7" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp8_cx ||
|
||||
check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx ||
|
||||
check_lib "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx ||
|
||||
die "ERROR: libvpx encoder version must be >=0.9.7";
|
||||
}
|
||||
enabled libvpx_vp9_decoder && {
|
||||
use_pkg_config "vpx >= 1.3.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp9_dx ||
|
||||
check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx ||
|
||||
check_lib "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx ||
|
||||
disable libvpx_vp9_decoder;
|
||||
}
|
||||
enabled libvpx_vp9_encoder && {
|
||||
use_pkg_config "vpx >= 1.3.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp9_cx ||
|
||||
check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VP9E_SET_AQ_MODE" -lvpx ||
|
||||
check_lib "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VP9E_SET_AQ_MODE" -lvpx ||
|
||||
disable libvpx_vp9_encoder;
|
||||
}
|
||||
if disabled_all libvpx_vp8_decoder libvpx_vp9_decoder libvpx_vp8_encoder libvpx_vp9_encoder; then
|
||||
@ -5895,16 +5880,16 @@ enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lO
|
||||
die "ERROR: openal not found"; } &&
|
||||
{ check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" ||
|
||||
die "ERROR: openal must be installed and version must be 1.1 or compatible"; }
|
||||
enabled opencl && { check_lib2 OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL ||
|
||||
check_lib2 CL/cl.h clEnqueueNDRangeKernel -lOpenCL ||
|
||||
enabled opencl && { check_lib OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL ||
|
||||
check_lib CL/cl.h clEnqueueNDRangeKernel -lOpenCL ||
|
||||
die "ERROR: opencl not found"; } &&
|
||||
{ check_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" ||
|
||||
check_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" ||
|
||||
die "ERROR: opencl must be installed and version must be 1.2 or compatible"; }
|
||||
enabled opengl && { check_lib GL/glx.h glXGetProcAddress "-lGL" ||
|
||||
check_lib2 windows.h wglGetProcAddress "-lopengl32 -lgdi32" ||
|
||||
check_lib2 OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" ||
|
||||
check_lib2 ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" ||
|
||||
check_lib windows.h wglGetProcAddress "-lopengl32 -lgdi32" ||
|
||||
check_lib OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" ||
|
||||
check_lib ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" ||
|
||||
die "ERROR: opengl not found."
|
||||
}
|
||||
enabled omx_rpi && enable omx
|
||||
@ -5939,7 +5924,7 @@ if enabled gcrypt; then
|
||||
die "ERROR: gcrypt not found"
|
||||
add_cflags $gcrypt_cflags && add_extralibs $gcrypt_libs
|
||||
else
|
||||
require2 gcrypt gcrypt.h gcry_mpi_new -lgcrypt
|
||||
require gcrypt gcrypt.h gcry_mpi_new -lgcrypt
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -5966,7 +5951,7 @@ fi
|
||||
enabled sdl2 && enable sdl && add_cflags $sdl2_cflags && add_extralibs $sdl2_libs
|
||||
|
||||
disabled securetransport || { check_func SecIdentityCreate "-Wl,-framework,CoreFoundation -Wl,-framework,Security" &&
|
||||
check_lib2 "Security/SecureTransport.h Security/Security.h" "SSLCreateContext SecItemImport" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" &&
|
||||
check_lib "Security/SecureTransport.h Security/Security.h" "SSLCreateContext SecItemImport" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" &&
|
||||
enable securetransport; }
|
||||
|
||||
disabled schannel || { check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 &&
|
||||
@ -6017,16 +6002,16 @@ fi
|
||||
check_header soundcard.h
|
||||
|
||||
enabled_any alsa_indev alsa_outdev &&
|
||||
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
|
||||
check_lib alsa/asoundlib.h snd_pcm_htimestamp -lasound
|
||||
|
||||
enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack &&
|
||||
enabled jack_indev && check_lib jack/jack.h jack_client_open -ljack &&
|
||||
check_func jack_port_get_latency_range -ljack
|
||||
|
||||
enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
|
||||
enabled_any sndio_indev sndio_outdev && check_lib sndio.h sio_open -lsndio
|
||||
|
||||
if enabled libcdio; then
|
||||
check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
|
||||
check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
|
||||
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 ||
|
||||
die "ERROR: No usable libcdio/cdparanoia found"
|
||||
fi
|
||||
|
||||
@ -6081,10 +6066,10 @@ enabled vaapi &&
|
||||
|
||||
if enabled vaapi ; then
|
||||
enabled xlib &&
|
||||
check_lib2 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
|
||||
check_lib "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
|
||||
enable vaapi_x11
|
||||
|
||||
check_lib2 "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm &&
|
||||
check_lib "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm &&
|
||||
enable vaapi_drm
|
||||
fi
|
||||
|
||||
@ -6093,7 +6078,7 @@ enabled vdpau &&
|
||||
disable vdpau
|
||||
|
||||
enabled vdpau && enabled xlib &&
|
||||
check_lib2 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
|
||||
check_lib "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
|
||||
enable vdpau_x11
|
||||
|
||||
if enabled x86; then
|
||||
@ -6117,7 +6102,7 @@ int main(void) { return 0; }
|
||||
EOF
|
||||
|
||||
# Funny iconv installations are not unusual, so check it after all flags have been set
|
||||
disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv
|
||||
disabled iconv || check_func_headers iconv.h iconv || check_lib iconv.h iconv -liconv || disable iconv
|
||||
|
||||
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user