2007-02-17 21:42:39 +00:00
#!/bin/sh
2002-05-18 23:13:26 +00:00
#
2011-03-17 17:02:14 +01:00
# FFmpeg configure script
2006-11-16 23:11:36 +00:00
#
2008-10-02 15:44:59 +00:00
# Copyright (c) 2000-2002 Fabrice Bellard
# Copyright (c) 2005-2008 Diego Biurrun
# Copyright (c) 2005-2008 Mans Rullgard
2002-05-18 23:13:26 +00:00
#
2003-10-18 18:47:06 +00:00
2008-10-02 15:44:24 +00:00
# Prevent locale nonsense from breaking basic text processing.
2008-10-12 15:56:22 +00:00
LC_ALL = C
export LC_ALL
2008-10-02 15:44:24 +00:00
2006-07-04 22:33:03 +00:00
# make sure we are running under a compatible shell
2006-11-14 22:48:20 +00:00
# try to make this part work with most shells
try_exec(){
2006-12-07 19:23:32 +00:00
echo "Trying shell $1 "
2008-05-15 11:37:29 +00:00
type " $1 " > /dev/null 2>& 1 && exec " $@ "
2006-11-14 22:48:20 +00:00
}
2006-08-03 22:27:38 +00:00
unset foo
2008-05-15 11:37:29 +00:00
( : ${ foo %%bar } ) 2> /dev/null
2006-12-07 19:23:32 +00:00
E1 = " $? "
2008-05-15 11:37:29 +00:00
( : ${ foo ? } ) 2> /dev/null
2006-12-07 19:23:32 +00:00
E2 = " $? "
if test " $E1 " != 0 || test " $E2 " = 0; then
echo "Broken shell detected. Trying alternatives."
2006-11-14 22:48:20 +00:00
export FF_CONF_EXEC
if test "0 $FF_CONF_EXEC " -lt 1; then
FF_CONF_EXEC = 1
try_exec bash " $0 " " $@ "
fi
if test "0 $FF_CONF_EXEC " -lt 2; then
FF_CONF_EXEC = 2
try_exec ksh " $0 " " $@ "
fi
if test "0 $FF_CONF_EXEC " -lt 3; then
FF_CONF_EXEC = 3
try_exec /usr/xpg4/bin/sh " $0 " " $@ "
2006-07-04 22:33:03 +00:00
fi
echo "No compatible shell script interpreter found."
2006-12-12 20:40:39 +00:00
echo "This configure script requires a POSIX-compatible shell"
2006-11-14 22:48:20 +00:00
echo "such as bash or ksh."
2011-03-17 17:02:14 +01:00
echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
2006-12-11 10:57:52 +00:00
echo "Instead, install a working POSIX-compatible shell."
2011-03-17 17:02:14 +01:00
echo "Disabling this configure test will create a broken FFmpeg."
2006-11-14 22:48:20 +00:00
if test " $BASH_VERSION " = '2.04.0(1)-release' ; then
echo "This bash version ( $BASH_VERSION ) is broken on your platform."
echo "Upgrade to a later version if available."
fi
2006-07-04 22:33:03 +00:00
exit 1
fi
2012-09-07 12:50:43 +01:00
test -d /usr/xpg4/bin && PATH = /usr/xpg4/bin:$PATH
2006-05-30 19:46:06 +00:00
show_help(){
2012-08-19 21:35:30 +02:00
cat <<EOF
2009-10-31 15:59:08 +00:00
Usage: configure [options]
Options: [defaults in brackets after descriptions]
2012-03-09 00:24:48 +01:00
Help options:
2009-10-31 15:59:08 +00:00
--help print this message
2012-03-09 00:24:48 +01:00
--list-decoders show all available decoders
--list-encoders show all available encoders
--list-hwaccels show all available hardware accelerators
--list-demuxers show all available demuxers
--list-muxers show all available muxers
--list-parsers show all available parsers
--list-protocols show all available protocols
--list-bsfs show all available bitstream filters
--list-indevs show all available input devices
--list-outdevs show all available output devices
--list-filters show all available filters
Standard options:
2010-06-16 18:41:26 +00:00
--logfile=FILE log tests and output to FILE [config.log]
2009-10-31 15:59:08 +00:00
--disable-logging do not log configure debug information
2012-11-11 21:37:50 +01:00
--fatal-warnings fail if any configure warning is generated
2009-10-31 15:59:08 +00:00
--prefix=PREFIX install in PREFIX [$prefix]
--bindir=DIR install binaries in DIR [PREFIX/bin]
2011-08-15 22:36:13 +02:00
--datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]
2013-09-01 13:41:33 +02:00
--docdir=DIR install documentation in DIR [PREFIX/share/doc/ffmpeg]
2009-10-31 15:59:08 +00:00
--libdir=DIR install libs in DIR [PREFIX/lib]
--shlibdir=DIR install shared libs in DIR [PREFIX/lib]
--incdir=DIR install includes in DIR [PREFIX/include]
--mandir=DIR install man page in DIR [PREFIX/share/man]
2013-11-10 09:02:51 +01:00
--enable-rpath use rpath to allow installing libraries in paths
not part of the dynamic linker search path
2009-10-31 15:59:08 +00:00
2012-03-09 00:24:48 +01:00
Licensing options:
2009-10-31 15:59:08 +00:00
--enable-gpl allow use of GPL code, the resulting libs
and binaries will be under GPL [no]
--enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, the resulting libs
and binaries will be unredistributable [no]
2012-03-09 00:24:48 +01:00
Configuration options:
--disable-static do not build static libraries [no]
--enable-shared build shared libraries [no]
--enable-small optimize for size instead of speed
2012-09-21 18:01:33 +02:00
--disable-runtime-cpudetect disable detecting cpu capabilities at runtime (smaller binary)
2012-03-09 00:24:48 +01:00
--enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale
2012-11-10 14:47:52 +01:00
--disable-all disable building components, libraries and programs
2013-07-01 18:47:09 +02:00
--enable-incompatible-libav-abi enable incompatible Libav fork ABI [no]
2013-12-18 05:20:11 +01:00
--enable-raise-major increase major version numbers in sonames [no]
2012-03-09 00:24:48 +01:00
2012-11-10 18:10:59 +01:00
Program options:
--disable-programs do not build command line programs
2012-11-16 13:07:10 +01:00
--disable-ffmpeg disable ffmpeg build
--disable-ffplay disable ffplay build
--disable-ffprobe disable ffprobe build
--disable-ffserver disable ffserver build
2012-08-09 23:37:28 +02:00
Documentation options:
2009-10-31 15:59:08 +00:00
--disable-doc do not build documentation
2012-08-09 23:37:28 +02:00
--disable-htmlpages do not build HTML documentation pages
--disable-manpages do not build man documentation pages
--disable-podpages do not build POD documentation pages
--disable-txtpages do not build text documentation pages
Component options:
2010-01-26 23:13:01 +00:00
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build
2012-11-11 13:37:40 +01:00
--disable-avutil disable libavutil build
2011-09-19 06:13:30 +02:00
--disable-swresample disable libswresample build
2010-01-26 23:13:01 +00:00
--disable-swscale disable libswscale build
2011-05-12 13:21:49 +01:00
--disable-postproc disable libpostproc build
2012-07-15 17:03:06 +02:00
--disable-avfilter disable libavfilter build
2012-05-28 19:43:57 +02:00
--enable-avresample enable libavresample build [no]
2010-06-23 02:13:54 +00:00
--disable-pthreads disable pthreads [auto]
2011-11-01 16:22:56 +02:00
--disable-w32threads disable Win32 threads [auto]
2011-11-02 00:00:21 +09:00
--disable-os2threads disable OS/2 threads [auto]
2009-10-31 15:59:08 +00:00
--disable-network disable network support [no]
2010-01-20 00:39:47 +00:00
--disable-dct disable DCT code
2012-07-27 13:01:04 +02:00
--disable-dwt disable DWT code
2013-03-02 16:57:26 -08:00
--disable-error-resilience disable error resilience code
2012-07-27 13:01:04 +02:00
--disable-lsp disable LSP code
2012-10-18 19:48:27 +02:00
--disable-lzo disable LZO decoder code
2009-10-31 15:59:08 +00:00
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
2012-03-09 00:24:48 +01:00
--disable-fft disable FFT code
2013-02-05 15:32:24 +01:00
Hardware accelerators:
2013-05-10 09:55:15 +02:00
--disable-dxva2 disable DXVA2 code [autodetect]
2013-05-17 02:32:21 +02:00
--disable-vaapi disable VAAPI code [autodetect]
2014-03-23 13:24:07 +01:00
--disable-vda disable VDA code [autodetect]
2013-05-10 09:55:15 +02:00
--disable-vdpau disable VDPAU code [autodetect]
2012-03-09 00:24:48 +01:00
Individual component options:
2010-03-12 13:03:40 +00:00
--disable-everything disable all components listed below
2009-10-31 15:59:08 +00:00
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--disable-encoders disable all encoders
--disable-decoder=NAME disable decoder NAME
--enable-decoder=NAME enable decoder NAME
--disable-decoders disable all decoders
--disable-hwaccel=NAME disable hwaccel NAME
--enable-hwaccel=NAME enable hwaccel NAME
--disable-hwaccels disable all hwaccels
--disable-muxer=NAME disable muxer NAME
--enable-muxer=NAME enable muxer NAME
--disable-muxers disable all muxers
--disable-demuxer=NAME disable demuxer NAME
--enable-demuxer=NAME enable demuxer NAME
--disable-demuxers disable all demuxers
--enable-parser=NAME enable parser NAME
--disable-parser=NAME disable parser NAME
--disable-parsers disable all parsers
--enable-bsf=NAME enable bitstream filter NAME
--disable-bsf=NAME disable bitstream filter NAME
--disable-bsfs disable all bitstream filters
--enable-protocol=NAME enable protocol NAME
--disable-protocol=NAME disable protocol NAME
--disable-protocols disable all protocols
2012-03-09 00:24:48 +01:00
--enable-indev=NAME enable input device NAME
2009-10-31 15:59:08 +00:00
--disable-indev=NAME disable input device NAME
--disable-indevs disable input devices
2012-03-09 00:24:48 +01:00
--enable-outdev=NAME enable output device NAME
--disable-outdev=NAME disable output device NAME
2009-10-31 15:59:08 +00:00
--disable-outdevs disable output devices
--disable-devices disable all devices
--enable-filter=NAME enable filter NAME
--disable-filter=NAME disable filter NAME
--disable-filters disable all filters
External library support:
2013-05-04 21:18:13 +02:00
--enable-avisynth enable reading of AviSynth script files [no]
2013-05-10 09:55:15 +02:00
--disable-bzlib disable bzlib [autodetect]
2012-04-07 15:09:16 +02:00
--enable-fontconfig enable fontconfig
2010-09-24 00:32:22 +00:00
--enable-frei0r enable frei0r video filtering
2011-02-05 23:39:20 +01:00
--enable-gnutls enable gnutls [no]
2013-05-10 09:55:15 +02:00
--disable-iconv disable iconv [autodetect]
2013-09-20 14:01:00 +00:00
--enable-ladspa enable LADSPA audio filtering
2011-11-25 18:17:07 +01:00
--enable-libaacplus enable AAC+ encoding via libaacplus [no]
2011-09-17 15:52:19 +02:00
--enable-libass enable libass subtitles rendering [no]
2012-03-03 04:25:48 +01:00
--enable-libbluray enable BluRay reading using libbluray [no]
2012-03-13 21:45:46 +00:00
--enable-libcaca enable textual display using libcaca
2011-11-25 18:17:07 +01:00
--enable-libcelt enable CELT decoding via libcelt [no]
2011-09-13 17:23:06 +02:00
--enable-libcdio enable audio CD grabbing with libcdio
2009-10-31 15:59:08 +00:00
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no]
2012-07-16 18:19:13 +02:00
--enable-libfaac enable AAC encoding via libfaac [no]
2013-08-15 15:40:32 -04:00
--enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
2011-08-21 02:29:33 +02:00
--enable-libflite enable flite (voice synthesis) support via libflite [no]
2011-02-21 01:02:29 +01:00
--enable-libfreetype enable libfreetype [no]
2013-06-28 10:36:00 +02:00
--enable-libgme enable Game Music Emu via libgme [no]
2012-07-16 18:19:13 +02:00
--enable-libgsm enable GSM de/encoding via libgsm [no]
2012-07-05 14:02:53 +02:00
--enable-libiec61883 enable iec61883 via libiec61883 [no]
2012-06-16 00:42:13 +03:00
--enable-libilbc enable iLBC de/encoding via libilbc [no]
2011-10-04 20:47:16 +02:00
--enable-libmodplug enable ModPlug via libmodplug [no]
2009-10-31 15:59:08 +00:00
--enable-libmp3lame enable MP3 encoding via libmp3lame [no]
--enable-libnut enable NUT (de)muxing via libnut,
native (de)muxer exists [no]
2012-06-18 00:05:52 +03:00
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
2011-11-17 16:57:09 -07:00
--enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
2012-06-24 11:39:05 +02:00
--enable-libopus enable Opus decoding via libopus [no]
2011-11-18 11:08:31 +01:00
--enable-libpulse enable Pulseaudio input via libpulse [no]
2013-04-04 08:22:32 +02:00
--enable-libquvi enable quvi input via libquvi [no]
2010-03-28 13:39:36 +00:00
--enable-librtmp enable RTMP[E] support via librtmp [no]
2012-07-16 18:19:13 +02:00
--enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
2012-07-29 18:20:00 +00:00
--enable-libshine enable fixed-point MP3 encoding via libshine [no]
2012-12-11 21:43:42 +01:00
--enable-libsoxr enable Include libsoxr resampling [no]
2012-07-16 18:19:13 +02:00
--enable-libspeex enable Speex de/encoding via libspeex [no]
2013-09-18 14:08:11 +02:00
--enable-libssh enable SFTP protocol via libssh [no]
2011-09-08 21:17:17 +05:30
--enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
2009-10-31 15:59:08 +00:00
--enable-libtheora enable Theora encoding via libtheora [no]
2012-08-01 14:33:34 +00:00
--enable-libtwolame enable MP2 encoding via libtwolame [no]
2012-03-05 15:29:23 -05:00
--enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
2011-10-30 03:21:55 +01:00
--enable-libv4l2 enable libv4l2/v4l-utils [no]
2013-04-19 01:49:27 +02:00
--enable-libvidstab enable video stabilization using vid.stab [no]
2010-12-19 21:40:23 +02:00
--enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
2009-12-29 16:48:09 +02:00
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
2012-05-05 10:45:30 +02:00
--enable-libvorbis enable Vorbis en/decoding via libvorbis,
2009-10-31 15:59:08 +00:00
native implementation exists [no]
2012-12-30 19:40:20 +01:00
--enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
2013-05-25 19:22:59 +02:00
--enable-libwavpack enable wavpack encoding via libwavpack [no]
2013-11-22 11:05:13 -05:00
--enable-libwebp enable WebP encoding via libwebp [no]
2009-10-31 15:59:08 +00:00
--enable-libx264 enable H.264 encoding via x264 [no]
2013-10-02 14:46:26 +00:00
--enable-libx265 enable HEVC encoding via x265 [no]
2010-07-27 07:18:36 +00:00
--enable-libxavs enable AVS encoding via xavs [no]
2009-10-31 15:59:08 +00:00
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
2013-04-21 15:00:11 +02:00
--enable-libzmq enable message passing via libzmq [no]
2013-09-01 23:05:50 +02:00
--enable-libzvbi enable teletext support via libzvbi [no]
2014-02-08 18:01:26 -02:00
--enable-decklink enable Blackmagick DeckLink output [no]
2011-06-25 08:06:00 +02:00
--enable-openal enable OpenAL 1.1 capture support [no]
2013-04-01 17:46:11 +08:00
--enable-opencl enable OpenCL code
2013-11-24 20:13:27 +01:00
--enable-opengl enable OpenGL rendering [no]
2011-02-03 00:37:20 +02:00
--enable-openssl enable openssl [no]
2013-02-23 23:01:27 +01:00
--enable-x11grab enable X11 grabbing [no]
2014-02-19 03:59:32 +01:00
--disable-xlib disable xlib [autodetect]
2013-05-10 09:55:15 +02:00
--disable-zlib disable zlib [autodetect]
2009-10-31 15:59:08 +00:00
2014-03-11 18:52:44 +01:00
Toolchain options:
--arch=ARCH select architecture [$arch]
--cpu=CPU select the minimum required CPU (affects
instruction selection, may crash on older CPUs)
2009-10-31 15:59:08 +00:00
--cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]
2014-03-12 21:05:00 +01:00
--progs-suffix=SUFFIX program name suffix []
2009-10-31 15:59:08 +00:00
--enable-cross-compile assume a cross-compiler is used
--sysroot=PATH root of cross-build tree
--sysinclude=PATH location of cross-build system headers
--target-os=OS compiler targets OS [$target_os]
--target-exec=CMD command to run executables on target
--target-path=DIR path to view of build directory on target
2013-05-20 01:55:32 +03:00
--target-samples=DIR path to samples directory on target
2013-10-05 13:48:22 +02:00
--tempprefix=PATH force fixed dir/prefix instead of mktemp for checks
2012-09-16 22:06:53 +01:00
--toolchain=NAME set tool defaults according to NAME
2014-03-11 19:12:05 +01:00
--pkg-config=PKGCONFIG use pkg-config tool PKGCONFIG [$pkg_config_default]
2012-01-15 13:53:33 +01:00
--nm=NM use nm tool NM [$nm_default]
2010-05-02 18:59:15 +00:00
--ar=AR use archive tool AR [$ar_default]
2009-10-31 15:59:08 +00:00
--as=AS use assembler AS [$as_default]
2013-12-05 17:50:14 -03:00
--windres=WINDRES use windows resource compiler WINDRES [$windres_default]
2012-01-16 00:48:16 +01:00
--yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default]
2009-10-31 15:59:08 +00:00
--cc=CC use C compiler CC [$cc_default]
2011-08-31 04:11:25 +05:30
--cxx=CXX use C compiler CXX [$cxx_default]
2012-07-27 13:01:04 +02:00
--dep-cc=DEPCC use dependency generator DEPCC [$cc_default]
2012-01-15 13:53:33 +01:00
--ld=LD use linker LD [$ld_default]
2014-01-20 11:17:45 +01:00
--pkg-config=PKGCONF use pkg-config PKGCONF [$pkg_config_default]
--pkg-config-flags=FLAGS pass additional flags to pkgconf []
2009-10-31 15:59:08 +00:00
--host-cc=HOSTCC use host C compiler HOSTCC
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
2013-02-03 15:13:17 +01:00
--host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host
2012-08-28 13:02:35 +01:00
--host-ld=HOSTLD use host linker HOSTLD
2009-10-31 15:59:08 +00:00
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
--host-libs=HLIBS use libs HLIBS when linking for host
2012-07-27 13:01:04 +02:00
--host-os=OS compiler host OS [$target_os]
2009-10-31 15:59:08 +00:00
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
2011-08-31 04:11:25 +05:30
--extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
2009-10-31 15:59:08 +00:00
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
--extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix []
2012-07-27 13:01:04 +02:00
--optflags=OPTFLAGS override optimization-related compiler flags
2009-10-31 15:59:08 +00:00
--build-suffix=SUFFIX library name suffix []
2012-03-09 00:24:48 +01:00
--enable-pic build position-independent code
2012-07-27 13:01:04 +02:00
--enable-thumb compile for Thumb instruction set
2014-03-11 18:52:44 +01:00
--enable-lto use link-time optimization
Advanced options (experts only):
--malloc-prefix=PREFIX prefix malloc and related names with PREFIX
2012-03-09 00:24:48 +01:00
--disable-symver disable symbol versioning
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--disable-safe-bitstream-reader
disable buffer boundary checking in bitreaders
(faster, but may crash)
--enable-memalign-hack emulate memalign, interferes with memory debuggers
2014-03-11 18:52:44 +01:00
--enable-sram allow use of on-chip SRAM
2012-03-09 00:24:48 +01:00
Optimization options (experts only):
2010-01-18 23:12:55 +00:00
--disable-asm disable all assembler optimizations
2009-10-31 15:59:08 +00:00
--disable-altivec disable AltiVec optimizations
--disable-amd3dnow disable 3DNow! optimizations
--disable-amd3dnowext disable 3DNow! extended optimizations
--disable-mmx disable MMX optimizations
2012-07-08 18:42:12 +02:00
--disable-mmxext disable MMXEXT optimizations
2009-10-31 15:59:08 +00:00
--disable-sse disable SSE optimizations
2012-08-28 13:56:46 +02:00
--disable-sse2 disable SSE2 optimizations
--disable-sse3 disable SSE3 optimizations
2009-10-31 15:59:08 +00:00
--disable-ssse3 disable SSSE3 optimizations
2012-08-28 13:56:46 +02:00
--disable-sse4 disable SSE4 optimizations
--disable-sse42 disable SSE4.2 optimizations
2011-02-16 02:39:42 +00:00
--disable-avx disable AVX optimizations
2014-02-06 01:33:59 -03:00
--disable-xop disable XOP optimizations
2014-02-22 02:47:01 -03:00
--disable-fma3 disable FMA3 optimizations
2012-06-18 23:39:14 -04:00
--disable-fma4 disable FMA4 optimizations
2013-10-20 10:28:38 -05:00
--disable-avx2 disable AVX2 optimizations
2009-10-31 15:59:08 +00:00
--disable-armv5te disable armv5te optimizations
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
2012-12-04 23:29:34 +00:00
--disable-vfp disable VFP optimizations
2011-12-12 21:21:24 +01:00
--disable-neon disable NEON optimizations
2012-09-04 18:23:25 +02:00
--disable-inline-asm disable use of inline assembler
2009-10-31 15:59:08 +00:00
--disable-yasm disable use of yasm assembler
2012-06-04 18:02:56 +02:00
--disable-mips32r2 disable MIPS32R2 optimizations
--disable-mipsdspr1 disable MIPS DSP ASE R1 optimizations
--disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations
--disable-mipsfpu disable floating point MIPS optimizations
2012-07-02 01:58:30 +02:00
--disable-fast-unaligned consider unaligned accesses slow
2009-10-31 15:59:08 +00:00
2011-03-17 17:02:14 +01:00
Developer options (useful when working on FFmpeg itself):
2009-10-31 15:59:08 +00:00
--disable-debug disable debugging symbols
--enable-debug=LEVEL set the debug level [$debuglevel]
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
2011-04-01 00:24:12 +02:00
--disable-stripping disable stripping of executables and shared libraries
2012-04-08 00:59:22 +02:00
--assert-level=level 0(default), 1 or 2, amount of assertion testing,
2012-04-07 09:20:54 +02:00
2 causes a slowdown at runtime.
2012-07-02 19:31:35 +02:00
--enable-memory-poisoning fill heap uninitialized allocated space with arbitrary data
2012-01-20 20:42:31 +01:00
--valgrind=VALGRIND run "make fate" tests through valgrind to detect memory
leaks and errors, using the specified valgrind binary.
Cannot be combined with --target-exec
2012-10-09 05:43:30 +02:00
--enable-ftrapv Trap arithmetic overflows
2011-02-26 11:50:35 +00:00
--samples=PATH location of test samples for FATE, if not set use
\$FATE_SAMPLES at make invocation time.
2013-12-20 13:51:50 +02:00
--enable-neon-clobber-test check NEON registers for clobbering (should be
used only for debugging purposes)
2012-02-02 11:48:13 -08:00
--enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
should be used only for debugging purposes)
2012-05-09 04:29:53 +01:00
--enable-random randomly enable/disable components
--disable-random
--enable-random=LIST randomly enable/disable specific components or
--disable-random=LIST component groups. LIST is a comma-separated list
of NAME[:PROB] entries where NAME is a component
(group) and PROB the probability associated with
NAME (default 0.5).
--random-seed=VALUE seed value for --enable/disable-random
2009-10-31 15:59:08 +00:00
NOTE: Object files are built at the place where configure is launched.
EOF
2008-10-09 20:10:22 +00:00
exit 0
2006-05-30 19:46:06 +00:00
}
2010-06-15 18:06:28 +00:00
quotes = '""'
2006-06-16 19:26:31 +00:00
log(){
2008-05-15 11:37:29 +00:00
echo " $@ " >> $logfile
2006-06-16 19:26:31 +00:00
}
2006-07-04 18:24:37 +00:00
log_file(){
2006-06-17 14:39:11 +00:00
log BEGIN $1
2008-05-15 11:37:29 +00:00
pr -n -t $1 >> $logfile
2006-06-17 14:39:11 +00:00
log END $1
}
2006-06-22 18:57:40 +00:00
echolog(){
2006-06-17 14:39:11 +00:00
log " $@ "
2006-06-16 19:26:31 +00:00
echo " $@ "
2006-06-22 18:57:40 +00:00
}
2010-06-24 20:49:32 +00:00
warn(){
log "WARNING: $* "
WARNINGS = " ${ WARNINGS } WARNING: $* \n"
}
2006-06-22 18:57:40 +00:00
die(){
echolog " $@ "
cat <<EOF
2009-04-02 08:02:32 +00:00
2006-06-22 18:57:40 +00:00
If you think configure made a mistake, make sure you are using the latest
2011-01-17 11:44:19 -09:00
version from Git. If the latest version fails, report the problem to the
2011-03-25 18:47:22 +01:00
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
2006-06-22 18:57:40 +00:00
EOF
2008-03-25 15:10:26 +00:00
if disabled logging; then
2006-06-22 18:57:40 +00:00
cat <<EOF
2008-03-25 15:10:26 +00:00
Rerun configure with logging enabled (do not use --disable-logging), and
include the log this produces with your report.
2006-06-22 18:57:40 +00:00
EOF
else
2012-08-19 21:35:30 +02:00
cat <<EOF
2008-03-25 15:10:26 +00:00
Include the log file "$logfile" produced by configure as this will help
solving the problem.
2006-06-22 18:57:40 +00:00
EOF
fi
2006-06-16 19:26:31 +00:00
exit 1
}
2008-02-11 23:17:06 +00:00
# Avoid locale weirdness, besides we really just want to translate ASCII.
2006-11-14 00:16:43 +00:00
toupper(){
2008-02-11 23:17:06 +00:00
echo " $@ " | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
2006-11-14 00:16:43 +00:00
}
2007-02-18 01:39:07 +00:00
tolower(){
2008-02-11 23:17:06 +00:00
echo " $@ " | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
2007-02-18 01:39:07 +00:00
}
2009-01-25 22:23:03 +00:00
c_escape(){
echo " $* " | sed 's/["\\]/\\\0/g'
}
2009-06-15 22:12:21 +00:00
sh_quote(){
v = $( echo " $1 " | sed "s/'/'\\\\''/g" )
2010-07-27 16:59:42 +00:00
test "x $v " = "x ${ v #*[!A-Za-z0-9_/.+-] } " || v = "' $v '"
2009-06-15 22:12:21 +00:00
echo " $v "
}
2011-02-13 13:06:53 +00:00
cleanws(){
2013-10-19 00:07:31 +02:00
echo " $@ " | sed 's/^ *//;s/ */ /g;s/ *$//;s/\r//g'
2011-02-13 13:06:53 +00:00
}
2009-08-06 15:45:22 +00:00
filter(){
pat = $1
shift
for v; do
2009-08-23 15:39:39 +00:00
eval "case $v in $pat ) echo $v ;; esac"
2009-08-06 15:45:22 +00:00
done
}
2011-01-25 14:44:07 +00:00
filter_out(){
pat = $1
shift
for v; do
eval "case $v in $pat ) ;; *) echo $v ;; esac"
done
}
2010-03-11 00:39:02 +00:00
map(){
m = $1
shift
2010-03-16 21:22:54 +00:00
for v; do eval $m ; done
2010-03-11 00:39:02 +00:00
}
2012-08-27 03:07:11 +02:00
add_suffix(){
suffix = $1
shift
for v; do echo ${ v }${ suffix } ; done
}
2006-11-12 15:19:58 +00:00
set_all(){
value = $1
shift
for var in $* ; do
eval $var = $value
done
}
2008-10-24 23:18:08 +00:00
set_weak(){
value = $1
shift
for var; do
eval : \$ { $var := $value }
done
}
2013-03-04 22:58:34 +01:00
sanitize_var_name(){
echo $@ | sed 's/[^A-Za-z0-9_]/_/g'
}
2011-03-06 13:48:30 +00:00
set_safe(){
var = $1
shift
2013-03-04 22:58:34 +01:00
eval $( sanitize_var_name " $var " ) = '$*'
2011-03-06 13:48:30 +00:00
}
get_safe(){
2013-03-04 22:58:34 +01:00
eval echo \$ $( sanitize_var_name " $1 " )
2011-03-06 13:48:30 +00:00
}
2007-02-11 15:49:37 +00:00
pushvar(){
2013-04-03 15:52:45 +03:00
for pvar in $* ; do
eval level = \$ { ${ pvar } _level:= 0}
eval ${ pvar } _${ level } = "\$ $pvar "
eval ${ pvar } _level = $(( $level + 1 ))
2007-02-11 15:49:37 +00:00
done
}
popvar(){
2013-04-03 15:52:45 +03:00
for pvar in $* ; do
eval level = \$ { ${ pvar } _level:-0}
2007-02-11 15:49:37 +00:00
test $level = 0 && continue
eval level = $(( $level - 1 ))
2013-04-03 15:52:45 +03:00
eval $pvar = "\${ ${ pvar } _ ${ level } }"
eval ${ pvar } _level = $level
eval unset ${ pvar } _${ level }
2007-02-11 15:49:37 +00:00
done
}
2006-11-12 15:19:58 +00:00
enable(){
set_all yes $*
}
disable(){
set_all no $*
}
2008-10-24 23:18:08 +00:00
enable_weak(){
set_weak yes $*
}
disable_weak(){
set_weak no $*
}
2009-02-28 19:56:19 +00:00
enable_safe(){
2010-01-11 13:36:58 +00:00
for var; do
enable $( echo " $var " | sed 's/[^A-Za-z0-9_]/_/g' )
done
2009-02-28 19:56:19 +00:00
}
disable_safe(){
2010-01-11 13:36:58 +00:00
for var; do
disable $( echo " $var " | sed 's/[^A-Za-z0-9_]/_/g' )
done
2009-02-28 19:56:19 +00:00
}
2008-10-24 23:18:04 +00:00
do_enable_deep(){
for var; do
enabled $var && continue
eval sel = "\$ ${ var } _select"
2008-10-24 23:18:12 +00:00
eval sgs = "\$ ${ var } _suggest"
pushvar var sgs
2008-10-24 23:18:04 +00:00
enable_deep $sel
2008-10-24 23:18:12 +00:00
popvar sgs
enable_deep_weak $sgs
2008-10-24 23:18:04 +00:00
popvar var
done
}
enable_deep(){
do_enable_deep $*
enable $*
}
2008-10-24 23:18:08 +00:00
enable_deep_weak(){
2013-04-03 15:55:14 +03:00
for var; do
disabled $var && continue
pushvar var
do_enable_deep $var
popvar var
enable_weak $var
done
2008-10-24 23:18:08 +00:00
}
2006-06-16 19:26:31 +00:00
enabled(){
2008-07-12 20:55:04 +00:00
test " ${ 1 #! } " = " $1 " && op == || op = !=
eval test "x\$ ${ 1 #! } " $op "xyes"
2006-11-14 00:16:43 +00:00
}
2007-01-28 16:04:55 +00:00
disabled(){
2008-07-12 20:55:04 +00:00
test " ${ 1 #! } " = " $1 " && op == || op = !=
eval test "x\$ ${ 1 #! } " $op "xno"
2007-01-28 16:04:55 +00:00
}
2006-11-14 00:16:43 +00:00
enabled_all(){
for opt; do
enabled $opt || return 1
done
}
2007-01-28 16:16:49 +00:00
disabled_all(){
for opt; do
disabled $opt || return 1
done
}
2006-11-14 00:16:43 +00:00
enabled_any(){
for opt; do
enabled $opt && return 0
done
}
2007-01-28 16:16:49 +00:00
disabled_any(){
for opt; do
disabled $opt && return 0
done
2008-10-24 21:44:39 +00:00
return 1
2007-01-28 16:16:49 +00:00
}
2008-06-02 23:51:36 +00:00
set_default(){
for opt; do
2008-11-23 12:36:31 +00:00
eval : \$ { $opt := \$ ${ opt } _default}
2008-06-02 23:51:36 +00:00
done
}
2007-08-20 21:35:51 +00:00
is_in(){
value = $1
shift
for var in $* ; do
[ $var = $value ] && return 0
done
return 1
}
2012-12-09 17:34:14 +00:00
do_check_deps(){
2007-01-21 21:01:34 +00:00
for cfg; do
2008-07-12 20:55:04 +00:00
cfg = " ${ cfg #! } "
2007-02-11 15:49:37 +00:00
enabled ${ cfg } _checking && die "Circular dependency for $cfg ."
disabled ${ cfg } _checking && continue
enable ${ cfg } _checking
2012-12-09 17:34:14 +00:00
append allopts $cfg
2007-02-11 15:49:37 +00:00
2007-01-21 21:01:34 +00:00
eval dep_all = "\$ ${ cfg } _deps"
eval dep_any = "\$ ${ cfg } _deps_any"
2008-10-24 21:44:45 +00:00
eval dep_sel = "\$ ${ cfg } _select"
2008-10-24 23:18:12 +00:00
eval dep_sgs = "\$ ${ cfg } _suggest"
2010-01-14 18:25:38 +00:00
eval dep_ifa = "\$ ${ cfg } _if"
eval dep_ifn = "\$ ${ cfg } _if_any"
2007-02-11 15:49:37 +00:00
2010-01-14 18:25:38 +00:00
pushvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
2012-12-09 17:34:14 +00:00
do_check_deps $dep_all $dep_any $dep_sel $dep_sgs $dep_ifa $dep_ifn
2010-01-14 18:25:38 +00:00
popvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
2007-02-11 15:49:37 +00:00
2010-01-14 18:25:38 +00:00
[ -n " $dep_ifa " ] && { enabled_all $dep_ifa && enable_weak $cfg ; }
[ -n " $dep_ifn " ] && { enabled_any $dep_ifn && enable_weak $cfg ; }
2008-10-24 21:44:49 +00:00
enabled_all $dep_all || disable $cfg
enabled_any $dep_any || disable $cfg
2008-10-24 21:44:45 +00:00
disabled_any $dep_sel && disable $cfg
2007-02-11 15:49:37 +00:00
2007-09-18 19:07:52 +00:00
if enabled $cfg ; then
2008-10-24 23:18:04 +00:00
enable_deep $dep_sel
2008-10-24 23:18:12 +00:00
enable_deep_weak $dep_sgs
2007-09-18 19:07:52 +00:00
fi
2007-02-11 15:49:37 +00:00
disable ${ cfg } _checking
2007-01-21 21:01:34 +00:00
done
}
2012-12-09 17:34:14 +00:00
check_deps(){
unset allopts
do_check_deps " $@ "
for cfg in $allopts ; do
enabled $cfg || continue
eval dep_extralibs = "\$ ${ cfg } _extralibs"
test -n " $dep_extralibs " && add_extralibs $dep_extralibs
done
}
2006-11-14 00:16:43 +00:00
print_config(){
pfx = $1
2010-09-03 21:27:12 +00:00
files = $2
shift 2
2012-10-27 16:43:12 +01:00
map 'eval echo "$v \${$v:-no}"' " $@ " |
awk "BEGIN { split(\" $files \", files) }
{
c = \" $pfx \" toupper(\$1);
v = \$2;
sub(/yes/, 1, v);
sub(/no/, 0, v);
for (f in files) {
file = files[f];
if (file ~ /\\.h\$/) {
printf(\"#define %s %d\\n\", c, v) >>file;
} else if (file ~ /\\.asm\$/) {
printf(\"%%define %s %d\\n\", c, v) >>file;
} else if (file ~ /\\.mak\$/) {
2012-10-30 11:57:30 +00:00
n = -v ? \"\" : \"!\";
2012-10-27 16:43:12 +01:00
printf(\"%s%s=yes\\n\", n, c) >>file;
2013-03-19 20:54:26 +01:00
} else if (file ~ /\\.texi\$/) {
pre = -v ? \"\" : \"@c \";
yesno = \$2;
c2 = tolower(c);
gsub(/_/, \"-\", c2);
printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>file;
2012-10-27 16:43:12 +01:00
}
}
}"
2006-06-16 19:26:31 +00:00
}
2010-07-08 18:44:03 +00:00
print_enabled(){
suf = $1
shift
for v; do
2012-10-27 19:11:04 +01:00
enabled $v && printf "%s\n" ${ v % $suf } ;
2010-07-08 18:44:03 +00:00
done
}
2006-06-16 19:26:31 +00:00
append(){
var = $1
shift
eval " $var =\"\$ $var $* \""
}
2010-06-25 15:45:04 +00:00
prepend(){
var = $1
shift
eval " $var =\" $* \$ $var \""
}
2009-07-12 13:29:32 +00:00
add_cppflags(){
2012-07-20 12:02:29 +01:00
append CPPFLAGS " $@ "
2009-07-12 13:29:32 +00:00
}
2006-06-16 19:26:31 +00:00
add_cflags(){
2012-07-20 12:02:18 +01:00
append CFLAGS $( $cflags_filter " $@ " )
2006-06-16 19:26:31 +00:00
}
2011-08-31 04:11:25 +05:30
add_cxxflags(){
2012-07-22 05:01:09 +02:00
append CXXFLAGS $( $cflags_filter " $@ " )
2011-08-31 04:11:25 +05:30
}
2009-07-12 13:29:53 +00:00
add_asflags(){
2012-07-20 12:02:18 +01:00
append ASFLAGS $( $asflags_filter " $@ " )
2009-07-12 13:29:53 +00:00
}
2006-06-16 19:26:31 +00:00
add_ldflags(){
2012-07-20 03:06:49 +01:00
append LDFLAGS $( $ldflags_filter " $@ " )
2006-06-16 19:26:31 +00:00
}
2013-11-25 08:46:14 +00:00
add_stripflags(){
2013-11-28 21:29:13 +01:00
append ASMSTRIPFLAGS " $@ "
2013-11-25 08:46:14 +00:00
}
2006-06-16 19:26:31 +00:00
add_extralibs(){
2012-07-20 03:06:49 +01:00
prepend extralibs $( $ldflags_filter " $@ " )
2006-06-16 19:26:31 +00:00
}
2013-02-03 15:13:17 +01:00
add_host_cppflags(){
append host_cppflags " $@ "
}
2012-07-20 13:48:13 +01:00
add_host_cflags(){
append host_cflags $( $host_cflags_filter " $@ " )
}
add_host_ldflags(){
append host_ldflags $( $host_ldflags_filter " $@ " )
2006-06-16 19:26:31 +00:00
}
2012-10-14 17:56:00 +01:00
add_compat(){
append compat_objs $1
shift
map 'add_cppflags -D$v' " $@ "
}
2006-07-31 07:54:48 +00:00
check_cmd(){
2006-08-03 22:27:19 +00:00
log " $@ "
2008-05-15 11:37:29 +00:00
" $@ " >> $logfile 2>& 1
2006-07-31 07:54:48 +00:00
}
2014-04-06 23:17:08 +02:00
check_stat(){
log check_stat " $@ "
stat " $1 " >> $logfile 2>& 1
}
2012-07-20 22:22:18 +01:00
cc_o(){
eval printf '%s\\n' $CC_O
}
2012-07-20 22:22:41 +01:00
cc_e(){
eval printf '%s\\n' $CC_E
}
2006-06-01 19:28:41 +00:00
check_cc(){
2006-06-16 19:26:31 +00:00
log check_cc " $@ "
2008-05-15 11:37:29 +00:00
cat > $TMPC
2006-07-04 18:24:37 +00:00
log_file $TMPC
2012-07-20 23:43:27 +01:00
check_cmd $cc $CPPFLAGS $CFLAGS " $@ " $CC_C $( cc_o $TMPO ) $TMPC
2006-06-16 19:26:31 +00:00
}
2011-08-31 04:11:25 +05:30
check_cxx(){
log check_cxx " $@ "
cat > $TMPCPP
log_file $TMPCPP
2012-07-30 17:44:56 +02:00
check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS " $@ " $CXX_C -o $TMPO $TMPCPP
2011-08-31 04:11:25 +05:30
}
2014-04-05 13:30:27 +02:00
check_oc(){
log check_oc " $@ "
cat > $TMPM
log_file $TMPM
2014-04-09 11:18:14 +02:00
check_cmd $cc -Werror= missing-prototypes $CPPFLAGS $CFLAGS " $@ " $CC_C $( cc_o $TMPO ) $TMPM
2014-04-05 13:30:27 +02:00
}
2006-06-16 19:26:31 +00:00
check_cpp(){
log check_cpp " $@ "
2008-05-15 11:37:29 +00:00
cat > $TMPC
2006-07-04 18:24:37 +00:00
log_file $TMPC
2012-07-20 22:22:41 +01:00
check_cmd $cc $CPPFLAGS $CFLAGS " $@ " $( cc_e $TMPO ) $TMPC
2006-06-01 19:28:41 +00:00
}
2012-08-27 22:19:06 +01:00
as_o(){
eval printf '%s\\n' $AS_O
}
2009-03-05 21:20:04 +00:00
check_as(){
log check_as " $@ "
2012-12-01 13:19:05 +00:00
cat > $TMPS
log_file $TMPS
check_cmd $as $CPPFLAGS $ASFLAGS " $@ " $AS_C $( as_o $TMPO ) $TMPS
2009-03-05 21:20:04 +00:00
}
2012-08-07 23:46:52 +02:00
check_inline_asm(){
log check_inline_asm " $@ "
2007-09-23 21:52:09 +00:00
name = " $1 "
2010-01-18 23:12:53 +00:00
code = " $2 "
2007-09-23 21:52:09 +00:00
shift 2
2009-09-30 21:38:11 +00:00
disable $name
2012-12-01 13:19:05 +00:00
check_cc " $@ " <<EOF && enable $name
2010-01-18 23:12:53 +00:00
void foo(void){ __asm__ volatile($code); }
2007-09-23 21:52:09 +00:00
EOF
}
2012-12-01 15:06:56 +00:00
check_insn(){
log check_insn " $@ "
check_inline_asm ${ 1 } _inline "\" $2 \""
echo " $2 " | check_as && enable ${ 1 } _external || disable ${ 1 } _external
}
2008-08-11 23:53:31 +00:00
check_yasm(){
log check_yasm " $@ "
echo " $1 " > $TMPS
log_file $TMPS
shift 1
2012-09-01 13:36:10 -03:00
check_cmd $yasmexe $YASMFLAGS -Werror " $@ " -o $TMPO $TMPS
2008-08-11 23:53:31 +00:00
}
2012-08-27 22:04:25 +01:00
ld_o(){
eval printf '%s\\n' $LD_O
}
2006-06-01 19:28:41 +00:00
check_ld(){
2006-06-16 19:26:31 +00:00
log check_ld " $@ "
2011-08-31 04:11:25 +05:30
type = $1
shift 1
2013-01-13 21:45:15 +01:00
flags = $( filter_out '-l*|*.so' $@ )
libs = $( filter '-l*|*.so' $@ )
2012-07-22 05:01:09 +02:00
check_$type $( $cflags_filter $flags ) || return
2012-07-20 03:06:49 +01:00
flags = $( $ldflags_filter $flags )
libs = $( $ldflags_filter $libs )
2012-08-27 22:04:25 +01:00
check_cmd $ld $LDFLAGS $flags $( ld_o $TMPE ) $TMPO $libs $extralibs
2006-06-01 19:28:41 +00:00
}
2013-12-23 01:03:48 +01:00
print_include(){
hdr = $1
test " ${ hdr %.h } " = " ${ hdr } " &&
echo "#include $hdr " ||
echo "#include < $hdr >"
}
2012-07-04 23:06:25 +01:00
check_code(){
log check_code " $@ "
check = $1
headers = $2
code = $3
shift 3
{
for hdr in $headers ; do
2013-12-23 01:03:48 +01:00
print_include $hdr
2012-07-04 23:06:25 +01:00
done
echo "int main(void) { $code ; return 0; }"
} | check_$check " $@ "
}
2009-07-12 13:29:32 +00:00
check_cppflags(){
log check_cppflags " $@ "
2009-07-12 22:44:05 +00:00
check_cc " $@ " <<EOF && append CPPFLAGS "$@"
2009-07-12 13:29:32 +00:00
int x;
EOF
}
2013-10-31 19:48:59 +01:00
test_cflags(){
log test_cflags " $@ "
2012-07-20 12:02:18 +01:00
set -- $( $cflags_filter " $@ " )
2013-10-31 19:48:59 +01:00
check_cc " $@ " <<EOF
2006-06-01 19:28:41 +00:00
int x;
EOF
}
2013-10-31 19:48:59 +01:00
check_cflags(){
log check_cflags " $@ "
test_cflags " $@ " && add_cflags " $@ "
}
2011-08-31 04:11:25 +05:30
check_cxxflags(){
log check_cxxflags " $@ "
2012-07-22 05:01:09 +02:00
set -- $( $cflags_filter " $@ " )
2011-08-31 04:11:25 +05:30
check_cxx " $@ " <<EOF && append CXXFLAGS "$@"
int x;
EOF
}
2010-01-16 04:48:58 +00:00
test_ldflags(){
log test_ldflags " $@ "
2011-08-31 04:11:25 +05:30
check_ld "cc" " $@ " <<EOF
2008-03-30 22:23:52 +00:00
int main(void){ return 0; }
2006-06-01 19:28:41 +00:00
EOF
}
2010-01-16 04:48:58 +00:00
check_ldflags(){
log check_ldflags " $@ "
test_ldflags " $@ " && add_ldflags " $@ "
}
2013-11-25 08:46:14 +00:00
test_stripflags(){
log test_stripflags " $@ "
# call check_cc to get a fresh TMPO
check_cc <<EOF
int main(void) { return 0; }
EOF
2013-11-28 21:29:13 +01:00
check_cmd $strip $ASMSTRIPFLAGS " $@ " $TMPO
2013-11-25 08:46:14 +00:00
}
check_stripflags(){
log check_stripflags " $@ "
test_stripflags " $@ " && add_stripflags " $@ "
}
2006-06-01 19:28:41 +00:00
check_header(){
2006-06-16 19:26:31 +00:00
log check_header " $@ "
2006-06-01 19:28:41 +00:00
header = $1
shift
2009-03-01 17:57:14 +00:00
disable_safe $header
check_cpp " $@ " <<EOF && enable_safe $header
2006-06-01 19:28:41 +00:00
#include <$header>
int x;
EOF
}
2014-04-05 02:03:15 +02:00
check_header_oc(){
log check_header_oc " $@ "
2014-04-06 23:17:08 +02:00
rm -f -- " $TMPO "
2014-04-05 02:03:15 +02:00
header = $1
shift
2014-04-05 13:29:28 +02:00
disable_safe $header
2014-04-05 02:03:15 +02:00
{
echo "#include < $header >"
echo "int main(void) { return 0; }"
2014-04-06 23:17:08 +02:00
} | check_oc && check_stat " $TMPO " && enable_safe $headers
2014-04-05 02:03:15 +02:00
}
2006-06-01 19:28:41 +00:00
check_func(){
2006-06-16 19:26:31 +00:00
log check_func " $@ "
2006-06-01 19:28:41 +00:00
func = $1
shift
2007-02-14 22:18:13 +00:00
disable $func
2011-08-31 04:11:25 +05:30
check_ld "cc" " $@ " <<EOF && enable $func
2006-06-01 19:28:41 +00:00
extern int $func();
2008-03-30 22:23:52 +00:00
int main(void){ $func(); }
2006-06-01 19:28:41 +00:00
EOF
}
2010-02-09 22:55:13 +00:00
check_mathfunc(){
2010-02-10 22:14:25 +00:00
log check_mathfunc " $@ "
2010-02-09 22:55:13 +00:00
func = $1
2012-10-26 14:42:47 +01:00
narg = $2
shift 2
test $narg = 2 && args = "f, g" || args = "f"
2010-02-09 22:55:13 +00:00
disable $func
2011-08-31 04:11:25 +05:30
check_ld "cc" " $@ " <<EOF && enable $func
2010-02-09 22:55:13 +00:00
#include <math.h>
2012-10-26 14:42:47 +01:00
float foo(float f, float g) { return $func($args); }
2012-10-24 13:15:42 +02:00
int main(void){ return (int) foo; }
EOF
}
2008-09-20 16:17:27 +00:00
check_func_headers(){
log check_func_headers " $@ "
2007-02-19 23:00:18 +00:00
headers = $1
2011-03-07 02:49:55 +00:00
funcs = $2
2007-02-19 23:00:18 +00:00
shift 2
2011-03-07 02:49:55 +00:00
{
for hdr in $headers ; do
2013-12-23 01:03:48 +01:00
print_include $hdr
2011-03-07 02:49:55 +00:00
done
for func in $funcs ; do
echo "long check_ $func (void) { return (long) $func ; }"
done
echo "int main(void) { return 0; }"
2011-08-31 04:11:25 +05:30
} | check_ld "cc" " $@ " && enable $funcs && enable_safe $headers
}
check_class_headers_cpp(){
log check_class_headers_cpp " $@ "
headers = $1
classes = $2
shift 2
{
for hdr in $headers ; do
echo "#include < $hdr >"
done
echo "int main(void) { "
i = 1
for class in $classes ; do
echo " $class obj $i ;"
i = $( expr $i + 1)
done
echo "return 0; }"
} | check_ld "cxx" " $@ " && enable $funcs && enable_safe $headers
2007-02-19 23:00:18 +00:00
}
2008-10-12 09:07:14 +00:00
check_cpp_condition(){
log check_cpp_condition " $@ "
header = $1
condition = $2
2010-01-17 19:05:53 +00:00
shift 2
2012-07-20 12:02:29 +01:00
check_cpp " $@ " <<EOF
2008-10-12 09:07:14 +00:00
#include <$header>
#if !($condition)
#error "unsatisfied condition: $condition"
#endif
EOF
}
2006-06-16 19:26:31 +00:00
check_lib(){
log check_lib " $@ "
header = " $1 "
func = " $2 "
shift 2
2010-06-25 15:44:55 +00:00
check_header $header && check_func $func " $@ " && add_extralibs " $@ "
2006-06-16 19:26:31 +00:00
}
2007-02-19 23:00:18 +00:00
check_lib2(){
log check_lib2 " $@ "
headers = " $1 "
2011-03-07 02:49:55 +00:00
funcs = " $2 "
2007-02-19 23:00:18 +00:00
shift 2
2011-03-07 02:49:55 +00:00
check_func_headers " $headers " " $funcs " " $@ " && add_extralibs " $@ "
2007-02-19 23:00:18 +00:00
}
2011-08-31 04:11:25 +05:30
check_lib_cpp(){
log check_lib_cpp " $@ "
headers = " $1 "
classes = " $2 "
shift 2
check_class_headers_cpp " $headers " " $classes " " $@ " && add_extralibs " $@ "
}
2011-03-06 13:48:30 +00:00
check_pkg_config(){
log check_pkg_config " $@ "
2014-01-09 22:22:16 +01:00
pkgandversion = " $1 "
pkg = " ${ 1 %% * } "
2011-03-06 13:48:30 +00:00
headers = " $2 "
funcs = " $3 "
shift 3
2014-01-09 22:22:16 +01:00
check_cmd $pkg_config --exists --print-errors $pkgandversion || return
2014-01-20 11:17:45 +01:00
pkg_cflags = $( $pkg_config --cflags $pkg_config_flags $pkg )
pkg_libs = $( $pkg_config --libs $pkg_config_flags $pkg )
2011-03-06 13:48:30 +00:00
check_func_headers " $headers " " $funcs " $pkg_cflags $pkg_libs " $@ " &&
set_safe ${ pkg } _cflags $pkg_cflags &&
set_safe ${ pkg } _libs $pkg_libs
}
2006-06-01 19:28:41 +00:00
check_exec(){
2011-08-31 04:11:25 +05:30
check_ld "cc" " $@ " && { enabled cross_compile || $TMPE >> $logfile 2>& 1; }
2006-06-16 19:26:31 +00:00
}
2007-04-13 20:16:13 +00:00
check_exec_crash(){
2009-03-09 23:59:31 +00:00
code = $( cat)
2007-04-13 20:16:13 +00:00
# exit() is not async signal safe. _Exit (C99) and _exit (POSIX)
# are safe but may not be available everywhere. Thus we use
# raise(SIGTERM) instead. The check is run in a subshell so we
# can redirect the "Terminated" message from the shell. SIGBUS
# is not defined by standard C so it is used conditionally.
2008-05-15 11:37:29 +00:00
( check_exec " $@ " ) >> $logfile 2>& 1 <<EOF
2007-04-13 20:16:13 +00:00
#include <signal.h>
static void sighandler(int sig){
raise(SIGTERM);
}
2012-09-13 20:17:54 +01:00
int foo(void){
2011-10-22 00:10:29 +02:00
$code
}
2013-05-25 06:01:29 -04:00
int (*func_ptr)(void) = foo;
2007-11-20 11:18:52 +00:00
int main(void){
2007-04-13 20:16:13 +00:00
signal(SIGILL, sighandler);
signal(SIGFPE, sighandler);
signal(SIGSEGV, sighandler);
#ifdef SIGBUS
signal(SIGBUS, sighandler);
#endif
2012-02-09 17:49:22 +01:00
return func_ptr();
2007-04-13 20:16:13 +00:00
}
EOF
}
2008-01-01 22:54:35 +00:00
check_type(){
log check_type " $@ "
headers = $1
type = $2
shift 2
2010-01-11 14:22:29 +00:00
disable_safe " $type "
2012-07-04 23:06:25 +01:00
check_code cc " $headers " " $type v" " $@ " && enable_safe " $type "
2008-01-01 22:54:35 +00:00
}
2010-01-17 19:10:03 +00:00
check_struct(){
2013-03-04 22:56:41 +01:00
log check_struct " $@ "
2010-01-17 19:10:03 +00:00
headers = $1
struct = $2
member = $3
shift 3
disable_safe " ${ struct } _ ${ member } "
2012-07-04 23:06:25 +01:00
check_code cc " $headers " "const void *p = &(( $struct *)0)-> $member " " $@ " &&
enable_safe " ${ struct } _ ${ member } "
2010-01-17 19:10:03 +00:00
}
2013-03-04 22:59:41 +01:00
check_builtin(){
log check_builtin " $@ "
name = $1
headers = $2
builtin = $3
shift 3
disable " $name "
2013-03-05 12:37:15 +01:00
check_code ld " $headers " " $builtin " "cc" " $@ " && enable " $name "
2013-03-04 22:59:41 +01:00
}
2013-11-14 12:19:04 +01:00
check_compile_assert(){
log check_compile_assert " $@ "
name = $1
headers = $2
condition = $3
shift 3
disable " $name "
check_code cc " $headers " "char c[2 * !!( $condition ) - 1]" " $@ " && enable " $name "
}
2006-06-16 19:26:31 +00:00
require(){
name = " $1 "
header = " $2 "
func = " $3 "
shift 3
check_lib $header $func " $@ " || die "ERROR: $name not found"
2006-06-01 19:28:41 +00:00
}
2007-02-19 23:00:18 +00:00
require2(){
name = " $1 "
headers = " $2 "
func = " $3 "
shift 3
check_lib2 " $headers " $func " $@ " || die "ERROR: $name not found"
}
2011-08-31 04:11:25 +05:30
require_cpp(){
name = " $1 "
headers = " $2 "
classes = " $3 "
shift 3
check_lib_cpp " $headers " " $classes " " $@ " || die "ERROR: $name not found"
}
2011-03-06 13:48:30 +00:00
require_pkg_config(){
pkg = " $1 "
check_pkg_config " $@ " || die "ERROR: $pkg not found"
add_cflags $( get_safe ${ pkg } _cflags)
add_extralibs $( get_safe ${ pkg } _libs)
}
2013-12-06 17:20:26 +01:00
require_libfreetype(){
log require_libfreetype " $@ "
pkg = "freetype2"
check_cmd $pkg_config --exists --print-errors $pkg \
|| die "ERROR: $pkg not found"
pkg_cflags = $( $pkg_config --cflags $pkg )
pkg_libs = $( $pkg_config --libs $pkg )
{
echo "#include <ft2build.h>"
echo "#include FT_FREETYPE_H"
echo "long check_func(void) { return (long) FT_Init_FreeType; }"
echo "int main(void) { return 0; }"
} | check_ld "cc" $pkg_cflags $pkg_libs \
&& set_safe ${ pkg } _cflags $pkg_cflags \
&& set_safe ${ pkg } _libs $pkg_libs \
|| die "ERROR: $pkg not found"
add_cflags $( get_safe ${ pkg } _cflags)
add_extralibs $( get_safe ${ pkg } _libs)
}
2013-02-28 16:16:10 +01:00
hostcc_e(){
eval printf '%s\\n' $HOSTCC_E
}
2012-08-27 22:19:42 +01:00
hostcc_o(){
eval printf '%s\\n' $HOSTCC_O
}
2009-10-28 20:19:15 +00:00
check_host_cc(){
log check_host_cc " $@ "
cat > $TMPC
log_file $TMPC
2012-08-27 22:19:42 +01:00
check_cmd $host_cc $host_cflags " $@ " $HOSTCC_C $( hostcc_o $TMPO ) $TMPC
2009-10-28 20:19:15 +00:00
}
2013-02-28 16:16:10 +01:00
check_host_cpp(){
log check_host_cpp " $@ "
cat > $TMPC
log_file $TMPC
check_cmd $host_cc $HOSTCPPFLAGS $HOSTCFLAGS " $@ " $( hostcc_e $TMPO ) $TMPC
}
2013-02-03 15:13:17 +01:00
check_host_cppflags(){
log check_host_cppflags " $@ "
check_host_cc " $@ " <<EOF && append host_cppflags "$@"
int x;
EOF
}
2009-10-28 20:19:15 +00:00
check_host_cflags(){
log check_host_cflags " $@ "
2012-07-20 13:48:13 +01:00
set -- $( $host_cflags_filter " $@ " )
2009-10-28 20:19:15 +00:00
check_host_cc " $@ " <<EOF && append host_cflags "$@"
int x;
EOF
}
2013-02-28 16:16:10 +01:00
check_host_cpp_condition(){
log check_host_cpp_condition " $@ "
header = $1
condition = $2
shift 2
check_host_cpp " $@ " <<EOF
#include <$header>
#if !($condition)
#error "unsatisfied condition: $condition"
#endif
EOF
}
2006-12-15 22:36:19 +00:00
apply(){
file = $1
shift
" $@ " < " $file " > " $file .tmp" && mv " $file .tmp" " $file " || rm " $file .tmp"
}
2010-01-19 04:40:08 +00:00
cp_if_changed(){
2011-06-28 18:45:13 +01:00
cmp -s " $1 " " $2 " && echo " $2 is unchanged" && return
mkdir -p " $( dirname $2 ) "
2012-10-15 02:38:17 +01:00
$cp_f " $1 " " $2 "
2010-01-19 04:40:08 +00:00
}
2008-08-01 20:30:21 +00:00
# CONFIG_LIST contains configurable options, while HAVE_LIST is for
# system-dependent things.
2007-08-20 21:35:51 +00:00
COMPONENT_LIST = "
bsfs
decoders
demuxers
encoders
2008-02-26 21:34:13 +00:00
filters
2009-04-02 08:48:06 +00:00
hwaccels
2007-12-06 17:53:46 +00:00
indevs
2007-08-20 21:35:51 +00:00
muxers
2007-12-06 17:53:46 +00:00
outdevs
2007-08-20 21:35:51 +00:00
parsers
protocols
"
2013-11-02 17:05:28 +01:00
EXAMPLE_LIST = "
2014-01-26 18:30:06 +01:00
avio_reading_example
2014-02-15 15:50:29 +01:00
avcodec_example
2013-11-28 13:55:34 +01:00
demuxing_decoding_example
2014-02-13 08:50:16 +01:00
filter_audio_example
2013-11-28 13:55:34 +01:00
filtering_audio_example
filtering_video_example
metadata_example
2013-11-26 01:31:00 +01:00
muxing_example
2014-01-19 13:45:48 +01:00
remuxing_example
2013-11-28 13:55:34 +01:00
resampling_audio_example
scaling_video_example
2013-10-08 13:10:46 +02:00
transcode_aac_example
2014-03-09 02:20:41 +02:00
transcoding_example
2013-11-02 17:05:28 +01:00
"
2012-10-27 20:02:33 +01:00
EXTERNAL_LIBRARY_LIST = "
2006-11-14 00:47:27 +00:00
avisynth
2008-05-15 23:09:34 +00:00
bzlib
2011-03-09 22:09:00 -08:00
crystalhd
2014-02-08 18:01:26 -02:00
decklink
2010-09-24 00:32:22 +00:00
frei0r
2011-02-05 23:39:20 +01:00
gnutls
2013-02-28 00:45:51 +01:00
iconv
2013-09-20 14:01:00 +00:00
ladspa
2011-09-26 02:28:21 +02:00
libaacplus
2011-09-17 15:52:19 +02:00
libass
2012-03-03 04:25:48 +01:00
libbluray
2012-03-13 21:45:46 +00:00
libcaca
2011-09-13 17:23:06 +02:00
libcdio
2011-04-16 17:45:30 +02:00
libcelt
2007-09-04 22:03:32 +00:00
libdc1394
2007-01-06 23:54:01 +00:00
libfaac
2012-06-28 16:46:24 +03:00
libfdk_aac
2011-08-21 02:29:33 +02:00
libflite
2014-04-12 16:02:50 +02:00
libfontconfig
2011-02-21 01:02:29 +01:00
libfreetype
2013-06-28 10:36:00 +02:00
libgme
2006-11-14 00:47:27 +00:00
libgsm
2012-07-05 14:02:53 +02:00
libiec61883
2012-06-16 00:42:13 +03:00
libilbc
2011-10-04 20:47:16 +02:00
libmodplug
2007-01-07 00:02:15 +00:00
libmp3lame
2006-11-14 00:47:27 +00:00
libnut
2009-06-05 12:32:40 +00:00
libopencore_amrnb
libopencore_amrwb
2010-09-14 13:21:13 +00:00
libopencv
2009-02-06 11:49:31 +00:00
libopenjpeg
2012-06-24 11:39:05 +02:00
libopus
2011-10-19 11:23:20 -07:00
libpulse
2013-04-04 08:22:32 +02:00
libquvi
2010-03-28 13:39:36 +00:00
librtmp
2008-05-03 13:59:45 +00:00
libschroedinger
2012-07-29 18:20:00 +00:00
libshine
2012-12-11 21:43:42 +01:00
libsoxr
2008-10-24 06:29:05 +00:00
libspeex
2013-09-18 14:08:11 +02:00
libssh
2011-09-08 21:17:17 +05:30
libstagefright_h264
2007-01-25 00:16:28 +00:00
libtheora
2012-08-01 14:33:34 +00:00
libtwolame
2011-10-16 20:22:59 -04:00
libutvideo
2011-10-30 03:21:55 +01:00
libv4l2
2013-04-19 01:49:27 +02:00
libvidstab
2010-12-19 21:40:23 +02:00
libvo_aacenc
2009-12-29 16:48:09 +02:00
libvo_amrwbenc
2006-11-14 00:47:27 +00:00
libvorbis
2010-05-25 01:19:08 +00:00
libvpx
2013-05-25 19:22:59 +02:00
libwavpack
2013-11-22 11:05:13 -05:00
libwebp
2007-06-06 08:51:41 +00:00
libx264
2013-10-02 14:46:26 +00:00
libx265
2010-07-27 07:18:36 +00:00
libxavs
2007-06-06 08:51:41 +00:00
libxvid
2013-04-21 15:00:11 +02:00
libzmq
2013-09-01 23:05:50 +02:00
libzvbi
2013-02-24 17:55:31 +01:00
openal
2013-04-01 17:46:11 +08:00
opencl
2013-11-24 20:13:27 +01:00
opengl
2012-10-27 20:02:33 +01:00
openssl
x11grab
2014-02-19 03:59:32 +01:00
xlib
2012-10-27 20:02:33 +01:00
zlib
"
2013-02-24 17:55:31 +01:00
DOCUMENT_LIST = "
2013-11-24 18:40:16 -03:00
doc
2013-02-24 17:55:31 +01:00
htmlpages
manpages
podpages
txtpages
"
2013-11-02 17:21:51 +01:00
FEATURE_LIST = "
2014-03-14 18:39:10 +01:00
ftrapv
2013-11-02 17:21:51 +01:00
gray
hardcoded_tables
runtime_cpudetect
safe_bitstream_reader
shared
small
sram
static
swscale_alpha
"
2012-10-27 20:02:33 +01:00
HWACCEL_LIST = "
dxva2
vaapi
vda
vdpau
2013-12-14 21:29:15 +02:00
xvmc
2012-10-27 20:02:33 +01:00
"
2013-02-24 17:55:31 +01:00
2012-10-27 20:02:33 +01:00
LIBRARY_LIST = "
avcodec
avdevice
avfilter
avformat
avresample
avutil
2013-02-24 17:55:31 +01:00
postproc
swresample
2012-10-27 20:02:33 +01:00
swscale
"
2013-11-02 17:21:51 +01:00
LICENSE_LIST = "
gpl
nonfree
version3
"
2012-10-27 20:02:33 +01:00
PROGRAM_LIST = "
2013-02-24 17:55:31 +01:00
ffplay
ffprobe
ffserver
ffmpeg
2012-10-27 20:02:33 +01:00
"
2013-11-02 17:21:51 +01:00
SUBSYSTEM_LIST = "
2012-10-27 20:02:33 +01:00
dct
2013-02-24 17:55:31 +01:00
dwt
2013-03-02 16:57:26 -08:00
error_resilience
2013-02-24 17:55:31 +01:00
fast_unaligned
2012-10-27 20:02:33 +01:00
fft
2010-03-02 03:16:27 +00:00
lsp
2012-10-18 19:48:27 +02:00
lzo
2008-10-25 13:51:43 +00:00
mdct
2013-11-02 17:21:51 +01:00
network
rdft
"
CONFIG_LIST = "
$COMPONENT_LIST
2014-03-14 18:39:10 +01:00
$DOCUMENT_LIST
2013-11-02 17:21:51 +01:00
$EXAMPLE_LIST
$EXTERNAL_LIBRARY_LIST
$FEATURE_LIST
$HWACCEL_LIST
$LICENSE_LIST
$LIBRARY_LIST
$PROGRAM_LIST
$SUBSYSTEM_LIST
2014-04-17 03:42:17 +02:00
fontconfig
2014-03-14 18:39:10 +01:00
incompatible_libav_abi
2006-11-14 00:47:27 +00:00
memalign_hack
2012-07-02 19:31:35 +02:00
memory_poisoning
2013-12-20 13:51:50 +02:00
neon_clobber_test
2009-08-20 01:06:18 +00:00
pic
2013-11-02 17:21:49 +01:00
pod2man
2013-12-18 05:20:11 +01:00
raise_major
2011-06-14 11:29:48 +01:00
thumb
2012-02-02 11:48:13 -08:00
xmm_clobber_test
2007-08-20 21:35:51 +00:00
"
2006-11-14 00:16:43 +00:00
2013-11-02 17:21:49 +01:00
THREADS_LIST = "
2007-02-25 21:26:40 +00:00
pthreads
2011-11-02 00:00:21 +09:00
os2threads
2007-02-25 21:26:40 +00:00
w32threads
2013-11-02 17:21:49 +01:00
"
2007-02-25 21:26:40 +00:00
2013-11-02 17:21:49 +01:00
ATOMICS_LIST = "
2013-03-27 19:26:19 +01:00
atomics_gcc
atomics_suncc
2013-04-06 19:04:56 +02:00
atomics_win32
2013-11-02 17:21:49 +01:00
"
2013-03-27 19:26:19 +01:00
2013-11-02 17:21:49 +01:00
ARCH_LIST = "
2012-11-16 21:02:53 +00:00
aarch64
2007-06-15 20:35:44 +00:00
alpha
2008-12-17 00:54:54 +00:00
arm
2009-08-17 00:15:48 +00:00
avr32
avr32_ap
avr32_uc
2007-06-15 20:35:44 +00:00
bfin
ia64
m68k
mips
2009-05-19 19:40:24 +00:00
mips64
2007-06-15 20:35:44 +00:00
parisc
2008-12-27 11:33:26 +00:00
ppc
2009-05-26 05:00:51 +00:00
ppc64
2007-06-15 20:35:44 +00:00
s390
sh4
sparc
sparc64
2012-10-16 18:21:06 +00:00
tilegx
tilepro
2010-02-11 23:59:49 +00:00
tomi
2007-06-15 20:35:44 +00:00
x86
x86_32
x86_64
2013-11-02 17:21:49 +01:00
"
2007-06-15 20:35:44 +00:00
2013-11-02 17:21:49 +01:00
ARCH_EXT_LIST_ARM = "
2012-12-01 12:26:12 +00:00
armv5te
armv6
armv6t2
2014-04-05 13:46:51 +02:00
armv8
2012-12-01 12:26:12 +00:00
neon
2012-12-04 23:29:34 +00:00
vfp
2012-12-01 12:26:12 +00:00
vfpv3
2013-11-02 17:21:49 +01:00
"
2012-12-01 12:26:12 +00:00
2014-03-14 19:49:02 +01:00
ARCH_EXT_LIST_MIPS = "
mipsfpu
mips32r2
mipsdspr1
mipsdspr2
"
2013-11-02 17:21:49 +01:00
ARCH_EXT_LIST_X86_SIMD = "
2009-01-25 19:48:26 +00:00
amd3dnow
2009-02-18 00:03:09 +00:00
amd3dnowext
2012-08-28 13:56:46 +02:00
avx
2013-10-20 10:28:38 -05:00
avx2
2014-02-22 02:47:01 -03:00
fma3
2012-08-28 13:56:46 +02:00
fma4
mmx
mmxext
sse
sse2
sse3
sse4
sse42
ssse3
2014-02-20 23:27:13 +01:00
xop
2013-11-02 17:21:49 +01:00
"
2012-08-28 13:56:46 +02:00
2014-03-06 18:31:45 +01:00
ARCH_EXT_LIST_PPC = "
altivec
dcbzl
ldbrx
ppc4xx
"
2013-11-02 17:21:53 +01:00
ARCH_EXT_LIST_X86 = "
$ARCH_EXT_LIST_X86_SIMD
cpunop
i686
"
2012-08-28 13:56:46 +02:00
ARCH_EXT_LIST = "
2012-12-01 12:26:12 +00:00
$ARCH_EXT_LIST_ARM
2014-03-06 18:31:45 +01:00
$ARCH_EXT_LIST_PPC
2012-08-28 13:56:46 +02:00
$ARCH_EXT_LIST_X86
2014-03-14 19:49:02 +01:00
$ARCH_EXT_LIST_MIPS
2014-03-06 18:31:45 +01:00
loongson
2012-08-28 13:56:46 +02:00
"
2007-06-15 20:35:44 +00:00
2014-03-06 18:31:45 +01:00
ARCH_FEATURES = "
aligned_stack
fast_64bit
fast_clz
fast_cmov
local_aligned_8
local_aligned_16
"
BUILTIN_LIST = "
atomic_cas_ptr
machine_rw_barrier
MemoryBarrier
mm_empty
rdtsc
2014-03-14 19:08:14 +01:00
sarestart
2014-03-06 18:31:45 +01:00
sync_val_compare_and_swap
"
2013-11-02 17:21:49 +01:00
HAVE_LIST_CMDLINE = "
2012-09-05 11:35:13 +02:00
inline_asm
symver
yasm
2013-11-02 17:21:49 +01:00
"
2012-09-05 11:35:13 +02:00
2013-11-02 17:21:49 +01:00
HAVE_LIST_PUB = "
2010-01-19 04:40:16 +00:00
bigendian
2010-07-10 22:22:00 +00:00
fast_unaligned
2013-07-01 18:47:09 +02:00
incompatible_libav_abi
2013-11-02 17:21:49 +01:00
"
2010-01-19 04:40:16 +00:00
2014-03-06 18:31:45 +01:00
HEADERS_LIST = "
alsa_asoundlib_h
altivec_h
arpa_inet_h
2014-03-14 19:08:14 +01:00
asm_types_h
2014-03-06 18:31:45 +01:00
cdio_paranoia_h
cdio_paranoia_paranoia_h
2014-03-14 19:08:14 +01:00
CL_cl_h
2014-03-06 18:31:45 +01:00
dev_bktr_ioctl_bt848_h
dev_bktr_ioctl_meteor_h
dev_ic_bt8xx_h
dev_video_bktr_ioctl_bt848_h
dev_video_meteor_ioctl_meteor_h
direct_h
dlfcn_h
dxva_h
2014-03-14 19:08:14 +01:00
ES2_gl_h
2014-03-06 18:31:45 +01:00
gsm_h
io_h
mach_mach_time_h
machine_ioctl_bt848_h
machine_ioctl_meteor_h
malloc_h
2014-03-14 19:08:14 +01:00
openjpeg_1_5_openjpeg_h
OpenGL_gl3_h
2014-03-06 18:31:45 +01:00
poll_h
sndio_h
soundcard_h
sys_mman_h
sys_param_h
sys_resource_h
sys_select_h
sys_soundcard_h
sys_time_h
sys_un_h
sys_videoio_h
2014-03-14 19:08:14 +01:00
termios_h
2014-03-06 18:31:45 +01:00
unistd_h
windows_h
winsock2_h
"
2012-10-19 18:58:39 +02:00
MATH_FUNCS = "
2012-10-13 22:54:53 +01:00
atanf
atan2f
2013-01-22 04:10:21 -03:00
cbrt
2012-10-19 18:58:39 +02:00
cbrtf
2012-10-13 22:54:53 +01:00
cosf
2012-10-19 18:58:39 +02:00
exp2
exp2f
2012-10-13 22:54:53 +01:00
expf
2012-10-19 18:58:39 +02:00
isinf
isnan
2012-10-13 22:54:53 +01:00
ldexpf
2012-10-19 18:58:39 +02:00
llrint
llrintf
log2
log2f
2012-10-13 22:54:53 +01:00
log10f
2012-10-19 18:58:39 +02:00
lrint
lrintf
2012-10-13 22:54:53 +01:00
powf
2012-10-19 18:58:39 +02:00
rint
round
roundf
2012-10-13 22:54:53 +01:00
sinf
2012-10-19 18:58:39 +02:00
trunc
truncf
"
2014-03-06 18:31:45 +01:00
SYSTEM_FUNCS = "
2012-11-27 04:55:26 +01:00
access
2012-06-18 14:37:02 +01:00
aligned_malloc
2012-03-03 15:56:11 +01:00
clock_gettime
2007-08-08 20:18:41 +00:00
closesocket
2012-11-29 17:02:24 +02:00
CommandLineToArgvW
2012-10-11 14:30:23 +03:00
CryptGenRandom
2006-11-14 00:47:27 +00:00
dlopen
2010-06-30 10:38:01 +00:00
fcntl
2013-11-14 12:19:04 +01:00
flt_lim
2007-07-09 20:22:14 +00:00
fork
2010-01-11 17:01:56 +00:00
getaddrinfo
2007-08-10 01:13:15 +00:00
gethrtime
2012-07-03 20:14:09 -07:00
getopt
2012-01-01 23:54:40 +00:00
GetProcessAffinityMask
2010-02-22 22:21:58 +00:00
GetProcessMemoryInfo
2007-08-12 00:59:50 +00:00
GetProcessTimes
2007-07-13 16:04:00 +00:00
getrusage
2012-10-14 20:24:51 +01:00
getservbyport
2013-11-02 17:21:49 +01:00
GetSystemTimeAsFileTime
2012-06-20 13:46:52 +01:00
gettimeofday
2012-02-27 10:27:17 +01:00
glob
2013-11-24 20:13:27 +01:00
glXGetProcAddress
2006-11-14 03:55:26 +00:00
inet_aton
2009-07-24 00:12:55 +00:00
isatty
2012-06-11 18:22:31 -04:00
jack_port_get_latency_range
2011-03-22 03:47:48 +00:00
kbhit
2011-02-21 01:02:29 +01:00
localtime_r
2009-04-09 14:55:05 +00:00
lzo1x_999_compress
2014-01-24 01:15:31 +01:00
mach_absolute_time
2011-01-05 05:16:33 +00:00
MapViewOfFile
2006-11-14 00:47:27 +00:00
memalign
2007-07-11 13:57:22 +00:00
mkstemp
2010-12-22 14:13:04 +00:00
mmap
2012-10-13 02:40:48 +00:00
mprotect
2012-06-21 17:00:25 +01:00
nanosleep
2011-09-04 00:24:06 +02:00
PeekNamedPipe
2009-01-07 23:36:34 +00:00
posix_memalign
2012-05-08 19:02:33 +02:00
pthread_cancel
2011-12-21 01:18:01 +01:00
sched_getaffinity
2012-11-30 16:56:57 +02:00
SetConsoleTextAttribute
2009-01-11 22:05:43 +00:00
setmode
2011-09-12 17:40:29 +02:00
setrlimit
2012-06-21 17:00:25 +01:00
Sleep
2010-03-25 22:46:35 +00:00
strerror_r
2014-03-06 18:31:45 +01:00
sysconf
sysctl
usleep
VirtualAlloc
2014-03-14 19:08:14 +01:00
wglGetProcAddress
2014-03-06 18:31:45 +01:00
"
TOOLCHAIN_FEATURES = "
asm_mod_q
attribute_may_alias
attribute_packed
ebp_available
ebx_available
gnu_as
2014-03-14 19:08:14 +01:00
gnu_windres
2014-03-06 18:31:45 +01:00
ibm_asm
inline_asm_labels
2014-03-18 15:29:14 +11:00
inline_asm_nonlocal_labels
2014-03-18 15:53:26 +11:00
inline_asm_direct_symbol_refs
2014-03-06 18:31:45 +01:00
pragma_deprecated
2014-03-14 19:08:14 +01:00
rsync_contimeout
2014-03-06 18:31:45 +01:00
symver_asm_label
symver_gnu_asm
vfp_args
xform_asm
xmm_clobbers
"
TYPES_LIST = "
socklen_t
2010-01-11 17:17:01 +00:00
struct_addrinfo
2012-06-21 14:19:56 +03:00
struct_group_source_req
struct_ip_mreq_source
2010-01-21 15:42:05 +00:00
struct_ipv6_mreq
2012-06-25 12:08:44 +03:00
struct_pollfd
2011-09-12 17:40:29 +02:00
struct_rusage_ru_maxrss
2012-08-08 16:01:01 +02:00
struct_sctp_event_subscribe
2010-01-21 15:42:05 +00:00
struct_sockaddr_in6
2010-01-20 17:24:23 +00:00
struct_sockaddr_sa_len
2010-01-11 17:42:15 +00:00
struct_sockaddr_storage
2013-05-25 15:32:14 +02:00
struct_stat_st_mtim_tv_nsec
2011-12-27 06:31:41 +01:00
struct_v4l2_frmivalenum_discrete
2014-03-06 18:31:45 +01:00
"
HAVE_LIST = "
$ARCH_EXT_LIST
$( add_suffix _external $ARCH_EXT_LIST )
$( add_suffix _inline $ARCH_EXT_LIST )
$ARCH_FEATURES
$ATOMICS_LIST
$BUILTIN_LIST
$HAVE_LIST_CMDLINE
$HAVE_LIST_PUB
$HEADERS_LIST
$MATH_FUNCS
$SYSTEM_FUNCS
$THREADS_LIST
$TOOLCHAIN_FEATURES
$TYPES_LIST
atomics_native
dos_paths
libc_msvcrt
libdc1394_1
libdc1394_2
2014-03-14 19:08:14 +01:00
makeinfo
perl
pod2man
2014-03-06 18:31:45 +01:00
sdl
2012-07-11 22:41:25 -03:00
texi2html
2006-11-14 02:27:35 +00:00
threads
2013-11-03 19:21:00 +01:00
vdpau_x11
xlib
2007-02-25 21:38:11 +00:00
"
2006-11-14 00:16:43 +00:00
2012-12-19 18:48:21 +01:00
# options emitted with CONFIG_ prefix but not available on the command line
2008-10-24 23:18:21 +00:00
CONFIG_EXTRA = "
2012-07-24 19:16:29 +02:00
aandcttables
2012-07-27 02:06:29 +02:00
ac3dsp
2013-02-17 22:00:36 +01:00
audio_frame_queue
2014-03-22 18:41:43 +01:00
cabac
2013-03-12 07:28:11 -07:00
dsputil
2013-08-21 18:26:40 +02:00
exif
2013-03-13 21:59:33 -07:00
frame_thread_encoder
2012-07-27 02:06:29 +02:00
gcrypt
2012-03-08 23:53:57 +01:00
golomb
2009-06-05 11:04:03 +00:00
gplv3
2013-11-05 08:11:47 +01:00
h263dsp
2012-03-08 23:53:57 +01:00
h264chroma
h264dsp
h264pred
2011-12-18 14:10:33 +01:00
h264qpel
2013-03-09 15:14:35 -08:00
hpeldsp
2012-03-08 23:53:57 +01:00
huffman
2014-01-14 18:24:02 +01:00
intrax8
2009-06-05 11:04:03 +00:00
lgplv3
2014-01-20 20:32:51 +01:00
llviddsp
2012-03-08 23:53:57 +01:00
lpc
2012-08-14 02:09:15 +02:00
mpegaudio
2012-07-27 02:06:29 +02:00
mpegaudiodsp
2012-08-04 00:05:46 +01:00
mpegvideo
2012-08-13 13:00:24 +02:00
mpegvideoenc
2012-07-27 02:06:29 +02:00
nettle
2012-08-13 19:16:06 +02:00
rangecoder
2013-08-04 14:33:36 +02:00
riffdec
2013-08-04 14:10:54 +02:00
riffenc
2012-07-27 02:06:29 +02:00
rtpdec
2012-11-29 10:34:54 +01:00
rtpenc_chain
2012-07-27 02:06:29 +02:00
sinewin
2013-12-21 16:03:59 +01:00
tpeldsp
2012-12-15 09:46:02 -08:00
videodsp
2012-07-16 12:50:14 +01:00
vp3dsp
2008-10-24 23:18:21 +00:00
"
2007-02-11 19:50:19 +00:00
CMDLINE_SELECT = "
2007-06-15 20:35:44 +00:00
$ARCH_EXT_LIST
2007-02-11 19:50:19 +00:00
$CONFIG_LIST
2012-09-05 11:35:13 +02:00
$HAVE_LIST_CMDLINE
2007-02-25 21:26:40 +00:00
$THREADS_LIST
2010-01-18 23:12:55 +00:00
asm
2008-03-25 15:16:02 +00:00
cross_compile
2007-02-11 19:50:19 +00:00
debug
extra_warnings
2008-03-25 09:53:49 +00:00
logging
2012-09-20 15:50:14 +01:00
lto
2007-10-24 19:19:02 +00:00
optimizations
2013-11-10 09:02:51 +01:00
rpath
2011-04-01 00:24:12 +02:00
stripping
2007-02-11 19:50:19 +00:00
"
2008-06-02 23:47:33 +00:00
2013-11-02 17:21:49 +01:00
PATHS_LIST = "
2008-05-28 09:37:01 +00:00
bindir
2009-01-25 22:23:03 +00:00
datadir
2013-08-28 10:30:14 +02:00
docdir
2008-06-02 23:47:33 +00:00
incdir
libdir
mandir
prefix
shlibdir
2013-11-02 17:21:49 +01:00
"
2008-06-02 23:47:33 +00:00
CMDLINE_SET = "
$PATHS_LIST
2010-05-02 18:59:15 +00:00
ar
2008-06-02 23:47:33 +00:00
arch
2009-03-05 21:20:01 +00:00
as
2012-04-07 09:20:54 +02:00
assert_level
2008-03-25 22:51:43 +00:00
build_suffix
cc
cpu
cross_prefix
2011-08-31 04:11:25 +05:30
cxx
2009-07-12 13:29:43 +00:00
dep_cc
2008-09-26 21:37:50 +00:00
extra_version
2013-04-16 13:40:45 +02:00
gas
2008-11-23 12:36:34 +00:00
host_cc
host_cflags
2012-08-28 13:02:35 +01:00
host_ld
2008-11-23 12:36:34 +00:00
host_ldflags
host_libs
2009-03-08 22:11:24 +00:00
host_os
2011-05-18 00:03:19 +02:00
install
2009-07-12 13:29:40 +00:00
ld
2008-03-25 22:51:43 +00:00
logfile
2010-01-28 13:06:31 +00:00
malloc_prefix
2008-12-13 15:13:24 +00:00
nm
2011-06-19 18:47:06 +01:00
optflags
2011-03-06 13:48:30 +00:00
pkg_config
2014-01-20 11:17:45 +01:00
pkg_config_flags
2012-01-29 22:56:12 +01:00
progs_suffix
2012-05-09 04:29:53 +01:00
random_seed
2010-03-15 19:23:24 +00:00
samples
2011-04-01 00:24:12 +02:00
strip
2009-02-21 21:07:34 +00:00
sysinclude
sysroot
2008-11-23 12:36:38 +00:00
target_exec
2008-03-25 22:51:43 +00:00
target_os
2008-11-23 12:36:38 +00:00
target_path
2013-05-20 01:55:32 +03:00
target_samples
2013-10-05 13:48:22 +02:00
tempprefix
2012-09-16 22:06:53 +01:00
toolchain
2012-01-20 20:42:31 +01:00
valgrind
2012-01-16 00:48:16 +01:00
yasmexe
2008-06-02 23:47:33 +00:00
"
2007-02-11 19:50:19 +00:00
2009-07-20 19:00:59 +00:00
CMDLINE_APPEND = "
extra_cflags
2011-08-31 04:11:25 +05:30
extra_cxxflags
2013-02-03 15:13:17 +01:00
host_cppflags
2009-07-20 19:00:59 +00:00
"
2007-05-08 08:27:00 +00:00
# code dependency declarations
2007-06-17 11:57:50 +00:00
# architecture extensions
2010-01-18 21:04:57 +00:00
2008-12-17 00:54:54 +00:00
armv5te_deps = "arm"
armv6_deps = "arm"
2008-12-30 03:13:44 +00:00
armv6t2_deps = "arm"
2014-04-05 13:46:51 +02:00
armv8_deps = "aarch64"
2013-12-10 20:13:32 +01:00
neon_deps_any = "aarch64 arm"
vfp_deps_any = "aarch64 arm"
2012-12-04 23:29:34 +00:00
vfpv3_deps = "vfp"
2010-01-18 21:04:57 +00:00
2012-12-03 01:36:49 +00:00
map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
2012-06-04 18:02:56 +02:00
mipsfpu_deps = "mips"
mips32r2_deps = "mips"
mipsdspr1_deps = "mips"
mipsdspr2_deps = "mips"
2010-01-18 21:04:57 +00:00
altivec_deps = "ppc"
ppc4xx_deps = "ppc"
2013-08-27 23:33:57 +02:00
cpunop_deps = "i686"
x86_64_select = "i686"
x86_64_suggest = "fast_cmov"
2012-08-28 13:56:46 +02:00
2010-01-18 21:04:57 +00:00
amd3dnow_deps = "mmx"
amd3dnowext_deps = "amd3dnow"
2014-01-25 16:55:58 +01:00
i686_deps = "x86"
2007-06-17 11:57:50 +00:00
mmx_deps = "x86"
2012-07-08 18:42:12 +02:00
mmxext_deps = "mmx"
2012-08-28 13:56:46 +02:00
sse_deps = "mmxext"
sse2_deps = "sse"
sse3_deps = "sse2"
ssse3_deps = "sse3"
sse4_deps = "ssse3"
sse42_deps = "sse4"
avx_deps = "sse42"
2014-02-06 01:33:59 -03:00
xop_deps = "avx"
2014-02-22 02:47:01 -03:00
fma3_deps = "avx"
2012-06-18 23:39:14 -04:00
fma4_deps = "avx"
2013-10-20 10:28:38 -05:00
avx2_deps = "avx"
2007-06-17 11:57:50 +00:00
2012-08-27 03:07:11 +02:00
mmx_external_deps = "yasm"
mmx_inline_deps = "inline_asm"
mmx_suggest = "mmx_external mmx_inline"
2013-11-02 17:21:53 +01:00
for ext in $( filter_out mmx $ARCH_EXT_LIST_X86_SIMD ) ; do
2012-08-27 03:07:11 +02:00
eval dep = \$ ${ ext } _deps
eval ${ ext } _external_deps = '"${dep}_external"'
eval ${ ext } _inline_deps = '"${dep}_inline"'
eval ${ ext } _suggest = '"${ext}_external ${ext}_inline"'
done
2013-12-12 17:45:32 +01:00
aligned_stack_if_any = "aarch64 ppc x86"
fast_64bit_if_any = "aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
fast_clz_if_any = "aarch64 alpha avr32 mips ppc x86"
fast_unaligned_if_any = "aarch64 ppc x86"
2010-01-14 19:58:09 +00:00
2011-09-12 17:40:29 +02:00
need_memalign = "altivec neon sse"
2009-07-15 18:33:12 +00:00
2013-12-10 09:25:18 +01:00
# system capabilities
log2_deps = "!libc_msvcrt"
2010-06-15 13:26:52 +00:00
symver_if_any = "symver_asm_label symver_gnu_asm"
2013-12-18 21:52:28 +01:00
# threading support
atomics_gcc_if = "sync_val_compare_and_swap"
atomics_suncc_if = "atomic_cas_ptr machine_rw_barrier"
atomics_win32_if = "MemoryBarrier"
atomics_native_if_any = " $ATOMICS_LIST "
2013-12-18 22:29:25 +01:00
w32threads_deps = "atomics_native"
2013-12-18 21:52:28 +01:00
threads_if_any = " $THREADS_LIST "
2010-02-11 23:40:37 +00:00
# subsystems
2010-07-16 10:08:26 +00:00
dct_select = "rdft"
2013-03-12 07:28:11 -07:00
error_resilience_select = "dsputil"
2013-03-13 21:59:33 -07:00
frame_thread_encoder_deps = "encoders threads"
2010-02-11 23:40:37 +00:00
mdct_select = "fft"
rdft_select = "fft"
2012-08-14 02:09:15 +02:00
mpegaudio_select = "mpegaudiodsp"
2011-05-16 16:52:01 +01:00
mpegaudiodsp_select = "dct"
2013-03-26 14:43:12 +01:00
mpegvideo_select = "dsputil h264chroma hpeldsp videodsp"
2014-02-07 13:15:47 +01:00
mpegvideoenc_select = "dsputil mpegvideo"
2010-02-11 23:40:37 +00:00
2012-12-20 22:40:39 +01:00
# decoders / encoders
2011-04-21 18:39:04 +00:00
aac_decoder_select = "mdct sinewin"
2013-02-17 22:00:36 +01:00
aac_encoder_select = "audio_frame_queue mdct sinewin"
2010-11-02 08:32:04 +00:00
aac_latm_decoder_select = "aac_decoder aac_latm_parser"
2013-03-12 07:28:11 -07:00
ac3_decoder_select = "mdct ac3dsp ac3_parser dsputil"
2014-04-01 16:31:08 +02:00
ac3_fixed_decoder_select = "mdct ac3dsp ac3_parser dsputil"
2013-03-12 07:28:11 -07:00
ac3_encoder_select = "mdct ac3dsp dsputil"
ac3_fixed_encoder_select = "mdct ac3dsp dsputil"
2013-05-16 07:21:08 +02:00
aic_decoder_select = "dsputil golomb"
2009-10-18 19:51:18 +00:00
alac_encoder_select = "lpc"
2013-03-12 07:28:11 -07:00
als_decoder_select = "dsputil"
2010-03-02 03:16:27 +00:00
amrnb_decoder_select = "lsp"
2010-12-18 03:03:18 +00:00
amrwb_decoder_select = "lsp"
2014-03-01 05:11:37 +01:00
amv_decoder_select = "sp5x_decoder exif"
2012-07-27 23:42:19 +02:00
amv_encoder_select = "aandcttables"
2013-03-12 07:28:11 -07:00
ape_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
asv1_decoder_select = "dsputil"
asv1_encoder_select = "dsputil"
asv2_decoder_select = "dsputil"
asv2_encoder_select = "dsputil"
2011-03-19 23:44:00 +00:00
atrac1_decoder_select = "mdct sinewin"
2010-02-11 23:40:37 +00:00
atrac3_decoder_select = "mdct"
2013-10-10 20:32:14 +02:00
atrac3p_decoder_select = "mdct sinewin"
2013-08-21 18:26:40 +02:00
avrn_decoder_select = "exif"
2013-03-10 09:12:01 -07:00
bink_decoder_select = "dsputil hpeldsp"
2011-05-04 18:48:51 +02:00
binkaudio_dct_decoder_select = "mdct rdft dct sinewin"
binkaudio_rdft_decoder_select = "mdct rdft sinewin"
2013-03-26 13:22:48 +01:00
cavs_decoder_select = "dsputil golomb h264chroma videodsp"
2013-03-12 07:28:11 -07:00
cllc_decoder_select = "dsputil"
2012-10-23 00:02:41 +03:00
comfortnoise_encoder_select = "lpc"
2013-03-12 07:28:11 -07:00
cook_decoder_select = "dsputil mdct sinewin"
2012-10-18 19:48:27 +02:00
cscd_decoder_select = "lzo"
2008-10-25 18:36:36 +00:00
cscd_decoder_suggest = "zlib"
2010-02-11 23:40:37 +00:00
dca_decoder_select = "mdct"
2013-03-12 07:28:11 -07:00
dirac_decoder_select = "dsputil dwt golomb videodsp"
dnxhd_decoder_select = "dsputil"
dnxhd_encoder_select = "aandcttables dsputil mpegvideoenc"
2013-03-22 21:37:17 +01:00
dvvideo_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
dvvideo_encoder_select = "dsputil"
2013-10-01 23:40:19 +02:00
dxa_decoder_select = "zlib"
2009-07-21 09:03:45 +00:00
eac3_decoder_select = "ac3_decoder"
2012-08-19 23:19:38 +02:00
eac3_encoder_select = "ac3_encoder"
2013-03-12 07:28:11 -07:00
eamad_decoder_select = "aandcttables dsputil mpegvideo"
2012-07-24 19:16:29 +02:00
eatgq_decoder_select = "aandcttables"
2014-01-29 17:25:38 +01:00
eatqi_decoder_select = "aandcttables dsputil error_resilience mpegvideo"
2013-10-01 23:40:19 +02:00
exr_decoder_select = "zlib"
2014-02-24 06:01:16 -08:00
ffv1_decoder_select = "golomb rangecoder"
ffv1_encoder_select = "rangecoder"
2014-02-27 15:02:25 -08:00
ffvhuff_decoder_select = "huffyuv_decoder"
ffvhuff_encoder_select = "huffyuv_encoder"
2014-02-07 09:35:07 +01:00
fic_decoder_select = "dsputil golomb"
2008-10-25 13:51:47 +00:00
flac_decoder_select = "golomb"
2013-03-12 07:28:11 -07:00
flac_encoder_select = "dsputil golomb lpc"
2013-10-01 23:40:19 +02:00
flashsv_decoder_select = "zlib"
flashsv_encoder_select = "zlib"
flashsv2_encoder_select = "zlib"
flashsv2_decoder_select = "zlib"
2009-12-28 18:00:07 +00:00
flv_decoder_select = "h263_decoder"
2009-08-05 15:26:54 +00:00
flv_encoder_select = "h263_encoder"
2013-03-12 07:28:11 -07:00
fourxm_decoder_select = "dsputil"
fraps_decoder_select = "dsputil huffman"
2013-10-01 23:40:19 +02:00
g2m_decoder_select = "dsputil zlib"
2013-03-12 07:28:11 -07:00
g729_decoder_select = "dsputil"
2012-08-13 19:13:32 +02:00
h261_decoder_select = "error_resilience mpegvideo"
2012-08-13 13:00:24 +02:00
h261_encoder_select = "aandcttables mpegvideoenc"
2013-11-05 08:11:47 +01:00
h263_decoder_select = "error_resilience h263_parser h263dsp mpegvideo"
h263_encoder_select = "aandcttables h263dsp mpegvideoenc"
2009-12-28 18:00:07 +00:00
h263i_decoder_select = "h263_decoder"
2009-08-05 15:21:36 +00:00
h263p_encoder_select = "h263_encoder"
2014-03-22 18:41:43 +01:00
h264_decoder_select = "cabac golomb h264chroma h264dsp h264pred h264qpel videodsp"
2013-03-02 16:57:26 -08:00
h264_decoder_suggest = "error_resilience"
2014-03-22 18:41:43 +01:00
hevc_decoder_select = "cabac dsputil golomb videodsp"
2014-01-20 20:32:51 +01:00
huffyuv_decoder_select = "dsputil llviddsp"
huffyuv_encoder_select = "dsputil huffman llviddsp"
2014-02-27 15:02:24 -08:00
iac_decoder_select = "imc_decoder"
2013-03-12 07:28:11 -07:00
imc_decoder_select = "dsputil fft mdct sinewin"
2013-03-10 08:19:27 -07:00
indeo3_decoder_select = "hpeldsp"
2013-03-10 12:58:02 -07:00
interplay_video_decoder_select = "hpeldsp"
2014-02-27 15:02:23 -08:00
jpegls_decoder_select = "golomb mjpeg_decoder"
2008-10-25 13:51:47 +00:00
jpegls_encoder_select = "golomb"
2013-03-12 07:28:11 -07:00
jv_decoder_select = "dsputil"
lagarith_decoder_select = "dsputil"
2012-08-13 13:00:24 +02:00
ljpeg_encoder_select = "aandcttables mpegvideoenc"
2008-10-25 13:51:47 +00:00
loco_decoder_select = "golomb"
2013-03-12 07:28:11 -07:00
mdec_decoder_select = "dsputil error_resilience mpegvideo"
2013-08-05 12:55:30 +02:00
metasound_decoder_select = "lsp mdct sinewin"
2013-03-10 13:32:10 -07:00
mimic_decoder_select = "dsputil hpeldsp"
2013-08-21 18:26:40 +02:00
mjpeg_decoder_select = "dsputil hpeldsp exif"
2014-01-29 15:19:20 +01:00
mjpeg_encoder_select = "aandcttables mpegvideoenc"
2013-11-02 17:21:49 +01:00
mjpegb_decoder_select = "mjpeg_decoder"
2014-01-29 15:17:05 +01:00
mlp_decoder_select = "mlp_parser"
2013-03-12 07:28:11 -07:00
motionpixels_decoder_select = "dsputil"
2012-08-14 02:09:15 +02:00
mp1_decoder_select = "mpegaudio"
mp1float_decoder_select = "mpegaudio"
mp2_decoder_select = "mpegaudio"
mp2float_decoder_select = "mpegaudio"
mp3_decoder_select = "mpegaudio"
mp3adu_decoder_select = "mpegaudio"
mp3adufloat_decoder_select = "mpegaudio"
mp3float_decoder_select = "mpegaudio"
mp3on4_decoder_select = "mpegaudio"
mp3on4float_decoder_select = "mpegaudio"
2013-03-12 07:28:11 -07:00
mpc7_decoder_select = "dsputil mpegaudiodsp"
2014-01-17 00:53:40 +01:00
mpc8_decoder_select = "mpegaudiodsp"
2011-09-12 17:40:29 +02:00
mpeg_xvmc_decoder_deps = "X11_extensions_XvMClib_h"
2013-03-26 19:59:36 +01:00
mpeg_xvmc_decoder_select = "mpeg2video_decoder"
2012-08-13 19:13:32 +02:00
mpeg1video_decoder_select = "error_resilience mpegvideo"
2014-01-20 11:25:55 +01:00
mpeg1video_encoder_select = "aandcttables mpegvideoenc h263dsp"
2012-08-13 19:13:32 +02:00
mpeg2video_decoder_select = "error_resilience mpegvideo"
2014-01-20 11:25:55 +01:00
mpeg2video_encoder_select = "aandcttables mpegvideoenc h263dsp"
2011-09-12 17:40:29 +02:00
mpeg4_decoder_select = "h263_decoder mpeg4video_parser"
mpeg4_encoder_select = "h263_encoder"
2009-12-28 18:00:07 +00:00
msmpeg4v1_decoder_select = "h263_decoder"
msmpeg4v2_decoder_select = "h263_decoder"
2009-08-05 13:02:04 +00:00
msmpeg4v2_encoder_select = "h263_encoder"
2009-12-28 18:00:07 +00:00
msmpeg4v3_decoder_select = "h263_decoder"
2009-08-05 13:02:04 +00:00
msmpeg4v3_encoder_select = "h263_encoder"
2013-03-06 17:32:31 +01:00
mss2_decoder_select = "error_resilience vc1_decoder"
2014-02-27 15:02:23 -08:00
mxpeg_decoder_select = "mjpeg_decoder"
2011-03-19 23:44:00 +00:00
nellymoser_decoder_select = "mdct sinewin"
2013-02-17 22:00:36 +01:00
nellymoser_encoder_select = "audio_frame_queue mdct sinewin"
2013-03-12 07:28:11 -07:00
nuv_decoder_select = "dsputil lzo"
2013-10-01 23:40:19 +02:00
png_decoder_select = "zlib"
png_encoder_select = "dsputil zlib"
2013-03-12 07:28:11 -07:00
prores_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
prores_encoder_select = "dsputil"
2010-03-02 03:16:27 +00:00
qcelp_decoder_select = "lsp"
2011-05-16 16:52:01 +01:00
qdm2_decoder_select = "mdct rdft mpegaudiodsp"
2013-02-17 22:00:36 +01:00
ra_144_encoder_select = "audio_frame_queue lpc"
2012-03-27 01:04:45 +02:00
ralf_decoder_select = "golomb"
2014-04-08 00:04:25 +02:00
rawvideo_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
rtjpeg_decoder_select = "dsputil"
2013-11-05 08:11:47 +01:00
rv10_decoder_select = "error_resilience h263_decoder h263dsp"
2009-08-05 10:44:12 +00:00
rv10_encoder_select = "h263_encoder"
2013-11-05 08:11:47 +01:00
rv20_decoder_select = "error_resilience h263_decoder h263dsp"
2009-08-05 10:44:12 +00:00
rv20_encoder_select = "h263_encoder"
2013-03-07 15:20:54 +01:00
rv30_decoder_select = "error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
rv40_decoder_select = "error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
2008-10-25 13:51:47 +00:00
shorten_decoder_select = "golomb"
2010-03-02 03:16:27 +00:00
sipr_decoder_select = "lsp"
2013-03-10 14:14:35 -07:00
snow_decoder_select = "dsputil dwt h264qpel hpeldsp rangecoder"
2013-03-26 14:41:55 +01:00
snow_encoder_select = "aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder"
2014-01-30 12:15:28 +01:00
sonic_decoder_select = "golomb rangecoder"
sonic_encoder_select = "golomb rangecoder"
2008-10-25 13:51:47 +00:00
sonic_ls_encoder_select = "golomb"
2014-02-27 15:02:23 -08:00
sp5x_decoder_select = "mjpeg_decoder"
2013-03-10 13:38:45 -07:00
svq1_decoder_select = "hpeldsp"
2013-03-10 14:16:00 -07:00
svq1_encoder_select = "aandcttables dsputil hpeldsp mpegvideoenc"
2013-12-21 16:03:59 +01:00
svq3_decoder_select = "h264_decoder hpeldsp tpeldsp"
2014-03-06 13:04:03 +01:00
svq3_decoder_suggest = "zlib"
2013-03-12 07:28:11 -07:00
tak_decoder_select = "dsputil"
2009-07-22 21:36:50 +00:00
theora_decoder_select = "vp3_decoder"
2013-11-02 17:21:49 +01:00
thp_decoder_select = "mjpeg_decoder"
2008-10-25 18:36:36 +00:00
tiff_decoder_suggest = "zlib"
tiff_encoder_suggest = "zlib"
2012-09-11 12:19:09 +02:00
truehd_decoder_select = "mlp_parser"
2013-03-12 07:28:11 -07:00
truemotion2_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
truespeech_decoder_select = "dsputil"
2013-10-01 23:40:19 +02:00
tscc_decoder_select = "zlib"
2011-03-19 23:44:00 +00:00
twinvq_decoder_select = "mdct lsp sinewin"
2013-03-12 07:28:11 -07:00
utvideo_decoder_select = "dsputil"
2013-03-12 07:28:11 -07:00
utvideo_encoder_select = "dsputil huffman"
2013-03-12 07:28:11 -07:00
vble_decoder_select = "dsputil"
2014-01-14 18:24:02 +01:00
vc1_decoder_select = "error_resilience h263_decoder h264chroma h264qpel intrax8"
2011-08-17 14:24:42 +02:00
vc1image_decoder_select = "vc1_decoder"
2010-02-11 23:40:37 +00:00
vorbis_decoder_select = "mdct"
vorbis_encoder_select = "mdct"
2013-03-09 21:26:09 -08:00
vp3_decoder_select = "hpeldsp vp3dsp videodsp"
2013-03-10 06:55:58 -07:00
vp5_decoder_select = "h264chroma hpeldsp videodsp vp3dsp"
vp6_decoder_select = "h264chroma hpeldsp huffman videodsp vp3dsp"
2009-07-20 09:24:59 +00:00
vp6a_decoder_select = "vp6_decoder"
vp6f_decoder_select = "vp6_decoder"
2014-03-27 04:23:15 +01:00
vp7_decoder_select = "h264pred videodsp"
2012-12-15 09:46:02 -08:00
vp8_decoder_select = "h264pred videodsp"
2013-09-30 23:03:30 -04:00
vp9_decoder_select = "videodsp"
2013-07-04 20:40:27 +00:00
webp_decoder_select = "vp8_decoder"
2011-03-19 23:44:00 +00:00
wmapro_decoder_select = "mdct sinewin"
wmav1_decoder_select = "mdct sinewin"
wmav1_encoder_select = "mdct sinewin"
wmav2_decoder_select = "mdct sinewin"
wmav2_encoder_select = "mdct sinewin"
wmavoice_decoder_select = "lsp rdft dct mdct sinewin"
2009-12-29 11:11:07 +00:00
wmv1_decoder_select = "h263_decoder"
2009-08-06 12:56:25 +00:00
wmv1_encoder_select = "h263_encoder"
2014-01-14 18:24:02 +01:00
wmv2_decoder_select = "h263_decoder intrax8 videodsp"
2009-08-06 15:04:59 +00:00
wmv2_encoder_select = "h263_encoder"
2009-07-19 11:07:10 +00:00
wmv3_decoder_select = "vc1_decoder"
2011-08-17 14:24:42 +02:00
wmv3image_decoder_select = "wmv3_decoder"
2013-10-01 23:40:19 +02:00
zerocodec_decoder_select = "zlib"
zlib_decoder_select = "zlib"
zlib_encoder_select = "zlib"
zmbv_decoder_select = "zlib"
zmbv_encoder_select = "zlib"
2007-01-21 21:01:34 +00:00
2012-12-20 22:40:39 +01:00
# hardware accelerators
2011-03-09 22:09:00 -08:00
crystalhd_deps = "libcrystalhd_libcrystalhd_if_h"
2013-02-21 12:39:20 +01:00
dxva2_deps = "dxva2api_h"
2010-04-19 12:49:53 +00:00
vaapi_deps = "va_va_h"
2011-11-11 15:48:21 +01:00
vda_deps = "VideoDecodeAcceleration_VDADecoder_h pthreads"
2013-02-21 12:31:15 +01:00
vda_extralibs = "-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
2010-04-19 12:49:51 +00:00
vdpau_deps = "vdpau_vdpau_h vdpau_vdpau_x11_h"
2013-12-14 21:29:15 +02:00
xvmc_deps = "X11_extensions_XvMClib_h"
2010-04-19 12:49:51 +00:00
2013-02-21 12:35:40 +01:00
h263_vaapi_hwaccel_deps = "vaapi"
h263_vaapi_hwaccel_select = "h263_decoder"
h263_vdpau_hwaccel_deps = "vdpau"
h263_vdpau_hwaccel_select = "h263_decoder"
2012-12-24 15:09:58 +01:00
h264_crystalhd_decoder_select = "crystalhd h264_mp4toannexb_bsf h264_parser"
2013-02-21 12:39:20 +01:00
h264_dxva2_hwaccel_deps = "dxva2"
h264_dxva2_hwaccel_select = "h264_decoder"
2013-02-21 12:35:40 +01:00
h264_vaapi_hwaccel_deps = "vaapi"
h264_vaapi_hwaccel_select = "h264_decoder"
2013-02-24 15:45:45 +01:00
h264_vda_decoder_deps = "vda"
h264_vda_decoder_select = "h264_decoder"
2013-02-21 12:35:40 +01:00
h264_vda_hwaccel_deps = "vda"
h264_vda_hwaccel_select = "h264_decoder"
2013-08-17 15:31:14 +02:00
h264_vdpau_decoder_deps = "vdpau"
h264_vdpau_decoder_select = "h264_decoder"
2013-02-21 12:35:40 +01:00
h264_vdpau_hwaccel_deps = "vdpau"
h264_vdpau_hwaccel_select = "h264_decoder"
2013-08-17 15:31:14 +02:00
mpeg_vdpau_decoder_deps = "vdpau"
mpeg_vdpau_decoder_select = "mpeg2video_decoder"
2013-12-14 21:29:15 +02:00
mpeg_xvmc_hwaccel_deps = "xvmc"
mpeg_xvmc_hwaccel_select = "mpeg2video_decoder"
2013-08-17 15:31:14 +02:00
mpeg1_vdpau_decoder_deps = "vdpau"
mpeg1_vdpau_decoder_select = "mpeg1video_decoder"
2013-02-21 12:35:40 +01:00
mpeg1_vdpau_hwaccel_deps = "vdpau"
mpeg1_vdpau_hwaccel_select = "mpeg1video_decoder"
2013-12-14 21:29:15 +02:00
mpeg1_xvmc_hwaccel_deps = "xvmc"
mpeg1_xvmc_hwaccel_select = "mpeg1video_decoder"
2012-12-24 15:09:58 +01:00
mpeg2_crystalhd_decoder_select = "crystalhd"
2013-02-21 12:39:20 +01:00
mpeg2_dxva2_hwaccel_deps = "dxva2"
mpeg2_dxva2_hwaccel_select = "mpeg2video_decoder"
2013-02-21 12:35:40 +01:00
mpeg2_vaapi_hwaccel_deps = "vaapi"
mpeg2_vaapi_hwaccel_select = "mpeg2video_decoder"
mpeg2_vdpau_hwaccel_deps = "vdpau"
mpeg2_vdpau_hwaccel_select = "mpeg2video_decoder"
2013-12-14 21:29:15 +02:00
mpeg2_xvmc_hwaccel_deps = "xvmc"
mpeg2_xvmc_hwaccel_select = "mpeg2video_decoder"
2012-12-24 15:09:58 +01:00
mpeg4_crystalhd_decoder_select = "crystalhd"
2013-02-21 12:35:40 +01:00
mpeg4_vaapi_hwaccel_deps = "vaapi"
mpeg4_vaapi_hwaccel_select = "mpeg4_decoder"
2013-08-17 15:31:14 +02:00
mpeg4_vdpau_decoder_deps = "vdpau"
mpeg4_vdpau_decoder_select = "mpeg4_decoder"
2013-02-21 12:35:40 +01:00
mpeg4_vdpau_hwaccel_deps = "vdpau"
mpeg4_vdpau_hwaccel_select = "mpeg4_decoder"
2012-12-24 15:09:58 +01:00
msmpeg4_crystalhd_decoder_select = "crystalhd"
vc1_crystalhd_decoder_select = "crystalhd"
2013-02-21 12:39:20 +01:00
vc1_dxva2_hwaccel_deps = "dxva2"
vc1_dxva2_hwaccel_select = "vc1_decoder"
2013-02-21 12:35:40 +01:00
vc1_vaapi_hwaccel_deps = "vaapi"
vc1_vaapi_hwaccel_select = "vc1_decoder"
2013-08-17 15:31:14 +02:00
vc1_vdpau_decoder_deps = "vdpau"
vc1_vdpau_decoder_select = "vc1_decoder"
2013-02-21 12:35:40 +01:00
vc1_vdpau_hwaccel_deps = "vdpau"
vc1_vdpau_hwaccel_select = "vc1_decoder"
2012-12-24 15:09:58 +01:00
wmv3_crystalhd_decoder_select = "crystalhd"
2012-12-20 22:40:39 +01:00
wmv3_dxva2_hwaccel_select = "vc1_dxva2_hwaccel"
wmv3_vaapi_hwaccel_select = "vc1_vaapi_hwaccel"
2013-08-17 15:31:14 +02:00
wmv3_vdpau_decoder_select = "vc1_vdpau_decoder"
2013-01-12 17:53:47 +02:00
wmv3_vdpau_hwaccel_select = "vc1_vdpau_hwaccel"
2012-12-20 22:40:39 +01:00
2009-06-09 20:29:52 +00:00
# parsers
2014-03-19 16:41:08 +01:00
h264_parser_select = "h264_decoder"
2013-11-18 17:48:17 +01:00
hevc_parser_select = "hevc_decoder"
2014-02-19 20:33:28 +01:00
mpeg4video_parser_select = "error_resilience h263dsp mpegvideo"
2012-08-13 19:13:32 +02:00
mpegvideo_parser_select = "error_resilience mpegvideo"
2013-03-06 17:32:31 +01:00
vc1_parser_select = "mpegvideo"
2009-06-09 20:29:52 +00:00
2007-05-08 08:27:00 +00:00
# external libraries
2011-09-26 02:28:21 +02:00
libaacplus_encoder_deps = "libaacplus"
2011-04-16 17:45:30 +02:00
libcelt_decoder_deps = "libcelt"
2007-06-02 11:20:24 +00:00
libfaac_encoder_deps = "libfaac"
2013-02-17 22:00:36 +01:00
libfaac_encoder_select = "audio_frame_queue"
2013-08-15 15:40:32 -04:00
libfdk_aac_decoder_deps = "libfdk_aac"
2012-06-28 16:46:24 +03:00
libfdk_aac_encoder_deps = "libfdk_aac"
2013-02-17 22:00:36 +01:00
libfdk_aac_encoder_select = "audio_frame_queue"
2013-06-28 10:36:00 +02:00
libgme_demuxer_deps = "libgme"
2007-01-21 21:45:48 +00:00
libgsm_decoder_deps = "libgsm"
libgsm_encoder_deps = "libgsm"
2007-02-20 18:56:45 +00:00
libgsm_ms_decoder_deps = "libgsm"
libgsm_ms_encoder_deps = "libgsm"
2012-06-16 00:42:13 +03:00
libilbc_decoder_deps = "libilbc"
libilbc_encoder_deps = "libilbc"
2011-10-05 00:33:06 +02:00
libmodplug_demuxer_deps = "libmodplug"
2007-06-06 08:51:41 +00:00
libmp3lame_encoder_deps = "libmp3lame"
2013-02-17 22:00:36 +01:00
libmp3lame_encoder_select = "audio_frame_queue"
2009-06-05 12:32:40 +00:00
libopencore_amrnb_decoder_deps = "libopencore_amrnb"
libopencore_amrnb_encoder_deps = "libopencore_amrnb"
2013-02-17 22:00:36 +01:00
libopencore_amrnb_encoder_select = "audio_frame_queue"
2009-06-05 12:32:40 +00:00
libopencore_amrwb_decoder_deps = "libopencore_amrwb"
2009-02-06 11:49:31 +00:00
libopenjpeg_decoder_deps = "libopenjpeg"
2011-11-17 16:57:09 -07:00
libopenjpeg_encoder_deps = "libopenjpeg"
2012-06-24 11:39:05 +02:00
libopus_decoder_deps = "libopus"
2012-09-28 23:16:09 -06:00
libopus_encoder_deps = "libopus"
2013-02-17 22:00:36 +01:00
libopus_encoder_select = "audio_frame_queue"
2013-04-04 08:22:32 +02:00
libquvi_demuxer_deps = "libquvi"
2008-05-03 13:59:45 +00:00
libschroedinger_decoder_deps = "libschroedinger"
libschroedinger_encoder_deps = "libschroedinger"
2012-07-29 18:20:00 +00:00
libshine_encoder_deps = "libshine"
libshine_encoder_select = "audio_frame_queue"
2008-10-24 06:29:05 +00:00
libspeex_decoder_deps = "libspeex"
2011-09-11 03:14:14 +02:00
libspeex_encoder_deps = "libspeex"
2013-02-17 22:00:36 +01:00
libspeex_encoder_select = "audio_frame_queue"
2011-09-08 21:17:17 +05:30
libstagefright_h264_decoder_deps = "libstagefright_h264"
2007-01-25 00:16:28 +00:00
libtheora_encoder_deps = "libtheora"
2012-08-01 14:33:34 +00:00
libtwolame_encoder_deps = "libtwolame"
2010-12-19 21:40:23 +02:00
libvo_aacenc_encoder_deps = "libvo_aacenc"
2013-02-17 22:00:36 +01:00
libvo_aacenc_encoder_select = "audio_frame_queue"
2009-12-29 16:48:09 +02:00
libvo_amrwbenc_encoder_deps = "libvo_amrwbenc"
2012-05-05 10:45:30 +02:00
libvorbis_decoder_deps = "libvorbis"
2007-05-04 00:18:54 +00:00
libvorbis_encoder_deps = "libvorbis"
2013-02-17 22:00:36 +01:00
libvorbis_encoder_select = "audio_frame_queue"
2012-12-30 19:40:20 +01:00
libvpx_vp8_decoder_deps = "libvpx"
libvpx_vp8_encoder_deps = "libvpx"
libvpx_vp9_decoder_deps = "libvpx"
libvpx_vp9_encoder_deps = "libvpx"
2013-05-25 19:22:59 +02:00
libwavpack_encoder_deps = "libwavpack"
2013-11-22 11:05:13 -05:00
libwebp_encoder_deps = "libwebp"
2007-06-06 08:51:41 +00:00
libx264_encoder_deps = "libx264"
2011-12-01 22:29:58 +01:00
libx264rgb_encoder_deps = "libx264"
2013-10-02 14:46:26 +00:00
libx265_encoder_deps = "libx265"
2010-07-27 07:18:36 +00:00
libxavs_encoder_deps = "libxavs"
2007-06-06 08:51:41 +00:00
libxvid_encoder_deps = "libxvid"
2012-03-08 10:18:13 -09:00
libutvideo_decoder_deps = "libutvideo"
libutvideo_encoder_deps = "libutvideo"
2013-09-01 23:05:50 +02:00
libzvbi_teletext_decoder_deps = "libzvbi"
2007-01-21 21:01:34 +00:00
2007-05-08 08:27:00 +00:00
# demuxers / muxers
2011-01-21 18:12:17 +00:00
ac3_demuxer_select = "ac3_parser"
2013-08-04 14:33:36 +02:00
asf_demuxer_select = "riffdec"
2013-08-04 14:10:54 +02:00
asf_muxer_select = "riffenc"
2009-07-12 22:31:05 +00:00
asf_stream_muxer_select = "asf_muxer"
2014-04-08 15:08:41 +00:00
avi_demuxer_select = "riffdec exif"
2013-08-04 14:10:54 +02:00
avi_muxer_select = "riffenc"
2009-06-29 20:00:58 +00:00
avisynth_demuxer_deps = "avisynth"
2013-08-04 14:33:36 +02:00
avisynth_demuxer_select = "riffdec"
caf_demuxer_select = "riffdec"
2011-01-21 18:12:17 +00:00
dirac_demuxer_select = "dirac_parser"
2012-10-05 15:55:50 +00:00
dts_demuxer_select = "dca_parser"
2012-10-05 12:32:20 +00:00
dtshd_demuxer_select = "dca_parser"
2013-08-04 14:33:36 +02:00
dxa_demuxer_select = "riffdec"
2009-12-29 13:14:41 +00:00
eac3_demuxer_select = "ac3_parser"
2012-09-17 16:16:16 +02:00
f4v_muxer_select = "mov_muxer"
2011-01-21 18:12:17 +00:00
flac_demuxer_select = "flac_parser"
2013-08-15 16:06:52 +03:00
hds_muxer_select = "flv_muxer"
2013-08-15 16:09:27 +03:00
hls_muxer_select = "mpegts_muxer"
2014-04-19 00:46:23 +02:00
image2_alias_pix_demuxer_select = "image2_demuxer"
image2_brender_pix_demuxer_select = "image2_demuxer"
2009-07-12 22:31:05 +00:00
ipod_muxer_select = "mov_muxer"
2012-12-01 17:56:00 +01:00
ismv_muxer_select = "mov_muxer"
2009-06-29 20:00:58 +00:00
libnut_demuxer_deps = "libnut"
libnut_muxer_deps = "libnut"
2009-07-12 22:31:05 +00:00
matroska_audio_muxer_select = "matroska_muxer"
2013-08-04 14:33:36 +02:00
matroska_demuxer_select = "riffdec"
2012-10-18 19:48:27 +02:00
matroska_demuxer_suggest = "bzlib lzo zlib"
2013-08-04 14:10:54 +02:00
matroska_muxer_select = "riffenc"
mmf_muxer_select = "riffenc"
2013-08-04 14:33:36 +02:00
mov_demuxer_select = "riffdec"
2009-06-29 20:00:58 +00:00
mov_demuxer_suggest = "zlib"
2013-08-04 14:10:54 +02:00
mov_muxer_select = "riffenc rtpenc_chain"
2011-01-21 18:12:17 +00:00
mp3_demuxer_select = "mpegaudio_parser"
2009-07-12 22:31:05 +00:00
mp4_muxer_select = "mov_muxer"
2013-03-25 12:42:57 +02:00
mpegts_muxer_select = "adts_muxer latm_muxer"
2009-07-12 22:31:05 +00:00
mpegtsraw_demuxer_select = "mpegts_demuxer"
mxf_d10_muxer_select = "mxf_muxer"
2013-08-04 14:10:54 +02:00
nut_muxer_select = "riffenc"
2013-08-04 14:33:36 +02:00
nuv_demuxer_select = "riffdec"
2010-01-11 00:31:52 +00:00
ogg_demuxer_select = "golomb"
2009-07-12 22:31:05 +00:00
psp_muxer_select = "mov_muxer"
2010-10-19 07:38:53 +00:00
rtp_demuxer_select = "sdp_demuxer"
2010-10-21 12:18:48 +00:00
rtpdec_select = "asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
rtsp_demuxer_select = "http_protocol rtpdec"
2012-11-29 10:34:54 +01:00
rtsp_muxer_select = "rtp_muxer http_protocol rtp_protocol rtpenc_chain"
2010-10-13 09:06:59 +00:00
sap_demuxer_select = "sdp_demuxer"
2012-11-29 10:34:54 +01:00
sap_muxer_select = "rtp_muxer rtp_protocol rtpenc_chain"
2010-10-21 12:18:48 +00:00
sdp_demuxer_select = "rtpdec"
2012-09-18 11:34:16 +03:00
smoothstreaming_muxer_select = "ismv_muxer"
2009-12-29 11:42:16 +00:00
spdif_muxer_select = "aac_parser"
2012-10-02 13:43:19 +00:00
tak_demuxer_select = "tak_parser"
2009-07-12 22:31:05 +00:00
tg2_muxer_select = "mov_muxer"
tgp_muxer_select = "mov_muxer"
2012-09-03 02:51:00 +02:00
vobsub_demuxer_select = "mpegps_demuxer"
2013-08-05 23:05:30 +02:00
w64_demuxer_select = "wav_demuxer"
2013-08-06 19:21:29 +02:00
w64_muxer_select = "wav_muxer"
2013-08-04 14:33:36 +02:00
wav_demuxer_select = "riffdec"
2013-08-04 14:10:54 +02:00
wav_muxer_select = "riffenc"
webm_muxer_select = "riffenc"
2013-08-04 14:33:36 +02:00
wtv_demuxer_select = "riffdec"
2014-01-29 00:44:59 +01:00
wtv_muxer_select = "riffenc"
2013-08-04 14:33:36 +02:00
xmv_demuxer_select = "riffdec"
xwma_demuxer_select = "riffdec"
2009-06-29 20:00:58 +00:00
# indevs / outdevs
2009-06-29 18:49:15 +00:00
alsa_indev_deps = "alsa_asoundlib_h snd_pcm_htimestamp"
alsa_outdev_deps = "alsa_asoundlib_h"
2014-04-15 04:08:32 +02:00
avfoundation_indev_extralibs = "-framework CoreVideo -framework Foundation -framework AVFoundation -framework CoreMedia"
2014-04-11 17:29:07 +02:00
avfoundation_indev_select = "avfoundation"
2009-06-29 18:49:15 +00:00
bktr_indev_deps_any = "dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
2012-03-13 21:45:46 +00:00
caca_outdev_deps = "libcaca"
2014-02-08 18:01:26 -02:00
decklink_outdev_deps = "decklink pthreads"
decklink_outdev_extralibs = "-lstdc++"
2011-05-21 14:24:50 +02:00
dshow_indev_deps = "IBaseFilter"
dshow_indev_extralibs = "-lpsapi -lole32 -lstrmiids -luuid"
2013-08-06 02:36:17 +02:00
dv1394_indev_deps = "dv1394"
dv1394_indev_select = "dv_demuxer"
2011-03-07 18:54:52 +01:00
fbdev_indev_deps = "linux_fb_h"
2013-10-16 17:18:55 +02:00
fbdev_outdev_deps = "linux_fb_h"
2014-04-02 14:53:10 -04:00
gdigrab_indev_deps = "CreateDIBSection"
gdigrab_indev_extralibs = "-lgdi32"
gdigrab_indev_select = "bmp_decoder"
2012-07-05 14:02:53 +02:00
iec61883_indev_deps = "libiec61883"
2013-05-28 10:28:16 +02:00
jack_indev_deps = "jack_jack_h sem_timedwait"
2011-06-11 15:40:08 +02:00
lavfi_indev_deps = "avfilter"
2011-09-13 17:23:06 +02:00
libcdio_indev_deps = "libcdio"
2009-06-29 18:49:15 +00:00
libdc1394_indev_deps = "libdc1394"
2011-10-30 03:21:55 +01:00
libv4l2_indev_deps = "libv4l2"
2011-06-25 08:06:00 +02:00
openal_indev_deps = "openal"
2013-11-24 20:13:27 +01:00
opengl_outdev_deps = "opengl"
2009-06-29 18:49:15 +00:00
oss_indev_deps_any = "soundcard_h sys_soundcard_h"
oss_outdev_deps_any = "soundcard_h sys_soundcard_h"
2011-10-19 11:23:20 -07:00
pulse_indev_deps = "libpulse"
2013-10-04 11:49:07 +02:00
pulse_outdev_deps = "libpulse"
2014-03-24 10:55:35 +01:00
qtkit_indev_extralibs = "-framework QTKit -framework Foundation -framework QuartzCore"
qtkit_indev_select = "qtkit"
2011-05-27 01:34:35 +02:00
sdl_outdev_deps = "sdl"
2011-03-26 19:03:41 -04:00
sndio_indev_deps = "sndio_h"
sndio_outdev_deps = "sndio_h"
2009-06-29 18:49:15 +00:00
v4l_indev_deps = "linux_videodev_h"
v4l2_indev_deps_any = "linux_videodev2_h sys_videoio_h"
2013-05-19 23:36:10 +02:00
v4l2_outdev_deps_any = "linux_videodev2_h sys_videoio_h"
2010-07-11 22:17:17 +00:00
vfwcap_indev_deps = "capCreateCaptureWindow vfwcap_defines"
2010-01-23 20:42:00 +00:00
vfwcap_indev_extralibs = "-lavicap32"
2013-05-14 13:44:29 +02:00
xv_outdev_deps = "X11_extensions_Xvlib_h XvGetPortAttribute"
2013-05-30 13:13:57 +02:00
xv_outdev_extralibs = "-lXv -lX11 -lXext"
2012-07-29 01:56:31 +02:00
x11grab_indev_deps = "x11grab"
2007-01-21 21:01:34 +00:00
2007-05-08 08:27:00 +00:00
# protocols
2012-03-03 04:25:48 +01:00
bluray_protocol_deps = "libbluray"
2012-07-19 14:13:58 +02:00
ffrtmpcrypt_protocol_deps = "!librtmp_protocol"
ffrtmpcrypt_protocol_deps_any = "gcrypt nettle openssl"
ffrtmpcrypt_protocol_select = "tcp_protocol"
2012-07-16 11:56:20 +02:00
ffrtmphttp_protocol_deps = "!librtmp_protocol"
ffrtmphttp_protocol_select = "http_protocol"
2013-05-15 16:08:11 +02:00
ftp_protocol_select = "tcp_protocol"
2012-12-07 15:03:40 +01:00
gopher_protocol_select = "network"
2010-03-09 12:09:55 +00:00
http_protocol_select = "tcp_protocol"
2013-11-02 17:21:49 +01:00
httpproxy_protocol_select = "tcp_protocol"
2011-02-06 00:20:26 +02:00
https_protocol_select = "tls_protocol"
2012-02-13 19:37:25 +01:00
librtmp_protocol_deps = "librtmp"
librtmpe_protocol_deps = "librtmp"
librtmps_protocol_deps = "librtmp"
librtmpt_protocol_deps = "librtmp"
librtmpte_protocol_deps = "librtmp"
2013-09-18 14:08:11 +02:00
libssh_protocol_deps = "libssh"
2010-08-22 12:03:27 +00:00
mmsh_protocol_select = "http_protocol"
2012-12-07 15:03:40 +01:00
mmst_protocol_select = "network"
2012-02-13 19:37:25 +01:00
rtmp_protocol_deps = "!librtmp_protocol"
2010-05-14 18:51:46 +00:00
rtmp_protocol_select = "tcp_protocol"
2012-07-19 14:13:58 +02:00
rtmpe_protocol_select = "ffrtmpcrypt_protocol"
2012-07-17 12:02:42 +02:00
rtmps_protocol_deps = "!librtmp_protocol"
rtmps_protocol_select = "tls_protocol"
2012-07-16 11:56:20 +02:00
rtmpt_protocol_select = "ffrtmphttp_protocol"
2012-07-20 16:36:47 +02:00
rtmpte_protocol_select = "ffrtmpcrypt_protocol ffrtmphttp_protocol"
2012-07-23 16:38:45 +03:00
rtmpts_protocol_select = "ffrtmphttp_protocol https_protocol"
2010-05-14 18:51:46 +00:00
rtp_protocol_select = "udp_protocol"
2012-12-07 15:03:40 +01:00
sctp_protocol_deps = "struct_sctp_event_subscribe"
sctp_protocol_select = "network"
2013-01-15 14:21:48 +02:00
srtp_protocol_select = "rtp_protocol"
2012-12-07 15:03:40 +01:00
tcp_protocol_select = "network"
2011-02-06 00:19:49 +02:00
tls_protocol_deps_any = "openssl gnutls"
tls_protocol_select = "tcp_protocol"
2012-12-07 15:03:40 +01:00
udp_protocol_select = "network"
2013-07-30 01:34:56 +02:00
unix_protocol_deps = "sys_un_h"
unix_protocol_select = "network"
2007-04-26 23:44:56 +00:00
2010-09-14 13:21:13 +00:00
# filters
2012-01-26 08:49:15 +01:00
aconvert_filter_deps = "swresample"
2011-08-18 14:26:15 +02:00
amovie_filter_deps = "avcodec avformat"
2012-01-21 20:26:31 +01:00
aresample_filter_deps = "swresample"
2011-09-17 15:52:19 +02:00
ass_filter_deps = "libass"
2012-05-28 19:43:34 +02:00
asyncts_filter_deps = "avresample"
2013-10-02 01:27:22 +02:00
atempo_filter_deps = "avcodec"
atempo_filter_select = "rdft"
2013-04-21 15:00:11 +02:00
azmq_filter_deps = "libzmq"
2010-09-26 21:36:05 +00:00
blackframe_filter_deps = "gpl"
2011-07-09 18:13:10 +02:00
boxblur_filter_deps = "gpl"
2012-03-10 04:04:19 +01:00
colormatrix_filter_deps = "gpl"
2010-10-12 09:22:32 +00:00
cropdetect_filter_deps = "gpl"
2013-10-02 01:27:22 +02:00
dctdnoiz_filter_deps = "avcodec"
2014-02-19 17:27:36 +01:00
dctdnoiz_filter_select = "dct"
2011-08-10 18:58:49 +02:00
delogo_filter_deps = "gpl"
2012-05-27 00:34:09 +02:00
deshake_filter_deps = "avcodec"
2013-04-10 05:33:12 -03:00
deshake_filter_select = "dsputil"
2011-02-21 01:02:29 +01:00
drawtext_filter_deps = "libfreetype"
2012-08-18 03:26:07 +02:00
ebur128_filter_deps = "gpl"
2011-08-21 02:29:33 +02:00
flite_filter_deps = "libflite"
2011-10-15 00:14:37 +02:00
frei0r_filter_deps = "frei0r dlopen"
2012-04-01 18:56:26 +02:00
frei0r_filter_extralibs = '$ldl'
2011-10-15 00:14:37 +02:00
frei0r_src_filter_deps = "frei0r dlopen"
2012-04-01 18:56:26 +02:00
frei0r_src_filter_extralibs = '$ldl'
2012-05-14 19:03:19 +02:00
geq_filter_deps = "gpl"
2012-10-20 07:45:51 +02:00
histeq_filter_deps = "gpl"
2010-12-04 13:03:42 +00:00
hqdn3d_filter_deps = "gpl"
2013-03-12 11:35:21 +01:00
interlace_filter_deps = "gpl"
2012-10-18 09:50:53 +02:00
kerndeint_filter_deps = "gpl"
2013-09-20 14:01:00 +00:00
ladspa_filter_deps = "ladspa dlopen"
2013-05-28 13:40:39 +02:00
mcdeint_filter_deps = "avcodec gpl"
2011-05-05 01:05:07 +02:00
movie_filter_deps = "avcodec avformat"
2012-12-21 22:13:25 +01:00
mp_filter_deps = "gpl avcodec swscale inline_asm"
2013-03-22 22:58:36 +01:00
mpdecimate_filter_deps = "gpl avcodec"
2011-08-08 14:41:22 +02:00
mptestsrc_filter_deps = "gpl"
2011-05-28 22:00:26 +02:00
negate_filter_deps = "lut_filter"
2013-07-12 17:50:22 +00:00
perspective_filter_deps = "gpl"
2010-12-23 17:24:19 +00:00
ocv_filter_deps = "libopencv"
2013-05-10 21:27:15 +02:00
owdenoise_filter_deps = "gpl"
2012-01-18 12:00:16 +01:00
pan_filter_deps = "swresample"
2013-08-31 18:46:17 +00:00
phase_filter_deps = "gpl"
2012-11-22 18:19:12 +01:00
pp_filter_deps = "gpl postproc"
2013-07-08 12:42:53 +00:00
pullup_filter_deps = "gpl"
2012-03-10 14:01:28 +01:00
removelogo_filter_deps = "avcodec avformat swscale"
2013-11-02 17:21:49 +01:00
resample_filter_deps = "avresample"
2013-06-03 13:34:04 +02:00
sab_filter_deps = "gpl swscale"
2011-03-25 18:49:24 +01:00
scale_filter_deps = "swscale"
2012-08-28 18:41:06 +02:00
smartblur_filter_deps = "gpl swscale"
2013-10-02 01:27:22 +02:00
showspectrum_filter_deps = "avcodec"
showspectrum_filter_select = "rdft"
spp_filter_deps = "gpl avcodec"
spp_filter_select = "fft"
2013-03-01 17:35:52 +00:00
stereo3d_filter_deps = "gpl"
2012-11-29 03:28:37 +01:00
subtitles_filter_deps = "avformat avcodec libass"
2012-03-18 10:59:01 +01:00
super2xsai_filter_deps = "gpl"
2011-06-25 13:06:24 +02:00
tinterlace_filter_deps = "gpl"
2013-04-19 01:49:27 +02:00
vidstabdetect_filter_deps = "libvidstab"
vidstabtransform_filter_deps = "libvidstab"
2012-09-28 05:25:22 +02:00
pixfmts_super2xsai_test_deps = "super2xsai_filter"
tinterlace_merge_test_deps = "tinterlace_filter"
tinterlace_pad_test_deps = "tinterlace_filter"
2013-04-21 15:00:11 +02:00
zmq_filter_deps = "libzmq"
2010-09-14 13:21:13 +00:00
2013-11-02 17:05:28 +01:00
# examples
2014-01-26 18:30:06 +01:00
avio_reading = "avformat avcodec avutil"
2014-02-15 15:50:29 +01:00
avcodec_example_deps = "avcodec avutil"
2013-11-28 13:55:34 +01:00
demuxing_decoding_example_deps = "avcodec avformat avutil"
2014-02-13 08:50:16 +01:00
filter_audio_example_deps = "avfilter avutil"
2013-11-28 13:55:34 +01:00
filtering_audio_example_deps = "avfilter avcodec avformat avutil"
filtering_video_example_deps = "avfilter avcodec avformat avutil"
metadata_example_deps = "avformat avutil"
2013-11-26 01:31:00 +01:00
muxing_example_deps = "avcodec avformat avutil swscale"
2014-01-26 18:30:37 +01:00
remuxing_example_deps = "avcodec avformat avutil"
2013-11-28 13:55:34 +01:00
resampling_audio_example_deps = "avutil swresample"
scaling_video_example_deps = "avutil swscale"
2013-11-27 11:15:48 +01:00
transcode_aac_example_deps = "avcodec avformat swresample"
2014-03-09 02:20:41 +02:00
transcoding_example_deps = "avfilter avcodec avformat avutil"
2013-11-02 17:05:28 +01:00
2010-01-26 23:13:01 +00:00
# libraries
2012-11-11 13:37:40 +01:00
avcodec_deps = "avutil"
avdevice_deps = "avutil avcodec avformat"
avfilter_deps = "avutil"
avformat_deps = "avutil avcodec"
avresample_deps = "avutil"
2012-12-24 06:08:07 +01:00
postproc_deps = "avutil gpl"
2012-11-11 13:37:40 +01:00
swscale_deps = "avutil"
2008-02-26 21:32:56 +00:00
2007-05-08 08:27:00 +00:00
# programs
2013-10-08 14:48:52 +00:00
ffmpeg_deps = "avcodec avfilter avformat swresample"
2013-05-08 12:17:46 +02:00
ffmpeg_select = "aformat_filter anull_filter atrim_filter format_filter
null_filter
2013-05-05 07:25:22 +02:00
setpts_filter trim_filter"
2012-02-10 17:33:39 +01:00
ffplay_deps = "avcodec avformat swscale swresample sdl"
2014-02-14 02:35:36 +01:00
ffplay_libs = '$sdl_libs'
2013-03-11 21:51:05 +01:00
ffplay_select = "rdft crop_filter"
2011-01-04 14:00:10 +00:00
ffprobe_deps = "avcodec avformat"
2013-08-06 19:03:33 +02:00
ffserver_deps = "avformat fork sarestart"
ffserver_select = "ffm_muxer rtp_protocol rtsp_demuxer"
2007-02-11 14:22:28 +00:00
2012-08-09 23:37:28 +02:00
# documentation
podpages_deps = "perl"
manpages_deps = "perl pod2man"
2013-05-28 21:52:33 +02:00
htmlpages_deps = "perl texi2html"
txtpages_deps = "perl makeinfo"
2013-11-24 18:40:16 -03:00
doc_deps_any = "manpages htmlpages podpages txtpages"
2007-05-08 08:27:00 +00:00
2001-07-22 14:18:56 +00:00
# default parameters
2007-02-06 22:09:46 +00:00
2010-06-16 18:41:26 +00:00
logfile = "config.log"
2007-02-06 22:09:46 +00:00
# installation paths
2008-06-02 23:51:36 +00:00
prefix_default = "/usr/local"
bindir_default = '${prefix}/bin'
2011-08-15 22:36:13 +02:00
datadir_default = '${prefix}/share/ffmpeg'
2013-09-01 13:41:33 +02:00
docdir_default = '${prefix}/share/doc/ffmpeg'
2008-06-02 23:51:36 +00:00
incdir_default = '${prefix}/include'
libdir_default = '${prefix}/lib'
mandir_default = '${prefix}/share/man'
shlibdir_default = " $libdir_default "
2007-02-06 22:09:46 +00:00
# toolchain
2010-05-02 18:59:15 +00:00
ar_default = "ar"
2008-10-21 00:57:20 +00:00
cc_default = "gcc"
2011-08-31 04:11:25 +05:30
cxx_default = "g++"
2008-11-23 12:36:34 +00:00
host_cc_default = "gcc"
2012-10-15 02:38:17 +01:00
cp_f = "cp -f"
2011-05-18 00:03:19 +02:00
install = "install"
2013-02-25 15:51:47 +01:00
ln_s = "ln -s -f"
2012-09-16 21:47:16 +01:00
nm_default = "nm -g"
2009-01-07 01:42:00 +00:00
objformat = "elf"
2011-03-06 13:48:30 +00:00
pkg_config_default = pkg-config
2002-09-02 16:48:40 +00:00
ranlib = "ranlib"
2011-04-01 00:24:12 +02:00
strip_default = "strip"
2012-01-16 00:48:16 +01:00
yasmexe_default = "yasm"
2013-12-05 17:50:14 -03:00
windres_default = "windres"
2007-02-06 22:09:46 +00:00
2011-09-12 17:40:29 +02:00
nogas = ":"
2010-01-20 13:22:36 +00:00
2007-02-06 22:09:46 +00:00
# OS
2010-02-11 23:57:52 +00:00
target_os_default = $( tolower $( uname -s))
host_os = $target_os_default
2007-02-06 22:09:46 +00:00
2014-03-13 08:34:45 +01:00
# machine
if test " $target_os_default " = aix; then
arch_default = $( uname -p)
else
arch_default = $( uname -m)
fi
cpu = "generic"
2007-02-06 22:09:46 +00:00
# configurable options
2011-12-15 12:17:13 +01:00
enable $PROGRAM_LIST
2012-08-09 23:37:28 +02:00
enable $DOCUMENT_LIST
2013-11-26 01:31:00 +01:00
enable $EXAMPLE_LIST
2012-11-27 14:03:57 +01:00
enable $( filter_out avresample $LIBRARY_LIST )
2011-12-14 23:58:10 +01:00
enable stripping
2011-09-12 17:40:29 +02:00
enable asm
enable debug
enable doc
2007-10-24 19:17:15 +00:00
enable optimizations
2012-09-21 18:01:33 +02:00
enable runtime_cpudetect
2011-12-16 21:42:04 +00:00
enable safe_bitstream_reader
2008-03-25 15:04:42 +00:00
enable static
2009-03-20 14:12:47 +00:00
enable swscale_alpha
2007-02-06 22:09:46 +00:00
2013-05-17 02:32:21 +02:00
# Enable hwaccels by default.
2014-03-23 13:24:07 +01:00
enable dxva2 vaapi vda vdpau xvmc
2014-02-19 03:59:32 +01:00
enable xlib
2013-03-18 22:27:03 +01:00
2007-02-06 22:09:46 +00:00
# build settings
2008-04-10 19:44:29 +00:00
SHFLAGS = '-shared -Wl,-soname,$$(@F)'
2003-01-11 20:34:38 +00:00
LIBPREF = "lib"
LIBSUF = ".a"
2007-10-19 18:03:05 +00:00
FULLNAME = '$(NAME)$(BUILDSUF)'
LIBNAME = '$(LIBPREF)$(FULLNAME)$(LIBSUF)'
2003-01-11 20:34:38 +00:00
SLIBPREF = "lib"
SLIBSUF = ".so"
2007-10-19 18:03:05 +00:00
SLIBNAME = '$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
2006-05-16 18:06:28 +00:00
SLIBNAME_WITH_VERSION = '$(SLIBNAME).$(LIBVERSION)'
SLIBNAME_WITH_MAJOR = '$(SLIBNAME).$(LIBMAJOR)'
2010-03-06 17:44:18 +00:00
LIB_INSTALL_EXTRA_CMD = '$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
2011-07-07 15:25:30 +01:00
SLIB_INSTALL_NAME = '$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS = '$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
2002-03-08 09:09:57 +00:00
2012-07-20 12:20:23 +01:00
asflags_filter = echo
cflags_filter = echo
2012-07-20 03:06:49 +01:00
ldflags_filter = echo
2012-07-20 23:43:27 +01:00
AS_C = '-c'
2011-06-25 11:57:32 +01:00
AS_O = '-o $@'
2012-07-20 23:43:27 +01:00
CC_C = '-c'
2012-07-20 22:22:41 +01:00
CC_E = '-E -o $@'
2009-07-12 13:29:46 +00:00
CC_O = '-o $@'
2012-07-30 17:44:56 +02:00
CXX_C = '-c'
2011-08-31 04:11:25 +05:30
CXX_O = '-o $@'
2012-07-20 13:43:07 +01:00
LD_O = '-o $@'
2012-08-28 16:06:56 +01:00
LD_LIB = '-l%'
LD_PATH = '-L'
2012-07-20 23:43:27 +01:00
HOSTCC_C = '-c'
2013-02-28 16:16:10 +01:00
HOSTCC_E = '-E -o $@'
2012-07-20 13:43:07 +01:00
HOSTCC_O = '-o $@'
2012-08-28 13:02:35 +01:00
HOSTLD_O = '-o $@'
2009-07-12 13:29:46 +00:00
2008-11-23 12:36:34 +00:00
host_libs = '-lm'
2012-07-20 13:48:13 +01:00
host_cflags_filter = echo
host_ldflags_filter = echo
2008-11-23 12:36:34 +00:00
2010-01-30 15:48:55 +00:00
target_path = '$(CURDIR)'
2008-11-23 12:36:38 +00:00
2010-07-01 11:11:23 +00:00
# since the object filename is not given with the -MM flag, the compiler
# is only able to print the basename, and we must add the path ourselves
2012-07-20 13:43:07 +01:00
DEPCMD = '$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)'
DEPFLAGS = '-MM'
2008-03-12 23:30:35 +00:00
2002-05-18 23:13:26 +00:00
# find source path
2009-07-17 13:10:26 +00:00
if test -f configure; then
2011-06-06 22:38:38 +01:00
source_path = .
2005-05-13 20:57:27 +00:00
else
2011-06-06 12:56:26 +01:00
source_path = $( cd $( dirname " $0 " ) ; pwd )
2006-11-08 00:02:15 +00:00
echo " $source_path " | grep -q '[[:blank:]]' &&
2007-11-23 11:09:28 +00:00
die "Out of tree builds are impossible with whitespace in source path."
2009-03-15 21:32:36 +00:00
test -e " $source_path /config.h" &&
die "Out of tree builds are impossible with config.h in source dir."
2001-07-22 14:18:56 +00:00
fi
2009-03-30 21:12:44 +00:00
for v in " $@ " ; do
2009-06-15 22:12:21 +00:00
r = ${ v #*= }
l = ${ v % " $r " }
r = $( sh_quote " $r " )
2011-03-17 17:01:10 +01:00
FFMPEG_CONFIGURATION = " ${ FFMPEG_CONFIGURATION # } ${ l }${ r } "
2009-03-30 21:12:44 +00:00
done
2004-10-11 19:50:50 +00:00
2008-02-17 00:00:06 +00:00
find_things(){
thing = $1
pattern = $2
file = $source_path /$3
2008-03-03 21:48:24 +00:00
sed -n "s/^[^#]* $pattern .*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_ $thing /p" " $file "
2008-02-17 00:00:06 +00:00
}
ENCODER_LIST = $( find_things encoder ENC libavcodec/allcodecs.c)
DECODER_LIST = $( find_things decoder DEC libavcodec/allcodecs.c)
2009-04-02 08:48:06 +00:00
HWACCEL_LIST = $( find_things hwaccel HWACCEL libavcodec/allcodecs.c)
2008-02-17 00:00:06 +00:00
PARSER_LIST = $( find_things parser PARSER libavcodec/allcodecs.c)
BSF_LIST = $( find_things bsf BSF libavcodec/allcodecs.c)
MUXER_LIST = $( find_things muxer _MUX libavformat/allformats.c)
DEMUXER_LIST = $( find_things demuxer DEMUX libavformat/allformats.c)
2009-06-29 18:49:15 +00:00
OUTDEV_LIST = $( find_things outdev OUTDEV libavdevice/alldevices.c)
INDEV_LIST = $( find_things indev _IN libavdevice/alldevices.c)
2008-02-17 00:00:06 +00:00
PROTOCOL_LIST = $( find_things protocol PROTOCOL libavformat/allformats.c)
2008-03-03 20:53:15 +00:00
FILTER_LIST = $( find_things filter FILTER libavfilter/allfilters.c)
2005-05-02 09:47:46 +00:00
2011-09-12 17:52:44 +02:00
ALL_COMPONENTS = "
$BSF_LIST
$DECODER_LIST
$DEMUXER_LIST
$ENCODER_LIST
$FILTER_LIST
$HWACCEL_LIST
$INDEV_LIST
$MUXER_LIST
$OUTDEV_LIST
$PARSER_LIST
$PROTOCOL_LIST
"
2010-04-19 12:49:56 +00:00
for n in $COMPONENT_LIST ; do
v = $( toupper ${ n %s } ) _LIST
eval enable \$ $v
eval ${ n } _if_any = "\$ $v "
done
2012-10-19 02:22:12 -03:00
enable $ARCH_EXT_LIST
2006-11-12 15:19:58 +00:00
2007-02-11 19:50:19 +00:00
die_unknown(){
echo "Unknown option \" $1 \"."
echo "See $0 --help for available options."
exit 1
}
2013-02-21 16:43:47 +01:00
print_3_columns() {
cat | tr ' ' '\n' | sort | pr -r -3 -t
}
2007-07-27 14:13:34 +00:00
show_list() {
2007-11-04 02:15:53 +00:00
suffix = _$1
shift
2013-02-21 16:43:47 +01:00
echo $* | sed s/$suffix //g | print_3_columns
2007-07-27 14:13:34 +00:00
exit 0
}
2012-05-09 04:29:53 +01:00
rand_list(){
IFS = ', '
set -- $*
unset IFS
for thing; do
comp = ${ thing %:* }
prob = ${ thing # $comp }
prob = ${ prob #: }
is_in ${ comp } $COMPONENT_LIST && eval comp = \$ $( toupper ${ comp %s } ) _LIST
echo "prob ${ prob :- 0 .5 } "
printf '%s\n' $comp
done
}
do_random(){
action = $1
shift
random_seed = $( awk "BEGIN { srand( $random_seed ); print srand() }" )
$action $( rand_list " $@ " | awk "BEGIN { srand( $random_seed ) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }" )
}
2001-07-22 14:18:56 +00:00
for opt do
2007-11-23 11:09:28 +00:00
optval = " ${ opt #*= } "
case " $opt " in
2012-12-02 23:32:41 +01:00
--extra-ldflags= *)
add_ldflags $optval
2012-11-29 18:03:50 +00:00
;;
2012-12-02 23:32:41 +01:00
--extra-libs= *)
add_extralibs $optval
2012-11-29 18:03:50 +00:00
;;
2012-12-02 23:32:41 +01:00
--disable-devices)
disable $INDEV_LIST $OUTDEV_LIST
2012-11-29 18:03:50 +00:00
;;
2012-12-02 23:32:41 +01:00
--enable-debug= *)
debuglevel = " $optval "
2012-11-29 18:03:50 +00:00
;;
--disable-programs)
disable $PROGRAM_LIST
;;
--disable-everything)
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
;;
2012-11-10 14:47:52 +01:00
--disable-all)
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
disable $LIBRARY_LIST $PROGRAM_LIST doc
;;
2012-11-29 18:03:50 +00:00
--enable-random| --disable-random)
action = ${ opt %%-random }
do_random ${ action #-- } $COMPONENT_LIST
;;
--enable-random= *| --disable-random= *)
action = ${ opt %%-random=* }
do_random ${ action #-- } $optval
;;
--enable-*= *| --disable-*= *)
eval $( echo " ${ opt %%=* } " | sed 's/--/action=/;s/-/ thing=/' )
is_in " ${ thing } s" $COMPONENT_LIST || die_unknown " $opt "
eval list = \$ $( toupper $thing ) _LIST
name = $( echo " ${ optval } " | sed "s/,/_ ${ thing } |/g" ) _${ thing }
2012-12-02 13:47:07 +01:00
list = $( filter " $name " $list )
[ " $list " = "" ] && warn "Option $opt did not match anything"
$action $list
2012-11-29 18:03:50 +00:00
;;
--enable-?*| --disable-?*)
eval $( echo " $opt " | sed 's/--/action=/;s/-/ option=/;s/-/_/g' )
if is_in $option $COMPONENT_LIST ; then
test $action = disable && action = unset
eval $action \$ $( toupper ${ option %s } ) _LIST
elif is_in $option $CMDLINE_SELECT ; then
$action $option
else
die_unknown $opt
fi
;;
--list-*)
NAME = " ${ opt #--list- } "
is_in $NAME $COMPONENT_LIST || die_unknown $opt
NAME = ${ NAME %s }
eval show_list $NAME \$ $( toupper $NAME ) _LIST
;;
--help| -h) show_help
;;
2012-12-02 13:47:07 +01:00
--fatal-warnings) enable fatal_warnings
;;
2012-11-29 18:03:50 +00:00
*)
optname = " ${ opt %%=* } "
optname = " ${ optname #-- } "
optname = $( echo " $optname " | sed 's/-/_/g' )
if is_in $optname $CMDLINE_SET ; then
eval $optname = '$optval'
elif is_in $optname $CMDLINE_APPEND ; then
append $optname " $optval "
else
die_unknown $opt
fi
;;
2007-11-23 11:09:28 +00:00
esac
2001-07-22 14:18:56 +00:00
done
2008-05-15 23:34:43 +00:00
disabled logging && logfile = /dev/null
2011-03-17 17:01:10 +01:00
echo "# $0 $FFMPEG_CONFIGURATION " > $logfile
2008-05-15 23:34:43 +00:00
set >> $logfile
2008-11-23 12:36:34 +00:00
test -n " $cross_prefix " && enable cross_compile
2010-02-11 23:57:52 +00:00
if enabled cross_compile; then
test -n " $arch " && test -n " $target_os " ||
die "Must specify target arch and OS when cross-compiling"
fi
2010-05-02 18:59:15 +00:00
ar_default = " ${ cross_prefix }${ ar_default } "
2009-01-07 01:42:00 +00:00
cc_default = " ${ cross_prefix }${ cc_default } "
2011-08-31 04:11:25 +05:30
cxx_default = " ${ cross_prefix }${ cxx_default } "
2008-12-13 15:45:03 +00:00
nm_default = " ${ cross_prefix }${ nm_default } "
2011-03-06 13:48:30 +00:00
pkg_config_default = " ${ cross_prefix }${ pkg_config_default } "
2008-05-04 17:15:11 +00:00
ranlib = " ${ cross_prefix }${ ranlib } "
2011-04-01 00:24:12 +02:00
strip_default = " ${ cross_prefix }${ strip_default } "
2013-12-05 17:50:14 -03:00
windres_default = " ${ cross_prefix }${ windres_default } "
2008-05-04 17:15:11 +00:00
2009-02-21 21:07:34 +00:00
sysinclude_default = " ${ sysroot } /usr/include"
2013-05-05 16:21:57 +02:00
test -n " $valgrind " && toolchain = "valgrind-memcheck"
2012-09-16 22:06:53 +01:00
case " $toolchain " in
2012-10-14 07:54:22 +02:00
clang-asan)
cc_default = "clang"
2013-03-28 03:30:53 +01:00
add_cflags -fsanitize= address
add_ldflags -fsanitize= address
2012-10-14 07:54:22 +02:00
;;
clang-tsan)
cc_default = "clang"
2013-03-28 03:30:53 +01:00
add_cflags -fsanitize= thread -pie
add_ldflags -fsanitize= thread -pie
2012-10-14 07:54:22 +02:00
;;
2014-02-19 20:20:39 +01:00
clang-usan)
cc_default = "clang"
add_cflags -fsanitize= undefined
add_ldflags -fsanitize= undefined
;;
2013-05-14 22:41:14 +02:00
gcc-asan)
cc_default = "gcc"
add_cflags -fsanitize= address
add_ldflags -fsanitize= address
;;
gcc-tsan)
cc_default = "gcc"
add_cflags -fsanitize= thread -pie -fPIC
add_ldflags -fsanitize= thread -pie -fPIC
;;
2014-02-19 20:20:39 +01:00
gcc-usan)
cc_default = "gcc"
add_cflags -fsanitize= undefined
add_ldflags -fsanitize= undefined
;;
2013-05-14 22:15:18 +02:00
valgrind-massif)
2013-05-19 11:24:15 +02:00
target_exec_default = ${ valgrind :- "valgrind" }
2013-05-19 20:16:20 +02:00
target_exec_args = "--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
2013-05-14 22:15:18 +02:00
;;
2013-05-04 10:25:41 +02:00
valgrind-memcheck)
2013-05-05 16:22:44 +02:00
target_exec_default = ${ valgrind :- "valgrind" }
2013-05-05 10:48:33 +02:00
target_exec_args = "--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions= $source_path /tests/fate-valgrind.supp"
2013-05-04 10:25:41 +02:00
;;
2012-09-16 22:06:53 +01:00
msvc)
2013-11-04 15:46:34 +02:00
# Check whether the current MSVC version needs the C99 converter.
# From MSVC 2013 (compiler major version 18) onwards, it does actually
2013-11-21 12:07:29 +01:00
# support enough of C99 to build ffmpeg. Default to the new
2013-11-04 15:46:34 +02:00
# behaviour if the regexp was unable to match anything, since this
# successfully parses the version number of existing supported
# versions that require the converter (MSVC 2010 and 2012).
cl_major_ver = $( cl 2>& 1 | sed -n 's/.*Version \([[:digit:]]\{1,\}\)\..*/\1/p' )
if [ -z " $cl_major_ver " ] || [ $cl_major_ver -ge 18 ] ; then
2013-11-14 11:58:37 +02:00
cc_default = "cl"
2013-11-04 15:46:34 +02:00
else
cc_default = "c99wrap cl"
fi
2013-11-14 11:58:37 +02:00
ld_default = "link"
2012-09-16 22:06:53 +01:00
nm_default = "dumpbin -symbols"
2012-09-18 00:10:29 +01:00
ar_default = "lib"
2012-10-13 15:57:56 +03:00
target_os_default = "win32"
2013-11-14 11:58:37 +02:00
# Use a relative path for TMPDIR. This makes sure all the
# ffconf temp files are written with a relative path, avoiding
# issues with msys/win32 path conversion for MSVC parameters
# such as -Fo<file> or -out:<file>.
TMPDIR = .
2012-09-16 22:06:53 +01:00
;;
2013-05-25 06:07:42 -04:00
icl)
2013-11-14 11:58:37 +02:00
cc_default = "icl"
ld_default = "xilink"
2013-05-25 06:07:42 -04:00
nm_default = "dumpbin -symbols"
ar_default = "xilib"
target_os_default = "win32"
2013-11-14 11:58:37 +02:00
TMPDIR = .
2013-05-25 06:07:42 -04:00
;;
2013-03-23 08:17:24 +01:00
gcov)
add_cflags -fprofile-arcs -ftest-coverage
add_ldflags -fprofile-arcs -ftest-coverage
;;
2013-10-28 13:22:52 +01:00
hardened)
2013-11-02 17:21:49 +01:00
add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE= 2 -fno-strict-overflow -fstack-protector-all
2013-10-28 13:22:52 +01:00
add_ldflags -Wl,-z,relro -Wl,-z,now
;;
2012-09-16 22:06:53 +01:00
?*)
die "Unknown toolchain $toolchain "
;;
esac
2013-05-05 10:47:19 +02:00
set_default arch cc cxx pkg_config strip sysinclude target_exec target_os yasmexe
2008-11-23 12:36:34 +00:00
enabled cross_compile || host_cc_default = $cc
set_default host_cc
2008-10-21 00:57:20 +00:00
2011-05-05 16:45:12 +01:00
if ! $pkg_config --version >/dev/null 2>& 1; then
warn " $pkg_config not found, library detection may fail."
pkg_config = false
fi
2009-03-08 22:11:24 +00:00
exesuf() {
case $1 in
2012-10-13 15:57:56 +03:00
mingw32*| win32| win64| cygwin*| *-dos| freedos| opendos| os/2*| symbian) echo .exe ;;
2009-03-08 22:11:24 +00:00
esac
}
EXESUF = $( exesuf $target_os )
HOSTEXESUF = $( exesuf $host_os )
2009-02-05 00:03:54 +00:00
2008-05-13 17:25:04 +00:00
# set temporary file name
2008-12-29 12:55:24 +00:00
: ${ TMPDIR := $TEMPDIR }
2008-12-29 12:55:28 +00:00
: ${ TMPDIR := $TMP }
2008-12-29 12:55:24 +00:00
: ${ TMPDIR :=/tmp }
2008-05-13 17:25:04 +00:00
2013-10-05 13:48:22 +02:00
if [ -n " $tempprefix " ] ; then
mktemp(){
echo $tempprefix .${ HOSTNAME } .${ UID }
}
elif ! check_cmd mktemp -u XXXXXX; then
2009-03-03 08:53:55 +00:00
# simple replacement for missing mktemp
# NOT SAFE FOR GENERAL USE
mktemp(){
2010-10-07 00:44:52 +01:00
echo " ${ 2 %%XXX* } . ${ HOSTNAME } . ${ UID } . $$ "
2009-03-03 08:53:55 +00:00
}
fi
tmpfile(){
tmp = $( mktemp -u " ${ TMPDIR } /ffconf.XXXXXXXX" ) $2 &&
( set -C; exec > $tmp ) 2>/dev/null ||
2009-09-09 23:07:00 +00:00
die "Unable to create temporary file in $TMPDIR ."
2009-03-03 08:53:55 +00:00
append TMPFILES $tmp
eval $1 = $tmp
}
trap 'rm -f -- $TMPFILES' EXIT
2010-09-03 21:27:19 +00:00
tmpfile TMPASM .asm
2011-09-12 17:40:29 +02:00
tmpfile TMPC .c
2011-12-14 23:58:10 +01:00
tmpfile TMPCPP .cpp
2011-09-12 17:40:29 +02:00
tmpfile TMPE $EXESUF
tmpfile TMPH .h
2014-04-05 13:30:27 +02:00
tmpfile TMPM .m
2011-09-12 17:40:29 +02:00
tmpfile TMPO .o
tmpfile TMPS .S
tmpfile TMPSH .sh
tmpfile TMPV .ver
2009-03-03 08:53:55 +00:00
unset -f mktemp
2008-05-13 17:25:04 +00:00
2010-10-06 15:54:35 +01:00
chmod +x $TMPE
2009-02-04 21:28:54 +00:00
# make sure we can execute files in $TMPDIR
cat > $TMPSH 2>> $logfile <<EOF
#! /bin/sh
EOF
chmod +x $TMPSH >> $logfile 2>& 1
if ! $TMPSH >> $logfile 2>& 1; then
cat <<EOF
Unable to create and execute files in $TMPDIR. Set the TMPDIR environment
variable to another directory and make sure that it is not mounted noexec.
EOF
die "Sanity test failed."
fi
2012-10-23 00:05:44 +01:00
ccc_flags(){
for flag; do
case $flag in
-std= c99) echo -c99 ;;
-mcpu= *) echo -arch ${ flag #*= } ;;
-mieee) echo -ieee ;;
-O*| -fast) echo $flag ;;
-fno-math-errno) echo -assume nomath_errno ;;
-g) echo -g3 ;;
-Wall) echo -msg_enable level2 ;;
-Wno-pointer-sign) echo -msg_disable ptrmismatch1 ;;
-Wl,*) echo $flag ;;
-f*| -W*) ;;
*) echo $flag ;;
esac
done
}
2013-09-12 20:17:15 +02:00
cparser_flags(){
for flag; do
case $flag in
-Wno-switch) echo -Wno-switch-enum ;;
-Wno-format-zero-length) ;;
-Wdisabled-optimization) ;;
-Wno-pointer-sign) echo -Wno-other ;;
*) echo $flag ;;
esac
done
}
2013-05-30 20:11:20 +00:00
msvc_common_flags(){
2012-06-22 12:24:59 +03:00
for flag; do
case $flag in
2013-05-30 20:11:20 +00:00
# In addition to specifying certain flags under the compiler
# specific filters, they must be specified here as well or else the
# generic catch all at the bottom will print the original flag.
-Wall) ;;
-std= c99) ;;
# Common flags
2013-06-24 21:10:11 +00:00
-fomit-frame-pointer) ;;
2012-06-22 12:24:59 +03:00
-g) echo -Z7 ;;
-fno-math-errno) ;;
-fno-common) ;;
-fno-signed-zeros) ;;
2012-10-30 22:57:37 +01:00
-fPIC) ;;
2013-05-28 23:39:21 +03:00
-mthumb) ;;
-march= *) ;;
2012-06-22 12:24:59 +03:00
-lz) echo zlib.lib ;;
2012-10-01 18:39:30 +00:00
-lavifil32) echo vfw32.lib ;;
-lavicap32) echo vfw32.lib user32.lib ;;
2012-06-22 12:24:59 +03:00
-l*) echo ${ flag #-l } .lib ;;
*) echo $flag ;;
esac
done
}
2013-05-30 20:11:20 +00:00
msvc_flags(){
msvc_common_flags " $@ "
for flag; do
case $flag in
2013-06-20 13:42:21 +02:00
-Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
2013-05-30 20:11:20 +00:00
-wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
-wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
2013-06-01 10:16:42 +02:00
-wd4554 \
2013-09-19 16:58:21 -04:00
-wd4273 ;;
2013-05-30 20:11:20 +00:00
esac
done
}
icl_flags(){
msvc_common_flags " $@ "
for flag; do
case $flag in
# Despite what Intel's documentation says -Wall, which is supported
# on Windows, does enable remarks so disable them here.
-Wall) echo $flag -Qdiag-disable:remark ;;
-std= c99) echo -Qstd= c99 ;;
esac
done
}
2012-07-18 20:27:09 +01:00
pgi_flags(){
for flag; do
case $flag in
2012-10-05 03:42:12 +01:00
-flto) echo -Mipa= fast,libopt,libinline,vestigial ;;
2012-07-18 20:27:09 +01:00
-fomit-frame-pointer) echo -Mnoframe ;;
-g) echo -gopt ;;
*) echo $flag ;;
esac
done
}
suncc_flags(){
for flag; do
case $flag in
-march= *| -mcpu= *)
case " ${ flag #*= } " in
native) echo -xtarget= native ;;
v9| niagara) echo -xarch= sparc ;;
ultrasparc) echo -xarch= sparcvis ;;
ultrasparc3| niagara2) echo -xarch= sparcvis2 ;;
i586| pentium) echo -xchip= pentium ;;
i686| pentiumpro| pentium2) echo -xtarget= pentium_pro ;;
pentium3*| c3-2) echo -xtarget= pentium3 ;;
pentium-m) echo -xarch= sse2 -xchip= pentium3 ;;
pentium4*) echo -xtarget= pentium4 ;;
prescott| nocona) echo -xarch= sse3 -xchip= pentium4 ;;
*-sse3) echo -xarch= sse3 ;;
core2) echo -xarch= ssse3 -xchip= core2 ;;
2012-11-25 01:32:57 -05:00
corei7) echo -xarch= sse4_2 -xchip= nehalem ;;
corei7-avx) echo -xarch= avx -xchip= sandybridge ;;
2013-06-24 10:40:15 +02:00
amdfam10| barcelona) echo -xtarget= barcelona ;;
bdver*) echo -xarch= avx ;;
2013-06-20 13:42:21 +02:00
athlon-4| athlon-[ mx] p) echo -xarch= ssea ;;
2012-07-18 20:27:09 +01:00
k8| opteron| athlon64| athlon-fx)
2013-06-20 13:42:21 +02:00
echo -xarch= sse2a ;;
athlon*) echo -xarch= pentium_proa ;;
2012-07-18 20:27:09 +01:00
esac
;;
-std= c99) echo -xc99 ;;
-fomit-frame-pointer) echo -xregs= frameptr ;;
-fPIC) echo -KPIC -xcode= pic32 ;;
-W*,*) echo $flag ;;
2013-01-14 12:51:59 -05:00
-f*-*| -W*| -mimpure-text) ;;
-shared) echo -G ;;
2012-07-18 20:27:09 +01:00
*) echo $flag ;;
esac
done
}
tms470_flags(){
for flag; do
case $flag in
-march= *| -mcpu= *)
case " ${ flag #*= } " in
armv7-a| cortex-a*) echo -mv= 7a8 ;;
armv7-r| cortex-r*) echo -mv= 7r4 ;;
armv7-m| cortex-m*) echo -mv= 7m3 ;;
armv6*| arm11*) echo -mv= 6 ;;
armv5*e| arm[ 79] *e*| arm9[ 24] 6*| arm96*| arm102[ 26])
echo -mv= 5e ;;
armv4*| arm7*| arm9[ 24] *) echo -mv= 4 ;;
esac
;;
-mfpu= neon) echo --float_support= vfpv3 --neon ;;
-mfpu= vfp) echo --float_support= vfpv2 ;;
-mfpu= vfpv3) echo --float_support= vfpv3 ;;
2012-10-13 01:34:42 +01:00
-mfpu= vfpv3-d16) echo --float_support= vfpv3d16 ;;
2012-07-18 20:27:09 +01:00
-msoft-float) echo --float_support= vfplib ;;
-O[ 0-3] | -mf= *) echo $flag ;;
-g) echo -g -mn ;;
-pds= *) echo $flag ;;
2012-07-20 01:27:53 +01:00
-D*| -I*) echo $flag ;;
--gcc| --abi= *) echo $flag ;;
-me) echo $flag ;;
2012-07-18 20:27:09 +01:00
esac
done
}
2012-07-20 13:43:07 +01:00
probe_cc(){
pfx = $1
_cc = $2
2012-08-28 16:06:56 +01:00
unset _type _ident _cc_c _cc_e _cc_o _flags _cflags
unset _ld_o _ldflags _ld_lib _ld_path
2012-07-20 22:22:41 +01:00
unset _depflags _DEPCMD _DEPFLAGS
2012-07-20 13:43:07 +01:00
_flags_filter = echo
2013-11-08 23:55:06 +01:00
if $_cc --version 2>& 1 | grep -q '^GNU assembler' ; then
true # no-op to avoid reading stdin in following checks
elif $_cc -v 2>& 1 | grep -q '^gcc.*LLVM' ; then
2012-07-20 13:43:07 +01:00
_type = llvm_gcc
gcc_extra_ver = $( expr " $( $_cc --version | head -n1) " : '.*\((.*)\)' )
_ident = "llvm-gcc $( $_cc -dumpversion) $gcc_extra_ver "
_depflags = '-MMD -MF $(@:.o=.d) -MT $@'
_cflags_speed = '-O3'
_cflags_size = '-Os'
elif $_cc -v 2>& 1 | grep -qi ^gcc; then
_type = gcc
gcc_version = $( $_cc --version | head -n1)
gcc_basever = $( $_cc -dumpversion)
gcc_pkg_ver = $( expr " $gcc_version " : '[^ ]* \(([^)]*)\)' )
gcc_ext_ver = $( expr " $gcc_version " : ".* $gcc_pkg_ver $gcc_basever \\(.*\\)" )
_ident = $( cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver " )
if ! $_cc -dumpversion | grep -q '^2\.' ; then
_depflags = '-MMD -MF $(@:.o=.d) -MT $@'
fi
_cflags_speed = '-O3'
_cflags_size = '-Os'
2013-02-25 17:05:22 +01:00
elif $_cc --version 2>/dev/null | grep -q ^icc; then
2012-07-20 13:43:07 +01:00
_type = icc
_ident = $( $_cc --version | head -n1)
_depflags = '-MMD'
_cflags_speed = '-O3'
_cflags_size = '-Os'
_cflags_noopt = '-O1'
elif $_cc -v 2>& 1 | grep -q xlc; then
_type = xlc
_ident = $( $_cc -qversion 2>/dev/null | head -n1)
_cflags_speed = '-O5'
_cflags_size = '-O5 -qcompact'
elif $_cc -V 2>/dev/null | grep -q Compaq; then
_type = ccc
_ident = $( $_cc -V | head -n1 | cut -d' ' -f1-3)
_DEPFLAGS = '-M'
_cflags_speed = '-fast'
_cflags_size = '-O1'
2012-10-23 00:05:44 +01:00
_flags_filter = ccc_flags
2014-04-18 23:40:59 +03:00
elif $_cc --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler" ; then
2012-07-20 13:43:07 +01:00
test -d " $sysroot " || die "No valid sysroot specified."
_type = armcc
2014-04-18 23:40:59 +03:00
_ident = $( $_cc --vsn | head -n1 | sed 's/.*: //' )
2012-07-20 13:43:07 +01:00
armcc_conf = " $PWD /armcc.conf"
$_cc --arm_linux_configure \
--arm_linux_config_file= " $armcc_conf " \
--configure_sysroot= " $sysroot " \
--configure_cpp_headers= " $sysinclude " >>$logfile 2>& 1 ||
die "Error creating armcc configuration file."
$_cc --vsn | grep -q RVCT && armcc_opt = rvct || armcc_opt = armcc
_flags = "--arm_linux_config_file= $armcc_conf --translate_gcc"
as_default = " ${ cross_prefix } gcc"
_depflags = '-MMD'
_cflags_speed = '-O3'
_cflags_size = '-Os'
2012-09-15 15:36:22 +01:00
elif $_cc -version 2>/dev/null | grep -Eq 'TMS470|TI ARM' ; then
2012-07-20 13:43:07 +01:00
_type = tms470
_ident = $( $_cc -version | head -n1 | tr -s ' ' )
_flags = '--gcc --abi=eabi -me'
2012-07-20 22:22:41 +01:00
_cc_e = '-ppl -fe=$@'
2012-07-20 13:43:07 +01:00
_cc_o = '-fe=$@'
_depflags = '-ppa -ppd=$(@:.o=.d)'
_cflags_speed = '-O3 -mf=5'
_cflags_size = '-O3 -mf=2'
_flags_filter = tms470_flags
elif $_cc -v 2>& 1 | grep -q clang; then
_type = clang
_ident = $( $_cc --version | head -n1)
2014-01-25 17:34:19 +01:00
_depflags = '-MMD -MF $(@:.o=.d) -MT $@'
2012-07-20 13:43:07 +01:00
_cflags_speed = '-O3'
_cflags_size = '-Os'
elif $_cc -V 2>& 1 | grep -q Sun; then
_type = suncc
_ident = $( $_cc -V 2>& 1 | head -n1 | cut -d' ' -f 2-)
_DEPCMD = '$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)'
2012-08-09 17:14:32 +02:00
_DEPFLAGS = '-xM1 -xc99'
2012-07-20 13:43:07 +01:00
_ldflags = '-std=c99'
_cflags_speed = '-O5'
_cflags_size = '-O5 -xspace'
_flags_filter = suncc_flags
elif $_cc -v 2>& 1 | grep -q 'PathScale\|Path64' ; then
_type = pathscale
_ident = $( $_cc -v 2>& 1 | head -n1 | tr -d :)
_depflags = '-MMD -MF $(@:.o=.d) -MT $@'
_cflags_speed = '-O2'
_cflags_size = '-Os'
_flags_filter = 'filter_out -Wdisabled-optimization'
elif $_cc -v 2>& 1 | grep -q Open64; then
_type = open64
_ident = $( $_cc -v 2>& 1 | head -n1 | tr -d :)
_depflags = '-MMD -MF $(@:.o=.d) -MT $@'
_cflags_speed = '-O2'
_cflags_size = '-Os'
_flags_filter = 'filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros'
elif $_cc -V 2>& 1 | grep -q Portland; then
_type = pgi
_ident = "PGI $( $_cc -V 2>& 1 | awk '/^pgcc/ { print $2; exit }' ) "
2012-10-05 01:30:28 +01:00
opt_common = '-alias=ansi -Mdse -Mlre -Mpre'
2012-07-20 13:43:07 +01:00
_cflags_speed = "-O3 -Mautoinline -Munroll=c:4 $opt_common "
_cflags_size = "-O2 -Munroll=c:1 $opt_common "
2013-04-18 02:20:04 +02:00
_cflags_noopt = "-O"
2012-07-20 13:43:07 +01:00
_flags_filter = pgi_flags
2012-06-22 12:24:59 +03:00
elif $_cc 2>& 1 | grep -q Microsoft; then
_type = msvc
_ident = $( $cc 2>& 1 | head -n1)
_DEPCMD = '$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk ' \' '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }' \' ' > $(@:.o=.d)'
_DEPFLAGS = '$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
_cflags_speed = "-O2"
_cflags_size = "-O1"
if $_cc 2>& 1 | grep -q Linker; then
2013-11-14 11:58:37 +02:00
_ld_o = '-out:$@'
2012-06-22 12:24:59 +03:00
else
_ld_o = '-Fe$@'
fi
2013-11-14 11:58:37 +02:00
_cc_o = '-Fo$@'
_cc_e = '-P -Fi$@'
2012-06-22 12:24:59 +03:00
_flags_filter = msvc_flags
_ld_lib = 'lib%.a'
_ld_path = '-libpath:'
_flags = '-nologo'
2013-09-19 16:58:21 -04:00
_cflags = '-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64'
2012-06-22 12:24:59 +03:00
if [ $pfx = hostcc ] ; then
2012-09-07 11:13:36 +01:00
append _cflags -Dsnprintf= _snprintf
2012-06-22 12:24:59 +03:00
fi
2012-09-15 16:04:41 -04:00
disable stripping
2013-05-25 06:07:42 -04:00
elif $_cc 2>& 1 | grep -q Intel; then
_type = icl
_ident = $( $cc 2>& 1 | head -n1)
_depflags = '-QMMD -QMF$(@:.o=.d) -QMT$@'
2013-06-20 13:42:21 +02:00
# Not only is O3 broken on 13.x+ but it is slower on all previous
# versions (tested) as well.
2013-05-25 06:07:42 -04:00
_cflags_speed = "-O2"
_cflags_size = "-O1 -Oi" # -O1 without -Oi miscompiles stuff
if $_cc 2>& 1 | grep -q Linker; then
2013-11-14 11:58:37 +02:00
_ld_o = '-out:$@'
2013-05-25 06:07:42 -04:00
else
_ld_o = '-Fe$@'
fi
2013-11-14 11:58:37 +02:00
_cc_o = '-Fo$@'
2013-05-25 06:07:42 -04:00
_cc_e = '-P'
2013-05-30 20:11:20 +00:00
_flags_filter = icl_flags
2013-05-25 06:07:42 -04:00
_ld_lib = 'lib%.a'
_ld_path = '-libpath:'
2013-06-20 13:42:21 +02:00
# -Qdiag-error to make icl error when seeing certain unknown arguments
2013-05-30 20:11:21 +00:00
_flags = '-nologo -Qdiag-error:4044,10157'
2013-06-20 13:42:21 +02:00
# -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency
# with MSVC which enables it by default.
2013-06-18 20:39:47 -04:00
_cflags = '-D_USE_MATH_DEFINES -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS'
2013-05-25 06:07:42 -04:00
if [ $pfx = hostcc ] ; then
append _cflags -Dsnprintf= _snprintf
fi
2013-09-12 20:17:15 +02:00
elif $_cc --version 2>/dev/null | grep -q ^cparser; then
_type = cparser
_ident = $( $_cc --version | head -n1)
_depflags = '-MMD'
_cflags_speed = '-O4'
_cflags_size = '-O2'
_flags_filter = cparser_flags
2009-08-10 17:25:46 +00:00
fi
2012-07-20 13:43:07 +01:00
eval ${ pfx } _type = \$ _type
eval ${ pfx } _ident = \$ _ident
}
set_ccvars(){
2012-07-20 23:43:27 +01:00
eval ${ 1 } _C = \$ { _cc_c-\$ { ${ 1 } _C}}
2012-07-20 22:22:41 +01:00
eval ${ 1 } _E = \$ { _cc_e-\$ { ${ 1 } _E}}
2012-07-20 13:43:07 +01:00
eval ${ 1 } _O = \$ { _cc_o-\$ { ${ 1 } _O}}
if [ -n " $_depflags " ] ; then
eval ${ 1 } _DEPFLAGS = \$ _depflags
else
eval ${ 1 } DEP = \$ { _DEPCMD:-\$ DEPCMD}
eval ${ 1 } DEP_FLAGS = \$ { _DEPFLAGS:-\$ DEPFLAGS}
eval DEP${ 1 } FLAGS = \$ _flags
fi
}
probe_cc cc " $cc "
cflags_filter = $_flags_filter
cflags_speed = $_cflags_speed
cflags_size = $_cflags_size
cflags_noopt = $_cflags_noopt
add_cflags $_flags $_cflags
cc_ldflags = $_ldflags
set_ccvars CC
probe_cc hostcc " $host_cc "
host_cflags_filter = $_flags_filter
add_host_cflags $_flags $_cflags
set_ccvars HOSTCC
2009-02-21 21:07:32 +00:00
2010-06-24 20:49:39 +00:00
test -n " $cc_type " && enable $cc_type ||
warn "Unknown C compiler $cc , unable to select optimal CFLAGS"
2009-02-21 21:07:32 +00:00
2009-07-12 13:29:55 +00:00
: ${ as_default := $cc }
2009-07-12 13:29:43 +00:00
: ${ dep_cc_default := $cc }
2009-07-12 13:29:40 +00:00
: ${ ld_default := $cc }
2012-08-28 13:02:35 +01:00
: ${ host_ld_default := $host_cc }
2013-12-05 17:50:14 -03:00
set_default ar as dep_cc ld host_ld windres
2009-03-09 22:39:49 +00:00
2012-07-20 13:43:07 +01:00
probe_cc as " $as "
asflags_filter = $_flags_filter
add_asflags $_flags $_cflags
set_ccvars AS
probe_cc ld " $ld "
ldflags_filter = $_flags_filter
add_ldflags $_flags $_ldflags
test " $cc_type " != " $ld_type " && add_ldflags $cc_ldflags
2012-08-28 12:50:09 +01:00
LD_O = ${ _ld_o - $LD_O }
2012-08-28 16:06:56 +01:00
LD_LIB = ${ _ld_lib - $LD_LIB }
LD_PATH = ${ _ld_path - $LD_PATH }
2012-07-20 13:43:07 +01:00
2012-08-28 13:02:35 +01:00
probe_cc hostld " $host_ld "
host_ldflags_filter = $_flags_filter
add_host_ldflags $_flags $_ldflags
HOSTLD_O = ${ _ld_o - $HOSTLD_O }
2012-07-20 13:43:07 +01:00
if [ -z " $CC_DEPFLAGS " ] && [ " $dep_cc " != " $cc " ] ; then
probe_cc depcc " $dep_cc "
CCDEP = ${ _DEPCMD :- $DEPCMD }
CCDEP_FLAGS = ${ _DEPFLAGS := $DEPFLAGS }
DEPCCFLAGS = $_flags
fi
2009-08-08 18:27:27 +00:00
2012-09-17 23:56:32 +01:00
if $ar 2>& 1 | grep -q Microsoft; then
arflags = "-nologo"
ar_o = '-out:$@'
elif $ar 2>& 1 | grep -q 'Texas Instruments' ; then
arflags = "rq"
ar_o = '$@'
2013-07-29 18:23:08 +02:00
elif $ar 2>& 1 | grep -q 'Usage: ar.*-X.*any' ; then
arflags = '-Xany -r -c'
ar_o = '$@'
2012-09-17 23:56:32 +01:00
else
arflags = "rc"
ar_o = '$@'
fi
2009-07-12 13:29:51 +00:00
add_cflags $extra_cflags
2011-08-31 04:11:25 +05:30
add_cxxflags $extra_cxxflags
2009-07-12 13:29:53 +00:00
add_asflags $extra_cflags
2009-07-12 13:29:51 +00:00
2009-02-21 21:07:37 +00:00
if test -n " $sysroot " ; then
case " $cc_type " in
2011-02-27 23:34:38 +00:00
gcc| llvm_gcc| clang)
2009-07-12 13:29:35 +00:00
add_cppflags --sysroot= " $sysroot "
2009-02-21 21:07:37 +00:00
add_ldflags --sysroot= " $sysroot "
2014-03-23 17:57:32 +01:00
# On Darwin --sysroot may be ignored, -isysroot always affects headers and linking
add_cppflags -isysroot " $sysroot "
add_ldflags -isysroot " $sysroot "
2009-02-21 21:07:37 +00:00
;;
2009-07-19 10:52:35 +00:00
tms470)
add_cppflags -I" $sysinclude "
add_ldflags --sysroot= " $sysroot "
;;
2009-02-21 21:07:37 +00:00
esac
fi
2009-08-06 15:45:19 +00:00
if test " $cpu " = host; then
2013-06-20 13:42:21 +02:00
enabled cross_compile &&
die "--cpu=host makes no sense when cross-compiling."
2009-08-06 15:45:19 +00:00
case " $cc_type " in
2010-09-02 21:41:07 +00:00
gcc| llvm_gcc)
2009-08-06 15:45:19 +00:00
check_native(){
$cc $1 = native -v -c -o $TMPO $TMPC >$TMPE 2>& 1 || return
2011-07-10 16:17:55 +01:00
sed -n "/cc1.* $1 =/{
2010-01-22 03:14:19 +00:00
s/.* $1 =\\([^ ]*\\).*/\\1/
p
q
}" $TMPE
2009-08-06 15:45:19 +00:00
}
cpu = $( check_native -march || check_native -mcpu)
;;
esac
2013-06-20 13:42:21 +02:00
test " ${ cpu :- host } " = host &&
die "--cpu=host not supported with compiler $cc "
2009-08-06 15:45:19 +00:00
fi
2010-01-18 21:05:01 +00:00
# Deal with common $arch aliases
case " $arch " in
2012-11-16 21:02:53 +00:00
aarch64| arm64)
arch = "aarch64"
;;
2013-07-25 10:52:15 +02:00
arm*| iPad*| iPhone*)
2010-01-18 21:05:01 +00:00
arch = "arm"
;;
2012-10-23 23:34:35 +01:00
mips*| IP*)
2010-01-18 21:05:01 +00:00
arch = "mips"
;;
2012-10-24 00:21:15 +01:00
parisc*| hppa*)
2010-01-18 21:05:01 +00:00
arch = "parisc"
;;
2012-10-23 23:39:40 +01:00
"Power Macintosh" | ppc*| powerpc*)
2010-01-18 21:05:01 +00:00
arch = "ppc"
;;
s390| s390x)
arch = "s390"
;;
sh4| sh)
arch = "sh4"
;;
2012-10-24 18:34:21 +01:00
sun4u| sparc*)
2010-01-18 21:05:01 +00:00
arch = "sparc"
;;
2012-10-16 18:21:06 +00:00
tilegx| tile-gx)
arch = "tilegx"
;;
2011-11-01 14:46:18 +01:00
i[ 3-6] 86| i86pc| BePC| x86pc| x86_64| x86_32| amd64)
2010-01-18 21:05:01 +00:00
arch = "x86"
;;
esac
2010-06-24 20:49:39 +00:00
is_in $arch $ARCH_LIST || warn "unknown architecture $arch "
2010-01-18 21:05:05 +00:00
enable $arch
2010-01-18 21:05:01 +00:00
2009-07-17 08:21:41 +00:00
# Add processor-specific flags
2012-12-03 19:21:42 +00:00
if enabled aarch64; then
2012-11-18 15:22:04 +00:00
case $cpu in
armv*)
cpuflags = "-march= $cpu "
;;
*)
cpuflags = "-mcpu= $cpu "
;;
esac
elif enabled alpha; then
cpuflags = "-mcpu= $cpu "
elif enabled arm; then
2012-11-30 21:14:25 +00:00
check_arm_arch() {
check_cpp_condition stddef.h \
"defined __ARM_ARCH_ ${ 1 } __ || defined __TARGET_ARCH_ ${ 2 :- $1 } " \
$cpuflags
}
probe_arm_arch() {
if check_arm_arch 4; then echo armv4;
elif check_arm_arch 4T; then echo armv4t;
elif check_arm_arch 5; then echo armv5;
elif check_arm_arch 5E; then echo armv5e;
elif check_arm_arch 5T; then echo armv5t;
elif check_arm_arch 5TE; then echo armv5te;
elif check_arm_arch 5TEJ; then echo armv5te;
elif check_arm_arch 6; then echo armv6;
elif check_arm_arch 6J; then echo armv6j;
elif check_arm_arch 6K; then echo armv6k;
elif check_arm_arch 6Z; then echo armv6z;
elif check_arm_arch 6ZK; then echo armv6zk;
elif check_arm_arch 6T2; then echo armv6t2;
elif check_arm_arch 7; then echo armv7;
elif check_arm_arch 7A 7_A; then echo armv7-a;
elif check_arm_arch 7R 7_R; then echo armv7-r;
elif check_arm_arch 7M 7_M; then echo armv7-m;
elif check_arm_arch 7EM 7E_M; then echo armv7-m;
elif check_arm_arch 8A 8_A; then echo armv8-a;
fi
}
[ " $cpu " = generic ] && cpu = $( probe_arm_arch)
2012-11-18 15:22:04 +00:00
case $cpu in
armv*)
cpuflags = "-march= $cpu "
subarch = $( echo $cpu | sed 's/[^a-z0-9]//g' )
;;
*)
cpuflags = "-mcpu= $cpu "
case $cpu in
cortex-a*) subarch = armv7a ;;
cortex-r*) subarch = armv7r ;;
cortex-m*) enable thumb; subarch = armv7m ;;
arm11*) subarch = armv6 ;;
arm[ 79] *e*| arm9[ 24] 6*| arm96*| arm102[ 26]) subarch = armv5te ;;
armv4*| arm7*| arm9[ 24] *) subarch = armv4 ;;
2012-11-30 21:14:25 +00:00
*) subarch = $( probe_arm_arch) ;;
2012-11-18 15:22:04 +00:00
esac
;;
esac
2012-12-03 21:47:17 +00:00
case " $subarch " in
armv5t*) enable fast_clz ;;
armv[ 6-8] *) enable fast_clz fast_unaligned ;;
esac
2012-11-18 15:22:04 +00:00
elif enabled avr32; then
case $cpu in
ap7[ 02] 0[ 0-2])
subarch = "avr32_ap"
cpuflags = "-mpart= $cpu "
;;
ap)
subarch = "avr32_ap"
cpuflags = "-march= $cpu "
;;
uc3[ ab] *)
subarch = "avr32_uc"
cpuflags = "-mcpu= $cpu "
;;
uc)
subarch = "avr32_uc"
cpuflags = "-march= $cpu "
;;
esac
elif enabled bfin; then
cpuflags = "-mcpu= $cpu "
elif enabled mips; then
cpuflags = "-march= $cpu "
2012-11-23 14:03:31 +01:00
case $cpu in
24kc)
disable mipsfpu
disable mipsdspr1
disable mipsdspr2
;;
24kf*)
disable mipsdspr1
disable mipsdspr2
;;
24kec| 34kc| 1004kc)
disable mipsfpu
disable mipsdspr2
;;
24kef*| 34kf*| 1004kf*)
disable mipsdspr2
;;
74kc)
disable mipsfpu
;;
esac
2010-01-18 21:32:57 +00:00
elif enabled ppc; then
2010-01-18 21:05:05 +00:00
2014-03-14 17:20:59 +01:00
disable ldbrx
2010-01-30 18:07:05 +00:00
case $( tolower $cpu ) in
601| ppc601| powerpc601)
2010-01-18 21:05:08 +00:00
cpuflags = "-mcpu=601"
2010-01-30 18:50:28 +00:00
disable altivec
2010-01-18 21:05:08 +00:00
;;
2010-01-30 18:07:05 +00:00
603*| ppc603*| powerpc603*)
2010-01-18 21:05:08 +00:00
cpuflags = "-mcpu=603"
2010-01-30 18:50:28 +00:00
disable altivec
2010-01-18 21:05:08 +00:00
;;
2010-01-30 18:07:05 +00:00
604*| ppc604*| powerpc604*)
2010-01-18 21:05:08 +00:00
cpuflags = "-mcpu=604"
2010-01-30 18:50:28 +00:00
disable altivec
2010-01-18 21:05:08 +00:00
;;
2010-01-30 18:07:05 +00:00
g3| 75*| ppc75*| powerpc75*)
2012-11-14 00:07:13 +00:00
cpuflags = "-mcpu=750"
2010-01-30 18:50:28 +00:00
disable altivec
2010-01-18 21:05:08 +00:00
;;
2010-01-30 18:07:05 +00:00
g4| 745*| ppc745*| powerpc745*)
2012-11-14 00:07:13 +00:00
cpuflags = "-mcpu=7450"
2010-01-18 21:05:08 +00:00
;;
2010-01-30 18:07:05 +00:00
74*| ppc74*| powerpc74*)
2012-11-14 00:07:13 +00:00
cpuflags = "-mcpu=7400"
2010-01-18 21:05:08 +00:00
;;
2012-04-27 14:47:58 +01:00
g5| 970| ppc970| powerpc970)
2012-11-14 00:07:13 +00:00
cpuflags = "-mcpu=970"
2010-01-18 21:05:08 +00:00
;;
2012-04-27 14:47:58 +01:00
power[ 3-7] *)
2012-11-14 00:07:13 +00:00
cpuflags = "-mcpu= $cpu "
2012-04-27 14:47:58 +01:00
;;
2010-01-30 18:07:05 +00:00
cell)
2010-01-18 21:05:08 +00:00
cpuflags = "-mcpu=cell"
enable ldbrx
;;
2012-08-07 12:52:16 -04:00
e500mc)
cpuflags = "-mcpu=e500mc"
disable altivec
;;
2010-01-30 18:07:07 +00:00
e500v2)
cpuflags = "-mcpu=8548 -mhard-float -mfloat-gprs=double"
disable altivec
2014-02-06 12:51:39 +00:00
disable dcbzl
2010-01-30 18:07:07 +00:00
;;
e500)
cpuflags = "-mcpu=8540 -mhard-float"
disable altivec
2014-02-06 12:51:39 +00:00
disable dcbzl
2010-01-30 18:07:07 +00:00
;;
2010-01-18 21:05:08 +00:00
esac
2010-01-18 21:05:05 +00:00
2012-11-18 15:22:04 +00:00
elif enabled sparc; then
case $cpu in
cypress| f93[ 04] | tsc701| sparcl*| supersparc| hypersparc| niagara| v[ 789])
cpuflags = "-mcpu= $cpu "
;;
ultrasparc*| niagara[ 234])
cpuflags = "-mcpu= $cpu "
;;
esac
2010-01-18 21:05:05 +00:00
elif enabled x86; then
2010-01-18 21:05:08 +00:00
case $cpu in
i[ 345] 86| pentium)
cpuflags = "-march= $cpu "
disable mmx
;;
2013-04-26 16:49:02 +02:00
# targets that do NOT support nopl and conditional mov (cmov)
2010-01-18 21:05:08 +00:00
pentium-mmx| k6| k6-[ 23] | winchip-c6| winchip2| c3)
cpuflags = "-march= $cpu "
2013-04-26 16:49:02 +02:00
disable i686
2010-01-18 21:05:08 +00:00
;;
2013-04-26 16:49:02 +02:00
# targets that do support nopl and conditional mov (cmov)
2012-11-25 01:32:57 -05:00
i686| pentiumpro| pentium[ 23] | pentium-m| athlon| athlon-tbird| athlon-4| athlon-[ mx] p| athlon64*| k8*| opteron*| athlon-fx| core2| corei7*| amdfam10| barcelona| atom| bdver*)
2010-01-18 21:05:08 +00:00
cpuflags = "-march= $cpu "
2013-04-26 16:49:02 +02:00
enable i686
2010-01-18 21:05:08 +00:00
enable fast_cmov
;;
# targets that do support conditional mov but on which it's slow
pentium4| pentium4m| prescott| nocona)
cpuflags = "-march= $cpu "
2013-04-26 16:49:02 +02:00
enable i686
2010-01-18 21:05:08 +00:00
disable fast_cmov
;;
esac
2010-01-18 21:05:05 +00:00
fi
2012-12-03 19:21:42 +00:00
if [ " $cpu " != generic ] ; then
add_cflags $cpuflags
add_asflags $cpuflags
fi
2009-07-17 08:21:41 +00:00
2009-02-04 21:28:54 +00:00
# compiler sanity check
check_exec <<EOF
int main(void){ return 0; }
EOF
if test " $? " != 0; then
echo " $cc is unable to create an executable file."
if test -z " $cross_prefix " && ! enabled cross_compile ; then
echo "If $cc is a cross-compiler, use the --enable-cross-compile option."
echo "Only do this if you know what cross compiling means."
fi
die "C compiler test failed."
fi
2011-05-11 17:52:51 +02:00
add_cppflags -D_ISOC99_SOURCE
2011-08-31 04:11:25 +05:30
add_cxxflags -D__STDC_CONSTANT_MACROS
2008-08-14 23:38:09 +00:00
check_cflags -std= c99
2009-07-12 13:29:32 +00:00
check_cc -D_FILE_OFFSET_BITS= 64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64
2009-03-03 12:52:12 +00:00
#include <stdlib.h>
EOF
2009-07-12 13:29:32 +00:00
check_cc -D_LARGEFILE_SOURCE <<EOF && add_cppflags -D_LARGEFILE_SOURCE
2009-03-03 12:52:12 +00:00
#include <stdlib.h>
EOF
2008-08-14 23:38:09 +00:00
2014-01-21 19:54:14 +01:00
add_host_cppflags -D_ISOC99_SOURCE
2009-10-28 20:19:15 +00:00
check_host_cflags -std= c99
2011-05-16 16:16:14 +02:00
check_host_cflags -Wall
2014-01-21 19:54:14 +01:00
check_host_cflags -O3
2009-10-28 20:19:15 +00:00
2012-10-23 23:33:44 +01:00
check_64bit(){
arch32 = $1
arch64 = $2
expr = $3
check_code cc "" "int test[2*( $expr ) - 1]" &&
subarch = $arch64 || subarch = $arch32
}
2008-05-13 16:32:51 +00:00
case " $arch " in
2013-01-10 12:22:53 +00:00
aarch64| alpha| ia64)
2009-08-20 01:06:18 +00:00
spic = $shared
2009-02-21 16:03:25 +00:00
;;
2012-10-23 23:34:35 +01:00
mips)
check_64bit mips mips64 '_MIPS_SIM > 1'
2009-08-20 01:06:18 +00:00
spic = $shared
2009-02-21 16:03:25 +00:00
;;
2012-10-24 00:21:15 +01:00
parisc)
check_64bit parisc parisc64 'sizeof(void *) > 4'
spic = $shared
;;
2012-10-23 23:39:40 +01:00
ppc)
check_64bit ppc ppc64 'sizeof(void *) > 4'
2012-12-03 22:53:30 +01:00
spic = $shared
2012-10-23 23:39:40 +01:00
;;
2014-03-02 02:11:05 -05:00
s390)
check_64bit s390 s390x 'sizeof(void *) > 4'
spic = $shared
;;
2012-10-24 18:34:21 +01:00
sparc)
check_64bit sparc sparc64 'sizeof(void *) > 4'
spic = $shared
;;
2010-01-18 21:05:01 +00:00
x86)
2012-10-23 23:33:44 +01:00
check_64bit x86_32 x86_64 'sizeof(void *) > 4'
2009-10-01 21:38:25 +00:00
if test " $subarch " = "x86_64" ; then
2010-01-18 21:05:01 +00:00
spic = $shared
2009-10-01 21:38:25 +00:00
fi
2008-05-13 16:32:51 +00:00
;;
2011-08-29 21:48:31 +02:00
ppc)
check_cc <<EOF && subarch="ppc64"
int test[(int)sizeof(char*) - 7];
EOF
;;
2008-05-13 16:32:51 +00:00
esac
2010-01-18 21:05:05 +00:00
enable $subarch
2013-05-09 15:39:25 +03:00
enabled spic && enable_weak pic
2008-05-13 16:32:51 +00:00
2007-02-17 18:32:04 +00:00
# OS specific
2008-03-25 15:17:47 +00:00
case $target_os in
2013-06-30 13:47:10 +02:00
aix)
2013-07-25 11:37:20 -04:00
SHFLAGS = -shared
2013-07-04 21:53:08 +02:00
add_cppflags '-I\$(SRC_PATH)/compat/aix'
2013-07-25 11:37:20 -04:00
enabled shared && add_ldflags -Wl,-brtl
2013-06-30 13:47:10 +02:00
;;
2010-06-10 16:51:14 +00:00
haiku)
2010-06-10 16:58:04 +00:00
prefix_default = "/boot/common"
2010-06-10 17:20:05 +00:00
network_extralibs = "-lnetwork"
2011-02-08 21:09:44 +00:00
host_libs =
2010-06-10 16:51:14 +00:00
;;
2007-11-23 11:09:28 +00:00
sunos)
2008-04-10 19:44:29 +00:00
SHFLAGS = '-shared -Wl,-h,$$(@F)'
2009-10-26 10:18:35 +00:00
enabled x86 && SHFLAGS = "-mimpure-text $SHFLAGS "
2007-11-23 11:09:28 +00:00
network_extralibs = "-lsocket -lnsl"
2011-09-17 00:36:37 -04:00
# When using suncc to build, the Solaris linker will mark
# an executable with each instruction set encountered by
# the Solaris assembler. As our libraries contain their own
# guards for processor-specific code, instead suppress
# generation of the HWCAPS ELF section on Solaris x86 only.
2013-06-20 13:42:21 +02:00
enabled_all suncc x86 &&
echo "hwcap_1 = OVERRIDE;" > mapfile &&
add_ldflags -Wl,-M,mapfile
2012-09-16 21:47:16 +01:00
nm_default = 'nm -P -g'
2007-02-17 18:32:04 +00:00
;;
2007-11-23 11:09:28 +00:00
netbsd)
2011-01-23 20:48:51 +00:00
disable symver
2009-06-29 20:45:49 +00:00
oss_indev_extralibs = "-lossaudio"
oss_outdev_extralibs = "-lossaudio"
2012-09-12 19:37:29 +02:00
enabled gcc || check_ldflags -Wl,-zmuldefs
2007-11-23 11:09:28 +00:00
;;
2012-06-13 19:56:29 -04:00
openbsd| bitrig)
2011-01-23 20:48:51 +00:00
disable symver
2007-11-23 11:09:28 +00:00
SHFLAGS = '-shared'
2013-02-03 15:02:31 +01:00
SLIB_INSTALL_NAME = '$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
2012-08-26 16:23:06 -04:00
SLIB_INSTALL_LINKS =
2009-06-29 20:45:49 +00:00
oss_indev_extralibs = "-lossaudio"
oss_outdev_extralibs = "-lossaudio"
2007-11-23 11:09:28 +00:00
;;
2011-01-23 20:48:51 +00:00
dragonfly)
disable symver
;;
freebsd)
2007-11-23 11:09:28 +00:00
;;
bsd/os)
2010-07-05 17:31:18 +00:00
add_extralibs -lpoll -lgnugetopt
2011-04-01 00:24:12 +02:00
strip = "strip -d"
2007-11-23 11:09:28 +00:00
;;
darwin)
2013-04-16 13:40:45 +02:00
test " ${ as #*gas-preprocessor.pl } " != " $as " || gas = " ${ gas :=gas-preprocessor.pl } ${ as := $cc } "
2010-07-01 23:21:33 +00:00
enabled ppc && add_asflags -force_cpusubtype_ALL
2012-03-07 17:03:06 +01:00
SHFLAGS = '-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
2011-03-16 01:01:17 +00:00
enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
2011-04-01 00:24:12 +02:00
strip = " ${ strip } -x"
2010-07-05 17:31:18 +00:00
add_ldflags -Wl,-dynamic,-search_paths_first
2007-11-23 11:09:28 +00:00
SLIBSUF = ".dylib"
SLIBNAME_WITH_VERSION = '$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR = '$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
2008-08-11 23:53:31 +00:00
objformat = "macho"
2008-08-16 17:18:23 +00:00
enabled x86_64 && objformat = "macho64"
2009-10-02 08:41:54 +00:00
enabled_any pic shared ||
2009-08-10 08:18:05 +00:00
{ check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
2007-11-23 11:09:28 +00:00
;;
mingw32*)
2009-07-28 08:50:58 +00:00
if test $target_os = "mingw32ce" ; then
2009-07-27 16:14:57 +00:00
disable network
else
target_os = mingw32
fi
2008-05-13 16:37:32 +00:00
LIBTARGET = i386
2009-01-11 22:32:45 +00:00
if enabled x86_64; then
2012-08-01 17:01:37 +02:00
LIBTARGET = "i386:x86-64"
2009-07-13 19:08:27 +00:00
elif enabled arm; then
2011-03-22 15:07:15 +02:00
LIBTARGET = arm-wince
2008-05-13 16:37:32 +00:00
fi
2013-12-05 17:50:14 -03:00
enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres
2013-05-14 10:05:52 -04:00
check_ldflags -Wl,--nxcompat
check_ldflags -Wl,--dynamicbase
2008-06-08 21:34:19 +00:00
shlibdir_default = " $bindir_default "
2007-11-23 11:09:28 +00:00
SLIBPREF = ""
SLIBSUF = ".dll"
SLIBNAME_WITH_VERSION = '$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR = '$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
2012-08-01 17:01:37 +02:00
dlltool = " ${ cross_prefix } dlltool"
2012-08-05 10:23:50 +02:00
if check_cmd lib.exe -list; then
2012-12-03 15:28:35 +01:00
SLIB_EXTRA_CMD = -'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
2012-08-01 17:01:37 +02:00
if enabled x86_64; then
LIBTARGET = x64
fi
elif check_cmd $dlltool --version; then
2012-12-03 15:28:35 +01:00
SLIB_EXTRA_CMD = -'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
2012-08-01 17:01:37 +02:00
fi
2011-07-07 15:25:30 +01:00
SLIB_INSTALL_NAME = '$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS =
SLIB_INSTALL_EXTRA_SHLIB = '$(SLIBNAME:$(SLIBSUF)=.lib)'
SLIB_INSTALL_EXTRA_LIB = 'lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
2012-11-17 16:34:54 +02:00
SHFLAGS = '-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.orig.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
2008-08-11 23:53:31 +00:00
objformat = "win32"
2012-09-04 15:20:45 +01:00
ranlib = :
2008-10-10 16:59:37 +00:00
enable dos_paths
2007-11-23 11:09:28 +00:00
;;
2012-10-13 15:57:56 +03:00
win32| win64)
2013-11-19 17:53:00 +00:00
disable symver
2012-10-18 11:53:19 +03:00
if enabled shared; then
# Link to the import library instead of the normal static library
# for shared libs.
LD_LIB = '%.lib'
2013-09-10 12:28:19 +02:00
# Cannot build both shared and static libs with MSVC or icl.
2012-10-18 11:53:19 +03:00
disable static
fi
shlibdir_default = " $bindir_default "
SLIBPREF = ""
SLIBSUF = ".dll"
SLIBNAME_WITH_VERSION = '$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR = '$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
2013-11-21 10:36:06 +00:00
SLIB_CREATE_DEF_CMD = '$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)'
2012-10-18 11:53:19 +03:00
SLIB_INSTALL_NAME = '$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS =
SLIB_INSTALL_EXTRA_SHLIB = '$(SLIBNAME:$(SLIBSUF)=.lib)'
SLIB_INSTALL_EXTRA_LIB = '$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
SHFLAGS = '-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
2012-10-13 15:57:56 +03:00
objformat = "win32"
ranlib = :
enable dos_paths
;;
2007-11-23 11:09:28 +00:00
cygwin*)
2008-03-25 15:17:47 +00:00
target_os = cygwin
2008-06-08 21:34:19 +00:00
shlibdir_default = " $bindir_default "
2007-11-23 11:09:28 +00:00
SLIBPREF = "cyg"
SLIBSUF = ".dll"
SLIBNAME_WITH_VERSION = '$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR = '$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
2012-08-07 00:32:48 +01:00
SLIB_INSTALL_NAME = '$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS =
SLIB_INSTALL_EXTRA_LIB = 'lib$(FULLNAME).dll.a'
SHFLAGS = '-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
2008-08-11 23:53:31 +00:00
objformat = "win32"
2008-10-10 16:59:37 +00:00
enable dos_paths
2013-12-05 17:50:14 -03:00
enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres
2007-11-23 11:09:28 +00:00
;;
2007-12-24 12:49:27 +00:00
*-dos| freedos| opendos)
network_extralibs = "-lsocket"
2009-01-11 02:19:33 +00:00
objformat = "coff"
2008-10-10 16:59:37 +00:00
enable dos_paths
2011-05-15 14:32:15 +02:00
add_cppflags -U__STRICT_ANSI__
2007-12-24 12:49:27 +00:00
;;
2007-11-23 11:09:28 +00:00
linux)
enable dv1394
;;
irix*)
2008-03-25 15:17:47 +00:00
target_os = irix
2007-11-23 11:09:28 +00:00
ranlib = "echo ignoring ranlib"
;;
2007-12-05 23:15:24 +00:00
os/2*)
2011-04-01 00:24:12 +02:00
strip = "lxlite -CS"
2007-12-05 23:15:24 +00:00
ln_s = "cp -f"
2011-05-20 17:26:52 +02:00
objformat = "aout"
2011-05-26 14:21:04 +02:00
add_cppflags -D_GNU_SOURCE
2010-07-05 17:31:18 +00:00
add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
2008-04-07 21:16:31 +00:00
SHFLAGS = '$(SUBDIR)$(NAME).def -Zdll -Zomf'
2008-03-20 19:26:24 +00:00
LIBSUF = "_s.a"
2007-12-05 23:15:24 +00:00
SLIBPREF = ""
SLIBSUF = ".dll"
SLIBNAME_WITH_VERSION = '$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR = '$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
2008-04-07 21:16:31 +00:00
SLIB_CREATE_DEF_CMD = 'echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \
2012-08-19 21:35:30 +02:00
echo PROTMODE >> $(SUBDIR)$(NAME).def; \
echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \
echo EXPORTS >> $(SUBDIR)$(NAME).def; \
emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def'
2008-04-07 21:16:31 +00:00
SLIB_EXTRA_CMD = 'emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \
2012-08-19 21:35:30 +02:00
emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;'
2011-07-07 15:25:30 +01:00
SLIB_INSTALL_EXTRA_LIB = '$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib'
2008-10-10 16:59:37 +00:00
enable dos_paths
2011-11-02 00:00:21 +09:00
enable_weak os2threads
2007-12-05 23:15:24 +00:00
;;
2009-05-14 11:45:41 +00:00
gnu/kfreebsd)
2012-10-13 18:21:34 +01:00
add_cppflags -D_BSD_SOURCE
2009-05-14 11:45:41 +00:00
;;
2009-05-25 05:39:58 +00:00
gnu)
;;
2011-01-30 01:05:39 +00:00
qnx)
add_cppflags -D_QNX_SOURCE
network_extralibs = "-lsocket"
;;
2011-01-25 10:48:38 +02:00
symbian)
SLIBSUF = ".dll"
enable dos_paths
2011-07-15 10:53:12 +03:00
add_cflags --include= $sysinclude /gcce/gcce.h -fvisibility= default
add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
add_ldflags -Wl,--target1-abs,--no-undefined \
-Wl,-Ttext,0x80000,-Tdata,0x1000000 -shared \
-Wl,--entry= _E32Startup -Wl,-u,_E32Startup
add_extralibs -l:eexe.lib -l:usrt2_2.lib -l:dfpaeabi.dso \
-l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \
-l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib
2011-01-25 10:48:38 +02:00
;;
2012-10-11 12:33:38 +01:00
osf1)
add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT
;;
2012-10-12 21:42:27 +00:00
minix)
;;
2012-10-15 02:38:17 +01:00
plan9)
add_cppflags -D_C99_SNPRINTF_EXTENSION \
-D_REENTRANT_SOURCE \
-D_RESEARCH_SOURCE \
-DFD_SETSIZE= 96 \
-DHAVE_SOCK_OPTS
add_compat strtod.o strtod = avpriv_strtod
network_extralibs = '-lbsd'
exeobjs = compat/plan9/main.o
2012-10-24 13:31:46 +02:00
disable ffserver
2012-10-15 02:38:17 +01:00
cp_f = 'cp'
;;
2010-02-09 22:55:08 +00:00
none)
;;
2007-11-23 11:09:28 +00:00
*)
2009-01-26 14:32:01 +00:00
die "Unknown OS ' $target_os '."
2007-02-17 18:32:04 +00:00
;;
esac
2012-09-04 13:57:37 +01:00
# determine libc flavour
2013-02-28 16:16:10 +01:00
probe_libc(){
pfx = $1
2013-12-13 23:19:55 +01:00
pfx_no_ = ${ pfx %_ }
2013-02-28 16:16:10 +01:00
# uclibc defines __GLIBC__, so it needs to be checked before glibc.
if check_${ pfx } cpp_condition features.h "defined __UCLIBC__" ; then
eval ${ pfx } libc_type = uclibc
add_${ pfx } cppflags -D_POSIX_C_SOURCE= 200112 -D_XOPEN_SOURCE= 600
elif check_${ pfx } cpp_condition features.h "defined __GLIBC__" ; then
eval ${ pfx } libc_type = glibc
add_${ pfx } cppflags -D_POSIX_C_SOURCE= 200112 -D_XOPEN_SOURCE= 600
# MinGW headers can be installed on Cygwin, so check for newlib first.
elif check_${ pfx } cpp_condition newlib.h "defined _NEWLIB_VERSION" ; then
eval ${ pfx } libc_type = newlib
add_${ pfx } cppflags -U__STRICT_ANSI__
# MinGW64 is backwards compatible with MinGW32, so check for it first.
elif check_${ pfx } cpp_condition _mingw.h "defined __MINGW64_VERSION_MAJOR" ; then
eval ${ pfx } libc_type = mingw64
2013-12-10 01:56:49 +01:00
if check_${ pfx } cpp_condition _mingw.h "__MINGW64_VERSION_MAJOR < 3" ; then
add_compat msvcrt/snprintf.o
add_cflags "-include $source_path /compat/msvcrt/snprintf.h"
fi
2013-12-09 00:50:39 +01:00
add_${ pfx } cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO= 1
2013-12-13 23:19:55 +01:00
eval test \$ ${ pfx_no_ } cc_type = "gcc" &&
add_${ pfx } cppflags -D__printf__= __gnu_printf__
2013-12-12 00:34:43 +01:00
elif check_${ pfx } cpp_condition _mingw.h "defined __MINGW_VERSION" ||
check_${ pfx } cpp_condition _mingw.h "defined __MINGW32_VERSION" ; then
2013-02-28 16:16:10 +01:00
eval ${ pfx } libc_type = mingw32
check_${ pfx } cpp_condition _mingw.h "__MINGW32_MAJOR_VERSION > 3 || \
(__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW32 runtime version must be >= 3.15."
2013-12-12 00:39:43 +01:00
add_${ pfx } cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO= 1
2013-12-13 23:19:55 +01:00
eval test \$ ${ pfx_no_ } cc_type = "gcc" &&
add_${ pfx } cppflags -D__printf__= __gnu_printf__
2013-02-28 16:16:10 +01:00
elif check_${ pfx } cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION" ; then
eval ${ pfx } libc_type = msvcrt
# The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to
# 0x601 by default unless something else is set by the user.
# This can easily lead to us detecting functions only present
# in such new versions and producing binaries requiring windows 7.0.
# Therefore explicitly set the default to XP unless the user has
# set something else on the command line.
check_${ pfx } cpp_condition stdlib.h "defined(_WIN32_WINNT)" ||
add_${ pfx } cppflags -D_WIN32_WINNT= 0x0502
elif check_${ pfx } cpp_condition stddef.h "defined __KLIBC__" ; then
eval ${ pfx } libc_type = klibc
elif check_${ pfx } cpp_condition sys/cdefs.h "defined __BIONIC__" ; then
eval ${ pfx } libc_type = bionic
2013-12-12 12:14:30 +01:00
elif check_${ pfx } cpp_condition sys/brand.h "defined LABELED_BRAND_NAME" ; then
2013-02-28 16:16:10 +01:00
eval ${ pfx } libc_type = solaris
add_${ pfx } cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE= 600
2013-12-08 16:13:07 -03:00
fi
2013-02-28 16:16:10 +01:00
}
2012-09-04 13:57:37 +01:00
2013-02-28 16:16:10 +01:00
probe_libc
2013-12-04 12:21:30 -05:00
test -n " $libc_type " && enable libc_$libc_type
2013-02-28 16:16:10 +01:00
probe_libc host_
test -n " $host_libc_type " && enable host_libc_$host_libc_type
2012-09-04 13:57:37 +01:00
2013-12-01 23:06:02 -05:00
case $libc_type in
bionic)
add_compat strtod.o strtod = avpriv_strtod
;;
msvcrt)
add_compat strtod.o strtod = avpriv_strtod
add_compat msvcrt/snprintf.o snprintf = avpriv_snprintf \
_snprintf = avpriv_snprintf \
vsnprintf = avpriv_vsnprintf
;;
esac
2012-10-13 02:28:41 +01:00
# hacks for compiler/libc/os combinations
2013-12-04 12:21:30 -05:00
if enabled_all tms470 libc_glibc; then
2012-10-13 03:16:13 +01:00
CPPFLAGS = "-I ${ source_path } /compat/tms470 ${ CPPFLAGS } "
2012-10-13 02:28:41 +01:00
add_cppflags -D__USER_LABEL_PREFIX__=
add_cppflags -D__builtin_memset= memset
add_cppflags -D__gnuc_va_list= va_list -D_VA_LIST_DEFINED
add_cflags -pds= 48 # incompatible redefinition of macro
fi
2013-12-04 12:21:30 -05:00
if enabled_all ccc libc_glibc; then
2012-10-23 00:05:44 +01:00
add_ldflags -Wl,-z,now # calls to libots crash without this
fi
2013-11-14 12:19:04 +01:00
check_compile_assert flt_lim "float.h limits.h" "DBL_MAX == (double)DBL_MAX" ||
add_cppflags '-I\$(SRC_PATH)/compat/float'
2012-04-12 21:32:33 +01:00
esc(){
echo " $* " | sed 's/%/%25/g;s/:/%3a/g'
}
2012-04-13 21:21:15 +02:00
echo "config: $arch : $subarch : $cpu : $target_os : $( esc $cc_ident ) : $( esc $FFMPEG_CONFIGURATION ) " >config.fate
2010-08-26 22:22:27 +00:00
2013-05-09 15:39:25 +03:00
check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic
2010-03-30 16:28:00 +00:00
2008-06-02 23:51:36 +00:00
set_default $PATHS_LIST
2012-09-16 21:47:16 +01:00
set_default nm
2008-06-02 23:51:36 +00:00
2006-01-30 00:22:41 +00:00
# we need to build at least one lib type
2007-08-01 20:23:29 +00:00
if ! enabled_any static shared; then
2006-01-30 00:22:41 +00:00
cat <<EOF
At least one library type must be built.
Specify --enable-static to build the static libraries or --enable-shared to
build the shared libraries as well. To only build the shared libraries specify
--disable-static in addition to --enable-shared.
EOF
exit 1;
fi
2009-04-29 15:32:40 +00:00
die_license_disabled() {
2009-04-29 16:14:33 +00:00
enabled $1 || { enabled $2 && die " $2 is $1 and --enable- $1 is not specified." ; }
2009-04-29 15:32:40 +00:00
}
2012-05-28 15:44:11 +02:00
die_license_disabled_gpl() {
enabled $1 || { enabled $2 && die " $2 is incompatible with the gpl and --enable- $1 is not specified." ; }
}
2013-06-13 01:29:23 +02:00
die_license_disabled gpl frei0r
2011-09-13 17:23:06 +02:00
die_license_disabled gpl libcdio
2012-03-08 10:18:13 -09:00
die_license_disabled gpl libutvideo
2013-04-19 01:49:27 +02:00
die_license_disabled gpl libvidstab
2009-04-29 15:32:40 +00:00
die_license_disabled gpl libx264
2013-10-02 14:46:26 +00:00
die_license_disabled gpl libx265
2010-07-27 07:18:36 +00:00
die_license_disabled gpl libxavs
2009-04-29 15:32:40 +00:00
die_license_disabled gpl libxvid
2013-09-01 23:05:50 +02:00
die_license_disabled gpl libzvbi
2009-04-29 15:32:40 +00:00
die_license_disabled gpl x11grab
2011-09-26 02:28:21 +02:00
die_license_disabled nonfree libaacplus
2009-04-29 15:40:25 +00:00
die_license_disabled nonfree libfaac
2012-07-13 00:51:01 +02:00
enabled gpl && die_license_disabled_gpl nonfree libfdk_aac
2012-07-18 22:27:46 +02:00
enabled gpl && die_license_disabled_gpl nonfree openssl
2004-04-09 14:50:00 +00:00
2009-06-05 12:32:40 +00:00
die_license_disabled version3 libopencore_amrnb
die_license_disabled version3 libopencore_amrwb
2010-12-19 21:40:23 +02:00
die_license_disabled version3 libvo_aacenc
2009-12-29 16:48:09 +02:00
die_license_disabled version3 libvo_amrwbenc
2009-06-05 12:32:40 +00:00
2009-06-05 11:04:03 +00:00
enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
2008-01-26 13:24:32 +00:00
2008-06-25 15:41:36 +00:00
disabled optimizations || check_cflags -fomit-frame-pointer
2003-10-18 18:47:06 +00:00
2013-05-09 15:39:25 +03:00
enable_weak_pic() {
disabled pic && return
2009-10-11 14:32:18 +00:00
enable pic
2009-08-23 13:46:07 +00:00
add_cppflags -DPIC
2013-06-05 14:51:28 +03:00
case " $target_os " in
mingw*| cygwin*)
;;
*)
add_cflags -fPIC
;;
esac
2009-08-23 13:46:07 +00:00
add_asflags -fPIC
2009-10-11 14:32:18 +00:00
}
2013-05-09 15:39:25 +03:00
enabled pic && enable_weak_pic
2009-08-23 13:46:07 +00:00
2008-03-18 02:01:20 +00:00
check_cc <<EOF || die "Symbol mangling check failed."
int ff_extern;
EOF
2012-09-16 21:47:16 +01:00
sym = $( $nm $TMPO | awk '/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }' )
2008-03-18 02:01:20 +00:00
extern_prefix = ${ sym %%ff_extern* }
2012-09-04 18:23:25 +02:00
check_cc <<EOF && enable_weak inline_asm
2009-03-05 21:20:04 +00:00
void foo(void) { __asm__ volatile ("" ::); }
EOF
2008-02-27 22:06:48 +00:00
2009-07-22 20:41:41 +00:00
_restrict =
for restrict_keyword in restrict __restrict__ __restrict; do
check_cc <<EOF && _restrict=$restrict_keyword && break
void foo(char * $restrict_keyword p);
EOF
done
2013-03-27 18:23:01 +01:00
check_cc <<EOF && enable pragma_deprecated
2013-08-02 22:03:09 +02:00
void foo(void) { _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") }
2013-03-27 18:23:01 +01:00
EOF
2009-07-22 20:41:41 +00:00
check_cc <<EOF && enable attribute_packed
struct { int x; } __attribute__((packed)) x;
EOF
2010-01-29 03:26:12 +00:00
check_cc <<EOF && enable attribute_may_alias
union { int x; } __attribute__((may_alias)) x;
EOF
2009-07-22 20:41:41 +00:00
check_cc <<EOF || die "endian test failed"
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
EOF
2010-01-19 15:52:43 +00:00
od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
2009-07-22 20:41:41 +00:00
2013-07-09 20:51:00 +03:00
check_inline_asm inline_asm_labels '"1:\n"'
2014-03-18 15:29:14 +11:00
check_inline_asm inline_asm_nonlocal_labels '"Label:\n"'
2013-12-10 20:13:32 +01:00
if enabled aarch64; then
2014-04-05 13:46:51 +02:00
enabled armv8 && check_insn armv8 'prfm pldl1strm, [x0]'
2013-12-10 20:13:32 +01:00
# internal assembler in clang 3.3 does not support this instruction
enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1'
enabled vfp && check_insn vfp 'fmadd d0, d0, d1, d2'
map 'enabled_any ${v}_external ${v}_inline || disable $v' $ARCH_EXT_LIST_ARM
elif enabled alpha; then
2010-01-18 21:05:01 +00:00
check_cflags -mieee
elif enabled arm; then
2009-07-23 23:30:50 +00:00
2012-12-04 05:35:11 +01:00
check_cpp_condition stddef.h "defined __thumb__" && check_cc <<EOF && enable_weak thumb
float func(float a, float b){ return a+b; }
EOF
2011-06-14 11:29:48 +01:00
enabled thumb && check_cflags -mthumb || check_cflags -marm
2010-07-02 02:03:20 +00:00
nogas = die
2009-10-02 08:41:52 +00:00
2011-01-16 18:42:36 +00:00
if check_cpp_condition stddef.h "defined __ARM_PCS_VFP" ; then
enable vfp_args
elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__" ; then
case " ${ cross_prefix :- $cc } " in
*hardfloat*) enable vfp_args; fpabi = vfp ;;
2011-08-31 04:11:25 +05:30
*) check_ld "cc" <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
2009-07-22 16:05:24 +00:00
__asm__ (".eabi_attribute 28, 1");
int main(void) { return 0; }
EOF
2011-01-16 18:42:36 +00:00
esac
warn "Compiler does not indicate floating-point ABI, guessing $fpabi ."
fi
2009-07-22 16:05:24 +00:00
2012-12-01 15:19:10 +00:00
enabled armv5te && check_insn armv5te 'qadd r0, r0, r0'
enabled armv6 && check_insn armv6 'sadd16 r0, r0, r0'
enabled armv6t2 && check_insn armv6t2 'movt r0, #0'
enabled neon && check_insn neon 'vadd.i16 q0, q0, q0'
2012-12-04 23:29:34 +00:00
enabled vfp && check_insn vfp 'fadds s0, s0, s0'
2012-12-01 15:19:10 +00:00
enabled vfpv3 && check_insn vfpv3 'vmov.f32 s0, #1.0'
2012-12-05 02:11:22 +00:00
[ $target_os = linux ] ||
map 'enabled_any ${v}_external ${v}_inline || disable $v' \
$ARCH_EXT_LIST_ARM
2009-07-23 23:30:50 +00:00
2012-08-07 23:46:52 +02:00
check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
2011-10-02 23:38:32 +01:00
2013-05-28 15:08:57 +03:00
[ $target_os != win32 ] && enabled_all armv6t2 shared !pic && enable_weak_pic
2009-10-11 14:32:18 +00:00
2009-07-22 16:05:24 +00:00
elif enabled mips; then
2009-07-23 23:30:50 +00:00
2012-08-07 23:46:52 +02:00
check_inline_asm loongson '"dmult.g $1, $2, $3"'
2012-07-27 14:17:06 +02:00
enabled mips32r2 && add_cflags "-mips32r2" && add_asflags "-mips32r2" &&
2012-08-12 13:43:03 +02:00
check_inline_asm mips32r2 '"rotr $t0, $t1, 1"'
2012-06-04 18:02:56 +02:00
enabled mipsdspr1 && add_cflags "-mdsp" && add_asflags "-mdsp" &&
2012-08-12 13:43:03 +02:00
check_inline_asm mipsdspr1 '"addu.qb $t0, $t1, $t2"'
2012-06-04 18:02:56 +02:00
enabled mipsdspr2 && add_cflags "-mdspr2" && add_asflags "-mdspr2" &&
2012-08-12 13:43:03 +02:00
check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"'
2012-07-27 14:17:06 +02:00
enabled mipsfpu && add_cflags "-mhard-float" && add_asflags "-mhard-float" &&
2012-08-12 13:43:03 +02:00
check_inline_asm mipsfpu '"madd.d $f0, $f2, $f4, $f6"'
2009-07-23 23:30:50 +00:00
2012-11-14 15:56:46 +00:00
elif enabled parisc; then
if enabled gcc; then
case $( $cc -dumpversion) in
4.[ 3-8] .*) check_cflags -fno-optimize-sibling-calls ;;
esac
fi
2009-07-22 16:05:24 +00:00
elif enabled ppc; then
2009-07-23 23:30:50 +00:00
2010-02-17 20:36:15 +00:00
enable local_aligned_8 local_aligned_16
2012-08-07 23:46:52 +02:00
check_inline_asm dcbzl '"dcbzl 0, %0" :: "r"(0)'
check_inline_asm ibm_asm '"add 0, 0, 0"'
check_inline_asm ppc4xx '"maclhw r10, r11, r12"'
check_inline_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
2009-07-22 16:05:24 +00:00
# AltiVec flags: The FSF version of GCC differs from the Apple version
if enabled altivec; then
2013-08-02 23:23:58 +02:00
if ! enabled_any pic ppc64; then
nogas = warn
fi
2009-07-22 16:05:24 +00:00
check_cflags -maltivec -mabi= altivec &&
{ check_header altivec.h && inc_altivec_h = "#include <altivec.h>" ; } ||
check_cflags -faltivec
# check if our compiler supports Motorola AltiVec C API
check_cc <<EOF || disable altivec
$inc_altivec_h
int main(void) {
2012-08-16 00:10:33 +01:00
vector signed int v1 = (vector signed int) { 0 };
vector signed int v2 = (vector signed int) { 1 };
v1 = vec_add(v1, v2);
2009-07-22 16:05:24 +00:00
return 0;
}
EOF
2012-08-16 00:10:33 +01:00
enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
2009-07-22 16:05:24 +00:00
fi
2009-07-23 23:30:50 +00:00
2009-07-22 16:05:24 +00:00
elif enabled x86; then
2009-07-23 23:30:50 +00:00
2013-03-04 23:02:02 +01:00
check_builtin rdtsc intrin.h "__rdtsc()"
check_builtin mm_empty mmintrin.h "_mm_empty()"
2012-07-09 01:24:37 +02:00
2010-02-17 20:36:15 +00:00
enable local_aligned_8 local_aligned_16
2007-03-29 14:20:30 +00:00
# check whether EBP is available on x86
# As 'i' is stored on the stack, this program will crash
# if the base pointer is used to access it because the
# base pointer is cleared in the inline assembly code.
2007-04-13 20:16:13 +00:00
check_exec_crash <<EOF && enable ebp_available
2012-08-19 21:35:30 +02:00
volatile int i=0;
__asm__ volatile ("xorl %%ebp, %%ebp" ::: "%ebp");
return i;
2007-03-29 14:20:30 +00:00
EOF
2009-09-30 12:39:18 +00:00
# check whether EBX is available on x86
2012-08-07 23:46:52 +02:00
check_inline_asm ebx_available '""::"b"(0)' &&
check_inline_asm ebx_available '"":::"%ebx"'
2007-05-12 03:20:41 +00:00
2010-10-06 01:26:13 +00:00
# check whether xmm clobbers are supported
2012-08-07 23:46:52 +02:00
check_inline_asm xmm_clobbers '"":::"%xmm0"'
2010-10-06 01:26:13 +00:00
2014-03-20 13:14:33 +01:00
check_inline_asm inline_asm_direct_symbol_refs '"movl ' $extern_prefix 'test, %eax"' ||
check_inline_asm inline_asm_direct_symbol_refs '"movl ' $extern_prefix 'test(%rip), %eax"'
2014-03-18 15:53:26 +11:00
2012-07-08 18:42:12 +02:00
# check whether binutils is new enough to compile SSSE3/MMXEXT
2012-08-27 03:07:11 +02:00
enabled ssse3 && check_inline_asm ssse3_inline '"pabsw %xmm0, %xmm0"'
enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"'
2008-03-08 18:33:07 +00:00
2010-08-26 18:29:32 +00:00
if ! disabled_any asm mmx yasm; then
2010-09-26 21:01:24 +00:00
if check_cmd $yasmexe --version; then
enabled x86_64 && yasm_extra = "-m amd64"
yasm_debug = "-g dwarf2"
elif check_cmd nasm -v; then
yasmexe = nasm
yasm_debug = "-g -F dwarf"
enabled x86_64 && test " $objformat " = elf && objformat = elf64
fi
YASMFLAGS = "-f $objformat $yasm_extra "
enabled pic && append YASMFLAGS "-DPIC"
test -n " $extern_prefix " && append YASMFLAGS "-DPREFIX"
case " $objformat " in
elf*) enabled debug && append YASMFLAGS $yasm_debug ;;
esac
2013-10-07 07:18:54 -04:00
check_yasm "movbe ecx, [5]" && enable yasm ||
die "yasm/nasm not found or too old. Use --disable-yasm for a crippled build."
2013-07-13 17:16:44 +02:00
check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx_external avresample
2014-03-13 23:45:07 -03:00
check_yasm "vextracti128 xmm0, ymm0, 0" || disable avx2_external
2014-02-06 01:33:59 -03:00
check_yasm "vpmacsdd xmm0, xmm1, xmm2, xmm3" || disable xop_external
2014-02-22 02:47:01 -03:00
check_yasm "vfmadd132ps ymm0, ymm1, ymm2" || disable fma3_external
2012-08-27 03:07:11 +02:00
check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
2014-02-23 14:09:06 +01:00
check_yasm "CPU amdnop" || disable cpunop
2010-06-24 20:49:37 +00:00
fi
2009-07-23 23:30:50 +00:00
2010-01-14 19:58:09 +00:00
case " $cpu " in
athlon*| opteron*| k8*| pentium| pentium-mmx| prescott| nocona| atom| geode)
disable fast_clz
;;
esac
2007-03-29 14:20:30 +00:00
fi
2010-07-02 02:03:20 +00:00
if enabled asm; then
as = ${ gas := $as }
2012-12-01 13:19:05 +00:00
check_as <<EOF && enable gnu_as || \
2010-07-02 02:03:20 +00:00
$nogas "GNU assembler not found, install gas-preprocessor"
2012-12-01 13:19:05 +00:00
.macro m n
\n: .int 0
.endm
m x
EOF
2010-07-02 02:03:20 +00:00
fi
2011-03-06 13:57:34 +00:00
check_ldflags -Wl,--as-needed
2007-09-24 15:52:06 +00:00
if check_func dlopen; then
ldl =
elif check_func dlopen -ldl; then
ldl = -ldl
fi
2012-12-07 15:03:40 +01:00
if ! disabled network; then
2014-03-06 14:52:03 +01:00
check_func getaddrinfo $network_extralibs
check_func getservbyport $network_extralibs
check_func inet_aton $network_extralibs
2011-01-25 09:28:01 +00:00
check_type netdb.h "struct addrinfo"
2012-06-21 14:19:56 +03:00
check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE
2011-01-25 09:28:01 +00:00
check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
2012-06-25 12:08:44 +03:00
check_type poll.h "struct pollfd"
2012-08-08 16:01:01 +02:00
check_type netinet/sctp.h "struct sctp_event_subscribe"
2014-03-06 14:52:03 +01:00
check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
check_type netinet/in.h "struct sockaddr_in6"
check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
check_type "sys/types.h sys/socket.h" socklen_t
2011-01-25 09:28:01 +00:00
# Prefer arpa/inet.h over winsock2
if check_header arpa/inet.h ; then
check_func closesocket
elif check_header winsock2.h ; then
2012-07-16 16:51:33 +02:00
check_func_headers winsock2.h closesocket -lws2 &&
network_extralibs = "-lws2" ||
{ check_func_headers winsock2.h closesocket -lws2_32 &&
2013-12-31 10:11:24 +02:00
network_extralibs = "-lws2_32" ; } || disable winsock2_h network
2012-07-16 01:11:18 +03:00
check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
2014-03-06 14:52:03 +01:00
2011-01-25 09:28:01 +00:00
check_type ws2tcpip.h socklen_t
check_type ws2tcpip.h "struct addrinfo"
2012-06-21 14:19:56 +03:00
check_type ws2tcpip.h "struct group_source_req"
check_type ws2tcpip.h "struct ip_mreq_source"
2011-01-25 09:28:01 +00:00
check_type ws2tcpip.h "struct ipv6_mreq"
2012-06-25 12:08:44 +03:00
check_type winsock2.h "struct pollfd"
2014-03-06 14:52:03 +01:00
check_struct winsock2.h "struct sockaddr" sa_len
2011-01-25 09:28:01 +00:00
check_type ws2tcpip.h "struct sockaddr_in6"
check_type ws2tcpip.h "struct sockaddr_storage"
else
disable network
fi
fi
2014-03-06 14:52:03 +01:00
check_builtin atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
check_builtin MemoryBarrier windows.h "MemoryBarrier()"
2014-03-14 18:30:03 +01:00
check_builtin sarestart signal.h "SA_RESTART"
2014-03-06 14:52:03 +01:00
check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
check_func_headers malloc.h _aligned_malloc && enable aligned_malloc
check_func ${ malloc_prefix } memalign && enable memalign
check_func ${ malloc_prefix } posix_memalign && enable posix_memalign
2009-02-23 01:56:08 +00:00
2012-11-27 04:55:26 +01:00
check_func access
2012-03-03 15:56:11 +01:00
check_func clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
2010-06-30 10:38:01 +00:00
check_func fcntl
2007-11-23 11:09:28 +00:00
check_func fork
check_func gethrtime
2012-07-03 20:14:09 -07:00
check_func getopt
2007-11-23 11:09:28 +00:00
check_func getrusage
2012-06-20 13:46:52 +01:00
check_func gettimeofday
2009-07-24 00:12:55 +00:00
check_func isatty
2011-02-21 01:02:29 +01:00
check_func localtime_r
2014-01-24 01:15:31 +01:00
check_func mach_absolute_time
2007-11-23 11:09:28 +00:00
check_func mkstemp
2010-12-22 14:13:04 +00:00
check_func mmap
2012-10-13 02:40:48 +00:00
check_func mprotect
2014-03-06 14:52:03 +01:00
# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
check_func sched_getaffinity
2010-02-09 22:55:11 +00:00
check_func setrlimit
2013-05-25 15:32:14 +02:00
check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
2010-03-25 22:46:35 +00:00
check_func strerror_r
2011-12-24 00:27:12 +01:00
check_func sysconf
2011-12-22 21:10:07 +01:00
check_func sysctl
2012-06-21 17:00:25 +01:00
check_func usleep
2014-03-06 14:52:03 +01:00
2011-03-22 03:47:48 +00:00
check_func_headers conio.h kbhit
2009-01-11 22:05:43 +00:00
check_func_headers io.h setmode
2009-04-09 14:55:05 +00:00
check_func_headers lzo/lzo1x.h lzo1x_999_compress
2014-03-06 14:52:03 +01:00
check_func_headers stdlib.h getenv
2012-01-01 23:54:40 +00:00
check_func_headers windows.h GetProcessAffinityMask
2008-09-20 16:17:27 +00:00
check_func_headers windows.h GetProcessTimes
2012-06-20 13:46:52 +01:00
check_func_headers windows.h GetSystemTimeAsFileTime
2011-01-05 05:16:33 +00:00
check_func_headers windows.h MapViewOfFile
2014-03-14 18:30:03 +01:00
check_func_headers windows.h PeekNamedPipe
2012-11-30 16:56:57 +02:00
check_func_headers windows.h SetConsoleTextAttribute
2012-06-21 17:00:25 +01:00
check_func_headers windows.h Sleep
2009-03-19 21:52:01 +00:00
check_func_headers windows.h VirtualAlloc
2012-02-27 10:27:17 +01:00
check_func_headers glob.h glob
2014-02-19 03:59:32 +01:00
enabled xlib &&
check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext
2007-09-24 15:52:06 +00:00
2013-04-28 11:03:24 +08:00
check_header cl/cl.h
2012-09-13 14:26:10 +03:00
check_header direct.h
2007-09-24 15:52:06 +00:00
check_header dlfcn.h
2012-06-24 11:17:13 +01:00
check_header dxva.h
2011-09-13 10:11:16 +02:00
check_header dxva2api.h -D_WIN32_WINNT= 0x0600
2012-06-25 00:42:27 +03:00
check_header io.h
2011-03-09 22:09:00 -08:00
check_header libcrystalhd/libcrystalhd_if.h
2014-01-24 01:15:31 +01:00
check_header mach/mach_time.h
2007-09-24 15:52:06 +00:00
check_header malloc.h
2008-08-14 14:03:32 +00:00
check_header poll.h
2008-03-19 10:11:16 +00:00
check_header sys/mman.h
2011-12-24 00:23:55 +01:00
check_header sys/param.h
2008-05-08 00:44:42 +00:00
check_header sys/resource.h
2008-08-14 14:03:32 +00:00
check_header sys/select.h
2012-06-24 22:20:21 +03:00
check_header sys/time.h
2013-07-30 01:34:56 +02:00
check_header sys/un.h
2011-03-30 20:58:13 +02:00
check_header termios.h
2012-06-21 16:34:10 +01:00
check_header unistd.h
2009-01-05 23:25:58 +00:00
check_header vdpau/vdpau.h
check_header vdpau/vdpau_x11.h
2013-02-21 12:31:15 +01:00
check_header VideoDecodeAcceleration/VDADecoder.h
2012-06-21 17:00:25 +01:00
check_header windows.h
2008-12-15 22:24:12 +00:00
check_header X11/extensions/XvMClib.h
2011-12-15 20:21:54 +00:00
check_header asm/types.h
2001-09-13 07:16:59 +00:00
2014-03-06 14:52:03 +01:00
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_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
2011-11-01 20:41:43 +01:00
if ! disabled w32threads && ! enabled pthreads; then
2013-12-23 04:24:52 +01:00
check_func_headers "windows.h process.h" _beginthreadex &&
enable w32threads || disable w32threads
2011-11-01 20:41:43 +01:00
fi
2006-06-16 19:26:31 +00:00
# check for some common methods of building with pthread support
# do this before the optional library checks as some of them require pthreads
2011-11-02 00:00:21 +09:00
if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
2010-06-23 02:13:54 +00:00
enable pthreads
2013-12-14 11:56:22 +01:00
if check_func pthread_join -pthread && check_func pthread_create -pthread; then
2006-11-18 16:16:58 +00:00
add_cflags -pthread
2008-01-26 13:31:50 +00:00
add_extralibs -pthread
2013-12-02 11:11:08 +01:00
elif check_func pthread_join -pthreads && check_func pthread_create -pthreads; then
2006-11-18 16:16:58 +00:00
add_cflags -pthreads
2008-01-26 13:31:50 +00:00
add_extralibs -pthreads
2013-12-02 11:11:08 +01:00
elif check_func pthread_join -lpthreadGC2 && check_func pthread_create -lpthreadGC2; then
2008-04-24 02:03:07 +00:00
add_extralibs -lpthreadGC2
2013-12-14 11:56:22 +01:00
elif check_lib pthread.h pthread_join -lpthread && check_lib pthread.h pthread_create -lpthread; then
2013-12-12 17:05:34 +01:00
:
2013-12-14 11:56:22 +01:00
elif ! check_func pthread_join && ! check_func pthread_create; then
2010-06-23 02:13:54 +00:00
disable pthreads
2006-11-18 16:16:58 +00:00
fi
2013-12-30 00:47:12 +01:00
check_code cc "pthread.h" "static pthread_mutex_t atomic_lock = PTHREAD_MUTEX_INITIALIZER" || disable pthreads
2002-07-20 20:05:50 +00:00
fi
2007-01-07 00:22:32 +00:00
2012-05-08 19:02:33 +02:00
if enabled pthreads; then
check_func pthread_cancel
fi
2013-12-11 14:21:48 +01:00
disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
2011-04-24 17:24:24 +02:00
check_lib math.h sin -lm && LIBM = "-lm"
2011-03-28 10:18:58 +02:00
disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
2007-09-29 20:25:06 +00:00
2012-10-26 14:42:47 +01:00
atan2f_args = 2
ldexpf_args = 2
powf_args = 2
2007-06-18 21:42:38 +00:00
2012-10-19 18:58:39 +02:00
for func in $MATH_FUNCS ; do
2012-10-26 14:42:47 +01:00
eval check_mathfunc $func \$ { ${ func } _args:-1}
2012-10-24 13:15:42 +02:00
done
2006-06-16 19:26:31 +00:00
# these are off by default, so fail if requested and not available
2014-04-11 17:29:07 +02:00
enabled avfoundation_indev && { check_header_oc AVFoundation/AVFoundation.h || disable avfoundation_indev; }
2013-06-24 10:40:15 +02:00
enabled avisynth && { { check_lib2 "windows.h" LoadLibrary; } ||
{ check_lib2 "dlfcn.h" dlopen -ldl; } ||
die "ERROR: LoadLibrary/dlopen not found for avisynth" ; }
2014-02-08 18:01:26 -02:00
enabled decklink && { check_header DeckLinkAPI.h || die "ERROR: DeckLinkAPI.h header not found" ; }
2013-06-20 13:42:21 +02:00
enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found" ; }
enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
2013-09-20 14:01:00 +00:00
enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h header not found" ; }
2013-06-24 10:40:15 +02:00
enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
enabled libaacplus && require "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus
enabled libass && require_pkg_config libass ass/ass.h ass_library_init
2014-02-23 16:39:18 -08:00
enabled libbluray && require_pkg_config libbluray libbluray/bluray.h bd_open
2013-06-24 10:40:15 +02:00
enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 &&
{ check_lib celt/celt.h celt_decoder_create_custom -lcelt0 ||
die "ERROR: libcelt must be installed and version must be >= 0.11.0." ; }
enabled libcaca && require_pkg_config caca caca.h caca_create_canvas
2013-06-20 13:42:21 +02:00
enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
2014-02-05 16:08:00 -08:00
enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
2012-10-11 11:19:18 +02:00
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"
2013-06-24 10:40:15 +02:00
enabled libflite && require2 libflite "flite/flite.h" flite_init $flite_libs
2014-04-17 03:42:17 +02:00
enabled fontconfig && enable libfontconfig
2014-04-12 16:02:50 +02:00
enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
2013-12-06 17:20:26 +01:00
enabled libfreetype && require_libfreetype
2013-08-06 20:56:25 -04:00
enabled libgme && require libgme gme/gme.h gme_new_emu -lgme -lstdc++
2013-06-20 13:42:21 +02:00
enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h" ; do
check_lib " ${ gsm_hdr } " gsm_create -lgsm && break;
done || die "ERROR: libgsm not found" ; }
enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
2013-06-24 10:40:15 +02:00
enabled libmodplug && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug
2013-06-20 13:42:21 +02:00
enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
2013-06-24 10:40:15 +02:00
enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
2013-06-20 13:42:21 +02:00
enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
2013-06-24 10:40:15 +02:00
enabled libopencv && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader
2014-03-23 03:32:00 +01:00
enabled libopenjpeg && { check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
2013-06-24 10:40:15 +02:00
die "ERROR: libopenjpeg not found" ; }
2013-06-20 13:42:21 +02:00
enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new
2013-06-24 10:40:15 +02:00
enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init
2013-06-20 13:42:21 +02:00
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
2013-07-21 15:40:08 -05:00
enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_buffer
2013-06-24 10:40:15 +02:00
enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
2013-09-18 14:08:11 +02:00
enabled libssh && require_pkg_config libssh libssh/sftp.h sftp_init
2013-06-20 13:42:21 +02:00
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
2013-06-24 10:40:15 +02:00
enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h
2011-08-31 04:14:47 +05:30
media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h media/stagefright/MediaDefs.h
2012-04-19 00:02:53 +05:30
media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
2013-06-20 13:42:21 +02:00
enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
2013-06-24 10:40:15 +02:00
enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame &&
{ check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame ||
die "ERROR: libtwolame must be installed and version must be >= 0.3.10" ; }
enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++
enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl
2014-01-09 22:22:16 +01:00
enabled libvidstab && require_pkg_config "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit
2013-06-20 13:42:21 +02:00
enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc
enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
enabled libvpx && {
2012-12-30 19:40:20 +01:00
enabled libvpx_vp8_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
2013-06-20 13:42:21 +02:00
die "ERROR: libvpx decoder version must be >=0.9.1" ; }
2013-01-15 14:57:57 +01:00
enabled libvpx_vp8_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VP8E_SET_MAX_INTRA_BITRATE_PCT" -lvpx ||
2013-06-24 10:40:15 +02:00
die "ERROR: libvpx encoder version must be >=0.9.7" ; }
2013-06-20 13:42:21 +02:00
enabled libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; }
2013-12-15 16:53:34 -08:00
enabled libvpx_vp9_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VP9E_SET_SVC" -lvpx || disable libvpx_vp9_encoder; } }
2013-06-20 13:42:21 +02:00
enabled libwavpack && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput -lwavpack
2013-11-22 11:05:13 -05:00
enabled libwebp && require_pkg_config libwebp webp/encode.h WebPGetEncoderVersion
2013-06-20 13:42:21 +02:00
enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 &&
{ check_cpp_condition x264.h "X264_BUILD >= 118" ||
2013-06-24 10:40:15 +02:00
die "ERROR: libx264 must be installed and version must be >= 0.118." ; }
2013-10-02 14:46:26 +00:00
enabled libx265 && require_pkg_config x265 x265.h x265_encoder_encode &&
2014-03-30 15:58:14 +01:00
{ check_cpp_condition x265.h "X265_BUILD >= 13" ||
die "ERROR: libx265 version must be >= 13." ; }
2013-06-20 13:42:21 +02:00
enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
2013-06-24 10:40:15 +02:00
enabled libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new
2013-09-01 23:05:50 +02:00
enabled libzvbi && require libzvbi libzvbi.h vbi_decoder_new -lzvbi
2013-06-24 10:40:15 +02:00
enabled openal && { { for al_libs in " ${ OPENAL_LIBS } " "-lopenal" "-lOpenAL32" ; do
check_lib 'AL/al.h' alGetError " ${ al_libs } " && break; done } ||
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 ||
die "ERROR: opencl not found" ; } &&
2013-10-01 16:49:39 +02:00
{ ! enabled_any w32threads os2threads ||
2013-06-26 09:42:47 +02:00
die "opencl currently needs --enable-pthreads or --disable-w32threads" ; } &&
2013-06-24 10:40:15 +02:00
{ 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" ; }
2013-11-24 20:13:27 +01:00
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" ||
die "ERROR: opengl not found."
}
2013-06-20 13:42:21 +02:00
enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
die "ERROR: openssl not found" ; }
2014-04-06 23:17:08 +02:00
enabled qtkit_indev && { check_header_oc QTKit/QTKit.h || disable qtkit_indev; }
2006-08-29 07:34:58 +00:00
2012-07-19 14:13:58 +02:00
if enabled gnutls; then
{ check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } ||
{ check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; }
fi
2008-01-11 01:59:05 +00:00
# libdc1394 check
if enabled libdc1394; then
{ check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 &&
enable libdc1394_2; } ||
{ check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 &&
enable libdc1394_1; } ||
die "ERROR: No version of libdc1394 found "
fi
2011-05-10 03:22:04 +02:00
SDL_CONFIG = " ${ cross_prefix } sdl-config"
2012-03-28 20:37:13 +03:00
if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
2011-05-18 16:36:08 +02:00
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
2013-03-06 17:15:50 +01:00
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
enable sdl
2011-05-18 16:36:08 +02:00
else
if " ${ SDL_CONFIG } " --version > /dev/null 2>& 1; then
2011-05-10 03:22:04 +02:00
sdl_cflags = $( " ${ SDL_CONFIG } " --cflags)
sdl_libs = $( " ${ SDL_CONFIG } " --libs)
2011-05-16 02:57:15 +02:00
check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs &&
2010-01-17 19:10:05 +00:00
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
2013-03-13 01:31:46 +01:00
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
enable sdl
2011-05-18 16:36:08 +02:00
fi
2004-06-04 10:10:29 +00:00
fi
2011-05-27 01:34:35 +02:00
enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
2006-06-16 19:26:31 +00:00
2012-07-12 04:07:59 -03:00
texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html
2011-12-20 00:28:47 +01:00
makeinfo --version > /dev/null 2>& 1 && enable makeinfo || disable makeinfo
2013-11-21 16:57:56 -08:00
perl -v > /dev/null 2>& 1 && enable perl || disable perl
2013-11-26 11:37:54 -08:00
pod2man --help > /dev/null 2>& 1 && enable pod2man || disable pod2man
2012-11-07 11:27:06 +01:00
rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
2004-07-05 18:06:16 +00:00
2011-03-07 18:54:52 +01:00
check_header linux/fb.h
2007-09-05 18:52:14 +00:00
check_header linux/videodev.h
check_header linux/videodev2.h
2013-01-17 02:11:12 +01:00
check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete
2011-12-27 06:31:41 +01:00
2008-09-21 22:47:52 +00:00
check_header sys/videoio.h
2006-02-08 15:55:41 +00:00
2010-01-23 20:38:17 +00:00
check_func_headers "windows.h vfw.h" capCreateCaptureWindow " $vfwcap_indev_extralibs "
2010-07-11 22:17:17 +00:00
# check that WM_CAP_DRIVER_CONNECT is defined to the proper value
# w32api 3.12 had it defined wrong
check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
2008-03-08 22:10:28 +00:00
2011-05-21 14:24:50 +02:00
check_type "dshow.h" IBaseFilter
2006-12-24 03:53:15 +00:00
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
2007-09-17 19:33:55 +00:00
{ check_header dev/bktr/ioctl_meteor.h &&
check_header dev/bktr/ioctl_bt848.h; } ||
{ check_header machine/ioctl_meteor.h &&
check_header machine/ioctl_bt848.h; } ||
{ check_header dev/video/meteor/ioctl_meteor.h &&
check_header dev/video/bktr/ioctl_bt848.h; } ||
check_header dev/ic/bt8xx.h
2006-12-24 03:53:15 +00:00
2011-03-26 19:03:41 -04:00
check_header sndio.h
2011-04-24 13:23:51 +02:00
if check_struct sys/soundcard.h audio_buf_info bytes; then
enable_safe sys/soundcard.h
else
check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_safe sys/soundcard.h
#include <sys/soundcard.h>
audio_buf_info abc;
EOF
fi
2007-09-07 13:47:14 +00:00
check_header soundcard.h
2007-02-10 22:24:45 +00:00
2013-06-20 13:42:21 +02:00
enabled_any alsa_indev alsa_outdev &&
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
2009-01-26 09:16:09 +00:00
2012-06-13 21:04:06 +02:00
enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait &&
2012-06-11 18:22:31 -04:00
check_func jack_port_get_latency_range -ljack
2009-04-02 23:53:47 +00:00
2011-03-26 19:03:41 -04:00
enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
2013-01-17 11:24:01 +01:00
if enabled libcdio; then
2013-06-01 18:34:51 +02:00
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 ||
die "ERROR: libcdio-paranoia not found"
2013-01-17 11:24:01 +01:00
fi
2011-09-13 17:23:06 +02:00
2014-02-19 03:59:32 +01:00
enabled xlib &&
check_lib X11/Xlib.h XOpenDisplay -lX11 || disable xlib
2013-11-03 19:21:00 +01:00
2012-03-21 08:01:37 -07:00
enabled x11grab &&
require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
2013-11-03 19:21:00 +01:00
require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes &&
{ enabled xlib || die "ERROR: Xlib not found" ; }
2006-12-13 08:45:36 +00:00
2014-04-02 14:53:10 -04:00
check_func_headers "windows.h" CreateDIBSection " $gdigrab_indev_extralibs "
2013-05-17 02:32:21 +02:00
enabled vaapi &&
check_lib va/va.h vaInitialize -lva ||
disable vaapi
2011-03-30 09:19:50 +02:00
2013-02-21 12:34:42 +01:00
enabled vdpau &&
2012-08-19 21:35:30 +02:00
check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
2013-02-21 12:34:42 +01:00
disable vdpau
2009-12-14 06:33:43 +00:00
2013-11-03 19:21:00 +01:00
enabled vdpau && enabled xlib &&
2014-02-13 00:44:08 +01:00
check_func_headers "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
2014-02-14 02:35:36 +01:00
prepend ffmpeg_libs $( $ldflags_filter "-lvdpau" ) &&
2013-11-03 19:21:00 +01:00
enable vdpau_x11
2013-03-06 00:57:51 +01:00
# Funny iconv installations are not unusual, so check it after all flags have been set
2013-03-09 18:25:22 +01:00
disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv
2013-03-06 00:57:51 +01:00
2009-09-10 02:42:19 +00:00
enabled debug && add_cflags -g" $debuglevel " && add_asflags -g" $debuglevel "
2006-06-16 19:26:31 +00:00
# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
2006-06-01 19:28:41 +00:00
check_cflags -Wall
2006-08-30 23:02:52 +00:00
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
check_cflags -Wredundant-decls
2008-02-03 21:33:26 +00:00
check_cflags -Wwrite-strings
2008-02-03 22:31:25 +00:00
check_cflags -Wtype-limits
2009-01-16 00:37:38 +00:00
check_cflags -Wundef
2010-02-23 21:03:25 +00:00
check_cflags -Wmissing-prototypes
2011-05-04 22:06:41 +02:00
check_cflags -Wno-pointer-to-int-cast
2011-10-10 10:31:31 +02:00
check_cflags -Wstrict-prototypes
2014-04-04 01:18:02 +02:00
check_cflags -Wempty-body
2007-02-11 17:25:49 +00:00
enabled extra_warnings && check_cflags -Winline
2003-10-18 18:47:06 +00:00
2013-10-31 20:14:37 +01:00
check_disable_warning(){
warning_flag = -W${ 1 #-Wno- }
test_cflags $warning_flag && add_cflags $1
}
check_disable_warning -Wno-parentheses
check_disable_warning -Wno-switch
check_disable_warning -Wno-format-zero-length
check_disable_warning -Wno-pointer-sign
2006-06-16 19:26:31 +00:00
# add some linker flags
2007-06-15 20:43:58 +00:00
check_ldflags -Wl,--warn-common
2012-04-26 22:24:58 +02:00
check_ldflags -Wl,-rpath-link= libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
2013-11-10 09:02:51 +01:00
enabled rpath && add_ldflags -Wl,-rpath= $libdir
2010-10-15 11:31:58 +01:00
test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
2003-06-10 08:32:12 +00:00
2013-11-25 08:46:14 +00:00
# add some strip flags
# -wN '..@*' is more selective than -x, but not available everywhere.
2013-11-28 21:35:12 +01:00
check_stripflags -wN \' ..@*\' || check_stripflags -x
2013-11-25 08:46:14 +00:00
2013-12-20 13:51:50 +02:00
enabled neon_clobber_test &&
check_ldflags -Wl,--wrap,avcodec_open2 \
-Wl,--wrap,avcodec_decode_audio4 \
-Wl,--wrap,avcodec_decode_video2 \
-Wl,--wrap,avcodec_decode_subtitle2 \
-Wl,--wrap,avcodec_encode_audio2 \
-Wl,--wrap,avcodec_encode_video2 \
2014-01-11 22:43:26 +02:00
-Wl,--wrap,avcodec_encode_subtitle \
2014-01-18 18:17:54 +01:00
-Wl,--wrap,swr_convert \
2014-01-11 22:43:26 +02:00
-Wl,--wrap,avresample_convert ||
2013-12-20 13:51:50 +02:00
disable neon_clobber_test
2012-07-16 16:51:33 +02:00
enabled xmm_clobber_test &&
2012-02-02 11:48:13 -08:00
check_ldflags -Wl,--wrap,avcodec_open2 \
-Wl,--wrap,avcodec_decode_audio4 \
-Wl,--wrap,avcodec_decode_video2 \
-Wl,--wrap,avcodec_decode_subtitle2 \
-Wl,--wrap,avcodec_encode_audio2 \
2013-09-30 11:42:52 +02:00
-Wl,--wrap,avcodec_encode_video \
2013-09-10 12:31:46 +02:00
-Wl,--wrap,avcodec_encode_video2 \
2012-02-02 11:48:13 -08:00
-Wl,--wrap,avcodec_encode_subtitle \
2014-01-18 18:17:54 +01:00
-Wl,--wrap,swr_convert \
2014-01-11 22:43:26 +02:00
-Wl,--wrap,avresample_convert \
2012-07-16 16:51:33 +02:00
-Wl,--wrap,sws_scale ||
2012-02-02 11:48:13 -08:00
disable xmm_clobber_test
2010-01-16 04:49:02 +00:00
echo "X{};" > $TMPV
2010-06-15 13:26:52 +00:00
if test_ldflags -Wl,--version-script,$TMPV ; then
2010-01-16 04:49:02 +00:00
append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
2010-06-15 13:26:52 +00:00
check_cc <<EOF && enable symver_asm_label
void ff_foo(void) __asm__ ("av_foo@VERSION");
2010-06-15 18:06:28 +00:00
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
2010-06-15 13:26:52 +00:00
EOF
check_cc <<EOF && enable symver_gnu_asm
__asm__(".symver ff_foo,av_foo@VERSION");
void ff_foo(void) {}
EOF
fi
2010-01-16 04:49:02 +00:00
2012-09-20 15:50:14 +01:00
if [ -z " $optflags " ] ; then
if enabled small; then
optflags = $cflags_size
elif enabled optimizations; then
optflags = $cflags_speed
else
optflags = $cflags_noopt
fi
2003-09-09 19:03:14 +00:00
fi
2012-09-20 15:50:14 +01:00
check_optflags(){
check_cflags " $@ "
enabled lto && check_ldflags " $@ "
}
if enabled lto; then
test " $cc_type " != " $ld_type " && die "LTO requires same compiler and linker"
check_cflags -flto
check_ldflags -flto $cpuflags
fi
check_optflags $optflags
check_optflags -fno-math-errno
check_optflags -fno-signed-zeros
2003-09-09 19:03:14 +00:00
2012-10-09 05:43:30 +02:00
enabled ftrapv && check_cflags -ftrapv
2011-09-21 19:10:58 +02:00
check_cc -mno-red-zone <<EOF && noredzone_flags="-mno-red-zone"
int x;
EOF
2003-09-09 19:03:14 +00:00
2009-02-21 21:07:32 +00:00
if enabled icc; then
2009-02-21 22:12:47 +00:00
# Just warnings, no remarks
check_cflags -w1
# -wd: Disable following warnings
# 144, 167, 556: -Wno-pointer-sign
2013-01-03 15:57:42 +01:00
# 188: enumerated type mixed with another type
2011-03-23 11:24:10 +00:00
# 1292: attribute "foo" ignored
2012-04-25 21:15:39 +01:00
# 1419: external declaration in primary source file
2009-02-21 22:12:47 +00:00
# 10006: ignoring unknown option -fno-signed-zeros
2010-11-04 10:38:39 +00:00
# 10148: ignoring unknown option -Wno-parentheses
2009-02-21 22:12:47 +00:00
# 10156: ignoring option '-W'; no argument required
2013-01-03 15:57:42 +01:00
check_cflags -wd144,167,188,556,1292,1419,10006,10148,10156
2009-02-21 22:12:47 +00:00
# 11030: Warning unknown option --as-needed
# 10156: ignoring option '-export'; no argument required
check_ldflags -wd10156,11030
2009-03-15 13:22:41 +00:00
# icc 11.0 and 11.1 work with ebp_available, but don't pass the test
enable ebp_available
2010-09-21 17:57:17 +00:00
if enabled x86_32; then
2012-07-18 20:40:38 +01:00
icc_version = $( $cc -dumpversion)
2012-07-16 16:51:33 +02:00
test ${ icc_version %%.* } -ge 11 &&
check_cflags -falign-stack= maintain-16-byte ||
2010-09-21 17:57:17 +00:00
disable aligned_stack
fi
2009-02-22 00:13:19 +00:00
elif enabled ccc; then
# disable some annoying warnings
2012-10-23 00:05:44 +01:00
add_cflags -msg_disable bitnotint
add_cflags -msg_disable mixfuncvoid
add_cflags -msg_disable nonstandcast
add_cflags -msg_disable unsupieee
2009-07-15 19:02:07 +00:00
elif enabled gcc; then
2012-09-20 15:50:14 +01:00
check_optflags -fno-tree-vectorize
2010-06-27 14:16:54 +00:00
check_cflags -Werror= implicit-function-declaration
2010-03-08 02:36:27 +00:00
check_cflags -Werror= missing-prototypes
2013-01-14 20:38:33 +01:00
check_cflags -Werror= return -type
2012-10-06 14:03:32 +02:00
check_cflags -Werror= vla
2013-11-02 12:16:00 +01:00
enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized
2010-09-02 21:41:07 +00:00
elif enabled llvm_gcc; then
check_cflags -mllvm -stack-alignment= 16
2009-10-22 21:19:13 +00:00
elif enabled clang; then
2010-09-02 19:40:18 +00:00
check_cflags -mllvm -stack-alignment= 16
2009-10-22 21:19:13 +00:00
check_cflags -Qunused-arguments
2012-11-13 19:01:51 +02:00
check_cflags -Werror= implicit-function-declaration
check_cflags -Werror= missing-prototypes
2013-01-14 20:38:33 +01:00
check_cflags -Werror= return -type
2013-09-12 20:17:15 +02:00
elif enabled cparser; then
add_cflags -Wno-missing-variable-declarations
add_cflags -Wno-empty-statement
2010-01-20 20:06:11 +00:00
elif enabled armcc; then
2014-04-18 23:40:59 +03:00
add_cflags -W${ armcc_opt } ,--diag_suppress= 4343 # hardfp compat
add_cflags -W${ armcc_opt } ,--diag_suppress= 3036 # using . as system include dir
2010-01-20 20:06:11 +00:00
# 2523: use of inline assembler is deprecated
2010-08-26 12:52:10 +00:00
add_cflags -W${ armcc_opt } ,--diag_suppress= 2523
add_cflags -W${ armcc_opt } ,--diag_suppress= 1207
2011-01-15 14:55:08 +00:00
add_cflags -W${ armcc_opt } ,--diag_suppress= 1293 # assignment in condition
2011-01-16 12:50:49 +00:00
add_cflags -W${ armcc_opt } ,--diag_suppress= 3343 # hardfp compat
2011-06-25 18:51:00 +01:00
add_cflags -W${ armcc_opt } ,--diag_suppress= 167 # pointer sign
add_cflags -W${ armcc_opt } ,--diag_suppress= 513 # pointer sign
2010-01-22 03:25:27 +00:00
elif enabled tms470; then
add_cflags -pds= 824 -pds= 837
2013-12-09 15:03:22 +01:00
disable inline_asm
2011-01-23 23:13:33 +00:00
elif enabled pathscale; then
add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt= OFF
2013-06-19 21:07:49 +00:00
elif enabled_any msvc icl; then
2012-09-11 11:10:12 +03:00
enabled x86_32 && disable aligned_stack
2013-06-24 21:10:12 +00:00
enabled_all x86_32 debug && add_cflags -Oy-
2013-07-19 15:44:39 +02:00
enabled debug && add_ldflags -debug
2013-09-19 16:58:21 -04:00
enable pragma_deprecated
2013-06-19 21:07:49 +00:00
if enabled icl; then
2013-09-24 04:30:38 -04:00
# -Qansi-alias is basically -fstrict-aliasing, but does not work
# (correctly) on icl 13.x.
check_cpp_condition "windows.h" "__ICL < 1300 || __ICL >= 1400" &&
add_cflags -Qansi-alias
2013-06-20 13:42:21 +02:00
# icl will pass the inline asm tests but inline asm is currently
# not supported (build will fail)
2013-10-15 15:52:27 +02:00
disabled inline_asm || warn "inline asm disabled due to issues with it in ICL"
2013-06-19 21:07:49 +00:00
disable inline_asm
fi
2008-05-11 13:08:18 +00:00
fi
2014-02-07 19:23:28 +01:00
case $as_type in
clang)
add_asflags -Qunused-arguments
;;
esac
case $ld_type in
clang)
check_ldflags -Qunused-arguments
;;
esac
2012-10-15 02:38:17 +01:00
case $target_os in
2012-10-23 00:05:44 +01:00
osf1)
enabled ccc && add_ldflags '-Wl,-expect_unresolved,*'
;;
2012-10-15 02:38:17 +01:00
plan9)
add_cppflags -Dmain= plan9_main
;;
esac
2013-03-13 21:59:33 -07:00
enable frame_thread_encoder
2013-10-25 16:54:45 +02:00
2012-08-31 01:56:03 +01:00
enabled asm || { arch = c; disable $ARCH_LIST $ARCH_EXT_LIST ; }
2007-11-23 11:09:28 +00:00
check_deps $CONFIG_LIST \
2008-10-24 23:18:21 +00:00
$CONFIG_EXTRA \
2007-11-23 11:09:28 +00:00
$HAVE_LIST \
2011-09-12 17:52:44 +02:00
$ALL_COMPONENTS \
2007-02-11 16:24:15 +00:00
2013-12-20 12:48:16 +01:00
enabled threads && ! enabled pthreads && ! enabled atomics_native && die "non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 or higher if you are on x86"
2010-01-18 23:12:55 +00:00
2011-10-04 21:34:55 +02:00
if test $target_os = "haiku" ; then
2011-06-21 16:36:23 +02:00
disable memalign
disable posix_memalign
fi
2012-06-18 14:37:02 +01:00
! enabled_any memalign posix_memalign aligned_malloc &&
2011-05-24 20:11:53 +01:00
enabled_any $need_memalign && enable memalign_hack
2012-02-05 16:52:26 +01:00
# add_dep lib dep
# -> enable ${lib}_deps_${dep}
# -> add $dep to ${lib}_deps only once
add_dep() {
lib = $1
dep = $2
enabled " ${ lib } _deps_ ${ dep } " && return 0
enable " ${ lib } _deps_ ${ dep } "
prepend " ${ lib } _deps" $dep
}
# merge deps lib components
# merge all ${component}_deps into ${lib}_deps and ${lib}_deps_*
merge_deps() {
lib = $1
shift
for comp in $* ; do
enabled $comp || continue
eval "dep=\"\$ ${ comp } _deps\""
for d in $dep ; do
add_dep $lib $d
done
done
}
merge_deps libavfilter $FILTER_LIST
2013-12-23 04:24:53 +01:00
for thread in $THREADS_LIST ; do
if enabled $thread ; then
test -n " $thread_type " &&
die "ERROR: Only one thread type must be selected." ||
thread_type = " $thread "
fi
done
2008-03-25 22:49:54 +00:00
echo "install prefix $prefix "
2007-01-06 21:53:48 +00:00
echo "source path $source_path "
echo "C compiler $cc "
2013-02-28 16:16:10 +01:00
echo "C library $libc_type "
2013-02-28 16:06:39 +01:00
if test " $host_cc " != " $cc " ; then
echo "host C compiler $host_cc "
2013-02-28 16:16:10 +01:00
echo "host C library $host_libc_type "
2013-02-28 16:06:39 +01:00
fi
2007-01-06 21:53:48 +00:00
echo "ARCH $arch ( $cpu )"
2008-03-25 22:49:51 +00:00
if test " $build_suffix " != "" ; then
echo "build suffix $build_suffix "
2005-05-08 15:04:59 +00:00
fi
2011-08-29 17:52:03 +02:00
if test " $progs_suffix " != "" ; then
echo "progs suffix $progs_suffix "
fi
2008-09-26 21:37:50 +00:00
if test " $extra_version " != "" ; then
echo "version string suffix $extra_version "
fi
2007-06-17 23:14:08 +00:00
echo "big-endian ${ bigendian -no } "
2009-04-08 20:26:18 +00:00
echo "runtime cpu detection ${ runtime_cpudetect -no } "
2009-01-11 21:55:14 +00:00
if enabled x86; then
2011-05-26 20:03:37 +02:00
echo " ${ yasmexe } ${ yasm -no } "
2007-06-17 23:14:08 +00:00
echo "MMX enabled ${ mmx -no } "
2012-07-08 18:42:12 +02:00
echo "MMXEXT enabled ${ mmxext -no } "
2009-01-25 19:48:26 +00:00
echo "3DNow! enabled ${ amd3dnow -no } "
2009-02-18 00:03:09 +00:00
echo "3DNow! extended enabled ${ amd3dnowext -no } "
2009-01-07 23:38:54 +00:00
echo "SSE enabled ${ sse -no } "
2009-01-25 18:15:41 +00:00
echo "SSSE3 enabled ${ ssse3 -no } "
2011-05-15 11:46:18 +02:00
echo "AVX enabled ${ avx -no } "
2014-02-06 01:33:59 -03:00
echo "XOP enabled ${ xop -no } "
2014-02-22 02:47:01 -03:00
echo "FMA3 enabled ${ fma3 -no } "
2012-06-18 23:39:14 -04:00
echo "FMA4 enabled ${ fma4 -no } "
2013-04-26 16:49:02 +02:00
echo "i686 features enabled ${ i686 -no } "
2007-06-17 23:14:08 +00:00
echo "CMOV is fast ${ fast_cmov -no } "
2007-08-26 23:09:34 +00:00
echo "EBX available ${ ebx_available -no } "
echo "EBP available ${ ebp_available -no } "
2002-10-01 08:46:41 +00:00
fi
2013-12-10 20:13:32 +01:00
if enabled aarch64; then
echo "NEON enabled ${ neon -no } "
echo "VFP enabled ${ vfp -no } "
fi
2009-01-11 21:55:14 +00:00
if enabled arm; then
2007-06-17 23:14:08 +00:00
echo "ARMv5TE enabled ${ armv5te -no } "
echo "ARMv6 enabled ${ armv6 -no } "
2008-12-30 03:13:44 +00:00
echo "ARMv6T2 enabled ${ armv6t2 -no } "
2012-12-04 23:29:34 +00:00
echo "VFP enabled ${ vfp -no } "
2008-06-05 19:51:15 +00:00
echo "NEON enabled ${ neon -no } "
2012-12-14 02:37:32 +01:00
echo "THUMB enabled ${ thumb -no } "
2005-06-28 22:46:36 +00:00
fi
2009-01-11 21:55:14 +00:00
if enabled mips; then
2012-06-04 18:02:56 +02:00
echo "MIPS FPU enabled ${ mipsfpu -no } "
echo "MIPS32R2 enabled ${ mips32r2 -no } "
echo "MIPS DSP R1 enabled ${ mipsdspr1 -no } "
echo "MIPS DSP R2 enabled ${ mipsdspr2 -no } "
2002-10-01 08:46:41 +00:00
fi
2009-01-11 21:55:14 +00:00
if enabled ppc; then
2007-06-17 23:14:08 +00:00
echo "AltiVec enabled ${ altivec -no } "
2009-01-25 18:15:41 +00:00
echo "PPC 4xx optimizations ${ ppc4xx -no } "
2007-06-17 23:14:08 +00:00
echo "dcbzl available ${ dcbzl -no } "
2009-01-25 18:15:41 +00:00
fi
2007-06-17 23:14:08 +00:00
echo "debug symbols ${ debug -no } "
2011-04-01 00:24:12 +02:00
echo "strip symbols ${ stripping -no } "
2011-06-19 18:41:14 +01:00
echo "optimize for size ${ small -no } "
2007-10-24 19:17:15 +00:00
echo "optimizations ${ optimizations -no } "
2007-06-17 23:14:08 +00:00
echo "static ${ static -no } "
echo "shared ${ shared -no } "
2008-03-08 18:50:38 +00:00
echo "postprocessing support ${ postproc -no } "
2008-02-26 21:32:56 +00:00
echo "new filter support ${ avfilter -no } "
2007-06-17 23:14:08 +00:00
echo "network support ${ network -no } "
echo "threading support ${ thread_type -no } "
2011-12-21 15:32:39 +02:00
echo "safe bitstream reader ${ safe_bitstream_reader -no } "
2007-06-17 23:14:08 +00:00
echo "SDL support ${ sdl -no } "
2013-04-01 17:46:11 +08:00
echo "opencl enabled ${ opencl -no } "
2013-09-01 23:05:50 +02:00
echo "libzvbi enabled ${ libzvbi -no } "
2012-07-16 14:45:41 +02:00
echo "texi2html enabled ${ texi2html -no } "
2012-08-09 23:37:28 +02:00
echo "perl enabled ${ perl -no } "
2012-07-16 14:45:41 +02:00
echo "pod2man enabled ${ pod2man -no } "
echo "makeinfo enabled ${ makeinfo -no } "
2012-05-09 04:29:53 +01:00
test -n " $random_seed " &&
echo "random seed ${ random_seed } "
2008-02-27 22:41:14 +00:00
echo
2001-07-22 14:18:56 +00:00
2012-10-27 22:25:27 +01:00
echo "External libraries:"
print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns
echo
2009-04-02 08:48:06 +00:00
for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
2007-11-04 02:20:12 +00:00
echo "Enabled ${ type } s:"
2008-02-26 21:50:06 +00:00
eval list = \$ $( toupper $type ) _LIST
2013-02-21 16:43:47 +01:00
print_enabled '_*' $list | print_3_columns
2008-02-26 21:50:06 +00:00
echo
2007-11-04 02:20:12 +00:00
done
2009-05-22 10:10:02 +00:00
license = "LGPL version 2.1 or later"
2008-05-16 16:12:55 +00:00
if enabled nonfree; then
2009-05-22 10:10:02 +00:00
license = "nonfree and unredistributable"
2009-06-05 11:04:03 +00:00
elif enabled gplv3; then
license = "GPL version 3 or later"
elif enabled lgplv3; then
license = "LGPL version 3 or later"
2008-05-16 16:12:55 +00:00
elif enabled gpl; then
2009-05-22 10:10:02 +00:00
license = "GPL version 2 or later"
2008-05-16 16:12:55 +00:00
fi
echo "License: $license "
2008-01-07 21:37:18 +00:00
2013-03-19 20:54:26 +01:00
echo "Creating config.mak, config.h, and doc/config.texi..."
2008-01-16 09:08:19 +00:00
2013-11-14 13:22:11 +02:00
test -e Makefile || echo "include $source_path /Makefile" > Makefile
2010-01-19 04:40:10 +00:00
2011-04-01 00:24:12 +02:00
enabled stripping || strip = "echo skipping strip"
2013-03-19 20:54:26 +01:00
config_files = " $TMPH config.mak doc/config.texi"
2010-09-03 21:27:12 +00:00
2009-10-31 15:59:03 +00:00
cat > config.mak <<EOF
# Automatically generated by configure - do not modify!
2011-06-26 09:44:31 +02:00
ifndef FFMPEG_CONFIG_MAK
FFMPEG_CONFIG_MAK=1
2011-03-17 17:01:10 +01:00
FFMPEG_CONFIGURATION=$FFMPEG_CONFIGURATION
2009-10-31 15:59:03 +00:00
prefix=$prefix
LIBDIR=\$(DESTDIR)$libdir
SHLIBDIR=\$(DESTDIR)$shlibdir
INCDIR=\$(DESTDIR)$incdir
BINDIR=\$(DESTDIR)$bindir
DATADIR=\$(DESTDIR)$datadir
2013-08-28 10:30:14 +02:00
DOCDIR=\$(DESTDIR)$docdir
2009-10-31 15:59:03 +00:00
MANDIR=\$(DESTDIR)$mandir
2011-06-06 22:38:38 +01:00
SRC_PATH=$source_path
2011-06-30 00:01:14 +02:00
ifndef MAIN_MAKEFILE
SRC_PATH:=\$(SRC_PATH:.%=..%)
endif
2010-07-26 23:44:02 +00:00
CC_IDENT=$cc_ident
2009-10-31 15:59:03 +00:00
ARCH=$arch
CC=$cc
2011-08-31 04:11:25 +05:30
CXX=$cxx
2009-10-31 15:59:03 +00:00
AS=$as
LD=$ld
DEPCC=$dep_cc
2012-07-20 13:43:07 +01:00
DEPCCFLAGS=$DEPCCFLAGS \$(CPPFLAGS)
DEPAS=$as
DEPASFLAGS=$DEPASFLAGS \$(CPPFLAGS)
2009-10-31 15:59:03 +00:00
YASM=$yasmexe
2012-07-25 13:25:58 +02:00
DEPYASM=$yasmexe
2009-10-31 15:59:03 +00:00
AR=$ar
2012-09-17 23:56:32 +01:00
ARFLAGS=$arflags
AR_O=$ar_o
2009-10-31 15:59:03 +00:00
RANLIB=$ranlib
2013-09-12 18:06:23 +00:00
STRIP=$strip
2011-04-01 00:24:12 +02:00
CP=cp -p
2009-10-31 15:59:03 +00:00
LN_S=$ln_s
CPPFLAGS=$CPPFLAGS
CFLAGS=$CFLAGS
2011-08-31 04:11:25 +05:30
CXXFLAGS=$CXXFLAGS
2009-10-31 15:59:03 +00:00
ASFLAGS=$ASFLAGS
2012-07-20 23:43:27 +01:00
AS_C=$AS_C
2012-07-20 13:43:07 +01:00
AS_O=$AS_O
2012-07-20 23:43:27 +01:00
CC_C=$CC_C
2012-10-03 13:48:27 +01:00
CC_E=$CC_E
2009-10-31 15:59:03 +00:00
CC_O=$CC_O
2012-07-30 17:44:56 +02:00
CXX_C=$CXX_C
2011-08-31 04:11:25 +05:30
CXX_O=$CXX_O
2012-07-20 13:43:07 +01:00
LD_O=$LD_O
2012-08-28 16:06:56 +01:00
LD_LIB=$LD_LIB
LD_PATH=$LD_PATH
2012-08-02 00:41:16 +02:00
DLLTOOL=$dlltool
2013-12-05 17:50:14 -03:00
WINDRES=$windres
2013-12-08 22:44:52 -03:00
DEPWINDRES=$dep_cc
2009-10-31 15:59:03 +00:00
LDFLAGS=$LDFLAGS
2013-01-14 12:52:00 -05:00
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
2013-11-28 21:29:13 +01:00
ASMSTRIPFLAGS=$ASMSTRIPFLAGS
2009-10-31 15:59:03 +00:00
YASMFLAGS=$YASMFLAGS
BUILDSUF=$build_suffix
2011-08-29 17:52:03 +02:00
PROGSSUF=$progs_suffix
2009-10-31 15:59:03 +00:00
FULLNAME=$FULLNAME
LIBPREF=$LIBPREF
LIBSUF=$LIBSUF
LIBNAME=$LIBNAME
SLIBPREF=$SLIBPREF
SLIBSUF=$SLIBSUF
EXESUF=$EXESUF
EXTRA_VERSION=$extra_version
CCDEP=$CCDEP
2011-08-31 04:11:25 +05:30
CXXDEP=$CXXDEP
2012-07-20 13:43:07 +01:00
CCDEP_FLAGS=$CCDEP_FLAGS
2009-10-31 15:59:03 +00:00
ASDEP=$ASDEP
2012-07-20 13:43:07 +01:00
ASDEP_FLAGS=$ASDEP_FLAGS
2009-10-31 15:59:03 +00:00
CC_DEPFLAGS=$CC_DEPFLAGS
AS_DEPFLAGS=$AS_DEPFLAGS
HOSTCC=$host_cc
2012-08-28 13:02:35 +01:00
HOSTLD=$host_ld
2009-10-31 15:59:03 +00:00
HOSTCFLAGS=$host_cflags
2013-02-03 15:13:17 +01:00
HOSTCPPFLAGS=$host_cppflags
2009-10-31 15:59:03 +00:00
HOSTEXESUF=$HOSTEXESUF
HOSTLDFLAGS=$host_ldflags
HOSTLIBS=$host_libs
2012-07-20 13:43:07 +01:00
DEPHOSTCC=$host_cc
DEPHOSTCCFLAGS=$DEPHOSTCCFLAGS \$(HOSTCCFLAGS)
HOSTCCDEP=$HOSTCCDEP
HOSTCCDEP_FLAGS=$HOSTCCDEP_FLAGS
HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
2012-07-20 23:43:27 +01:00
HOSTCC_C=$HOSTCC_C
2012-07-20 13:43:07 +01:00
HOSTCC_O=$HOSTCC_O
2012-08-28 13:02:35 +01:00
HOSTLD_O=$HOSTLD_O
2013-05-04 10:25:41 +02:00
TARGET_EXEC=$target_exec $target_exec_args
2009-10-31 15:59:03 +00:00
TARGET_PATH=$target_path
2013-05-20 01:55:32 +03:00
TARGET_SAMPLES=${target_samples:-\$(SAMPLES)}
2012-08-06 22:14:43 +02:00
CFLAGS-ffplay=$sdl_cflags
2012-08-28 16:24:09 +01:00
ZLIB=$($ldflags_filter -lz)
2009-10-31 15:59:03 +00:00
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
EXTRALIBS=$extralibs
2012-10-14 17:56:00 +01:00
COMPAT_OBJS=$compat_objs
2012-10-15 04:05:03 +01:00
EXEOBJS=$exeobjs
2011-05-18 00:03:19 +02:00
INSTALL=$install
2010-03-09 14:58:22 +00:00
LIBTARGET=${LIBTARGET}
SLIBNAME=${SLIBNAME}
SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}
SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}
2011-07-07 15:25:30 +01:00
SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME}
SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
2011-04-03 23:12:16 +01:00
SAMPLES:=${samples:-\$(FATE_SAMPLES)}
2011-09-21 19:10:58 +02:00
NOREDZONE_FLAGS=$noredzone_flags
2009-10-31 15:59:03 +00:00
EOF
2005-12-10 17:14:24 +00:00
2008-02-17 00:00:10 +00:00
get_version(){
2012-11-11 13:37:40 +01:00
lcname = lib${ 1 }
2012-07-02 23:04:09 +02:00
name = $( toupper $lcname )
file = $source_path /$lcname /version.h
2012-10-13 22:56:25 +01:00
eval $( awk "/#define ${ name } _VERSION_M/ { print \$2 \"=\" \$3 }" " $file " )
2013-12-18 05:20:11 +01:00
enabled raise_major && eval ${ name } _VERSION_MAJOR = $(( ${ name } _VERSION_MAJOR+100))
2008-02-26 21:18:55 +00:00
eval ${ name } _VERSION = \$ ${ name } _VERSION_MAJOR.\$ ${ name } _VERSION_MINOR.\$ ${ name } _VERSION_MICRO
2008-03-07 19:27:17 +00:00
eval echo " ${ lcname } _VERSION=\$ ${ name } _VERSION" >> config.mak
eval echo " ${ lcname } _VERSION_MAJOR=\$ ${ name } _VERSION_MAJOR" >> config.mak
2013-02-03 15:03:08 +01:00
eval echo " ${ lcname } _VERSION_MINOR=\$ ${ name } _VERSION_MINOR" >> config.mak
2008-02-17 00:00:10 +00:00
}
2005-12-10 17:14:24 +00:00
2012-11-11 13:37:40 +01:00
map 'get_version $v' $LIBRARY_LIST
2005-12-10 17:14:24 +00:00
2014-02-13 00:44:08 +01:00
print_program_libs(){
eval "program_libs=\$ ${ 1 } _libs"
eval echo "LIBS- ${ 1 } = ${ program_libs } " >> config.mak
}
map 'print_program_libs $v' $PROGRAM_LIST
2009-10-31 15:59:03 +00:00
cat > $TMPH <<EOF
/* Automatically generated by configure - do not modify! */
2011-03-17 17:01:10 +01:00
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
#define FFMPEG_CONFIGURATION "$(c_escape $FFMPEG_CONFIGURATION)"
2011-03-17 16:57:37 +01:00
#define FFMPEG_LICENSE "$(c_escape $license)"
2014-01-01 13:04:07 +01:00
#define CONFIG_THIS_YEAR 2014
2009-10-31 15:59:03 +00:00
#define FFMPEG_DATADIR "$(eval c_escape $datadir)"
2011-07-27 20:56:59 +02:00
#define AVCONV_DATADIR "$(eval c_escape $datadir)"
2012-07-18 17:57:57 +01:00
#define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
2012-06-15 15:52:05 -07:00
#define av_restrict $_restrict
2009-10-31 15:59:03 +00:00
#define EXTERN_PREFIX "${extern_prefix}"
#define EXTERN_ASM ${extern_prefix}
2013-12-05 17:50:14 -03:00
#define BUILDSUF "$build_suffix"
2010-10-03 09:49:36 +00:00
#define SLIBSUF "$SLIBSUF"
2012-08-04 22:39:25 +02:00
#define HAVE_MMX2 HAVE_MMXEXT
2009-10-31 15:59:03 +00:00
EOF
2009-09-21 12:51:45 +00:00
2012-04-07 09:20:54 +02:00
test -n " $assert_level " &&
echo "#define ASSERT_LEVEL $assert_level " >>$TMPH
2010-01-28 13:06:31 +00:00
test -n " $malloc_prefix " &&
echo "#define MALLOC_PREFIX $malloc_prefix " >>$TMPH
2010-09-03 21:27:19 +00:00
if enabled yasm; then
append config_files $TMPASM
printf '' >$TMPASM
fi
2012-11-30 11:16:58 +02:00
enabled getenv || echo "#define getenv(x) NULL" >> $TMPH
2013-05-02 11:01:43 +03:00
2013-03-19 20:54:26 +01:00
mkdir -p doc
echo "@c auto-generated by configure" > doc/config.texi
2010-09-03 21:27:12 +00:00
print_config ARCH_ " $config_files " $ARCH_LIST
print_config HAVE_ " $config_files " $HAVE_LIST
print_config CONFIG_ " $config_files " $CONFIG_LIST \
2010-09-03 21:27:15 +00:00
$CONFIG_EXTRA \
2011-09-12 17:52:44 +02:00
$ALL_COMPONENTS \
2006-08-29 07:34:58 +00:00
2011-03-17 17:01:10 +01:00
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
2011-06-26 09:44:31 +02:00
echo "endif # FFMPEG_CONFIG_MAK" >> config.mak
2007-10-17 22:38:37 +00:00
2008-03-10 22:59:05 +00:00
# Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
2010-01-19 04:40:08 +00:00
cp_if_changed $TMPH config.h
2010-07-20 19:42:35 +00:00
touch .config
2002-04-11 20:11:36 +00:00
2010-09-03 21:27:19 +00:00
enabled yasm && cp_if_changed $TMPASM config.asm
2010-01-19 04:40:16 +00:00
cat > $TMPH <<EOF
/* Generated by ffconf */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
EOF
2010-09-03 21:27:12 +00:00
print_config AV_HAVE_ $TMPH $HAVE_LIST_PUB
2010-01-19 04:40:16 +00:00
echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
cp_if_changed $TMPH libavutil/avconfig.h
2012-11-11 21:37:50 +01:00
if test -n " $WARNINGS " ; then
printf "\n $WARNINGS "
enabled fatal_warnings && exit 1
fi
2010-06-24 20:49:32 +00:00
2006-12-13 10:21:55 +00:00
# build pkg-config files
pkgconfig_generate(){
2012-08-19 21:35:30 +02:00
name = $1
shortname = ${ name #lib }${ build_suffix }
comment = $2
version = $3
libs = $4
requires = $5
enabled ${ name #lib } || return 0
mkdir -p $name
2013-01-26 13:08:47 -08:00
cat <<EOF > $name/$name${build_suffix}.pc
2008-03-25 22:49:54 +00:00
prefix=$prefix
2006-07-26 00:32:15 +00:00
exec_prefix=\${prefix}
2008-04-16 21:46:34 +00:00
libdir=$libdir
2008-04-25 07:56:15 +00:00
includedir=$incdir
2005-08-06 10:03:08 +00:00
2006-12-13 10:21:55 +00:00
Name: $name
Description: $comment
Version: $version
2009-09-15 23:54:31 +00:00
Requires: $(enabled shared || echo $requires)
2008-05-29 09:58:33 +00:00
Requires.private: $(enabled shared && echo $requires)
2005-08-06 10:03:08 +00:00
Conflicts:
2013-11-10 09:02:51 +01:00
Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}") -l${shortname} $(enabled shared || echo $libs)
2008-05-28 23:54:04 +00:00
Libs.private: $(enabled shared && echo $libs)
2008-02-25 09:22:11 +00:00
Cflags: -I\${includedir}
2005-08-06 10:03:08 +00:00
EOF
2012-05-10 09:53:36 +02:00
mkdir -p doc/examples/pc-uninstalled
includedir = ${ source_path }
[ " $includedir " = . ] && includedir = "\${pcfiledir}/../../.."
2012-09-12 11:46:47 +02:00
cat <<EOF > doc/examples/pc-uninstalled/$name.pc
2005-08-06 10:03:08 +00:00
prefix=
exec_prefix=
2012-05-10 09:53:36 +02:00
libdir=\${pcfiledir}/../../../$name
includedir=${includedir}
2005-08-06 10:03:08 +00:00
2006-12-13 10:21:55 +00:00
Name: $name
Description: $comment
Version: $version
Requires: $requires
2005-08-06 10:03:08 +00:00
Conflicts:
2013-10-06 01:25:03 +02:00
Libs: -L\${libdir} -Wl,-rpath,\${libdir} -l${shortname} $(enabled shared || echo $libs)
2005-08-06 10:03:08 +00:00
Cflags: -I\${includedir}
EOF
2006-12-13 10:21:55 +00:00
}
2005-05-19 00:17:50 +00:00
2013-05-08 12:37:15 +02:00
lavfi_libs = "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "
enabled libavfilter_deps_avcodec && prepend lavfi_libs "libavcodec ${ build_suffix } = $LIBAVCODEC_VERSION ,"
enabled libavfilter_deps_avformat && prepend lavfi_libs "libavformat ${ build_suffix } = $LIBAVFORMAT_VERSION ,"
enabled libavfilter_deps_avresample && prepend lavfi_libs "libavresample ${ build_suffix } = $LIBAVRESAMPLE_VERSION ,"
enabled libavfilter_deps_swscale && prepend lavfi_libs "libswscale ${ build_suffix } = $LIBSWSCALE_VERSION ,"
enabled libavfilter_deps_swresample && prepend lavfi_libs "libswresample ${ build_suffix } = $LIBSWRESAMPLE_VERSION ,"
enabled libavfilter_deps_postproc && prepend lavfi_libs "libpostproc ${ build_suffix } = $LIBPOSTPROC_VERSION ,"
lavfi_libs = ${ lavfi_libs %, }
2012-02-05 16:52:26 +01:00
2013-05-08 12:38:01 +02:00
lavd_libs = "libavformat ${ build_suffix } = $LIBAVFORMAT_VERSION "
enabled lavfi_indev && prepend lavd_libs "libavfilter ${ build_suffix } = $LIBAVFILTER_VERSION ,"
2012-03-11 00:48:36 +01:00
2013-06-24 10:40:15 +02:00
pkgconfig_generate libavutil "FFmpeg utility library" " $LIBAVUTIL_VERSION " " $LIBM "
pkgconfig_generate libavcodec "FFmpeg codec library" " $LIBAVCODEC_VERSION " " $extralibs " "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "
pkgconfig_generate libavformat "FFmpeg container format library" " $LIBAVFORMAT_VERSION " " $extralibs " "libavcodec ${ build_suffix } = $LIBAVCODEC_VERSION "
pkgconfig_generate libavdevice "FFmpeg device handling library" " $LIBAVDEVICE_VERSION " " $extralibs " " $lavd_libs "
pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" " $LIBAVFILTER_VERSION " " $extralibs " " $lavfi_libs "
pkgconfig_generate libpostproc "FFmpeg postprocessing library" " $LIBPOSTPROC_VERSION " "" "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "
pkgconfig_generate libavresample "Libav audio resampling library" " $LIBAVRESAMPLE_VERSION " " $extralibs " "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "
pkgconfig_generate libswscale "FFmpeg image rescaling library" " $LIBSWSCALE_VERSION " " $LIBM " "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "
pkgconfig_generate libswresample "FFmpeg audio resampling library" " $LIBSWRESAMPLE_VERSION " " $LIBM " "libavutil ${ build_suffix } = $LIBAVUTIL_VERSION "