Lines Matching +full:i686 +full:- +full:linux +full:- +full:gnu +full:- +full:pkg +full:- +full:config
5 # Copyright (c) 2000-2002 Fabrice Bellard
6 # Copyright (c) 2005-2008 Diego Biurrun
7 # Copyright (c) 2005-2008 Mans Rullgard
32 if test "0$FF_CONF_EXEC" -lt 1; then
36 if test "0$FF_CONF_EXEC" -lt 2; then
40 if test "0$FF_CONF_EXEC" -lt 3; then
45 echo "This configure script requires a POSIX-compatible shell"
48 echo "Instead, install a working POSIX-compatible shell."
50 if test "$BASH_VERSION" = '2.04.0(1)-release'; then
57 test -d /usr/xpg4/bin && PATH=/usr/xpg4/bin:$PATH
65 --help print this message
66 --quiet Suppress showing informative output
67 --list-decoders show all available decoders
68 --list-encoders show all available encoders
69 --list-hwaccels show all available hardware accelerators
70 --list-demuxers show all available demuxers
71 --list-muxers show all available muxers
72 --list-parsers show all available parsers
73 --list-protocols show all available protocols
74 --list-bsfs show all available bitstream filters
75 --list-indevs show all available input devices
76 --list-outdevs show all available output devices
77 --list-filters show all available filters
80 --logfile=FILE log tests and output to FILE [ffbuild/config.log]
81 --disable-logging do not log configure debug information
82 --fatal-warnings fail if any configure warning is generated
83 --prefix=PREFIX install in PREFIX [$prefix_default]
84 --bindir=DIR install binaries in DIR [PREFIX/bin]
85 --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]
86 --docdir=DIR install documentation in DIR [PREFIX/share/doc/ffmpeg]
87 --libdir=DIR install libs in DIR [PREFIX/lib]
88 --shlibdir=DIR install shared libs in DIR [LIBDIR]
89 --incdir=DIR install includes in DIR [PREFIX/include]
90 --mandir=DIR install man page in DIR [PREFIX/share/man]
91 --pkgconfigdir=DIR install pkg-config files in DIR [LIBDIR/pkgconfig]
92 --enable-rpath use rpath to allow installing libraries in paths
95 --install-name-dir=DIR Darwin directory name for installed targets
98 --enable-gpl allow use of GPL code, the resulting libs
100 --enable-version3 upgrade (L)GPL to version 3 [no]
101 --enable-nonfree allow use of nonfree code, the resulting libs
105 --disable-static do not build static libraries [no]
106 --enable-shared build shared libraries [no]
107 --enable-small optimize for size instead of speed
108 --disable-runtime-cpudetect disable detecting CPU capabilities at runtime (smaller binary)
109 --enable-gray enable full grayscale support (slower color)
110 --disable-swscale-alpha disable alpha channel support in swscale
111 --disable-all disable building components, libraries and programs
112 --disable-autodetect disable automatically detected external libraries [no]
115 --disable-programs do not build command line programs
116 --disable-ffmpeg disable ffmpeg build
117 --disable-ffplay disable ffplay build
118 --disable-ffprobe disable ffprobe build
121 --disable-doc do not build documentation
122 --disable-htmlpages do not build HTML documentation pages
123 --disable-manpages do not build man documentation pages
124 --disable-podpages do not build POD documentation pages
125 --disable-txtpages do not build text documentation pages
128 --disable-avdevice disable libavdevice build
129 --disable-avcodec disable libavcodec build
130 --disable-avformat disable libavformat build
131 --disable-swresample disable libswresample build
132 --disable-swscale disable libswscale build
133 --disable-postproc disable libpostproc build
134 --disable-avfilter disable libavfilter build
135 --disable-pthreads disable pthreads [autodetect]
136 --disable-w32threads disable Win32 threads [autodetect]
137 --disable-os2threads disable OS/2 threads [autodetect]
138 --disable-network disable network support [no]
139 --disable-dct disable DCT code
140 --disable-dwt disable DWT code
141 --disable-error-resilience disable error resilience code
142 --disable-lsp disable LSP code
143 --disable-mdct disable MDCT code
144 --disable-rdft disable RDFT code
145 --disable-fft disable FFT code
146 --disable-faan disable floating point AAN (I)DCT code
147 --disable-pixelutils disable pixel utils in libavutil
150 --disable-everything disable all components listed below
151 --disable-encoder=NAME disable encoder NAME
152 --enable-encoder=NAME enable encoder NAME
153 --disable-encoders disable all encoders
154 --disable-decoder=NAME disable decoder NAME
155 --enable-decoder=NAME enable decoder NAME
156 --disable-decoders disable all decoders
157 --disable-hwaccel=NAME disable hwaccel NAME
158 --enable-hwaccel=NAME enable hwaccel NAME
159 --disable-hwaccels disable all hwaccels
160 --disable-muxer=NAME disable muxer NAME
161 --enable-muxer=NAME enable muxer NAME
162 --disable-muxers disable all muxers
163 --disable-demuxer=NAME disable demuxer NAME
164 --enable-demuxer=NAME enable demuxer NAME
165 --disable-demuxers disable all demuxers
166 --enable-parser=NAME enable parser NAME
167 --disable-parser=NAME disable parser NAME
168 --disable-parsers disable all parsers
169 --enable-bsf=NAME enable bitstream filter NAME
170 --disable-bsf=NAME disable bitstream filter NAME
171 --disable-bsfs disable all bitstream filters
172 --enable-protocol=NAME enable protocol NAME
173 --disable-protocol=NAME disable protocol NAME
174 --disable-protocols disable all protocols
175 --enable-indev=NAME enable input device NAME
176 --disable-indev=NAME disable input device NAME
177 --disable-indevs disable input devices
178 --enable-outdev=NAME enable output device NAME
179 --disable-outdev=NAME disable output device NAME
180 --disable-outdevs disable output devices
181 --disable-devices disable all devices
182 --enable-filter=NAME enable filter NAME
183 --disable-filter=NAME disable filter NAME
184 --disable-filters disable all filters
191 explicitly disabled. E.g. --enable-libopus will enable linking to
193 specifically disabled with --disable-encoder=libopus.
195 Note that only the system libraries are auto-detected. All the other external
201 --disable-alsa disable ALSA support [autodetect]
202 --disable-appkit disable Apple AppKit framework [autodetect]
203 --disable-avfoundation disable Apple AVFoundation framework [autodetect]
204 --enable-avisynth enable reading of AviSynth script files [no]
205 --disable-bzlib disable bzlib [autodetect]
206 --disable-coreimage disable Apple CoreImage framework [autodetect]
207 --enable-chromaprint enable audio fingerprinting with chromaprint [no]
208 --enable-frei0r enable frei0r video filtering [no]
209 --enable-gcrypt enable gcrypt, needed for rtmp(t)e support
211 --enable-gmp enable gmp, needed for rtmp(t)e support
213 --enable-gnutls enable gnutls, needed for https support
215 --disable-iconv disable iconv [autodetect]
216 --enable-jni enable JNI support [no]
217 --enable-ladspa enable LADSPA audio filtering [no]
218 --enable-lcms2 enable ICC profile support via LittleCMS 2 [no]
219 --enable-libaom enable AV1 video encoding/decoding via libaom [no]
220 --enable-libaribb24 enable ARIB text and caption decoding via libaribb24 [no]
221 --enable-libass enable libass subtitles rendering,
223 --enable-libbluray enable BluRay reading using libbluray [no]
224 --enable-libbs2b enable bs2b DSP library [no]
225 --enable-libcaca enable textual display using libcaca [no]
226 --enable-libcelt enable CELT decoding via libcelt [no]
227 --enable-libcdio enable audio CD grabbing with libcdio [no]
228 --enable-libcodec2 enable codec2 en/decoding using libcodec2 [no]
229 --enable-libdav1d enable AV1 decoding via libdav1d [no]
230 --enable-libdavs2 enable AVS2 decoding via libdavs2 [no]
231 --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
233 --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
234 --enable-libflite enable flite (voice synthesis) support via libflite [no]
235 --enable-libfontconfig enable libfontconfig, useful for drawtext filter [no]
236 --enable-libfreetype enable libfreetype, needed for drawtext filter [no]
237 --enable-libfribidi enable libfribidi, improves drawtext filter [no]
238 --enable-libglslang enable GLSL->SPIRV compilation via libglslang [no]
239 --enable-libgme enable Game Music Emu via libgme [no]
240 --enable-libgsm enable GSM de/encoding via libgsm [no]
241 --enable-libiec61883 enable iec61883 via libiec61883 [no]
242 --enable-libilbc enable iLBC de/encoding via libilbc [no]
243 --enable-libjack enable JACK audio sound server [no]
244 --enable-libjxl enable JPEG XL de/encoding via libjxl [no]
245 --enable-libklvanc enable Kernel Labs VANC processing [no]
246 --enable-libkvazaar enable HEVC encoding via libkvazaar [no]
247 --enable-liblensfun enable lensfun lens correction [no]
248 --enable-libmodplug enable ModPlug via libmodplug [no]
249 --enable-libmp3lame enable MP3 encoding via libmp3lame [no]
250 --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
251 --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
252 --enable-libopencv enable video filtering via libopencv [no]
253 --enable-libopenh264 enable H.264 encoding via OpenH264 [no]
254 --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
255 --enable-libopenmpt enable decoding tracked files via libopenmpt [no]
256 --enable-libopenvino enable OpenVINO as a DNN module backend
258 --enable-libopus enable Opus de/encoding via libopus [no]
259 --enable-libplacebo enable libplacebo library [no]
260 --enable-libpulse enable Pulseaudio input via libpulse [no]
261 --enable-librabbitmq enable RabbitMQ library [no]
262 --enable-librav1e enable AV1 encoding via rav1e [no]
263 --enable-librist enable RIST via librist [no]
264 --enable-librsvg enable SVG rasterization via librsvg [no]
265 --enable-librubberband enable rubberband needed for rubberband filter [no]
266 --enable-librtmp enable RTMP[E] support via librtmp [no]
267 --enable-libshaderc enable GLSL->SPIRV compilation via libshaderc [no]
268 --enable-libshine enable fixed-point MP3 encoding via libshine [no]
269 --enable-libsmbclient enable Samba protocol via libsmbclient [no]
270 --enable-libsnappy enable Snappy compression, needed for hap encoding [no]
271 --enable-libsoxr enable Include libsoxr resampling [no]
272 --enable-libspeex enable Speex de/encoding via libspeex [no]
273 --enable-libsrt enable Haivision SRT protocol via libsrt [no]
274 --enable-libssh enable SFTP protocol via libssh [no]
275 --enable-libsvtav1 enable AV1 encoding via SVT [no]
276 --enable-libtensorflow enable TensorFlow as a DNN module backend
278 --enable-libtesseract enable Tesseract, needed for ocr filter [no]
279 --enable-libtheora enable Theora encoding via libtheora [no]
280 --enable-libtls enable LibreSSL (via libtls), needed for https support
282 --enable-libtwolame enable MP2 encoding via libtwolame [no]
283 --enable-libuavs3d enable AVS3 decoding via libuavs3d [no]
284 --enable-libv4l2 enable libv4l2/v4l-utils [no]
285 --enable-libvidstab enable video stabilization using vid.stab [no]
286 --enable-libvmaf enable vmaf filter via libvmaf [no]
287 --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
288 --enable-libvorbis enable Vorbis en/decoding via libvorbis,
290 --enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
291 --enable-libwebp enable WebP encoding via libwebp [no]
292 --enable-libx264 enable H.264 encoding via x264 [no]
293 --enable-libx265 enable HEVC encoding via x265 [no]
294 --enable-libxavs enable AVS encoding via xavs [no]
295 --enable-libxavs2 enable AVS2 encoding via xavs2 [no]
296 --enable-libxcb enable X11 grabbing using XCB [autodetect]
297 --enable-libxcb-shm enable X11 grabbing shm communication [autodetect]
298 --enable-libxcb-xfixes enable X11 grabbing mouse rendering [autodetect]
299 --enable-libxcb-shape enable X11 grabbing shape rendering [autodetect]
300 --enable-libxvid enable Xvid encoding via xvidcore,
301 native MPEG-4/Xvid encoder exists [no]
302 --enable-libxml2 enable XML parsing using the C library libxml2, needed
304 --enable-libzimg enable z.lib, needed for zscale filter [no]
305 --enable-libzmq enable message passing via libzmq [no]
306 --enable-libzvbi enable teletext support via libzvbi [no]
307 --enable-lv2 enable LV2 audio filtering [no]
308 --disable-lzma disable lzma [autodetect]
309 --enable-decklink enable Blackmagic DeckLink I/O support [no]
310 --enable-mbedtls enable mbedTLS, needed for https support
312 --enable-mediacodec enable Android MediaCodec support [no]
313 --enable-mediafoundation enable encoding via MediaFoundation [auto]
314 --disable-metal disable Apple Metal framework [autodetect]
315 --enable-libmysofa enable libmysofa, needed for sofalizer filter [no]
316 --enable-openal enable OpenAL 1.1 capture support [no]
317 --enable-opencl enable OpenCL processing [no]
318 --enable-opengl enable OpenGL rendering [no]
319 --enable-openssl enable openssl, needed for https support
321 --enable-pocketsphinx enable PocketSphinx, needed for asr filter [no]
322 --disable-sndio disable sndio support [autodetect]
323 --disable-schannel disable SChannel SSP, needed for TLS support on
325 --disable-sdl2 disable sdl2 [autodetect]
326 --disable-securetransport disable Secure Transport, needed for TLS support
328 --enable-vapoursynth enable VapourSynth demuxer [no]
329 --disable-vulkan disable Vulkan code [autodetect]
330 --disable-xlib disable xlib [autodetect]
331 --disable-zlib disable zlib [autodetect]
334 --disable-amf disable AMF video encoding code [autodetect]
335 --disable-audiotoolbox disable Apple AudioToolbox code [autodetect]
336 --enable-cuda-nvcc enable Nvidia CUDA compiler [no]
337 --disable-cuda-llvm disable CUDA compilation using clang [autodetect]
338 --disable-cuvid disable Nvidia CUVID support [autodetect]
339 --disable-d3d11va disable Microsoft Direct3D 11 video acceleration code [autodetect]
340 --disable-dxva2 disable Microsoft DirectX 9 video acceleration code [autodetect]
341 --disable-ffnvcodec disable dynamically linked Nvidia code [autodetect]
342 --enable-libdrm enable DRM code (Linux) [no]
343 --enable-libmfx enable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no]
344 --enable-libnpp enable Nvidia Performance Primitives-based code [no]
345 …--enable-mmal enable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no]
346 --disable-nvdec disable Nvidia video decoding acceleration (via hwaccel) [autodetect]
347 --disable-nvenc disable Nvidia video encoding code [autodetect]
348 --enable-omx enable OpenMAX IL code [no]
349 --enable-omx-rpi enable OpenMAX IL code for Raspberry Pi [no]
350 --enable-rkmpp enable Rockchip Media Process Platform code [no]
351 --disable-v4l2-m2m disable V4L2 mem2mem code [autodetect]
352 --disable-vaapi disable Video Acceleration API (mainly Unix/Intel) code [autodetect]
353 …--disable-vdpau disable Nvidia Video Decode and Presentation API for Unix code [autodetec…
354 --disable-videotoolbox disable VideoToolbox code [autodetect]
357 --arch=ARCH select architecture [$arch]
358 --cpu=CPU select the minimum required CPU (affects
360 --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]
361 --progs-suffix=SUFFIX program name suffix []
362 --enable-cross-compile assume a cross-compiler is used
363 --sysroot=PATH root of cross-build tree
364 --sysinclude=PATH location of cross-build system headers
365 --target-os=OS compiler targets OS [$target_os]
366 --target-exec=CMD command to run executables on target
367 --target-path=DIR path to view of build directory on target
368 --target-samples=DIR path to samples directory on target
369 --tempprefix=PATH force fixed dir/prefix instead of mktemp for checks
370 --toolchain=NAME set tool defaults according to NAME
371 (gcc-asan, clang-asan, gcc-msan, clang-msan,
372 gcc-tsan, clang-tsan, gcc-usan, clang-usan,
373 valgrind-massif, valgrind-memcheck,
374 msvc, icl, gcov, llvm-cov, hardened)
375 --nm=NM use nm tool NM [$nm_default]
376 --ar=AR use archive tool AR [$ar_default]
377 --as=AS use assembler AS [$as_default]
378 --ln_s=LN_S use symbolic link tool LN_S [$ln_s_default]
379 --strip=STRIP use strip tool STRIP [$strip_default]
380 --windres=WINDRES use windows resource compiler WINDRES [$windres_default]
381 --x86asmexe=EXE use nasm-compatible assembler EXE [$x86asmexe_default]
382 --cc=CC use C compiler CC [$cc_default]
383 --cxx=CXX use C compiler CXX [$cxx_default]
384 --objcc=OCC use ObjC compiler OCC [$cc_default]
385 --dep-cc=DEPCC use dependency generator DEPCC [$cc_default]
386 --nvcc=NVCC use Nvidia CUDA compiler NVCC or clang [$nvcc_default]
387 --ld=LD use linker LD [$ld_default]
388 --metalcc=METALCC use metal compiler METALCC [$metalcc_default]
389 --metallib=METALLIB use metal linker METALLIB [$metallib_default]
390 --pkg-config=PKGCONFIG use pkg-config tool PKGCONFIG [$pkg_config_default]
391 --pkg-config-flags=FLAGS pass additional flags to pkgconf []
392 --ranlib=RANLIB use ranlib RANLIB [$ranlib_default]
393 --doxygen=DOXYGEN use DOXYGEN to generate API doc [$doxygen_default]
394 --host-cc=HOSTCC use host C compiler HOSTCC
395 --host-cflags=HCFLAGS use HCFLAGS when compiling for host
396 --host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host
397 --host-ld=HOSTLD use host linker HOSTLD
398 --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
399 --host-extralibs=HLIBS use libs HLIBS when linking for host
400 --host-os=OS compiler host OS [$target_os]
401 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
402 --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
403 --extra-objcflags=FLAGS add FLAGS to OBJCFLAGS [$CFLAGS]
404 --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
405 --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS]
406 --extra-ldsoflags=ELDFLAGS add ELDFLAGS to LDSOFLAGS [$LDSOFLAGS]
407 --extra-libs=ELIBS add ELIBS [$ELIBS]
408 --extra-version=STRING version string suffix []
409 --optflags=OPTFLAGS override optimization-related compiler flags
410 --nvccflags=NVCCFLAGS override nvcc flags [$nvccflags_default]
411 --build-suffix=SUFFIX library name suffix []
412 --enable-pic build position-independent code
413 --enable-thumb compile for Thumb instruction set
414 --enable-lto use link-time optimization
415 --env="ENV=override" override the environment variables
418 --malloc-prefix=PREFIX prefix malloc and related names with PREFIX
419 --custom-allocator=NAME use a supported custom allocator
420 --disable-symver disable symbol versioning
421 --enable-hardcoded-tables use hardcoded tables instead of runtime generation
422 --disable-safe-bitstream-reader
425 --sws-max-filter-size=N the max filter size swscale uses [$sws_max_filter_size_default]
428 --disable-asm disable all assembly optimizations
429 --disable-altivec disable AltiVec optimizations
430 --disable-vsx disable VSX optimizations
431 --disable-power8 disable POWER8 optimizations
432 --disable-amd3dnow disable 3DNow! optimizations
433 --disable-amd3dnowext disable 3DNow! extended optimizations
434 --disable-mmx disable MMX optimizations
435 --disable-mmxext disable MMXEXT optimizations
436 --disable-sse disable SSE optimizations
437 --disable-sse2 disable SSE2 optimizations
438 --disable-sse3 disable SSE3 optimizations
439 --disable-ssse3 disable SSSE3 optimizations
440 --disable-sse4 disable SSE4 optimizations
441 --disable-sse42 disable SSE4.2 optimizations
442 --disable-avx disable AVX optimizations
443 --disable-xop disable XOP optimizations
444 --disable-fma3 disable FMA3 optimizations
445 --disable-fma4 disable FMA4 optimizations
446 --disable-avx2 disable AVX2 optimizations
447 --disable-avx512 disable AVX-512 optimizations
448 --disable-avx512icl disable AVX-512ICL optimizations
449 --disable-aesni disable AESNI optimizations
450 --disable-armv5te disable armv5te optimizations
451 --disable-armv6 disable armv6 optimizations
452 --disable-armv6t2 disable armv6t2 optimizations
453 --disable-vfp disable VFP optimizations
454 --disable-neon disable NEON optimizations
455 --disable-inline-asm disable use of inline assembly
456 --disable-x86asm disable use of standalone x86 assembly
457 --disable-mipsdsp disable MIPS DSP ASE R1 optimizations
458 --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations
459 --disable-msa disable MSA optimizations
460 --disable-mipsfpu disable floating point MIPS optimizations
461 --disable-mmi disable Loongson MMI optimizations
462 --disable-lsx disable Loongson LSX optimizations
463 --disable-lasx disable Loongson LASX optimizations
464 --disable-fast-unaligned consider unaligned accesses slow
467 --disable-debug disable debugging symbols
468 --enable-debug=LEVEL set the debug level [$debuglevel]
469 --disable-optimizations disable compiler optimizations
470 --enable-extra-warnings enable more compiler warnings
471 --disable-stripping disable stripping of executables and shared libraries
472 --assert-level=level 0(default), 1 or 2, amount of assertion testing,
474 --enable-memory-poisoning fill heap uninitialized allocated space with arbitrary data
475 --valgrind=VALGRIND run "make fate" tests through valgrind to detect memory
477 Cannot be combined with --target-exec
478 --enable-ftrapv Trap arithmetic overflows
479 --samples=PATH location of test samples for FATE, if not set use
481 --enable-neon-clobber-test check NEON registers for clobbering (should be
483 --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
485 --enable-random randomly enable/disable components
486 --disable-random
487 --enable-random=LIST randomly enable/disable specific components or
488 --disable-random=LIST component groups. LIST is a comma-separated list
492 --random-seed=VALUE seed value for --enable/disable-random
493 --disable-valgrind-backtrace do not print a backtrace under Valgrind
494 (only applies to --disable-optimizations builds)
495 --enable-ossfuzz Enable building fuzzer tool
496 --libfuzzer=PATH path to libfuzzer
497 --ignore-tests=TESTS comma-separated list (without "fate-" prefix
499 --enable-linux-perf enable Linux Performance Monitor API
500 --enable-macos-kperf enable macOS kperf (private) API
501 --disable-large-tests disable tests that use a large amount of memory
502 --disable-ptx-compression don't compress CUDA PTX code even when possible
509 if test -t 1 && which tput >/dev/null 2>&1; then
511 if test -n "$ncolors" && test $ncolors -ge 8; then
529 while IFS= read -r log_file_line; do
548 ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
552 Rerun configure with logging enabled (do not use --disable-logging), and
579 test "x$v" = "x${v#*[!A-Za-z0-9_/.+-]}" || v="'$v'"
638 echo $@ | sed 's/[^A-Za-z0-9_]/_/g'
661 eval level=\${${pvar}_level:-0}
663 eval level=$(($level-1))
722 set -- $var
737 set -- $var
817 # most of the time here $cfg has no deps - avoid costly no-op work
821 set -- $cfg "$dep_all" "$dep_any" "$dep_con" "$dep_sel" "$dep_sgs" "$dep_ifa" "$dep_ifn"
825 [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; }
826 [ -n "$dep_ifn" ] && { enabled_any $dep_ifn && enable_weak $cfg; }
849 map 'eval echo "$v \${$v:-no}"' "$@" |
863 n = -v ? \"\" : \"!\";
866 pre = -v ? \"\" : \"@c \";
869 gsub(/_/, \"-\", c2);
906 # keeps the last occurence of each non-unique item
988 map 'add_cppflags -D$v' "$@"
1044 test_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP
1051 …test_cmd $objcc -Werror=missing-prototypes $CPPFLAGS $CFLAGS $OBJCFLAGS "$@" $OBJCC_C $(cc_o $TMPO…
1060 [ -x "$(command -v cygpath)" ] && tmpcu_=$(cygpath -m $tmpcu_) && tmpo_=$(cygpath -m $tmpo_)
1096 test_cmd $x86asmexe $X86ASMFLAGS -Werror "$@" $(x86asm_o $TMPO) $TMPASM
1166 flags=$(filter_out '-l*|*.so' $@)
1167 libs=$(filter '-l*|*.so' $@)
1213 set -- $($cflags_filter "$@")
1226 set -- $($cflags_filter "$@")
1234 set -- $($objcflags_filter "$@")
1247 set -- $($ldflags_filter "$@")
1287 rm -f -- "$TMPO"
1304 enable $name && eval ${name}_extralibs='"-framework $framework"'
1415 set -- $($cflags_filter "$flags")
1450 pkg="${2%% *}"
1455 test_cmd $pkg_config --exists --print-errors $pkg_version || return
1456 pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg)
1457 pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg)
1458 pkg_incdir=$($pkg_config --variable=includedir $pkg_config_flags $pkg)
1470 pkg="${2%% *}"
1475 test_cmd $pkg_config --exists --print-errors $pkg_version || return
1476 pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg)
1477 pkg_incdir=$($pkg_config --variable=includedir $pkg_config_flags $pkg)
1478 pkg_incflags=$($pkg_config --cflags-only-I $pkg_config_flags $pkg)
1558 test_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
1579 test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name"
1627 …check_pkg_config "$@" || die "ERROR: $pkg_version not found using pkg-config$pkg_config_fail_messa…
1633 …check_pkg_config_cpp "$@" || die "ERROR: $pkg_version not found using pkg-config$pkg_config_fail_m…
1659 set -- $($host_cflags_filter "$@")
1687 cmp -s "$1" "$2" && { test "$quiet" != "yes" && echo "$2 is unchanged"; } && return
1688 mkdir -p "$(dirname $2)"
1689 cp -f "$1" "$2"
1693 # system-dependent things.
2130 i686
2655 cpunop_deps="i686"
2656 x86_64_select="i686"
3016 videotoolbox_hwaccel_extralibs="-framework QuartzCore"
3134 # hardware-accelerated codecs
3499 android_camera_indev_extralibs="-landroid -lcamera2ndk -lmediandk"
3504 avfoundation_indev_extralibs="-framework Foundation"
3506 audiotoolbox_outdev_extralibs="-framework AudioToolbox -framework CoreAudio"
3511 decklink_indev_extralibs="-lstdc++"
3515 decklink_outdev_extralibs="-lstdc++"
3517 dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi"
3521 gdigrab_indev_extralibs="-lgdi32"
3638 coreimage_filter_extralibs="-framework OpenGL"
3640 coreimagesrc_filter_extralibs="-framework OpenGL"
3839 logfile="ffbuild/config.log"
3857 ln_s_default="ln -s -f"
3858 metalcc_default="xcrun -sdk macosx metal"
3859 metallib_default="xcrun -sdk macosx metallib"
3860 nm_default="nm -g"
3861 pkg_config_default=pkg-config
3864 version_script='--version-script'
3871 target_os_default=$(tolower $(uname -s))
3876 arch_default=$(uname -p)
3877 strip_default="strip -X32_64"
3878 nm_default="nm -g -X32_64"
3880 arch_default=$(uname -m)
3911 # Avoid external, non-system, libraries getting enabled by dependency resolution
3915 SHFLAGS='-shared -Wl,-soname,$$(@F)'
3934 AS_C='-c'
3935 AS_O='-o $@'
3936 CC_C='-c'
3937 CC_E='-E -o $@'
3938 CC_O='-o $@'
3939 CXX_C='-c'
3940 CXX_O='-o $@'
3941 OBJCC_C='-c'
3942 OBJCC_E='-E -o $@'
3943 OBJCC_O='-o $@'
3944 X86ASM_O='-o $@'
3945 LD_O='-o $@'
3946 LD_LIB='-l%'
3947 LD_PATH='-L'
3948 HOSTCC_C='-c'
3949 HOSTCC_E='-E -o $@'
3950 HOSTCC_O='-o $@'
3951 HOSTLD_O='-o $@'
3952 NVCC_C='-c'
3953 NVCC_O='-o $@'
3955 host_extralibs='-lm'
3961 # since the object filename is not given with the -MM flag, the compiler
3963 DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>/dev/null | sed -e "/^\#.*/d" -e "s,^[[:sp…
3964 DEPFLAGS='-MM'
3966 mkdir -p ffbuild
3969 if test -f configure; then
3971 elif test -f src/configure; then
3978 test -e "$source_path/config.h" &&
3979 die "Out of tree builds are impossible with config.h in source dir."
3993 out=${4:-$thing}
3994 sed -n "s/^[^#]*extern.*$pattern *ff_\([^ ]*\)_$thing;/\1_$out/p" "$file"
3999 … sed -n 's/^extern const AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file
4058 echo "See $0 --help for available options."
4063 tr ' ' '\n' | sort | tr '\r\n' ' ' | awk -v col_width=24 -v width="$ncols" '
4066 num_rows = int((NF + num_cols-1) / num_cols);
4072 line = sprintf("%s%-" col_width "s", line, $i);
4090 set -- $*
4097 echo "prob ${prob:-0.5}"
4112 --extra-ldflags=*)
4115 --extra-ldexeflags=*)
4118 --extra-ldsoflags=*)
4121 --extra-ldlibflags=*)
4122 warn "The --extra-ldlibflags option is only provided for compatibility and will be\n"\
4123 "removed in the future. Use --extra-ldsoflags instead."
4126 --extra-libs=*)
4129 --disable-devices)
4132 --enable-debug=*)
4135 --disable-programs)
4138 --disable-everything)
4141 --disable-all)
4146 --enable-random|--disable-random)
4147 action=${opt%%-random}
4148 do_random ${action#--} $COMPONENT_LIST
4150 --enable-random=*|--disable-random=*)
4151 action=${opt%%-random=*}
4152 do_random ${action#--} $optval
4154 --enable-sdl)
4157 --enable-*=*|--disable-*=*)
4158 eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
4167 --enable-yasm|--disable-yasm)
4169 "removed in the future. Use --enable-x86asm / --disable-x86asm instead."
4170 test $opt = --enable-yasm && x86asm=yes || x86asm=no
4172 --yasmexe=*)
4173 warn "The --yasmexe option is only provided for compatibility and will be\n"\
4174 "removed in the future. Use --x86asmexe instead."
4177 --enable-?*|--disable-?*)
4178 eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
4188 --list-*)
4189 NAME="${opt#--list-}"
4194 --help|-h) show_help
4196 --quiet|-q) quiet=yes
4198 --fatal-warnings) enable fatal_warnings
4200 --libfuzzer=*)
4205 optname="${optname#--}"
4206 optname=$(echo "$optname" | sed 's/-/_/g')
4247 Specify --enable-static to build the static libraries or --enable-shared to
4249 --disable-static in addition to --enable-shared.
4255 enabled $1 || { enabled $v && die "$v is $1 and --enable-$1 is not specified."; }
4259 …enabled $1 || { enabled $v && die "$v is incompatible with the gpl and --enable-$1 is not specifie…
4291 # Disable all the library-specific components if the library itself
4306 test -n "$valgrind" && toolchain="valgrind-memcheck"
4308 enabled ossfuzz && ! echo $CFLAGS | grep -q -- "-fsanitize=" && ! echo $CFLAGS | grep -q -- "-fcov…
4309 …add_cflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp -fno-omit-fr…
4310 add_ldflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp
4314 *-asan)
4315 cc_default="${toolchain%-asan}"
4316 add_cflags -fsanitize=address
4317 add_ldflags -fsanitize=address
4319 *-msan)
4320 cc_default="${toolchain%-msan}"
4321 add_cflags -fsanitize=memory -fsanitize-memory-track-origins
4322 add_ldflags -fsanitize=memory
4324 *-tsan)
4325 cc_default="${toolchain%-tsan}"
4326 add_cflags -fsanitize=thread
4327 add_ldflags -fsanitize=thread
4329 gcc-tsan)
4330 add_cflags -fPIC
4331 add_ldflags -fPIC
4335 *-usan)
4336 cc_default="${toolchain%-usan}"
4337 add_cflags -fsanitize=undefined
4338 add_ldflags -fsanitize=undefined
4340 valgrind-*)
4343 valgrind-massif)
4344 …--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_p…
4346 valgrind-memcheck)
4347 …_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressi…
4358 cl_major_ver=$(cl.exe 2>&1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p')
4359 if [ -z "$cl_major_ver" ] || [ $cl_major_ver -ge 18 ]; then
4366 nm_default="dumpbin.exe -symbols"
4368 case "${arch:-$arch_default}" in
4380 # such as -Fo<file> or -out:<file>.
4386 nm_default="dumpbin -symbols"
4392 add_cflags -fprofile-arcs -ftest-coverage
4393 add_ldflags -fprofile-arcs -ftest-coverage
4395 llvm-cov)
4396 add_cflags -fprofile-arcs -ftest-coverage
4397 add_ldflags --coverage
4400 add_cppflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
4401 add_cflags -fno-strict-overflow -fstack-protector-all
4402 add_ldflags -Wl,-z,relro -Wl,-z,now
4403 add_cflags -fPIE
4404 add_ldexeflags -fPIE -pie
4411 if test -n "$cross_prefix"; then
4412 test -n "$arch" && test -n "$target_os" ||
4413 die "Must specify target arch (--arch) and OS (--target-os) when cross-compiling"
4434 warn "Option --enable-cuda-sdk is deprecated. Use --enable-cuda-nvcc instead."
4440 nvccflags_default="-gencode arch=compute_30,code=sm_30 -O2"
4443 nvccflags_default="--cuda-gpu-arch=sm_30 -O2"
4450 if $nvcc $nvccflags_default 2>&1 | grep -qi unsupported; then
4451 nvccflags_default="-gencode arch=compute_60,code=sm_60 -O2"
4460 if ${ranlib} 2>&1 | grep -q "\-D "; then
4461 ranlib="${ranlib} -D"
4465 if ! $pkg_config --version >/dev/null 2>&1; then
4468 elif is_in -static $cc $LDFLAGS && ! is_in --static $pkg_config $pkg_config_flags; then
4470 Note: When building a static binary, add --pkg-config-flags=\"--static\"."
4474 ! $doxygen --version >/dev/null 2>&1; then
4480 … mingw32*|mingw64*|msys*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;;
4492 if [ -n "$tempprefix" ] ; then
4498 elif ! test_cmd mktemp -u XXXXXX; then
4508 FFTMPDIR=$(mktemp -d "${TMPDIR}/ffconf.XXXXXXXX" 2> /dev/null) ||
4513 (set -C; exec > $tmp) 2> /dev/null ||
4518 trap 'rm -rf -- "$FFTMPDIR"' EXIT
4533 unset -f mktemp
4554 # be passed to gas-preprocessor
4555 -M[TD]*) ;;
4564 -Wno-switch) echo -Wno-switch-enum ;;
4565 -Wno-format-zero-length) ;;
4566 -Wdisabled-optimization) ;;
4567 -Wno-pointer-sign) echo -Wno-other ;;
4579 -Wall) ;;
4580 -Wextra) ;;
4581 -std=c*) ;;
4583 -fomit-frame-pointer) ;;
4584 -g) echo -Z7 ;;
4585 -fno-math-errno) ;;
4586 -fno-common) ;;
4587 -fno-signed-zeros) ;;
4588 -fPIC) ;;
4589 -mthumb) ;;
4590 -march=*) ;;
4591 -lz) echo zlib.lib ;;
4592 -lx264) echo libx264.lib ;;
4593 -lstdc++) ;;
4594 -l*) echo ${flag#-l}.lib ;;
4595 -LARGEADDRESSAWARE) echo $flag ;;
4596 -L*) echo -libpath:${flag#-L} ;;
4597 -Wl,*) ;;
4607 -Wall) echo -W3 -wd4018 -wd4146 -wd4244 -wd4305 \
4608 -wd4554 ;;
4609 -Wextra) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
4610 -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
4611 -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
4612 -wd4307 \
4613 -wd4273 -wd4554 -wd4701 -wd4703 ;;
4622 # Despite what Intel's documentation says -Wall, which is supported
4624 -Wall) echo $flag -Qdiag-disable:remark ;;
4625 -std=c99) echo -Qstd=c99 ;;
4626 -flto) echo -ipo ;;
4634 -flto) echo -ipo ;;
4643 -march=*|-mcpu=*)
4645 native) echo -xtarget=native ;;
4646 v9|niagara) echo -xarch=sparc ;;
4647 ultrasparc) echo -xarch=sparcvis ;;
4648 ultrasparc3|niagara2) echo -xarch=sparcvis2 ;;
4649 i586|pentium) echo -xchip=pentium ;;
4650 i686|pentiumpro|pentium2) echo -xtarget=pentium_pro ;;
4651 pentium3*|c3-2) echo -xtarget=pentium3 ;;
4652 pentium-m) echo -xarch=sse2 -xchip=pentium3 ;;
4653 pentium4*) echo -xtarget=pentium4 ;;
4654 prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;;
4655 *-sse3) echo -xarch=sse3 ;;
4656 core2) echo -xarch=ssse3 -xchip=core2 ;;
4657 bonnell) echo -xarch=ssse3 ;;
4658 corei7|nehalem) echo -xtarget=nehalem ;;
4659 westmere) echo -xtarget=westmere ;;
4660 silvermont) echo -xarch=sse4_2 ;;
4661 corei7-avx|sandybridge) echo -xtarget=sandybridge ;;
4662 core-avx*|ivybridge|haswell|broadwell|skylake*|knl)
4663 echo -xarch=avx ;;
4664 amdfam10|barcelona) echo -xtarget=barcelona ;;
4665 btver1) echo -xarch=amdsse4a ;;
4666 btver2|bdver*|znver*) echo -xarch=avx ;;
4667 athlon-4|athlon-[mx]p) echo -xarch=ssea ;;
4668 k8|opteron|athlon64|athlon-fx)
4669 echo -xarch=sse2a ;;
4670 athlon*) echo -xarch=pentium_proa ;;
4673 -std=c99) echo -xc99 ;;
4674 -fomit-frame-pointer) echo -xregs=frameptr ;;
4675 -fPIC) echo -KPIC -xcode=pic32 ;;
4676 -W*,*) echo $flag ;;
4677 -f*-*|-W*|-mimpure-text) ;;
4678 -shared) echo -G ;;
4694 if $_cc --version 2>&1 | grep -q '^GNU assembler'; then
4695 true # no-op to avoid reading stdin in following checks
4696 elif $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
4698 gcc_extra_ver=$(expr "$($_cc --version 2>/dev/null | head -n1)" : '.*\((.*)\)')
4699 _ident="llvm-gcc $($_cc -dumpversion 2>/dev/null) $gcc_extra_ver"
4700 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
4701 _cflags_speed='-O3'
4702 _cflags_size='-Os'
4703 elif $_cc -v 2>&1 | grep -qi ^gcc; then
4705 gcc_version=$($_cc --version | head -n1)
4706 gcc_basever=$($_cc -dumpversion)
4713 *) _depflags='-MMD -MF $(@:.o=.d) -MT $@' ;;
4721 _cflags_speed='-O3'
4722 _cflags_size='-Os'
4723 elif $_cc --version 2>/dev/null | grep -q ^icc; then
4725 _ident=$($_cc --version | head -n1)
4726 _depflags='-MMD'
4727 _cflags_speed='-O3'
4728 _cflags_size='-Os'
4729 _cflags_noopt='-O1'
4731 elif $_cc -v 2>&1 | grep -q xlc; then
4733 _ident=$($_cc -qversion 2>/dev/null | head -n1)
4734 _cflags_speed='-O5'
4735 _cflags_size='-O5 -qcompact'
4736 elif $_cc --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then
4737 test -d "$sysroot" || die "No valid sysroot specified."
4739 _ident=$($_cc --vsn | grep -i build | head -n1 | sed 's/.*: //')
4741 $_cc --arm_linux_configure \
4742 --arm_linux_config_file="$armcc_conf" \
4743 --configure_sysroot="$sysroot" \
4744 --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 ||
4746 $_cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc
4747 _flags="--arm_linux_config_file=$armcc_conf --translate_gcc"
4749 _depflags='-MMD'
4750 _cflags_speed='-O3'
4751 _cflags_size='-Os'
4752 elif $_cc -v 2>&1 | grep -q clang && ! $_cc -? > /dev/null 2>&1; then
4754 _ident=$($_cc --version 2>/dev/null | head -n1)
4755 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
4756 _cflags_speed='-O3'
4757 _cflags_size='-Oz'
4758 elif $_cc -V 2>&1 | grep -q Sun; then
4760 _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-)
4761 …='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e…
4762 _DEPFLAGS='-xM1 -xc99'
4763 _ldflags='-std=c99'
4764 _cflags_speed='-O5'
4765 _cflags_size='-O5 -xspace'
4767 elif $_cc -v 2>&1 | grep -q 'PathScale\|Path64'; then
4769 _ident=$($_cc -v 2>&1 | head -n1 | tr -d :)
4770 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
4771 _cflags_speed='-O2'
4772 _cflags_size='-Os'
4773 _flags_filter='filter_out -Wdisabled-optimization'
4774 elif $_cc -v 2>&1 | grep -q Open64; then
4776 _ident=$($_cc -v 2>&1 | head -n1 | tr -d :)
4777 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
4778 _cflags_speed='-O2'
4779 _cflags_size='-Os'
4780 _flags_filter='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros'
4781 elif $_cc 2>&1 | grep -q 'Microsoft.*ARM.*Assembler'; then
4783 _ident=$($_cc | head -n1)
4785 _flags="-nologo -ignore 4509"
4787 elif $_cc 2>&1 | grep -q Intel; then
4789 _ident=$($_cc 2>&1 | head -n1)
4790 _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@'
4793 _cflags_speed="-O2"
4794 _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff
4795 if $_cc 2>&1 | grep -q Linker; then
4796 _ld_o='-out:$@'
4798 _ld_o='-Fe$@'
4800 _cc_o='-Fo$@'
4801 _cc_e='-P'
4804 _ld_path='-libpath:'
4805 # -Qdiag-error to make icl error when seeing certain unknown arguments
4806 _flags='-nologo -Qdiag-error:4044,10157'
4807 # -Qvec- -Qsimd- to prevent miscompilation, -GS, fp:precise for consistency
4809 _cflags='-Qms0 -Qvec- -Qsimd- -GS -fp:precise'
4811 elif $_cc -? 2>/dev/null | grep -q 'LLVM.*Linker'; then
4813 # the -? parameter gives the help output which contains an identifyable
4815 _type=lld-link
4817 # but we can force it back to gnu mode and get the version from there.
4818 _ident=$($_cc -flavor gnu --version 2>/dev/null)
4819 _ld_o='-out:$@'
4822 _ld_path='-libpath:'
4823 …elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/nu…
4825 if $_cc -nologo- 2>&1 | grep -q Microsoft; then
4826 _ident=$($_cc 2>&1 | head -n1 | tr -d '\r')
4828 _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r')
4831 _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
4832 _cflags_speed="-O2"
4833 _cflags_size="-O1"
4834 _cflags_noopt="-O1"
4835 if $_cc -nologo- 2>&1 | grep -q Linker; then
4836 _ld_o='-out:$@'
4838 _ld_o='-Fe$@'
4840 _cc_o='-Fo$@'
4841 _cc_e='-P -Fi$@'
4844 _ld_path='-libpath:'
4845 _flags='-nologo'
4847 elif $_cc --version 2>/dev/null | grep -q ^cparser; then
4849 _ident=$($_cc --version | head -n1)
4850 _depflags='-MMD'
4851 _cflags_speed='-O4'
4852 _cflags_size='-O2'
4861 eval ${1}_C=\${_cc_c-\${${1}_C}}
4862 eval ${1}_E=\${_cc_e-\${${1}_E}}
4863 eval ${1}_O=\${_cc_o-\${${1}_O}}
4865 if [ -n "$_depflags" ]; then
4868 eval ${1}DEP=\${_DEPCMD:-\$DEPCMD}
4869 eval ${1}DEP_FLAGS=\${_DEPFLAGS:-\$DEPFLAGS}
4890 test -n "$cc_type" && enable $cc_type ||
4914 LD_O=${_ld_o-$LD_O}
4915 LD_LIB=${_ld_lib-$LD_LIB}
4916 LD_PATH=${_ld_path-$LD_PATH}
4921 HOSTLD_O=${_ld_o-$HOSTLD_O}
4923 if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then
4925 CCDEP=${_DEPCMD:-$DEPCMD}
4930 if $ar 2>&1 | grep -q Microsoft; then
4931 arflags="-nologo"
4932 ar_o='-out:$@'
4933 elif $ar 2>&1 | grep -q "\[D\] "; then
4946 if test -n "$sysroot"; then
4949 add_cppflags --sysroot="$sysroot"
4950 add_ldflags --sysroot="$sysroot"
4957 warn "--cpu=host makes no sense when cross-compiling."
4962 $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return
4963 sed -n "/cc1.*$1=/{
4969 cpu=$(check_native -march || check_native -mcpu)
4973 $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return
4974 sed -n "/cc1.*-target-cpu /{
4975 s/.*-target-cpu \\([^ ]*\\).*/\\1/
4980 cpu=$(check_native -march)
4984 test "${cpu:-host}" = host &&
4985 die "--cpu=host not supported with compiler $cc"
5002 add_cppflags -EL
5003 add_ldflags -EL
5006 add_cppflags -EB
5007 add_ldflags -EB
5030 tilegx|tile-gx)
5033 i[3-6]86*|i86pc|BePC|x86pc|x86_64|x86_32|amd64)
5041 # Add processor-specific flags
5046 cpuflags="-march=$cpu"
5049 cpuflags="-mcpu=$cpu"
5055 cpuflags="-mcpu=$cpu"
5061 "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \
5081 elif check_arm_arch 7A 7_A; then echo armv7-a
5082 elif check_arm_arch 7S; then echo armv7-a
5083 elif check_arm_arch 7R 7_R; then echo armv7-r
5084 elif check_arm_arch 7M 7_M; then echo armv7-m
5085 elif check_arm_arch 7EM 7E_M; then echo armv7-m
5086 elif check_arm_arch 8A 8_A; then echo armv8-a
5093 subarch=$(probe_arm_arch | sed 's/[^a-z0-9]//g')
5096 cpuflags="-march=$cpu"
5097 subarch=$(echo $cpu | sed 's/[^a-z0-9]//g')
5100 cpuflags="-mcpu=$cpu"
5102 cortex-a*) subarch=armv7a ;;
5103 cortex-r*) subarch=armv7r ;;
5104 cortex-m*) enable thumb; subarch=armv7m ;;
5115 armv[6-8]*)
5124 ap7[02]0[0-2])
5126 cpuflags="-mpart=$cpu"
5130 cpuflags="-march=$cpu"
5134 cpuflags="-mcpu=$cpu"
5138 cpuflags="-march=$cpu"
5144 cpuflags="-mcpu=$cpu"
5155 cpuflags="-march=$cpu"
5171 cpuflags="-march=$cpu"
5203 … check_cflags "-mtune=p5600" && check_cflags "-msched-weight -mload-store-pairs -funroll-loops"
5207 …check_cflags "-mtune=i6400 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-l…
5211 …check_cflags "-mtune=p6600 -mabi=64" && check_cflags "-msched-weight -mload-store-pairs -funroll-l…
5222 # When gcc version less than 5.3.0, add -fno-expensive-optimizations flag.
5226 expensive_optimization_flag="-fno-expensive-optimizations"
5237 cpuflags="-march=loongson3a -mhard-float $expensive_optimization_flag"
5241 cpuflags="-march=loongson2e -mhard-float $expensive_optimization_flag"
5245 cpuflags="-march=loongson2f -mhard-float $expensive_optimization_flag"
5267 cpuflags="-mcpu=601"
5271 cpuflags="-mcpu=603"
5275 cpuflags="-mcpu=604"
5279 cpuflags="-mcpu=750"
5283 cpuflags="-mcpu=7450"
5287 cpuflags="-mcpu=7400"
5291 cpuflags="-mcpu=970"
5294 power[3-6]*)
5295 cpuflags="-mcpu=$cpu"
5298 power[7-8]*)
5299 cpuflags="-mcpu=$cpu"
5302 cpuflags="-mcpu=cell"
5307 cpuflags="-mcpu=e500mc"
5311 cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
5316 cpuflags="-mcpu=8540 -mhard-float"
5326 cpuflags="-mcpu=$cpu"
5329 cpuflags="-mcpu=$cpu"
5337 cpuflags="-march=$cpu"
5338 disable i686
5342 pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
5343 cpuflags="-march=$cpu"
5344 disable i686
5347 …i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opte…
5350 cpuflags="-march=$cpu"
5351 enable i686
5356 cpuflags="-march=$cpu"
5357 enable i686
5376 if test -z "$cross_prefix" && ! enabled cross_compile ; then
5377 echo "If $cc is a cross-compiler, use the --enable-cross-compile option."
5383 add_cppflags -D_ISOC99_SOURCE
5384 add_cxxflags -D__STDC_CONSTANT_MACROS
5385 check_cxxflags -std=c++11 || check_cxxflags -std=c++0x
5387 # some compilers silently accept -std=c11, so we also need to check that the
5389 test_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L" &&
5390 add_cflags -std=c11 ||
5391 check_cflags -std=c99
5393 check_cppflags -D_FILE_OFFSET_BITS=64
5394 check_cppflags -D_LARGEFILE_SOURCE
5396 add_host_cppflags -D_ISOC99_SOURCE
5397 check_host_cflags -std=c99
5398 check_host_cflags -Wall
5404 expr=${3:-'sizeof(void *) > 4'}
5405 test_code cc "" "int test[2*($expr) - 1]" &&
5458 SHFLAGS=-shared
5459 add_cppflags '-I\$(SRC_PATH)/compat/aix'
5460 enabled shared && add_ldflags -Wl,-brtl
5461 arflags='-Xany -r -c'
5467 add_cflags -fPIE
5468 add_ldexeflags -fPIE -pie
5471 SHFLAGS='-shared -Wl,-soname,$(SLIBNAME)'
5475 network_extralibs="-lnetwork"
5479 SHFLAGS='-shared -Wl,-h,$$(@F)'
5480 enabled x86 && append SHFLAGS -mimpure-text
5481 network_extralibs="-lsocket -lnsl"
5482 add_cppflags -D__EXTENSIONS__
5486 # guards for processor-specific code, instead suppress
5490 add_ldflags -Wl,-M,mapfile
5491 nm_default='nm -P -g'
5493 version_script='-M'
5494 VERSION_SCRIPT_POSTPROCESS_CMD='perl $(SRC_PATH)/compat/solaris/make_sunver.pl - $(OBJS)'
5498 oss_indev_extralibs="-lossaudio"
5499 oss_outdev_extralibs="-lossaudio"
5500 enabled gcc || check_ldflags -Wl,-zmuldefs
5506 SHFLAGS='-shared'
5509 oss_indev_extralibs="-lossaudio"
5510 oss_outdev_extralibs="-lossaudio"
5518 add_extralibs -lpoll -lgnugetopt
5519 strip="strip -d"
5522 enabled ppc && add_asflags -force_cpusubtype_ALL
5524 …SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(INSTALL_NAME_DIR)/$(SLIBNAME_WITH_MAJO…
5525 enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
5526 strip="${strip} -x"
5527 add_ldflags -Wl,-dynamic,-search_paths_first
5528 check_cflags -Werror=partial-availability
5534 { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
5536 add_cppflags '-I\$(SRC_PATH)/compat/dispatch_semaphore'
5537 if test -n "$sysroot"; then
5538 is_in -isysroot $cc $CPPFLAGS $CFLAGS || check_cppflags -isysroot $sysroot
5539 is_in -isysroot $ld $LDFLAGS || check_ldflags -isysroot $sysroot
5541 version_script='-exported_symbols_list'
5542 …T_POSTPROCESS_CMD='tr " " "\n" | sed -n /global:/,/local:/p | grep ";" | tr ";" "\n" | sed -E "s/(…
5543 # Workaround for Xcode 11 -fstack-check bug
5545 clang_version=$($cc -dumpversion)
5546 test ${clang_version%%.*} -eq 11 && add_cflags -fno-stack-check
5556 LIBTARGET="i386:x86-64"
5566 enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres
5567 enabled x86_32 && check_ldflags -Wl,--large-address-aware
5571 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
5572 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
5573 if test_cmd lib.exe -list; then
5574 …SLIB_EXTRA_CMD=-'lib.exe -nologo -machine:$(LIBTARGET) -def:$$(@:$(SLIBSUF)=.def) -out:$(SUBDIR)$(…
5579 …SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIB…
5586 …SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--disable-auto-ima…
5591 check_ldflags -Wl,--nxcompat,--dynamicbase
5594 # for dynamicbase (ASLR). Using -pie does retain the reloc section
5598 disabled debug && add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup
5600 disabled debug && add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup
5601 check_ldflags -Wl,--high-entropy-va # binutils 2.25
5603 add_ldexeflags -Wl,--image-base,0x140000000
5604 append SHFLAGS -Wl,--image-base,0x180000000
5616 enabled x86_32 && check_ldflags -LARGEADDRESSAWARE
5620 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
5621 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
5627 SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
5637 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
5638 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
5642 SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
5645 enabled shared && ! enabled small && test_cmd $windres --version && enable gnu_windres
5646 add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
5648 *-dos|freedos|opendos)
5649 network_extralibs="-lsocket"
5653 linux)
5662 strip="lxlite -CS"
5665 add_cppflags -D_GNU_SOURCE
5666 add_ldflags -Zomf -Zbin-files -Zargs-wild -Zhigh-mem -Zmap
5667 SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
5671 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
5672 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(FULLNAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
5678 SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.a $(SUBDIR)$(FULLNAME).def; \
5679 emximp -o $(SUBDIR)$(LIBPREF)$(FULLNAME)_dll.lib $(SUBDIR)$(FULLNAME).def;'
5686 gnu/kfreebsd)
5687 add_cppflags -D_BSD_SOURCE
5689 gnu)
5692 add_cppflags -D_QNX_SOURCE
5693 network_extralibs="-lsocket"
5698 add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default
5699 add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
5700 add_ldflags -Wl,--target1-abs,--no-undefined \
5701 -Wl,-Ttext,0x80000,-Tdata,0x1000000 -shared \
5702 -Wl,--entry=_E32Startup -Wl,-u,_E32Startup
5703 add_extralibs -l:eexe.lib -l:usrt2_2.lib -l:dfpaeabi.dso \
5704 -l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \
5705 -l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib
5717 link_dest=$(mktemp -u $TMPDIR/dest_XXXXXXXX)
5718 link_name=$(mktemp -u $TMPDIR/name_XXXXXXXX)
5722 if [ "$source_path" != "." ] && [ "$source_path" != "src" ] && ([ ! -d src ] || [ -L src ]) && [ -e…
5724 [ -e src ] && rm src
5733 rm -r "$link_dest"
5734 rm -r "$link_name"
5744 add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
5747 add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
5751 add_${pfx}cppflags -U__STRICT_ANSI__ -D_XOPEN_SOURCE=600
5757 add_cflags "-include $source_path/compat/msvcrt/snprintf.h"
5759 add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
5761 add_${pfx}cppflags -D__printf__=__gnu_printf__
5763 add_${pfx}cppflags -D_WIN32_WINNT=0x0600
5764 add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
5771 add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
5773 add_${pfx}cppflags -D__MSVCRT_VERSION__=0x0700
5775 add_${pfx}cppflags -D_WIN32_WINNT=0x0600
5777 add_${pfx}cppflags -D__printf__=__gnu_printf__
5778 add_${pfx}cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
5783 add_host_cppflags -Dsnprintf=_snprintf
5791 add_${pfx}cppflags -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS
5798 # Don't do this if WINAPI_FAMILY is set and is set to a non-desktop
5803 { test_${pfx}cpp <<EOF && add_${pfx}cppflags -D_WIN32_WINNT=0x0600; }
5812 check_func strtoll || add_cflags -Dstrtoll=_strtoi64
5813 check_func strtoull || add_cflags -Dstrtoull=_strtoui64
5821 add_${pfx}cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600
5824 add_cppflags -U__STRICT_ANSI__
5825 add_cflags "-include $source_path/compat/djgpp/math.h"
5832 …"$?" != 0 && test_${pfx}cc -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 <<EOF && add_${pfx}cppflag…
5837 eval test -n "\${${pfx}libc_type}" && enable ${pfx}libc_${libc_type}
5852 add_cppflags '-I\$(SRC_PATH)/compat/float'
5863 disabled optimizations || enabled ossfuzz || check_cflags -fomit-frame-pointer
5868 add_cppflags -DPIC
5873 add_cflags -fPIC
5874 add_asflags -fPIC
5893 check_cc pragma_deprecated "" '_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")'
5899 od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
5923 as_noop=-v
5926 arm*) gaspp_as_type=armasm; as_noop=-h ;;
5931 [ $target_os = "darwin" ] && gaspp_as_type="apple-$gaspp_as_type"
5933 test "${as#*gas-preprocessor.pl}" != "$as" ||
5934 test_cmd gas-preprocessor.pl -arch $arch -as-type $gaspp_as_type -- ${as:=$cc} $as_noop &&
5935 gas="${gas:=gas-preprocessor.pl} -arch $arch -as-type $gaspp_as_type -- ${as:=$cc}"
5940 $nogas "GNU assembler not found, install/update gas-preprocessor"
5961 check_cflags -mieee
5969 enabled thumb && check_cflags -mthumb || check_cflags -marm
5976 case "${cross_prefix:-$cc}" in
5983 warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
5994 [ $target_os = linux ] || [ $target_os = android ] ||
6000 check_as as_arch_directive ".arch armv7-a"
6032 …abled mips32r6 || enabled mips64r6) && check_inline_asm_flags mipsfpu '"cvt.d.l $f0, $f1"' '-mfp64'
6034 enabled mipsdsp && check_inline_asm_flags mipsdsp '"addu.qb $t0, $t1, $t2"' '-mdsp'
6035 enabled mipsdspr2 && check_inline_asm_flags mipsdspr2 '"absq_s.qb $t0, $t1"' '-mdspr2'
6038 …u && enabled msa && check_inline_asm msa '"addvi.b $w0, $w1, 1"' '-mmsa' && append MSAFLAGS '-mmsa'
6044 …eck_inline_asm loongson3 '"gsldxc1 $f0, 0($2, $3)"' '-mloongson-ext' && append MMIFLAGS '-mloongso…
6047 … mmi && check_inline_asm mmi '"pxor $f0, $f0, $f0"' '-mloongson-mmi' && append MMIFLAGS '-mloongso…
6056 case $($cc -dumpversion) in
6057 4.[3-9].*) check_cflags -fno-optimize-sibling-calls ;;
6071 check_cflags -maltivec -mabi=altivec
6078 enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
6082 check_cflags -mvsx &&
6124 if test_cmd $x86asmexe_probe -v; then
6127 x86asm_debug="-g -F dwarf"
6129 X86ASM_DEPFLAGS='-MD $(@:.o=.d)'
6130 elif test_cmd $x86asmexe_probe --version; then
6133 x86asm_debug="-g dwarf2"
6134 X86ASMDEP='$(DEPX86ASM) $(X86ASMFLAGS) -M $(X86ASM_O) $< > $(@:.o=.d)'
6145 …disabled x86asm && die "nasm/yasm not found or too old. Use --disable-x86asm for a crippled build."
6146 X86ASMFLAGS="-f $objformat"
6147 enabled pic && append X86ASMFLAGS "-DPIC"
6148 test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX"
6162 athlon*|opteron*|k8*|pentium|pentium-mmx|prescott|nocona|atom|geode)
6168 … enabled lsx && check_inline_asm lsx '"vadd.b $vr0, $vr1, $vr2"' '-mlsx' && append LSXFLAGS '-mlsx'
6169 …ed lasx && check_inline_asm lasx '"xvadd.b $xr0, $xr1, $xr2"' '-mlasx' && append LASXFLAGS '-mlasx'
6174 check_ldflags -Wl,--as-needed
6175 check_ldflags -Wl,-z,noexecstack
6182 check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
6183 check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE
6184 check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
6197 check_func_headers winsock2.h closesocket -lws2 &&
6198 network_extralibs="-lws2" ||
6199 { check_func_headers winsock2.h closesocket -lws2_32 &&
6200 network_extralibs="-lws2_32"; } || disable winsock2_h network
6227 require libjemalloc jemalloc/jemalloc.h malloc -ljemalloc
6241 check_lib clock_gettime time.h clock_gettime || check_lib clock_gettime time.h clock_gettime -lrt
6252 # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
6253 check_func_headers time.h nanosleep || check_lib nanosleep time.h nanosleep -lrt
6256 check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
6287 check_lib xlib_x11 "X11/Xlib.h" XPending -lX11 ||
6291 check_lib xlib_xext "X11/Xlib.h X11/extensions/XShm.h" XShmAttach -lXext ||
6295 check_lib xlib_xv "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv ||
6303 check_headers dxva2api.h -D_WIN32_WINNT=0x0600
6306 check_headers linux/dma-buf.h
6308 check_headers linux/perf_event.h
6322 check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepareToEncodeFrames -f…
6331 # both with -latomic and without
6332 for LATOMIC in "-latomic" ""; do
6334 "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0); foo += bar" \
6338 check_lib advapi32 "windows.h" RegCloseKey -ladvapi32
6339 check_lib bcrypt "windows.h bcrypt.h" BCryptGenRandom -lbcrypt &&
6341 check_lib ole32 "windows.h" CoTaskMemFree -lole32
6342 check_lib shell32 "windows.h shellapi.h" CommandLineToArgvW -lshell32
6343 check_lib psapi "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
6345 check_lib android android/native_window.h ANativeWindow_acquire -landroid
6346 check_lib mediandk "stdint.h media/NdkImage.h" AImage_delete -lmediandk
6347 check_lib camera2ndk "stdbool.h stdint.h camera/NdkCameraManager.h" ACameraManager_create -lcamera2…
6363 …cs CoreGraphics/CoreGraphics.h CGGetActiveDisplayList "-framework CoreGraphic…
6364 …nservices ApplicationServices/ApplicationServices.h CGGetActiveDisplayList "-framework Application…
6367 … check_lib coreservices CoreServices/CoreServices.h UTGetOSTypeFromString "-framework CoreServices"
6368 check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia"
6369 …check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVCWithAlpha "-framework Cor…
6370 check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_VP9 "-framework CoreMedia"
6371 …s CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
6372 …check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange "-fra…
6373 …s CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
6374 …s CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr16BiPlanarVideoRange "-framework CoreVideo"
6375 …check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr8BiPlanarVideoRange "-fra…
6376 …s CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
6377 …s CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr16BiPlanarVideoRange "-framework CoreVideo"
6378 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ "-fra…
6379 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2100_HLG "-frame…
6380 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_Linear "-framework Cor…
6381 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferYCbCrMatrix_ITU_R_2020 "-framework Core…
6382 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferColorPrimaries_ITU_R_2020 "-framework C…
6383 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2020 "-framework…
6384 …check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_428_1 "-frame…
6387 enabled metal && test_cmd $metalcc -v || disable metal
6391 check_type "windows.h dxva.h" "DXVA_PicParams_AV1" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT…
6392 check_type "windows.h dxva.h" "DXVA_PicParams_HEVC" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CR…
6393 check_type "windows.h dxva.h" "DXVA_PicParams_VP9" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT…
6396 check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
6397 check_func_headers mfapi.h MFCreateAlignedMemoryBuffer -lmfplat
6403 if [ -z "$nvccflags" ]; then
6407 nvccflags="$nvccflags -std=c++11"
6410 nvccflags="$nvccflags -m64"
6412 nvccflags="$nvccflags -m32"
6416 nvccflags="$nvccflags -ptx"
6418 …nvccflags="$nvccflags -S -nocudalib -nocudainc --cuda-device-only -Wno-c++11-narrowing -include ${…
6450 if check_lib pthreads pthread.h pthread_join -pthread &&
6451 check_lib pthreads pthread.h pthread_create -pthread; then
6452 add_cflags -pthread
6453 elif check_lib pthreads pthread.h pthread_join -pthreads &&
6454 check_lib pthreads pthread.h pthread_create -pthreads; then
6455 add_cflags -pthreads
6456 elif check_lib pthreads pthread.h pthread_join -ldl -pthread &&
6457 check_lib pthreads pthread.h pthread_create -ldl -pthread; then
6458 add_cflags -ldl -pthread
6459 elif check_lib pthreads pthread.h pthread_join -lpthreadGC2 &&
6460 check_lib pthreads pthread.h pthread_create -lpthreadGC2; then
6462 elif check_lib pthreads pthread.h pthread_join -lpthread &&
6463 check_lib pthreads pthread.h pthread_create -lpthread; then
6477 check_lib zlib zlib.h zlibVersion -lz; }
6478 enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2
6479 enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma
6489 [ -x "$(command -v gzip)" ] && enable gzip
6494 check_lib libdl dlfcn.h "dlopen dlsym" || check_lib libdl dlfcn.h "dlopen dlsym" -ldl
6496 check_lib libm math.h sin -lm
6505 eval check_mathfunc $func \${${func}_args:-1} $libm_extralibs
6509 eval check_complexfunc $func \${${func}_args:-1}
6517 enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint
6521 enabled gmp && require gmp gmp.h mpz_export -lgmp
6529 … die "ERROR: libaribb24 requires version higher than 1.0.3 or --enable-gpl."; }
6530 enabled lv2 && require_pkg_config lv2 lilv-0 "lilv/lilv.h" lilv_world_new
6531 …uire libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61…
6535 enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 &&
6536 { check_lib libcelt celt/celt.h celt_decoder_create_custom -lcelt0 ||
6539 enabled libcodec2 && require libcodec2 codec2/codec2.h codec2_create -lcodec2
6542 enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 dc1394/dc1394.h dc1394_new
6544 enabled libfdk_aac && { check_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpe…
6545 { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac &&
6546 warn "using libfdk without pkg-config"; } }
6547 …-lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal -lflite_cmu_us_kal16 -lflite_cmu_us_rms…
6554 … -lglslang -lMachineIndependent -lOSDependent -lHLSL -lOGLCompiler -lGenericCodeGen \
6555 … -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm ||
6557 -lglslang -lOSDependent -lHLSL -lOGLCompiler \
6558 … -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm; }
6560 require libgme gme/gme.h gme_new_emu -lgme -lstdc++; }
6562 check_lib libgsm "${gsm_hdr}" gsm_create -lgsm && break;
6564 enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc $pthreads_extra…
6567 enabled libklvanc && require libklvanc libklvanc/vanc.h klvanc_context_create -lklvanc
6570 # While it may appear that require is being used as a pkg-config
6574 # pkg-config support. Instead, users should make sure that the build
6577 … { require libmfx "mfx/mfxvideo.h mfx/mfxdefs.h" MFXInit "-llibmfx $advapi32_extralibs" &&
6579 warn "using libmfx without pkg-config"; } }
6586 enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3l…
6588 … require libmysofa mysofa.h mysofa_neighborhood_init_withstepdefine -lmysofa $zlib_extralibs; }
6589 …pp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei -lnpp…
6590 … check_lib libnpp npp.h nppGetLibVersion -lnppi -lnppif -lnppc -lnppidei ||
6592 …ncore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopen…
6593 …ed libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amr…
6596 … require libopencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } ||
6600 …fig libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_ST…
6601 ….2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-l…
6602 enabled libopenvino && require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engi…
6616 enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg…
6618 … "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new -lstdc++ && append librubberband_e…
6622 require libsmbclient libsmbclient.h smbc_init -lsmbclient; }
6623 enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++
6624 enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
6629 enabled libtensorflow && require libtensorflow tensorflow/c/c_api.h TF_Version -ltensorflow
6631 …ibtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
6633 enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame &&
6634 … { check_lib libtwolame twolame.h twolame_encode_buffer_float32_interleaved -ltwolame ||
6640 enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
6647 …vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp8_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs …
6651 …vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp8_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs …
6655 …vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs …
6659 …vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs …
6676 enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthread…
6678 enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
6681 enabled libzvbi && require_pkg_config libzvbi zvbi-0.2 libzvbi.h vbi_decoder_new &&
6683 … enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; }
6684 enabled libxml2 && require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlC…
6687 … check_lib mbedtls mbedtls/ssl.h mbedtls_ssl_init -lmbedtls -lmbedx509 -lmbedcrypto ||
6689 enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
6690 …check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -l…
6692 …add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt…
6693 add_ldflags -L/opt/vc/lib/ &&
6694 …check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -l…
6697 enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
6703 … check_lib opencl OpenCL/cl.h clEnqueueNDRangeKernel -Wl,-framework,OpenCL ||
6704 check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL ||
6709 enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL" ||
6710 check_lib opengl windows.h wglGetProcAddress "-lopengl32 -lgdi32" ||
6711 check_lib opengl OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" ||
6712 … check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" ||
6717 add_cflags -isystem/opt/vc/include/IL &&
6723 … enabled gpl || enabled nonfree || die "ERROR: OpenSSL >=3.0.0 requires --enable-version3"; }; } ||
6727 check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||
6728 check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto ||
6729 check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
6730 … check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
6736 die "ERROR: rkmpp requires --enable-libdrm"; }
6738 enabled vapoursynth && require_pkg_config vapoursynth "vapoursynth-script >= 42" VSScript.h v…
6742 GCRYPT_CONFIG="${cross_prefix}libgcrypt-config"
6743 if "${GCRYPT_CONFIG}" --version > /dev/null 2>&1; then
6744 gcrypt_cflags=$("${GCRYPT_CONFIG}" --cflags)
6745 gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs)
6750 require gcrypt gcrypt.h gcry_mpi_new -lgcrypt
6755 SDL2_CONFIG="${cross_prefix}sdl2-config"
6757 if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then
6758 sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
6759 sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
6766 sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs)
6773 decklink_outdev_extralibs="$decklink_outdev_extralibs -lole32 -loleaut32"
6774 decklink_indev_extralibs="$decklink_indev_extralibs -lole32 -loleaut32"
6780 check_func SecIdentityCreate "-Wl,-framework,CoreFoundation -Wl,-framework,Security" &&
6781 …SecureTransport.h Security/Security.h" "SSLCreateContext" "-Wl,-framework,CoreFoundation -Wl,-fram…
6785 check_func SecItemImport "-Wl,-framework,CoreFoundation -Wl,-framework,Security"
6788 … check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 &&
6790 schannel_extralibs="-lsecur32" ||
6793 makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo
6795 …&& [ 0$(makeinfo --version | grep "texinfo" | sed 's/.*texinfo[^0-9]*\([0-9]*\)\..*/\1/') -ge 5 ] \
6797 disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html |…
6798 perl -v > /dev/null 2>&1 && enable perl || disable perl
6799 pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
6800 rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contim…
6801 xmllint --version > /dev/null 2>&1 && enable xmllint || disable xmllint
6805 check_headers linux/fb.h
6806 check_headers linux/videodev2.h
6807 …test_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_…
6808 …check_cc v4l2_m2m linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_VIDEO_M2M | V4L2…
6809 check_cc vc1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;"
6810 check_cc mpeg1_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;"
6811 check_cc mpeg2_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2;"
6812 check_cc mpeg4_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG4;"
6813 check_cc hevc_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC;"
6814 check_cc h263_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H263;"
6815 check_cc h264_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_H264;"
6816 check_cc vp8_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;"
6817 check_cc vp9_v4l2_m2m linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;"
6823 check_lib user32 "windows.h winuser.h" GetShellWindow -luser32
6824 check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32
6840 …test_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && e…
6847 check_lib alsa alsa/asoundlib.h snd_pcm_htimestamp -lasound; }
6853 check_lib sndio sndio.h sio_open -lsndio; }
6858 …check_lib libcdio "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio…
6859 …dio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
6867 enabled libxcb_shm && check_pkg_config libxcb_shm xcb-shm xcb/shm.h xcb_shm_attach
6868 …enabled libxcb_shape && check_pkg_config libxcb_shape xcb-shape xcb/shape.h xcb_shape_get_rect…
6869 …enabled libxcb_xfixes && check_pkg_config libxcb_xfixes xcb-xfixes xcb/xfixes.h xcb_xfixes_get_cur…
6876 test_cpp <<EOF && enable uwp && d3d11va_extralibs="-ldxgi -ld3d11"
6890 …wp && mediafoundation_extralibs="-lmfplat -lmfuuid -lole32 -lstrmiids" || mediafoundation_extralib…
6899 check_pkg_config vaapi_drm "libva-drm" "va/va_drm.h" vaGetDisplayDRM
6902 check_pkg_config vaapi_x11 "libva-x11" "va/va_x11.h" vaGetDisplay
6949 check_lib vdpau_x11 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11
6951 …hd && check_lib crystalhd "stdint.h libcrystalhd/libcrystalhd_if.h" DtsCrystalHDVersion -lcrystalhd
6960 mingw32*|mingw64*|win32|win64|linux|cygwin*)
6968 linux)
6981 test_cc -I$source_path <<EOF || disable nvenc
7000 check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv
7003 enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
7006 check_cflags -Wdeclaration-after-statement
7007 check_cflags -Wall
7008 check_cflags -Wdisabled-optimization
7009 check_cflags -Wpointer-arith
7010 check_cflags -Wredundant-decls
7011 check_cflags -Wwrite-strings
7012 check_cflags -Wtype-limits
7013 check_cflags -Wundef
7014 check_cflags -Wmissing-prototypes
7015 check_cflags -Wstrict-prototypes
7016 check_cflags -Wempty-body
7019 check_cflags -Wcast-qual
7020 check_cflags -Wextra
7021 check_cflags -Wpedantic
7025 warning_flag=-W${1#-Wno-}
7029 test_cflags -Werror=unused-command-line-argument &&
7030 append unknown_warning_flags "-Werror=unused-command-line-argument"
7031 test_cflags -Werror=unknown-warning-option &&
7032 append unknown_warning_flags "-Werror=unknown-warning-option"
7034 check_disable_warning -Wno-parentheses
7035 check_disable_warning -Wno-switch
7036 check_disable_warning -Wno-format-zero-length
7037 check_disable_warning -Wno-pointer-sign
7038 check_disable_warning -Wno-unused-const-variable
7039 check_disable_warning -Wno-bool-operation
7040 check_disable_warning -Wno-char-subscripts
7043 warning_flag=-W${1#-Wno-}
7047 check_disable_warning_headers -Wno-deprecated-declarations
7048 check_disable_warning_headers -Wno-unused-variable
7055 check_ldflags -Wl,--warn-common
7056 check_ldflags -Wl,-rpath-link=:libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavfo…
7057 enabled rpath && add_ldexeflags -Wl,-rpath,$libdir && add_ldsoflags -Wl,-rpath,$libdir
7058 test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
7061 check_stripflags -x
7064 check_ldflags -Wl,--wrap,avcodec_open2 \
7065 -Wl,--wrap,avcodec_decode_subtitle2 \
7066 -Wl,--wrap,avcodec_encode_subtitle \
7067 -Wl,--wrap,avcodec_send_packet \
7068 -Wl,--wrap,avcodec_receive_packet \
7069 -Wl,--wrap,avcodec_send_frame \
7070 -Wl,--wrap,avcodec_receive_frame \
7071 -Wl,--wrap,swr_convert ||
7075 check_ldflags -Wl,--wrap,avcodec_open2 \
7076 -Wl,--wrap,avcodec_decode_subtitle2 \
7077 -Wl,--wrap,avcodec_encode_subtitle \
7078 -Wl,--wrap,avcodec_send_packet \
7079 -Wl,--wrap,avcodec_receive_packet \
7080 -Wl,--wrap,avcodec_send_frame \
7081 -Wl,--wrap,avcodec_receive_frame \
7082 -Wl,--wrap,swr_convert \
7083 -Wl,--wrap,sws_scale ||
7094 if test_ldflags -Wl,${version_script},$TMPV; then
7095 append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
7108 if [ -z "$optflags" ]; then
7124 check_optflags -fno-math-errno
7125 check_optflags -fno-signed-zeros
7129 check_cflags -flto
7130 check_ldflags -flto $cpuflags
7134 enabled ftrapv && check_cflags -ftrapv
7136 test_cc -mno-red-zone <<EOF && noredzone_flags="-mno-red-zone"
7143 check_cflags -w1
7144 # -wd: Disable following warnings
7145 # 144, 167, 556: -Wno-pointer-sign
7149 # 10006: ignoring unknown option -fno-signed-zeros
7150 # 10148: ignoring unknown option -Wno-parentheses
7151 # 10156: ignoring option '-W'; no argument required
7154 check_cflags -wd144,167,188,556,1292,1419,10006,10148,10156,13200,13203
7155 # 11030: Warning unknown option --as-needed
7156 # 10156: ignoring option '-export'; no argument required
7157 check_ldflags -wd10156,11030
7163 icc_version=$($cc -dumpversion)
7164 test ${icc_version%%.*} -ge 11 &&
7165 check_cflags -falign-stack=maintain-16-byte ||
7169 check_optflags -fno-tree-vectorize
7170 check_cflags -Werror=format-security
7171 check_cflags -Werror=implicit-function-declaration
7172 check_cflags -Werror=missing-prototypes
7173 check_cflags -Werror=return-type
7174 check_cflags -Werror=vla
7175 check_cflags -Wformat
7176 check_cflags -fdiagnostics-color=auto
7177 enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized
7185 check_cflags -mpreferred-stack-boundary=4
7190 check_cflags -mllvm -stack-alignment=16
7196 # every single entry point into the libraries or enable -mstackrealign
7203 check_cflags -mllvm -stack-alignment=16
7204 check_cflags -mstack-alignment=16
7208 check_cflags -mllvm -stack-alignment=16
7209 check_cflags -mstack-alignment=16
7211 check_cflags -Qunused-arguments
7212 check_cflags -Werror=implicit-function-declaration
7213 check_cflags -Werror=missing-prototypes
7214 check_cflags -Werror=return-type
7216 add_cflags -Wno-missing-variable-declarations
7217 add_cflags -Wno-empty-statement
7219 add_cflags -W${armcc_opt},--diag_suppress=4343 # hardfp compat
7220 add_cflags -W${armcc_opt},--diag_suppress=3036 # using . as system include dir
7222 add_cflags -W${armcc_opt},--diag_suppress=2523
7223 add_cflags -W${armcc_opt},--diag_suppress=1207
7224 add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
7225 add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
7226 add_cflags -W${armcc_opt},--diag_suppress=167 # pointer sign
7227 add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign
7229 add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF
7233 enabled_all x86_32 debug && add_cflags -Oy-
7234 enabled debug && add_ldflags -debug
7237 # -Qansi-alias is basically -fstrict-aliasing, but does not work
7240 add_cflags -Qansi-alias
7254 # happens in config.h.
7256 test_cc <<EOF || add_cflags -FIstdlib.h
7260 # the new SSA optimzer in VS2015 U3 is mis-optimizing some parts of the code
7263 check_cflags -d2SSAOptimizer-
7264 # enable utf-8 source processing on VS2015 U2 and newer
7266 add_cflags -utf-8
7273 test_${pfx}cc <<EOF || add_${pfx}cflags -Dinline=__inline
7281 add_asflags -Qunused-arguments
7287 check_ldflags -Qunused-arguments
7295 # nobody updates and re-enables them
7306 …"non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 o…
7313 *-dos|freedos|opendos)
7339 if test -n "$(filter '*_extralibs' $nested_entries)"; then
7372 test -n "$thread_type" &&
7380 add_cppflags '-I\$(SRC_PATH)/compat/atomics/gcc'
7382 add_cppflags '-I\$(SRC_PATH)/compat/atomics/win32'
7384 add_cppflags '-I\$(SRC_PATH)/compat/atomics/suncc'
7387 add_cppflags '-I\$(SRC_PATH)/compat/atomics/pthread'
7390 add_cppflags '-I\$(SRC_PATH)/compat/atomics/dummy'
7399 enabled zlib && add_cppflags -DZLIB_CONST
7431 add_cflags $(filter_out '-Dmain=SDL_main' $sdl2_cflags)
7452 # deps-expand fflib $1: N x {append all expanded deps; unique}
7492 echo "big-endian ${bigendian-no}"
7493 echo "runtime cpu detection ${runtime_cpudetect-no}"
7495 echo "standalone assembly ${x86asm-no}"
7497 echo "MMX enabled ${mmx-no}"
7498 echo "MMXEXT enabled ${mmxext-no}"
7499 echo "3DNow! enabled ${amd3dnow-no}"
7500 echo "3DNow! extended enabled ${amd3dnowext-no}"
7501 echo "SSE enabled ${sse-no}"
7502 echo "SSSE3 enabled ${ssse3-no}"
7503 echo "AESNI enabled ${aesni-no}"
7504 echo "AVX enabled ${avx-no}"
7505 echo "AVX2 enabled ${avx2-no}"
7506 echo "AVX-512 enabled ${avx512-no}"
7507 echo "AVX-512ICL enabled ${avx512icl-no}"
7508 echo "XOP enabled ${xop-no}"
7509 echo "FMA3 enabled ${fma3-no}"
7510 echo "FMA4 enabled ${fma4-no}"
7511 echo "i686 features enabled ${i686-no}"
7512 echo "CMOV is fast ${fast_cmov-no}"
7513 echo "EBX available ${ebx_available-no}"
7514 echo "EBP available ${ebp_available-no}"
7517 echo "NEON enabled ${neon-no}"
7518 echo "VFP enabled ${vfp-no}"
7521 echo "ARMv5TE enabled ${armv5te-no}"
7522 echo "ARMv6 enabled ${armv6-no}"
7523 echo "ARMv6T2 enabled ${armv6t2-no}"
7524 echo "VFP enabled ${vfp-no}"
7525 echo "NEON enabled ${neon-no}"
7526 echo "THUMB enabled ${thumb-no}"
7529 echo "MIPS FPU enabled ${mipsfpu-no}"
7530 echo "MIPS DSP R1 enabled ${mipsdsp-no}"
7531 echo "MIPS DSP R2 enabled ${mipsdspr2-no}"
7532 echo "MIPS MSA enabled ${msa-no}"
7533 echo "LOONGSON MMI enabled ${mmi-no}"
7536 echo "AltiVec enabled ${altivec-no}"
7537 echo "VSX enabled ${vsx-no}"
7538 echo "POWER8 enabled ${power8-no}"
7539 echo "PPC 4xx optimizations ${ppc4xx-no}"
7540 echo "dcbzl available ${dcbzl-no}"
7543 echo "LSX enabled ${lsx-no}"
7544 echo "LASX enabled ${lasx-no}"
7546 echo "debug symbols ${debug-no}"
7547 echo "strip symbols ${stripping-no}"
7548 echo "optimize for size ${small-no}"
7549 echo "optimizations ${optimizations-no}"
7550 echo "static ${static-no}"
7551 echo "shared ${shared-no}"
7552 echo "postprocessing support ${postproc-no}"
7553 echo "network support ${network-no}"
7554 echo "threading support ${thread_type-no}"
7555 echo "safe bitstream reader ${safe_bitstream_reader-no}"
7556 echo "texi2html enabled ${texi2html-no}"
7557 echo "perl enabled ${perl-no}"
7558 echo "pod2man enabled ${pod2man-no}"
7559 echo "makeinfo enabled ${makeinfo-no}"
7560 echo "makeinfo supports HTML ${makeinfo_html-no}"
7561 echo "xmllint enabled ${xmllint-no}"
7562 test -n "$random_seed" &&
7589 if test -n "$ignore_tests"; then
7600 if test -n "$WARN_IF_GETS_DISABLED_LIST"; then
7609 if test -n "$WARNINGS"; then
7614 test -e Makefile || echo "include $source_path/Makefile" > Makefile
7620 echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" > ffbuil…
7625 config_files="$TMPH ffbuild/config.mak doc/config.texi"
7627 cat > ffbuild/config.mak <<EOF
7628 # Automatically generated by configure - do not modify!
7674 CP=cp -p
7750 TARGET_SAMPLES=${target_samples:-\$(SAMPLES)}
7751 CFLAGS-ffplay=${sdl2_cflags}
7768 SAMPLES:=${samples:-\$(FATE_SAMPLES)}
7774 map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
7777 eval echo "EXTRALIBS-${entry}=\$${entry}_extralibs" >> ffbuild/config.mak
7781 /* Automatically generated by configure - do not modify! */
7789 #define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
7800 test -n "$assert_level" &&
7803 test -n "$malloc_prefix" &&
7809 ; Automatically generated by configure - do not modify!
7816 mkdir -p doc
7817 mkdir -p tests
7818 mkdir -p tests/api
7819 echo "@c auto-generated by configure - do not modify! " > doc/config.texi
7828 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7829 cp_if_changed $TMPH config.h
7830 touch ffbuild/.config
7832 # Copy config.asm before printing ALL_COMPONENTS; that's not needed in assembly.
7833 enabled x86asm && cp_if_changed $TMPASM config.asm
7837 /* Automatically generated by configure - do not modify! */
7845 echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak
7864 eval "$(sed -n "s/^extern const AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\…
7908 # Settings for pkg-config files
7911 # Automatically generated by configure - do not modify!
7917 rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}")
7936 cp_if_changed $TMPH ffbuild/config.sh