Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100755 4433 lines (4013 sloc) 137.273 kb
aeb2922 @mansr 10l: I thought I'd tested all changes...
mansr authored
1 #!/bin/sh
0f3cb30 added bigendian support - added cross compilation support - added genera...
Fabrice Bellard authored
2 #
c0b1bc8 @michaelni Revert "partially rename FFmpeg to Libav"
michaelni authored
3 # FFmpeg configure script
f57620d @mansr add copyright notices for myself and Diego
mansr authored
4 #
949906e @DonDiego Update copyright years.
DonDiego authored
5 # Copyright (c) 2000-2002 Fabrice Bellard
6 # Copyright (c) 2005-2008 Diego Biurrun
7 # Copyright (c) 2005-2008 Mans Rullgard
0f3cb30 added bigendian support - added cross compilation support - added genera...
Fabrice Bellard authored
8 #
cf9d24a - Moving -Wall from the individual Makefiles to configure (and only
Dan Christiansen authored
9
31e647f @DonDiego Globally set LC_ALL=C to prevent locale issues from breaking tests.
DonDiego authored
10 # Prevent locale nonsense from breaking basic text processing.
79ab96b @DonDiego Revert the merger of LC_ALL declaration and export.
DonDiego authored
11 LC_ALL=C
12 export LC_ALL
31e647f @DonDiego Globally set LC_ALL=C to prevent locale issues from breaking tests.
DonDiego authored
13
cde2d79 @mansr Try to find a better shell if the one configure was started under is
mansr authored
14 # make sure we are running under a compatible shell
c21d632 @mansr improve broken shell detection, and give a better error message
mansr authored
15 # try to make this part work with most shells
16
17 try_exec(){
0dbe81b @mansr make shell test work with Solaris /bin/sh
mansr authored
18 echo "Trying shell $1"
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
19 type "$1" > /dev/null 2>&1 && exec "$@"
c21d632 @mansr improve broken shell detection, and give a better error message
mansr authored
20 }
21
5237ce6 @mansr detect more broken shells
mansr authored
22 unset foo
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
23 (: ${foo%%bar}) 2> /dev/null
0dbe81b @mansr make shell test work with Solaris /bin/sh
mansr authored
24 E1="$?"
25
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
26 (: ${foo?}) 2> /dev/null
0dbe81b @mansr make shell test work with Solaris /bin/sh
mansr authored
27 E2="$?"
28
29 if test "$E1" != 0 || test "$E2" = 0; then
30 echo "Broken shell detected. Trying alternatives."
c21d632 @mansr improve broken shell detection, and give a better error message
mansr authored
31 export FF_CONF_EXEC
32 if test "0$FF_CONF_EXEC" -lt 1; then
33 FF_CONF_EXEC=1
34 try_exec bash "$0" "$@"
35 fi
36 if test "0$FF_CONF_EXEC" -lt 2; then
37 FF_CONF_EXEC=2
38 try_exec ksh "$0" "$@"
39 fi
40 if test "0$FF_CONF_EXEC" -lt 3; then
41 FF_CONF_EXEC=3
42 try_exec /usr/xpg4/bin/sh "$0" "$@"
cde2d79 @mansr Try to find a better shell if the one configure was started under is
mansr authored
43 fi
44 echo "No compatible shell script interpreter found."
fc53da2 @DonDiego typo
DonDiego authored
45 echo "This configure script requires a POSIX-compatible shell"
c21d632 @mansr improve broken shell detection, and give a better error message
mansr authored
46 echo "such as bash or ksh."
c0b1bc8 @michaelni Revert "partially rename FFmpeg to Libav"
michaelni authored
47 echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
505dfb0 @DonDiego Improve broken shell warning.
DonDiego authored
48 echo "Instead, install a working POSIX-compatible shell."
c0b1bc8 @michaelni Revert "partially rename FFmpeg to Libav"
michaelni authored
49 echo "Disabling this configure test will create a broken FFmpeg."
c21d632 @mansr improve broken shell detection, and give a better error message
mansr authored
50 if test "$BASH_VERSION" = '2.04.0(1)-release'; then
51 echo "This bash version ($BASH_VERSION) is broken on your platform."
52 echo "Upgrade to a later version if available."
53 fi
cde2d79 @mansr Try to find a better shell if the one configure was started under is
mansr authored
54 exit 1
55 fi
56
74c53c2 @mansr make configure --whatever --help work as expected
mansr authored
57 show_help(){
f69f51b @DonDiego configure: indentation cosmetics
DonDiego authored
58 cat <<EOF
0645487 @mansr configure: use here-doc for --help output
mansr authored
59 Usage: configure [options]
60 Options: [defaults in brackets after descriptions]
61
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
62 Help options:
0645487 @mansr configure: use here-doc for --help output
mansr authored
63 --help print this message
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
64 --list-decoders show all available decoders
65 --list-encoders show all available encoders
66 --list-hwaccels show all available hardware accelerators
67 --list-demuxers show all available demuxers
68 --list-muxers show all available muxers
69 --list-parsers show all available parsers
70 --list-protocols show all available protocols
71 --list-bsfs show all available bitstream filters
72 --list-indevs show all available input devices
73 --list-outdevs show all available output devices
74 --list-filters show all available filters
75
76 Standard options:
19bd477 Name the default configure log filename as "config.log" rather than
Stefano Sabatini authored
77 --logfile=FILE log tests and output to FILE [config.log]
0645487 @mansr configure: use here-doc for --help output
mansr authored
78 --disable-logging do not log configure debug information
79 --prefix=PREFIX install in PREFIX [$prefix]
80 --bindir=DIR install binaries in DIR [PREFIX/bin]
d27dc69 @michaelni configure: fix datadir after avconv merge
michaelni authored
81 --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]
0645487 @mansr configure: use here-doc for --help output
mansr authored
82 --libdir=DIR install libs in DIR [PREFIX/lib]
83 --shlibdir=DIR install shared libs in DIR [PREFIX/lib]
84 --incdir=DIR install includes in DIR [PREFIX/include]
85 --mandir=DIR install man page in DIR [PREFIX/share/man]
86
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
87 Licensing options:
0645487 @mansr configure: use here-doc for --help output
mansr authored
88 --enable-gpl allow use of GPL code, the resulting libs
89 and binaries will be under GPL [no]
90 --enable-version3 upgrade (L)GPL to version 3 [no]
91 --enable-nonfree allow use of nonfree code, the resulting libs
92 and binaries will be unredistributable [no]
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
93
94 Configuration options:
95 --disable-static do not build static libraries [no]
96 --enable-shared build shared libraries [no]
97 --enable-small optimize for size instead of speed
c75b611 @michaelni configure: enable runtime cpu detect by default.
michaelni authored
98 --disable-runtime-cpudetect disable detecting cpu capabilities at runtime (smaller binary)
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
99 --enable-gray enable full grayscale support (slower color)
100 --disable-swscale-alpha disable alpha channel support in swscale
101
c3da2c1 @saste build: extend documentation building mechanism
saste authored
102 Documentation options:
0645487 @mansr configure: use here-doc for --help output
mansr authored
103 --disable-doc do not build documentation
c3da2c1 @saste build: extend documentation building mechanism
saste authored
104 --disable-htmlpages do not build HTML documentation pages
105 --disable-manpages do not build man documentation pages
106 --disable-podpages do not build POD documentation pages
107 --disable-txtpages do not build text documentation pages
108
109 Component options:
0645487 @mansr configure: use here-doc for --help output
mansr authored
110 --disable-ffmpeg disable ffmpeg build
111 --disable-ffplay disable ffplay build
336ce91 Add FFprobe tool.
Stefano Sabatini authored
112 --disable-ffprobe disable ffprobe build
0645487 @mansr configure: use here-doc for --help output
mansr authored
113 --disable-ffserver disable ffserver build
5a0f713 @mansr Allow disabling of lavc, lavf, lavd, and lsws
mansr authored
114 --disable-avdevice disable libavdevice build
115 --disable-avcodec disable libavcodec build
116 --disable-avformat disable libavformat build
b5875b9 @michaelni Add libswresample.
michaelni authored
117 --disable-swresample disable libswresample build
5a0f713 @mansr Allow disabling of lavc, lavf, lavd, and lsws
mansr authored
118 --disable-swscale disable libswscale build
ced9556 @mansr configure: Enable libpostproc automatically if GPL code is enabled.
mansr authored
119 --disable-postproc disable libpostproc build
0cc9077 @saste configure: fix help message for --disable-avfilter
saste authored
120 --disable-avfilter disable libavfilter build
f2bc2e8 @michaelni configure: disable avresample by default
michaelni authored
121 --enable-avresample enable libavresample build [no]
0dbfc1d @mansr Enable pthreads automatically unless w32threads is requested
mansr authored
122 --disable-pthreads disable pthreads [auto]
7b7b220 @mstorsjo Enable w32threads automatically unless explicitly disabled
mstorsjo authored
123 --disable-w32threads disable Win32 threads [auto]
ad0bdd2 @komh lavc: add supports of OS/2 threads
komh authored
124 --disable-os2threads disable OS/2 threads [auto]
0645487 @mansr configure: use here-doc for --help output
mansr authored
125 --enable-x11grab enable X11 grabbing [no]
126 --disable-network disable network support [no]
7f3f5f4 Floating point discrete cosine transform
Vitor Sessak authored
127 --disable-dct disable DCT code
193cdd9 @DonDiego configure: Add missing descriptions to help output
DonDiego authored
128 --disable-dwt disable DWT code
129 --disable-lsp disable LSP code
0645487 @mansr configure: use here-doc for --help output
mansr authored
130 --disable-mdct disable MDCT code
131 --disable-rdft disable RDFT code
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
132 --disable-fft disable FFT code
133 --enable-dxva2 enable DXVA2 code
fb464fc @cehoyos Match VA-API / VDPAU with zlib / bzlib build system documentation.
cehoyos authored
134 --enable-vaapi enable VAAPI code [autodetect]
967facb @michaelni Merge remote-tracking branch 'qatar/master'
michaelni authored
135 --enable-vda enable VDA code [autodetect]
fb464fc @cehoyos Match VA-API / VDPAU with zlib / bzlib build system documentation.
cehoyos authored
136 --enable-vdpau enable VDPAU code [autodetect]
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
137
138 Individual component options:
bb55e3a @ramiropolla Document --disable-everything in configure --help.
ramiropolla authored
139 --disable-everything disable all components listed below
0645487 @mansr configure: use here-doc for --help output
mansr authored
140 --disable-encoder=NAME disable encoder NAME
141 --enable-encoder=NAME enable encoder NAME
142 --disable-encoders disable all encoders
143 --disable-decoder=NAME disable decoder NAME
144 --enable-decoder=NAME enable decoder NAME
145 --disable-decoders disable all decoders
146 --disable-hwaccel=NAME disable hwaccel NAME
147 --enable-hwaccel=NAME enable hwaccel NAME
148 --disable-hwaccels disable all hwaccels
149 --disable-muxer=NAME disable muxer NAME
150 --enable-muxer=NAME enable muxer NAME
151 --disable-muxers disable all muxers
152 --disable-demuxer=NAME disable demuxer NAME
153 --enable-demuxer=NAME enable demuxer NAME
154 --disable-demuxers disable all demuxers
155 --enable-parser=NAME enable parser NAME
156 --disable-parser=NAME disable parser NAME
157 --disable-parsers disable all parsers
158 --enable-bsf=NAME enable bitstream filter NAME
159 --disable-bsf=NAME disable bitstream filter NAME
160 --disable-bsfs disable all bitstream filters
161 --enable-protocol=NAME enable protocol NAME
162 --disable-protocol=NAME disable protocol NAME
163 --disable-protocols disable all protocols
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
164 --enable-indev=NAME enable input device NAME
0645487 @mansr configure: use here-doc for --help output
mansr authored
165 --disable-indev=NAME disable input device NAME
166 --disable-indevs disable input devices
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
167 --enable-outdev=NAME enable output device NAME
168 --disable-outdev=NAME disable output device NAME
0645487 @mansr configure: use here-doc for --help output
mansr authored
169 --disable-outdevs disable output devices
170 --disable-devices disable all devices
171 --enable-filter=NAME enable filter NAME
172 --disable-filter=NAME disable filter NAME
173 --disable-filters disable all filters
174
175 External library support:
176 --enable-avisynth enable reading of AVISynth script files [no]
177 --enable-bzlib enable bzlib [autodetect]
40b7a27 vf_drawtext: fontconfig support.
Nicolas George authored
178 --enable-fontconfig enable fontconfig
4794108 Add frei0r filter.
Stefano Sabatini authored
179 --enable-frei0r enable frei0r video filtering
bc8c139 @mstorsjo configure: Allow linking to the gnutls library
mstorsjo authored
180 --enable-gnutls enable gnutls [no]
a11eeb9 @saste configure: sort entries
saste authored
181 --enable-libaacplus enable AAC+ encoding via libaacplus [no]
28338bc @saste lavfi: add libass based subtitles renderer
saste authored
182 --enable-libass enable libass subtitles rendering [no]
23a5bf9 @hpi1 bluray protocol
hpi1 authored
183 --enable-libbluray enable BluRay reading using libbluray [no]
296c1b6 @richardpl libcaca output device
authored
184 --enable-libcaca enable textual display using libcaca
a11eeb9 @saste configure: sort entries
saste authored
185 --enable-libcelt enable CELT decoding via libcelt [no]
e417d80 @elenril lavd: add libcdio-paranoia input device for audio CD grabbing
elenril authored
186 --enable-libcdio enable audio CD grabbing with libcdio
0645487 @mansr configure: use here-doc for --help output
mansr authored
187 --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
188 and libraw1394 [no]
c547e5f @DonDiego configure: clarify external library section of help output
DonDiego authored
189 --enable-libfaac enable AAC encoding via libfaac [no]
190 --enable-libfdk-aac enable AAC encoding via libfdk-aac [no]
66a5201 @saste lavfi: add flite audio source
saste authored
191 --enable-libflite enable flite (voice synthesis) support via libflite [no]
bd8e750 Port drawtext filter by Hemanth from the libavfilter soc repo, with
Stefano Sabatini authored
192 --enable-libfreetype enable libfreetype [no]
c547e5f @DonDiego configure: clarify external library section of help output
DonDiego authored
193 --enable-libgsm enable GSM de/encoding via libgsm [no]
e0d6b90 @michaelni configure: cleanup libiec61883 code, allow enabling via command line
michaelni authored
194 --enable-libiec61883 enable iec61883 via libiec61883 [no]
3641b04 @mstorsjo Add support for iLBC decoding/encoding via the external library libilbc
mstorsjo authored
195 --enable-libilbc enable iLBC de/encoding via libilbc [no]
26c7ff9 @ubitux Add libmodplug support.
ubitux authored
196 --enable-libmodplug enable ModPlug via libmodplug [no]
0645487 @mansr configure: use here-doc for --help output
mansr authored
197 --enable-libmp3lame enable MP3 encoding via libmp3lame [no]
198 --enable-libnut enable NUT (de)muxing via libnut,
199 native (de)muxer exists [no]
becc3c6 @mstorsjo configure: Sort the library listings in the help text alphabetically
mstorsjo authored
200 --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
201 --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
202 --enable-libopencv enable video filtering via libopencv [no]
453c02f libopenjpeg: introduce encoding support
Michael Bradshaw authored
203 --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
a6cf296 lavc: Opus decoder using libopus.
Nicolas George authored
204 --enable-libopus enable Opus decoding via libopus [no]
7c92241 @elenril configure: add libpulse to help output
elenril authored
205 --enable-libpulse enable Pulseaudio input via libpulse [no]
0f943ce Implement support to RTMP, RTMPT, RTMPE, RTMPTE, RTMPS protocols via
Howard Chu authored
206 --enable-librtmp enable RTMP[E] support via librtmp [no]
c547e5f @DonDiego configure: clarify external library section of help output
DonDiego authored
207 --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
208 --enable-libspeex enable Speex de/encoding via libspeex [no]
fd26574 @hexene Fix regular build
hexene authored
209 --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
0645487 @mansr configure: use here-doc for --help output
mansr authored
210 --enable-libtheora enable Theora encoding via libtheora [no]
f5f9872 @richardpl libtwolame MP2 encoding support
authored
211 --enable-libtwolame enable MP2 encoding via libtwolame [no]
01606d1 @dwbuiten libutvideo: Add Ut Video encoder wrapper
dwbuiten authored
212 --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
1054ab3 @ubitux v4l2: add libv4l2 support.
ubitux authored
213 --enable-libv4l2 enable libv4l2/v4l-utils [no]
d89e738 @mstorsjo Add an AAC encoder by using the libvo-aacenc library
mstorsjo authored
214 --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
f502ff3 @mstorsjo Add support for AMR-WB encoding via libvo-amrwbenc
mstorsjo authored
215 --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
afcb671 @michaelni Revert "Remove libvorbis Vorbis decoding support. Our native decoder is...
michaelni authored
216 --enable-libvorbis enable Vorbis en/decoding via libvorbis,
0645487 @mansr configure: use here-doc for --help output
mansr authored
217 native implementation exists [no]
c547e5f @DonDiego configure: clarify external library section of help output
DonDiego authored
218 --enable-libvpx enable VP8 de/encoding via libvpx [no]
0645487 @mansr configure: use here-doc for --help output
mansr authored
219 --enable-libx264 enable H.264 encoding via x264 [no]
de29597 add Chinese AVS encoding via external library libxavs
Stefan Gehrer authored
220 --enable-libxavs enable AVS encoding via xavs [no]
0645487 @mansr configure: use here-doc for --help output
mansr authored
221 --enable-libxvid enable Xvid encoding via xvidcore,
222 native MPEG-4/Xvid encoder exists [no]
65eae2a @jbaldwin9182 lavdev: add openal input device
jbaldwin9182 authored
223 --enable-openal enable OpenAL 1.1 capture support [no]
a060866 @mstorsjo configure: Allow linking to openssl
mstorsjo authored
224 --enable-openssl enable openssl [no]
0645487 @mansr configure: use here-doc for --help output
mansr authored
225 --enable-zlib enable zlib [autodetect]
226
227 Advanced options (experts only):
228 --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]
229 --enable-cross-compile assume a cross-compiler is used
230 --sysroot=PATH root of cross-build tree
231 --sysinclude=PATH location of cross-build system headers
232 --target-os=OS compiler targets OS [$target_os]
233 --target-exec=CMD command to run executables on target
234 --target-path=DIR path to view of build directory on target
aeeb782 @mansr configure: add --toolchain option
mansr authored
235 --toolchain=NAME set tool defaults according to NAME
9c909e8 @beastd build: Describe --nm and -ld options consistently
beastd authored
236 --nm=NM use nm tool NM [$nm_default]
121d78d Allow to set archiver tool ar.
Carl Eugen Hoyos authored
237 --ar=AR use archive tool AR [$ar_default]
0645487 @mansr configure: use here-doc for --help output
mansr authored
238 --as=AS use assembler AS [$as_default]
72b33ea @beastd build: Support selecting yasm-compatible assembler
beastd authored
239 --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default]
0645487 @mansr configure: use here-doc for --help output
mansr authored
240 --cc=CC use C compiler CC [$cc_default]
006d2ab @hexene C++ Support ;)
hexene authored
241 --cxx=CXX use C compiler CXX [$cxx_default]
193cdd9 @DonDiego configure: Add missing descriptions to help output
DonDiego authored
242 --dep-cc=DEPCC use dependency generator DEPCC [$cc_default]
9c909e8 @beastd build: Describe --nm and -ld options consistently
beastd authored
243 --ld=LD use linker LD [$ld_default]
0645487 @mansr configure: use here-doc for --help output
mansr authored
244 --host-cc=HOSTCC use host C compiler HOSTCC
245 --host-cflags=HCFLAGS use HCFLAGS when compiling for host
095792f @mansr build: add separate setting for host linker
mansr authored
246 --host-ld=HOSTLD use host linker HOSTLD
0645487 @mansr configure: use here-doc for --help output
mansr authored
247 --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
248 --host-libs=HLIBS use libs HLIBS when linking for host
193cdd9 @DonDiego configure: Add missing descriptions to help output
DonDiego authored
249 --host-os=OS compiler host OS [$target_os]
0645487 @mansr configure: use here-doc for --help output
mansr authored
250 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
006d2ab @hexene C++ Support ;)
hexene authored
251 --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
0645487 @mansr configure: use here-doc for --help output
mansr authored
252 --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
253 --extra-libs=ELIBS add ELIBS [$ELIBS]
254 --extra-version=STRING version string suffix []
193cdd9 @DonDiego configure: Add missing descriptions to help output
DonDiego authored
255 --optflags=OPTFLAGS override optimization-related compiler flags
0645487 @mansr configure: use here-doc for --help output
mansr authored
256 --build-suffix=SUFFIX library name suffix []
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
257 --malloc-prefix=PREFIX prefix malloc and related names with PREFIX
33d9077 @ubitux build: introduce --progs-suffix option.
ubitux authored
258 --progs-suffix=SUFFIX program name suffix []
0645487 @mansr configure: use here-doc for --help output
mansr authored
259 --arch=ARCH select architecture [$arch]
260 --cpu=CPU select the minimum required CPU (affects
261 instruction selection, may crash on older CPUs)
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
262 --enable-pic build position-independent code
263 --enable-sram allow use of on-chip SRAM
193cdd9 @DonDiego configure: Add missing descriptions to help output
DonDiego authored
264 --enable-thumb compile for Thumb instruction set
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
265 --disable-symver disable symbol versioning
266 --enable-hardcoded-tables use hardcoded tables instead of runtime generation
267 --disable-safe-bitstream-reader
268 disable buffer boundary checking in bitreaders
269 (faster, but may crash)
270 --enable-memalign-hack emulate memalign, interferes with memory debuggers
65d1290 @mansr configure: add --enable-lto option
mansr authored
271 --enable-lto use link-time optimization
3b327a4 @DonDiego configure: Restructure help output.
DonDiego authored
272
273 Optimization options (experts only):
c8a4ae0 @mansr configure: add --disable-asm option
mansr authored
274 --disable-asm disable all assembler optimizations
0645487 @mansr configure: use here-doc for --help output
mansr authored
275 --disable-altivec disable AltiVec optimizations
276 --disable-amd3dnow disable 3DNow! optimizations
277 --disable-amd3dnowext disable 3DNow! extended optimizations
278 --disable-mmx disable MMX optimizations
239fdf1 @DonDiego x86: build: replace mmx2 by mmxext
DonDiego authored
279 --disable-mmxext disable MMXEXT optimizations
0645487 @mansr configure: use here-doc for --help output
mansr authored
280 --disable-sse disable SSE optimizations
50cd43f @DonDiego configure: Add more fine-grained SSE CPU capabilities flags
DonDiego authored
281 --disable-sse2 disable SSE2 optimizations
282 --disable-sse3 disable SSE3 optimizations
0645487 @mansr configure: use here-doc for --help output
mansr authored
283 --disable-ssse3 disable SSSE3 optimizations
50cd43f @DonDiego configure: Add more fine-grained SSE CPU capabilities flags
DonDiego authored
284 --disable-sse4 disable SSE4 optimizations
285 --disable-sse42 disable SSE4.2 optimizations
cdeba2d @mansr x86: check for AVX support
mansr authored
286 --disable-avx disable AVX optimizations
7968707 @justinruggles x86: add support for fmaddps fma4 instruction with abstraction to avx/ss...
justinruggles authored
287 --disable-fma4 disable FMA4 optimizations
0645487 @mansr configure: use here-doc for --help output
mansr authored
288 --disable-armv5te disable armv5te optimizations
289 --disable-armv6 disable armv6 optimizations
290 --disable-armv6t2 disable armv6t2 optimizations
291 --disable-armvfp disable ARM VFP optimizations
292 --disable-mmi disable MMI optimizations
5ea2063 @DonDiego Fix a bunch of platform name and other typos.
DonDiego authored
293 --disable-neon disable NEON optimizations
0645487 @mansr configure: use here-doc for --help output
mansr authored
294 --disable-vis disable VIS optimizations
afb5ed5 @DonDiego configure: Add --disable-inline-asm command line option
DonDiego authored
295 --disable-inline-asm disable use of inline assembler
0645487 @mansr configure: use here-doc for --help output
mansr authored
296 --disable-yasm disable use of yasm assembler
3827a86 @nbabic Optimization of AMR NB and WB decoders for MIPS
nbabic authored
297 --disable-mips32r2 disable MIPS32R2 optimizations
298 --disable-mipsdspr1 disable MIPS DSP ASE R1 optimizations
299 --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations
300 --disable-mipsfpu disable floating point MIPS optimizations
d35a986 @michaelni configure: make fast_unaligned configureable
michaelni authored
301 --disable-fast-unaligned consider unaligned accesses slow
79f80f5 @beastd build: Allow building old API/ABI libpostproc version
beastd authored
302 --postproc-version=V build libpostproc version V.
303 Where V can be '$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO' or 'current'. [$postproc_version_default]
0645487 @mansr configure: use here-doc for --help output
mansr authored
304
c0b1bc8 @michaelni Revert "partially rename FFmpeg to Libav"
michaelni authored
305 Developer options (useful when working on FFmpeg itself):
840ecc9 Add coverage support.
Reimar Döffinger authored
306 --enable-coverage build with test coverage instrumentation
0645487 @mansr configure: use here-doc for --help output
mansr authored
307 --disable-debug disable debugging symbols
308 --enable-debug=LEVEL set the debug level [$debuglevel]
309 --disable-optimizations disable compiler optimizations
310 --enable-extra-warnings enable more compiler warnings
b1ca964 @michaelni Revert "Remove support for stripping executables"
michaelni authored
311 --disable-stripping disable stripping of executables and shared libraries
352a67e @michaelni configure: fix - vs _ error
michaelni authored
312 --assert-level=level 0(default), 1 or 2, amount of assertion testing,
fe5b7db @michaelni build system: support setting avassert() assert_level
michaelni authored
313 2 causes a slowdown at runtime.
7c84e7d @ubitux mem: heap memory poisoning.
ubitux authored
314 --enable-memory-poisoning fill heap uninitialized allocated space with arbitrary data
77b90f0 Add a --valgrind configure option.
Reimar Döffinger authored
315 --valgrind=VALGRIND run "make fate" tests through valgrind to detect memory
316 leaks and errors, using the specified valgrind binary.
317 Cannot be combined with --target-exec
e73bac4 @michaelni configure: add support to nicely enable ftrapv
michaelni authored
318 --enable-ftrapv Trap arithmetic overflows
bbd289a configure: document FATE_SAMPLES env var in --help text
Reimar Döffinger authored
319 --samples=PATH location of test samples for FATE, if not set use
320 \$FATE_SAMPLES at make invocation time.
7e4d9d5 @rbultje win64: add a XMM clobber test configure option.
rbultje authored
321 --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
322 should be used only for debugging purposes)
a128b31 @mansr configure: add --enable/disable-random option
mansr authored
323 --enable-random randomly enable/disable components
324 --disable-random
325 --enable-random=LIST randomly enable/disable specific components or
326 --disable-random=LIST component groups. LIST is a comma-separated list
327 of NAME[:PROB] entries where NAME is a component
328 (group) and PROB the probability associated with
329 NAME (default 0.5).
330 --random-seed=VALUE seed value for --enable/disable-random
0645487 @mansr configure: use here-doc for --help output
mansr authored
331
332 NOTE: Object files are built at the place where configure is launched.
333 EOF
60e8bc1 Make configure --help return 0.
Stefano Sabatini authored
334 exit 0
74c53c2 @mansr make configure --whatever --help work as expected
mansr authored
335 }
cf9d24a - Moving -Wall from the individual Makefiles to configure (and only
Dan Christiansen authored
336
0884fad @mansr configure: fix symver detection with icc 10
mansr authored
337 quotes='""'
338
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
339 log(){
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
340 echo "$@" >> $logfile
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
341 }
342
720c69d @mansr solaris sh doesn't allow functions and variables with the same name
mansr authored
343 log_file(){
c8e9f80 @mansr improved logging tests
mansr authored
344 log BEGIN $1
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
345 pr -n -t $1 >> $logfile
c8e9f80 @mansr improved logging tests
mansr authored
346 log END $1
347 }
348
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
349 echolog(){
c8e9f80 @mansr improved logging tests
mansr authored
350 log "$@"
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
351 echo "$@"
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
352 }
353
7bfc8ae @mansr configure: add 'warn' function
mansr authored
354 warn(){
355 log "WARNING: $*"
356 WARNINGS="${WARNINGS}WARNING: $*\n"
357 }
358
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
359 die(){
360 echolog "$@"
361 cat <<EOF
d326cf7 @DonDiego Add an empty line in front of configure debug instructions.
DonDiego authored
362
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
363 If you think configure made a mistake, make sure you are using the latest
4a6a21f @llogan Change SVN to Git in configure
llogan authored
364 version from Git. If the latest version fails, report the problem to the
63ec0aa configure: update ffmpeg-user mailing-list address
Stefano Sabatini authored
365 ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
366 EOF
e155a21 @DonDiego Invert logging variable logic so that it works without setting a default...
DonDiego authored
367 if disabled logging; then
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
368 cat <<EOF
e155a21 @DonDiego Invert logging variable logic so that it works without setting a default...
DonDiego authored
369 Rerun configure with logging enabled (do not use --disable-logging), and
370 include the log this produces with your report.
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
371 EOF
372 else
f69f51b @DonDiego configure: indentation cosmetics
DonDiego authored
373 cat <<EOF
e155a21 @DonDiego Invert logging variable logic so that it works without setting a default...
DonDiego authored
374 Include the log file "$logfile" produced by configure as this will help
375 solving the problem.
2ba042a @mansr enable logging in configure by default, and print some advice on failure
mansr authored
376 EOF
377 fi
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
378 exit 1
379 }
380
6c6007d @DonDiego Do not use ranges with tr, the results are locale-dependent.
DonDiego authored
381 # Avoid locale weirdness, besides we really just want to translate ASCII.
4416111 @mansr factorize config.h/config.mak writing
mansr authored
382 toupper(){
6c6007d @DonDiego Do not use ranges with tr, the results are locale-dependent.
DonDiego authored
383 echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
4416111 @mansr factorize config.h/config.mak writing
mansr authored
384 }
385
4a5444d @mansr case insensitive OS name
mansr authored
386 tolower(){
6c6007d @DonDiego Do not use ranges with tr, the results are locale-dependent.
DonDiego authored
387 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
4a5444d @mansr case insensitive OS name
mansr authored
388 }
389
14a8acf @mansr configure: add datadir variable and write to config.{h,mak}
mansr authored
390 c_escape(){
391 echo "$*" | sed 's/["\\]/\\\0/g'
392 }
393
b04251c @mansr configure: properly quote configure options stored in config.*
mansr authored
394 sh_quote(){
395 v=$(echo "$1" | sed "s/'/'\\\\''/g")
d72c981 @mansr configure: fix sh_quote function
mansr authored
396 test "x$v" = "x${v#*[!A-Za-z0-9_/.+-]}" || v="'$v'"
b04251c @mansr configure: properly quote configure options stored in config.*
mansr authored
397 echo "$v"
398 }
399
8429368 @mansr configure: add cleanws() function
mansr authored
400 cleanws(){
401 echo "$@" | sed 's/^ *//;s/ */ /g;s/ *$//'
402 }
403
be8f250 @mansr configure: allow wildcards in --enable/disable-thing=name
mansr authored
404 filter(){
405 pat=$1
406 shift
407 for v; do
98ef607 @mansr configure: fix filter() function when matching multiple patterns
mansr authored
408 eval "case $v in $pat) echo $v ;; esac"
be8f250 @mansr configure: allow wildcards in --enable/disable-thing=name
mansr authored
409 done
410 }
411
9c5c348 @mansr configure: add filter_out() function
mansr authored
412 filter_out(){
413 pat=$1
414 shift
415 for v; do
416 eval "case $v in $pat) ;; *) echo $v ;; esac"
417 done
418 }
419
36e2dea @mansr configure: add --disable-everything option
mansr authored
420 map(){
421 m=$1
422 shift
e0e335a @mansr configure: do not use $_
mansr authored
423 for v; do eval $m; done
36e2dea @mansr configure: add --disable-everything option
mansr authored
424 }
425
43b73d5 @DonDiego configure: x86: Separate inline from standalone assembler capabilities
DonDiego authored
426 add_suffix(){
427 suffix=$1
428 shift
429 for v; do echo ${v}${suffix}; done
430 }
431
a8d04fb @mansr #define ENABLE_*_CODEC etc as 0 or 1 in config.h
mansr authored
432 set_all(){
433 value=$1
434 shift
435 for var in $*; do
436 eval $var=$value
437 done
438 }
439
72a4366 @mansr configure: add enable_weak and disable_weak
mansr authored
440 set_weak(){
441 value=$1
442 shift
443 for var; do
444 eval : \${$var:=$value}
445 done
446 }
447
5d117bd @mansr configure: improve pkg-config support
mansr authored
448 set_safe(){
449 var=$1
450 shift
451 eval $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')='$*'
452 }
453
454 get_safe(){
455 eval echo \$$(echo "$1" | sed 's/[^A-Za-z0-9_]/_/g')
456 }
457
799c9e9 @mansr recursive feature dependency checking
mansr authored
458 pushvar(){
459 for var in $*; do
460 eval level=\${${var}_level:=0}
461 eval ${var}_${level}="\$$var"
462 eval ${var}_level=$(($level+1))
463 done
464 }
465
466 popvar(){
467 for var in $*; do
468 eval level=\${${var}_level:-0}
469 test $level = 0 && continue
470 eval level=$(($level-1))
471 eval $var="\${${var}_${level}}"
472 eval ${var}_level=$level
473 eval unset ${var}_${level}
474 done
475 }
476
a8d04fb @mansr #define ENABLE_*_CODEC etc as 0 or 1 in config.h
mansr authored
477 enable(){
478 set_all yes $*
479 }
480
481 disable(){
482 set_all no $*
483 }
484
72a4366 @mansr configure: add enable_weak and disable_weak
mansr authored
485 enable_weak(){
486 set_weak yes $*
487 }
488
489 disable_weak(){
490 set_weak no $*
491 }
492
7270270 @mansr configure: {enable,disable}_safe functions that sanitise arguments
mansr authored
493 enable_safe(){
fd07f80 @mansr configure: allow names with spaces in enable/disable_safe
mansr authored
494 for var; do
495 enable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')
496 done
7270270 @mansr configure: {enable,disable}_safe functions that sanitise arguments
mansr authored
497 }
498
499 disable_safe(){
fd07f80 @mansr configure: allow names with spaces in enable/disable_safe
mansr authored
500 for var; do
501 disable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')
502 done
7270270 @mansr configure: {enable,disable}_safe functions that sanitise arguments
mansr authored
503 }
504
f9d328d @mansr configure: allow recursive foo_select options
mansr authored
505 do_enable_deep(){
506 for var; do
507 enabled $var && continue
508 eval sel="\$${var}_select"
c510c7b @mansr configure: add foo_suggest facility
mansr authored
509 eval sgs="\$${var}_suggest"
510 pushvar var sgs
f9d328d @mansr configure: allow recursive foo_select options
mansr authored
511 enable_deep $sel
c510c7b @mansr configure: add foo_suggest facility
mansr authored
512 popvar sgs
513 enable_deep_weak $sgs
f9d328d @mansr configure: allow recursive foo_select options
mansr authored
514 popvar var
515 done
516 }
517
518 enable_deep(){
519 do_enable_deep $*
520 enable $*
521 }
522
72a4366 @mansr configure: add enable_weak and disable_weak
mansr authored
523 enable_deep_weak(){
524 do_enable_deep $*
525 enable_weak $*
526 }
527
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
528 enabled(){
3250003 @mansr configure: allow !foo as argument to enabled/disabled and *_deps lists
mansr authored
529 test "${1#!}" = "$1" && op== || op=!=
530 eval test "x\$${1#!}" $op "xyes"
4416111 @mansr factorize config.h/config.mak writing
mansr authored
531 }
532
37970eb Add disabled() function and make use of it.
Ramiro Polla authored
533 disabled(){
3250003 @mansr configure: allow !foo as argument to enabled/disabled and *_deps lists
mansr authored
534 test "${1#!}" = "$1" && op== || op=!=
535 eval test "x\$${1#!}" $op "xno"
37970eb Add disabled() function and make use of it.
Ramiro Polla authored
536 }
537
4416111 @mansr factorize config.h/config.mak writing
mansr authored
538 enabled_all(){
539 for opt; do
540 enabled $opt || return 1
541 done
542 }
543
85bca2c @DonDiego Add disabled_any() and disabled_all() functions.
DonDiego authored
544 disabled_all(){
545 for opt; do
546 disabled $opt || return 1
547 done
548 }
549
4416111 @mansr factorize config.h/config.mak writing
mansr authored
550 enabled_any(){
551 for opt; do
552 enabled $opt && return 0
553 done
554 }
555
85bca2c @DonDiego Add disabled_any() and disabled_all() functions.
DonDiego authored
556 disabled_any(){
557 for opt; do
558 disabled $opt && return 0
559 done
f7b230a @mansr configure: fix disabled_any to return false for empty list
mansr authored
560 return 1
85bca2c @DonDiego Add disabled_any() and disabled_all() functions.
DonDiego authored
561 }
562
c9d1924 @mansr improve installation path selection
mansr authored
563 set_default(){
564 for opt; do
88268e9 @mansr configure: simplify set_default function
mansr authored
565 eval : \${$opt:=\$${opt}_default}
c9d1924 @mansr improve installation path selection
mansr authored
566 done
567 }
568
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
569 is_in(){
570 value=$1
571 shift
572 for var in $*; do
573 [ $var = $value ] && return 0
574 done
575 return 1
576 }
577
30fd06b @mansr check dependencies before setting CONFIG_*/ENABLE_*
mansr authored
578 check_deps(){
579 for cfg; do
3250003 @mansr configure: allow !foo as argument to enabled/disabled and *_deps lists
mansr authored
580 cfg="${cfg#!}"
799c9e9 @mansr recursive feature dependency checking
mansr authored
581 enabled ${cfg}_checking && die "Circular dependency for $cfg."
582 disabled ${cfg}_checking && continue
583 enable ${cfg}_checking
584
30fd06b @mansr check dependencies before setting CONFIG_*/ENABLE_*
mansr authored
585 eval dep_all="\$${cfg}_deps"
586 eval dep_any="\$${cfg}_deps_any"
7ef3425 @mansr configure: add foo_select facility
mansr authored
587 eval dep_sel="\$${cfg}_select"
c510c7b @mansr configure: add foo_suggest facility
mansr authored
588 eval dep_sgs="\$${cfg}_suggest"
3d7453e @mansr configure: allow reverse auto-selection of options
mansr authored
589 eval dep_ifa="\$${cfg}_if"
590 eval dep_ifn="\$${cfg}_if_any"
799c9e9 @mansr recursive feature dependency checking
mansr authored
591
3d7453e @mansr configure: allow reverse auto-selection of options
mansr authored
592 pushvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
593 check_deps $dep_all $dep_any $dep_sel $dep_sgs $dep_ifa $dep_ifn
594 popvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
799c9e9 @mansr recursive feature dependency checking
mansr authored
595
3d7453e @mansr configure: allow reverse auto-selection of options
mansr authored
596 [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; }
597 [ -n "$dep_ifn" ] && { enabled_any $dep_ifn && enable_weak $cfg; }
6a702d4 @mansr configure: cosmetics
mansr authored
598 enabled_all $dep_all || disable $cfg
599 enabled_any $dep_any || disable $cfg
7ef3425 @mansr configure: add foo_select facility
mansr authored
600 disabled_any $dep_sel && disable $cfg
799c9e9 @mansr recursive feature dependency checking
mansr authored
601
4ec4576 @ramiropolla Add extralibs to the dependency checker
ramiropolla authored
602 if enabled $cfg; then
603 eval dep_extralibs="\$${cfg}_extralibs"
604 test -n "$dep_extralibs" && add_extralibs $dep_extralibs
f9d328d @mansr configure: allow recursive foo_select options
mansr authored
605 enable_deep $dep_sel
c510c7b @mansr configure: add foo_suggest facility
mansr authored
606 enable_deep_weak $dep_sgs
4ec4576 @ramiropolla Add extralibs to the dependency checker
ramiropolla authored
607 fi
608
799c9e9 @mansr recursive feature dependency checking
mansr authored
609 disable ${cfg}_checking
30fd06b @mansr check dependencies before setting CONFIG_*/ENABLE_*
mansr authored
610 done
611 }
612
72cfcf4 @mansr configure: make print_config() more flexible
mansr authored
613 print_config_h(){
614 enabled $1 && v=1 || v=0
615 echo "#define $2 $v"
616 }
617
618 print_config_mak(){
619 enabled $1 && v= || v=!
620 echo "$v$2=yes"
621 }
622
55127e7 @mansr Create config.asm for use with yasm
mansr authored
623 print_config_asm(){
3b15a6d @rbultje config.asm: change %ifdef directives to %if directives.
rbultje authored
624 enabled $1 && v=1 || v=0
625 echo "%define $2 $v"
55127e7 @mansr Create config.asm for use with yasm
mansr authored
626 }
627
4416111 @mansr factorize config.h/config.mak writing
mansr authored
628 print_config(){
629 pfx=$1
72cfcf4 @mansr configure: make print_config() more flexible
mansr authored
630 files=$2
631 shift 2
4416111 @mansr factorize config.h/config.mak writing
mansr authored
632 for cfg; do
5e622c4 @DonDiego Replace all `` by $(), the latter can be nested more easily.
DonDiego authored
633 ucname="$(toupper $cfg)"
72cfcf4 @mansr configure: make print_config() more flexible
mansr authored
634 for f in $files; do
635 "print_config_${f##*.}" $cfg ${pfx}${ucname} >>$f
636 done
4416111 @mansr factorize config.h/config.mak writing
mansr authored
637 done
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
638 }
639
31c0121 @mansr configure: add print_enabled() function
mansr authored
640 print_enabled(){
641 test "$1" = -n && end=" " && shift || end="\n"
642 suf=$1
643 shift
644 for v; do
645 enabled $v && printf "%s$end" ${v%$suf};
646 done
647 }
648
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
649 append(){
650 var=$1
651 shift
652 eval "$var=\"\$$var $*\""
653 }
654
6036181 @mansr configure: reverse order of -l flags
mansr authored
655 prepend(){
656 var=$1
657 shift
658 eval "$var=\"$* \$$var\""
659 }
660
50a334e @mansr Separate C preprocessor flags into CPPFLAGS variable
mansr authored
661 add_cppflags(){
cd52ec9 @mansr configure: remove filter_cppflags
mansr authored
662 append CPPFLAGS "$@"
50a334e @mansr Separate C preprocessor flags into CPPFLAGS variable
mansr authored
663 }
664
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
665 add_cflags(){
01d31e1 @mansr configure: name some variables more consistently
mansr authored
666 append CFLAGS $($cflags_filter "$@")
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
667 }
668
006d2ab @hexene C++ Support ;)
hexene authored
669 add_cxxflags(){
32c3038 @michaelni Merge remote-tracking branch 'qatar/master'
michaelni authored
670 append CXXFLAGS $($cflags_filter "$@")
006d2ab @hexene C++ Support ;)
hexene authored
671 }
672
2f2e6c7 @mansr Pass ASFLAGS to assembler instead of CFLAGS
mansr authored
673 add_asflags(){
01d31e1 @mansr configure: name some variables more consistently
mansr authored
674 append ASFLAGS $($asflags_filter "$@")
2f2e6c7 @mansr Pass ASFLAGS to assembler instead of CFLAGS
mansr authored
675 }
676
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
677 add_ldflags(){
64933b6 @mansr configure: add filtering of linker flags
mansr authored
678 append LDFLAGS $($ldflags_filter "$@")
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
679 }
680
681 add_extralibs(){
64933b6 @mansr configure: add filtering of linker flags
mansr authored
682 prepend extralibs $($ldflags_filter "$@")
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
683 }
684
6c3fa06 @mansr configure: add filtering of host cflags/ldflags
mansr authored
685 add_host_cflags(){
686 append host_cflags $($host_cflags_filter "$@")
687 }
688
689 add_host_ldflags(){
690 append host_ldflags $($host_ldflags_filter "$@")
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
691 }
692
b0cfb66 @mansr can't trust the compiler exit status, check for messages instead
mansr authored
693 check_cmd(){
b3cb5d5 @mansr simplify command logging
mansr authored
694 log "$@"
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
695 "$@" >> $logfile 2>&1
b0cfb66 @mansr can't trust the compiler exit status, check for messages instead
mansr authored
696 }
697
b2704a6 @mansr configure: respect CC_O setting in check_cc
mansr authored
698 cc_o(){
699 eval printf '%s\\n' $CC_O
700 }
701
18031c4 @mansr build: support non-standard replacements for -E flag
mansr authored
702 cc_e(){
703 eval printf '%s\\n' $CC_E
704 }
705
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
706 check_cc(){
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
707 log check_cc "$@"
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
708 cat > $TMPC
720c69d @mansr solaris sh doesn't allow functions and variables with the same name
mansr authored
709 log_file $TMPC
23565c2 @mansr build: support non-standard replacements for -c flag
mansr authored
710 check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
711 }
712
006d2ab @hexene C++ Support ;)
hexene authored
713 check_cxx(){
714 log check_cxx "$@"
715 cat > $TMPCPP
716 log_file $TMPCPP
64f0775 @michaelni buildsys: fix c++ compilation
michaelni authored
717 check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP
006d2ab @hexene C++ Support ;)
hexene authored
718 }
719
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
720 check_cpp(){
721 log check_cpp "$@"
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
722 cat > $TMPC
720c69d @mansr solaris sh doesn't allow functions and variables with the same name
mansr authored
723 log_file $TMPC
18031c4 @mansr build: support non-standard replacements for -E flag
mansr authored
724 check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
725 }
726
df0d634 @mansr configure: use AS_O setting in check_as
mansr authored
727 as_o(){
728 eval printf '%s\\n' $AS_O
729 }
730
f65883c @mansr configure: check asm support using $as
mansr authored
731 check_as(){
732 log check_as "$@"
733 cat > $TMPC
734 log_file $TMPC
df0d634 @mansr configure: use AS_O setting in check_as
mansr authored
735 check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPC
f65883c @mansr configure: check asm support using $as
mansr authored
736 }
737
575db88 @DonDiego configure: Rename check_asm() to more fitting check_inline_asm()
DonDiego authored
738 check_inline_asm(){
739 log check_inline_asm "$@"
940f335 @mansr create and use check_asm() function
mansr authored
740 name="$1"
3784e82 @mansr configure: rename a variable in check_asm
mansr authored
741 code="$2"
940f335 @mansr create and use check_asm() function
mansr authored
742 shift 2
49214f6 @mansr configure: return result of test from check_asm
mansr authored
743 disable $name
744 check_as "$@" <<EOF && enable $name
3784e82 @mansr configure: rename a variable in check_asm
mansr authored
745 void foo(void){ __asm__ volatile($code); }
940f335 @mansr create and use check_asm() function
mansr authored
746 EOF
747 }
748
304d586 yasm buildsystem
Loren Merritt authored
749 check_yasm(){
750 log check_yasm "$@"
751 echo "$1" > $TMPS
752 log_file $TMPS
753 shift 1
c112b6b @jamrial configure: Treat warnings as errors in check_yasm()
jamrial authored
754 check_cmd $yasmexe $YASMFLAGS -Werror "$@" -o $TMPO $TMPS
304d586 yasm buildsystem
Loren Merritt authored
755 }
756
29b64b6 @mansr configure: use LD_O setting in check_ld()
mansr authored
757 ld_o(){
758 eval printf '%s\\n' $LD_O
759 }
760
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
761 check_ld(){
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
762 log check_ld "$@"
006d2ab @hexene C++ Support ;)
hexene authored
763 type=$1
764 shift 1
3155a64 @mansr place -l flags after object files in check_ld()
mansr authored
765 flags=''
766 libs=''
767 for f; do
768 test "${f}" = "${f#-l}" && flags="$flags $f" || libs="$libs $f"
769 done
32c3038 @michaelni Merge remote-tracking branch 'qatar/master'
michaelni authored
770 check_$type $($cflags_filter $flags) || return
64933b6 @mansr configure: add filtering of linker flags
mansr authored
771 flags=$($ldflags_filter $flags)
772 libs=$($ldflags_filter $libs)
29b64b6 @mansr configure: use LD_O setting in check_ld()
mansr authored
773 check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
774 }
775
5adc829 @mansr configure: add functions for testing code fragments
mansr authored
776 check_code(){
777 log check_code "$@"
778 check=$1
779 headers=$2
780 code=$3
781 shift 3
782 {
783 for hdr in $headers; do
784 echo "#include <$hdr>"
785 done
786 echo "int main(void) { $code; return 0; }"
787 } | check_$check "$@"
788 }
789
50a334e @mansr Separate C preprocessor flags into CPPFLAGS variable
mansr authored
790 check_cppflags(){
791 log check_cppflags "$@"
caf458d @mansr Allow filtering of flags passed to compiler and assembler
mansr authored
792 check_cc "$@" <<EOF && append CPPFLAGS "$@"
50a334e @mansr Separate C preprocessor flags into CPPFLAGS variable
mansr authored
793 int x;
794 EOF
795 }
796
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
797 check_cflags(){
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
798 log check_cflags "$@"
01d31e1 @mansr configure: name some variables more consistently
mansr authored
799 set -- $($cflags_filter "$@")
caf458d @mansr Allow filtering of flags passed to compiler and assembler
mansr authored
800 check_cc "$@" <<EOF && append CFLAGS "$@"
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
801 int x;
802 EOF
803 }
804
006d2ab @hexene C++ Support ;)
hexene authored
805 check_cxxflags(){
806 log check_cxxflags "$@"
32c3038 @michaelni Merge remote-tracking branch 'qatar/master'
michaelni authored
807 set -- $($cflags_filter "$@")
006d2ab @hexene C++ Support ;)
hexene authored
808 check_cxx "$@" <<EOF && append CXXFLAGS "$@"
809 int x;
810 EOF
811 }
812
2ed46ee @mansr configure: add test_ldflags function
mansr authored
813 test_ldflags(){
814 log test_ldflags "$@"
006d2ab @hexene C++ Support ;)
hexene authored
815 check_ld "cc" "$@" <<EOF
c23a0ac @DonDiego cosmetics: Write some trivial C test programs in a more compact form.
DonDiego authored
816 int main(void){ return 0; }
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
817 EOF
818 }
819
2ed46ee @mansr configure: add test_ldflags function
mansr authored
820 check_ldflags(){
821 log check_ldflags "$@"
822 test_ldflags "$@" && add_ldflags "$@"
823 }
824
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
825 check_header(){
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
826 log check_header "$@"
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
827 header=$1
828 shift
b77df63 @mansr configure: fix return value from check_header
mansr authored
829 disable_safe $header
830 check_cpp "$@" <<EOF && enable_safe $header
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
831 #include <$header>
832 int x;
833 EOF
834 }
835
836 check_func(){
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
837 log check_func "$@"
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
838 func=$1
839 shift
d8bc5f0 @mansr simplify
mansr authored
840 disable $func
006d2ab @hexene C++ Support ;)
hexene authored
841 check_ld "cc" "$@" <<EOF && enable $func
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
842 extern int $func();
c23a0ac @DonDiego cosmetics: Write some trivial C test programs in a more compact form.
DonDiego authored
843 int main(void){ $func(); }
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
844 EOF
845 }
846
645d265 @mansr Special check for math.h functions
mansr authored
847 check_mathfunc(){
6b73c0a @mansr configure: fix cosmetic typo in check_mathfunc
mansr authored
848 log check_mathfunc "$@"
645d265 @mansr Special check for math.h functions
mansr authored
849 func=$1
850 shift
851 disable $func
006d2ab @hexene C++ Support ;)
hexene authored
852 check_ld "cc" "$@" <<EOF && enable $func
645d265 @mansr Special check for math.h functions
mansr authored
853 #include <math.h>
33bd38d @mansr Stricter check for math.h functions
mansr authored
854 float foo(float f) { return $func(f); }
9331a2e @michaelni configure: slightly more robust looking check for math functions.
michaelni authored
855 int main(void){ return (int) foo; }
645d265 @mansr Special check for math.h functions
mansr authored
856 EOF
857 }
858
2446d3d @DonDiego Rename check_func2 to check_func_headers.
DonDiego authored
859 check_func_headers(){
860 log check_func_headers "$@"
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
861 headers=$1
05aa8c4 @mansr configure: allow checking multiple functions in check_func_headers()
mansr authored
862 funcs=$2
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
863 shift 2
05aa8c4 @mansr configure: allow checking multiple functions in check_func_headers()
mansr authored
864 {
865 for hdr in $headers; do
866 echo "#include <$hdr>"
867 done
868 for func in $funcs; do
869 echo "long check_$func(void) { return (long) $func; }"
870 done
871 echo "int main(void) { return 0; }"
006d2ab @hexene C++ Support ;)
hexene authored
872 } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers
873 }
874
875 check_class_headers_cpp(){
876 log check_class_headers_cpp "$@"
877 headers=$1
878 classes=$2
879 shift 2
880 {
881 for hdr in $headers; do
882 echo "#include <$hdr>"
883 done
884 echo "int main(void) { "
885 i=1
886 for class in $classes; do
887 echo "$class obj$i;"
888 i=$(expr $i + 1)
889 done
890 echo "return 0; }"
891 } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
892 }
893
a5344cf Implement CPP condition check support in configure.
Stefano Sabatini authored
894 check_cpp_condition(){
895 log check_cpp_condition "$@"
896 header=$1
897 condition=$2
f855b7b @mansr configure: pass extra flags to check_cpp from check_cpp_condition
mansr authored
898 shift 2
cd52ec9 @mansr configure: remove filter_cppflags
mansr authored
899 check_cpp "$@" <<EOF
a5344cf Implement CPP condition check support in configure.
Stefano Sabatini authored
900 #include <$header>
901 #if !($condition)
902 #error "unsatisfied condition: $condition"
903 #endif
904 EOF
905 }
906
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
907 check_lib(){
908 log check_lib "$@"
909 header="$1"
910 func="$2"
911 shift 2
84400e9 @mansr configure: simplify check_lib function
mansr authored
912 check_header $header && check_func $func "$@" && add_extralibs "$@"
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
913 }
914
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
915 check_lib2(){
916 log check_lib2 "$@"
917 headers="$1"
05aa8c4 @mansr configure: allow checking multiple functions in check_func_headers()
mansr authored
918 funcs="$2"
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
919 shift 2
05aa8c4 @mansr configure: allow checking multiple functions in check_func_headers()
mansr authored
920 check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@"
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
921 }
922
006d2ab @hexene C++ Support ;)
hexene authored
923 check_lib_cpp(){
924 log check_lib_cpp "$@"
925 headers="$1"
926 classes="$2"
927 shift 2
928 check_class_headers_cpp "$headers" "$classes" "$@" && add_extralibs "$@"
929 }
930
5d117bd @mansr configure: improve pkg-config support
mansr authored
931 check_pkg_config(){
932 log check_pkg_config "$@"
933 pkg="$1"
934 headers="$2"
935 funcs="$3"
936 shift 3
cde5589 @cehoyos Silence a warning if pkg_config is not installed.
cehoyos authored
937 $pkg_config --exists $pkg 2>/dev/null || return
5d117bd @mansr configure: improve pkg-config support
mansr authored
938 pkg_cflags=$($pkg_config --cflags $pkg)
939 pkg_libs=$($pkg_config --libs $pkg)
940 check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" &&
941 set_safe ${pkg}_cflags $pkg_cflags &&
942 set_safe ${pkg}_libs $pkg_libs
943 }
944
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
945 check_exec(){
006d2ab @hexene C++ Support ;)
hexene authored
946 check_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
947 }
948
7dfef24 @mansr trap signals in tests that can crash
mansr authored
949 check_exec_crash(){
5e622c4 @DonDiego Replace all `` by $(), the latter can be nested more easily.
DonDiego authored
950 code=$(cat)
7dfef24 @mansr trap signals in tests that can crash
mansr authored
951
952 # exit() is not async signal safe. _Exit (C99) and _exit (POSIX)
953 # are safe but may not be available everywhere. Thus we use
954 # raise(SIGTERM) instead. The check is run in a subshell so we
955 # can redirect the "Terminated" message from the shell. SIGBUS
956 # is not defined by standard C so it is used conditionally.
957
2270b4b @DonDiego cosmetics: Add whitespace around redirection operators.
DonDiego authored
958 (check_exec "$@") >> $logfile 2>&1 <<EOF
7dfef24 @mansr trap signals in tests that can crash
mansr authored
959 #include <signal.h>
960 static void sighandler(int sig){
961 raise(SIGTERM);
962 }
d000c5a @michaelni configure: move code out of main of check_exec_crash()
michaelni authored
963 int func(void){
964 $code
965 }
71d6b46 configure: fix gcc asm tests for MinGW GCC 4.6.2
Laurent authored
966 int (*func_ptr)(void) = func;
e5af4a1 @DonDiego main() --> main(void)
DonDiego authored
967 int main(void){
7dfef24 @mansr trap signals in tests that can crash
mansr authored
968 signal(SIGILL, sighandler);
969 signal(SIGFPE, sighandler);
970 signal(SIGSEGV, sighandler);
971 #ifdef SIGBUS
972 signal(SIGBUS, sighandler);
973 #endif
71d6b46 configure: fix gcc asm tests for MinGW GCC 4.6.2
Laurent authored
974 return func_ptr();
7dfef24 @mansr trap signals in tests that can crash
mansr authored
975 }
976 EOF
977 }
978
72be9e7 @dryeo Add portable way to check for the existence of definitions and
dryeo authored
979 check_type(){
980 log check_type "$@"
981 headers=$1
982 type=$2
983 shift 2
ae550ce @mstorsjo configure: Make check_type handle type names containing spaces
mstorsjo authored
984 disable_safe "$type"
5adc829 @mansr configure: add functions for testing code fragments
mansr authored
985 check_code cc "$headers" "$type v" "$@" && enable_safe "$type"
72be9e7 @dryeo Add portable way to check for the existence of definitions and
dryeo authored
986 }
987
14d3675 @mansr configure: add check_struct function
mansr authored
988 check_struct(){
989 log check_type "$@"
990 headers=$1
991 struct=$2
992 member=$3
993 shift 3
994 disable_safe "${struct}_${member}"
5adc829 @mansr configure: add functions for testing code fragments
mansr authored
995 check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
996 enable_safe "${struct}_${member}"
14d3675 @mansr configure: add check_struct function
mansr authored
997 }
998
57bd82d @mansr test availability of various compiler flags, and verify that requested
mansr authored
999 require(){
1000 name="$1"
1001 header="$2"
1002 func="$3"
1003 shift 3
1004 check_lib $header $func "$@" || die "ERROR: $name not found"
dcd479c @mansr major cleanup of compiler/library tests
mansr authored
1005 }
1006
f8d7b07 @mansr feature tests for functions requiring one or more headers
mansr authored
1007 require2(){
1008 name="$1"
1009 headers="$2"
1010 func="$3"
1011 shift 3
1012 check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
1013 }
1014
006d2ab @hexene C++ Support ;)
hexene authored
1015 require_cpp(){
1016 name="$1"
1017 headers="$2"
1018 classes="$3"
1019 shift 3
1020 check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found"
1021 }
1022
5d117bd @mansr configure: improve pkg-config support
mansr authored
1023 require_pkg_config(){
1024 pkg="$1"
1025 check_pkg_config "$@" || die "ERROR: $pkg not found"
1026 add_cflags $(get_safe ${pkg}_cflags)
1027 add_extralibs $(get_safe ${pkg}_libs)
1028 }
1029
ae43c4c @mansr configure: use HOSTCC_C/O in check_host_cc
mansr authored
1030 hostcc_o(){
1031 eval printf '%s\\n' $HOSTCC_O
1032 }
1033
f0125de @mansr configure: add C99 flags to HOSTCFLAGS
mansr authored
1034 check_host_cc(){
1035 log check_host_cc "$@"
1036 cat > $TMPC
1037 log_file $TMPC
ae43c4c @mansr configure: use HOSTCC_C/O in check_host_cc
mansr authored
1038 check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
f0125de @mansr configure: add C99 flags to HOSTCFLAGS
mansr authored
1039 }
1040
1041 check_host_cflags(){
1042 log check_host_cflags "$@"
6c3fa06 @mansr configure: add filtering of host cflags/ldflags
mansr authored
1043 set -- $($host_cflags_filter "$@")
f0125de @mansr configure: add C99 flags to HOSTCFLAGS
mansr authored
1044 check_host_cc "$@" <<EOF && append host_cflags "$@"
1045 int x;
1046 EOF
1047 }
1048
c505dd3 @mansr don't use non-standard sed -i option
mansr authored
1049 apply(){
1050 file=$1
1051 shift
1052 "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
1053 }
1054
c34681d @mansr configure: add cp_if_changed function and use for config.h
mansr authored
1055 cp_if_changed(){
5e27ec2 @mansr build: create output directories as needed
mansr authored
1056 cmp -s "$1" "$2" && echo "$2 is unchanged" && return
1057 mkdir -p "$(dirname $2)"
1058 cp -f "$1" "$2"
c34681d @mansr configure: add cp_if_changed function and use for config.h
mansr authored
1059 }
1060
dcd6128 @DonDiego Explain the difference between HAVE_LIST and CONFIG_LIST in a short comm...
DonDiego authored
1061 # CONFIG_LIST contains configurable options, while HAVE_LIST is for
1062 # system-dependent things.
1063
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
1064 COMPONENT_LIST="
1065 bsfs
1066 decoders
1067 demuxers
1068 encoders
3cde40a 10l, alphabetic ordering
Vitor Sessak authored
1069 filters
5666fd7 Add hwaccel configury. This generates CONFIG_<CODEC>_<HWACCEL>_HWACCEL
Gwenole Beauchesne authored
1070 hwaccels
c552605 @DonDiego Add --list-indevs and --list-outdevs command line options.
DonDiego authored
1071 indevs
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
1072 muxers
c552605 @DonDiego Add --list-indevs and --list-outdevs command line options.
DonDiego authored
1073 outdevs
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
1074 parsers
1075 protocols
1076 "
1077
c3da2c1 @saste build: extend documentation building mechanism
saste authored
1078 DOCUMENT_LIST="
1079 doc
1080 htmlpages
1081 manpages
1082 podpages
1083 txtpages
1084 "
1085
055c61b @DonDiego configure: refactor list of programs into a variable
DonDiego authored
1086 PROGRAM_LIST="
175cc37 @michaelni Merge remote-tracking branch 'qatar/master'
michaelni authored
1087 ffplay
1088 ffprobe
1089 ffserver
055c61b @DonDiego configure: refactor list of programs into a variable
DonDiego authored
1090 ffmpeg
1091 "
1092
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
1093 CONFIG_LIST="
1094 $COMPONENT_LIST
c3da2c1 @saste build: extend documentation building mechanism
saste authored
1095 $DOCUMENT_LIST
055c61b @DonDiego configure: refactor list of programs into a variable
DonDiego authored
1096 $PROGRAM_LIST
5a0f713 @mansr Allow disabling of lavc, lavf, lavd, and lsws
mansr authored
1097 avcodec
1098 avdevice
f7679c5 Build system changes for libavfilter addition. Add --enable-avfilter con...
Vitor Sessak authored
1099 avfilter
5a0f713 @mansr Allow disabling of lavc, lavf, lavd, and lsws
mansr authored
1100 avformat
c8af852 @justinruggles Add libavresample
justinruggles authored
1101 avresample
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1102 avisynth
f402916 @aurelj Add a check for bzlib; used in the Matroska demuxer.
aurelj authored
1103 bzlib
b33fa8a @philipl CrystalHD decoder support v7
philipl authored
1104 crystalhd
7f3f5f4 Floating point discrete cosine transform
Vitor Sessak authored
1105 dct
05aec7b @mansr Separate DWT from snow and dsputil
mansr authored
1106 dwt
92c6a09 H264 DXVA2 implementation
Laurent Aimar authored
1107 dxva2
d35a986 @michaelni configure: make fast_unaligned configureable
michaelni authored
1108 fast_unaligned
1848f7d @mansr Auto-enable CONFIG_FFT for codecs that need it
mansr authored
1109 fft
40b7a27 vf_drawtext: fontconfig support.
Nicolas George authored
1110 fontconfig
4794108 Add frei0r filter.
Stefano Sabatini authored
1111 frei0r
e73bac4 @michaelni configure: add support to nicely enable ftrapv
michaelni authored
1112 ftrapv
bc8c139 @mstorsjo configure: Allow linking to the gnutls library
mstorsjo authored
1113 gnutls
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1114 gpl
d8d0d0b @michaelni move gray so as to not introduce further misordering
michaelni authored
1115 gray
3abe5fb @aurelj improve CRC API
aurelj authored
1116 hardcoded_tables
42e7855 @michaelni configure: add switch to enable debian/libav compatible ABI
michaelni authored
1117 incompatible_fork_abi
cbf914c @piratfm libaac+ support
piratfm authored
1118 libaacplus
28338bc @saste lavfi: add libass based subtitles renderer
saste authored
1119 libass
23a5bf9 @hpi1 bluray protocol
hpi1 authored
1120 libbluray
296c1b6 @richardpl libcaca output device
authored
1121 libcaca
e417d80 @elenril lavd: add libcdio-paranoia input device for audio CD grabbing
elenril authored
1122 libcdio
89451dd Xiph CELT/Opus decoder using libcelt.
Nicolas George authored
1123 libcelt
f7b8bff @ramiropolla Treat dc1394 as a library
ramiropolla authored
1124 libdc1394
2eed5a4 @DonDiego Rename variables: faad --> libfaad, faac --> libfaac, faadbin --> libfaa...
DonDiego authored
1125 libfaac
37eeb5e @mstorsjo Support AAC encoding via the external library fdk-aac
mstorsjo authored
1126 libfdk_aac
66a5201 @saste lavfi: add flite audio source
saste authored
1127 libflite
bd8e750 Port drawtext filter by Hemanth from the libavfilter soc repo, with
Stefano Sabatini authored
1128 libfreetype
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1129 libgsm
e0d6b90 @michaelni configure: cleanup libiec61883 code, allow enabling via command line
michaelni authored
1130 libiec61883
3641b04 @mstorsjo Add support for iLBC decoding/encoding via the external library libilbc
mstorsjo authored
1131 libilbc
26c7ff9 @ubitux Add libmodplug support.
ubitux authored
1132 libmodplug
6ebe07f @DonDiego variable renaming: mp3lame --> libmp3lame
DonDiego authored
1133 libmp3lame
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1134 libnut
0b175ca @DonDiego Add support for external OpenCORE libraries for AMR-NB/WB support.
DonDiego authored
1135 libopencore_amrnb
1136 libopencore_amrwb
6ebf0bf Implement libopencv smooth filter.
Stefano Sabatini authored
1137 libopencv
9a77d59 Use libopenjpeg for jpeg2k decoding.
Jai Menon authored
1138 libopenjpeg
a6cf296 lavc: Opus decoder using libopus.
Nicolas George authored
1139 libopus
f5b0938 @lu-zero pulse: introduce pulseaudio input
lu-zero authored
1140 libpulse
0f943ce Implement support to RTMP, RTMPT, RTMPE, RTMPTE, RTMPS protocols via
Howard Chu authored
1141 librtmp
f7cd9ee Add Dirac support through libschroedinger.
Anuradha Suraparaju authored
1142 libschroedinger
ae14f31 @yuvi Speex decoding via libspeex
yuvi authored
1143 libspeex
fd26574 @hexene Fix regular build
hexene authored
1144 libstagefright_h264
150d277 @DonDiego Theora encoding via libtheora.
DonDiego authored
1145 libtheora
f5f9872 @richardpl libtwolame MP2 encoding support
authored
1146 libtwolame
1de357d @dwbuiten libutvideo: Add Ut Video Decoder Wrapper
dwbuiten authored
1147 libutvideo
1054ab3 @ubitux v4l2: add libv4l2 support.
ubitux authored
1148 libv4l2
d89e738 @mstorsjo Add an AAC encoder by using the libvo-aacenc library
mstorsjo authored
1149 libvo_aacenc
f502ff3 @mstorsjo Add support for AMR-WB encoding via libvo-amrwbenc
mstorsjo authored
1150 libvo_amrwbenc
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1151 libvorbis
8299a7f VP8 decoding via libvpx.
James Zern authored
1152 libvpx
1cc60c4 @DonDiego Consistent naming and lib prefixes for x264, xvid and mp3lame within the...
DonDiego authored
1153 libx264
de29597 add Chinese AVS encoding via external library libxavs
Stefan Gehrer authored
1154 libxavs
1cc60c4 @DonDiego Consistent naming and lib prefixes for x264, xvid and mp3lame within the...
DonDiego authored
1155 libxvid
b781cc1 @mansr Make lsp a separate configurable and select it from codecs needing it
mansr authored
1156 lsp
47a158c @mansr Auto-enable CONFIG_MDCT when needed
mansr authored
1157 mdct
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1158 memalign_hack
7c84e7d @ubitux mem: heap memory poisoning.
ubitux authored
1159 memory_poisoning
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1160 network
3fe142e @DonDiego Add a --enable-nonfree command line parameter similar to --enable-gpl.
DonDiego authored
1161 nonfree
65eae2a @jbaldwin9182 lavdev: add openal input device
jbaldwin9182 authored
1162 openal
a060866 @mstorsjo configure: Allow linking to openssl
mstorsjo authored
1163 openssl
8a3c862 @mansr configure: add --enable-pic flag
mansr authored
1164 pic
4a24ab6 @DonDiego Rename pp variable to postproc for consistency.
DonDiego authored
1165 postproc
6860254 @aconverse Add the rdft family of transforms (fft/ifft of an all real sequence) to ...
aconverse authored
1166 rdft
e90f5b5 @ramiropolla configure: Add --enable-runtime-cpudetect
ramiropolla authored
1167 runtime_cpudetect
8cfbbd9 @rbultje get_bits: introduce safe bitreading to prevent overreads.
rbultje authored
1168 safe_bitstream_reader
2e35e68 @mansr Make shared/static full CONFIG options
mansr authored
1169 shared
bd2216e @mansr handle --enable-small same way as other CONFIG_* options (almost)
mansr authored
1170 small
6b35d42 @mansr Add CONFIG_SRAM to allow use of on-chip SRAM on some systems
mansr authored
1171 sram
2e35e68 @mansr Make shared/static full CONFIG options
mansr authored
1172 static
b5875b9 @michaelni Add libswresample.
michaelni authored
1173 swresample
5a0f713 @mansr Allow disabling of lavc, lavf, lavd, and lsws
mansr authored
1174 swscale
a9ddb5b @sdrik Add a CONFIG_SWSCALE_ALPHA option for alpha channel scaling (enabled by ...
sdrik authored
1175 swscale_alpha
8986fdd @mansr ARM: allow building in Thumb2 mode
mansr authored
1176 thumb
17492d5 @DonDiego Add code to enable and disable all VAAPI and VDPAU parts.
DonDiego authored
1177 vaapi
d66ee6a @dilaroga HWAccel: adds Video Decoder Acceleration (VDA) module for Mac OS X.
dilaroga authored
1178 vda
17492d5 @DonDiego Add code to enable and disable all VAAPI and VDPAU parts.
DonDiego authored
1179 vdpau
9cad0e4 @DonDiego Add configure option to upgrade (L)GPL to version 3.
DonDiego authored
1180 version3
7e4d9d5 @rbultje win64: add a XMM clobber test configure option.
rbultje authored
1181 xmm_clobber_test
56a059a @DonDiego Make the X11 frame grabber disabled by default.
DonDiego authored
1182 x11grab
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1183 zlib
4a0d668 @aurelj ensure configure only accept valid --list-* parameters
aurelj authored
1184 "
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1185
8eee702 @DonDiego Collect the different thread variables in a nice easy to reuse list.
DonDiego authored
1186 THREADS_LIST='
1187 pthreads
1188 w32threads
ad0bdd2 @komh lavc: add supports of OS/2 threads
komh authored
1189 os2threads
8eee702 @DonDiego Collect the different thread variables in a nice easy to reuse list.
DonDiego authored
1190 '
1191
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1192 ARCH_LIST='
1193 alpha
a2fc0f6 @mansr ARM: replace "armv4l" with "arm"
mansr authored
1194 arm
fdcd782 @mansr configure: add AVR32 names for --cpu flag
mansr authored
1195 avr32
1196 avr32_ap
1197 avr32_uc
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1198 bfin
1199 ia64
1200 m68k
1201 mips
bae3abb @mansr Define ARCH_MIPS64 when building for MIPS64
mansr authored
1202 mips64
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1203 parisc
79cb09b @DonDiego consistency cosmetics: Rename POWERPC identifiers to PPC.
DonDiego authored
1204 ppc
34d11b8 Change HAVE_PPC64 to ARCH_PPC64.
Reimar Döffinger authored
1205 ppc64
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1206 s390
1207 sh4
1208 sparc
1209 sparc64
0844bae @mansr Add "tomi" architecture
mansr authored
1210 tomi
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1211 x86
1212 x86_32
1213 x86_64
1214 '
1215
50cd43f @DonDiego configure: Add more fine-grained SSE CPU capabilities flags
DonDiego authored
1216 ARCH_EXT_LIST_X86='
3bf96ee @DonDiego Add AMD 3DNow! instruction enabling/disabling support in the build syste...
DonDiego authored
1217 amd3dnow
a1ef9f0 @DonDiego Add support for enabling/disabling AMD 3DNow! extended optimizations.
DonDiego authored
1218 amd3dnowext
50cd43f @DonDiego configure: Add more fine-grained SSE CPU capabilities flags
DonDiego authored
1219 avx
1220 fma4
1221 mmx
1222 mmxext
1223 sse
1224 sse2
1225 sse3
1226 sse4
1227 sse42
1228 ssse3
1229 '
1230
1231 ARCH_EXT_LIST="
1232 $ARCH_EXT_LIST_X86
1233 altivec
1ac9331 @mansr simplify setting of TARGET_* variables
mansr authored
1234 armv5te
edab304 @mansr check for ARMv6 instruction set support
mansr authored
1235 armv6
ab5cb08 @mansr configure: check for ARMv6T2 support
mansr authored
1236 armv6t2
f55b299 @mansr check for ARM VFP support
mansr authored
1237 armvfp
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1238 mmi
6b18d27 @mansr check for ARM NEON assembler support
mansr authored
1239 neon
799fde3 @DonDiego Add a check for ppc4xx instructions; rename preprocessor directive accor...
DonDiego authored
1240 ppc4xx
93eb8e4 @mansr ARM: check for VFPv3
mansr authored
1241 vfpv3
bd9d34a @DonDiego Add a proper test for VIS instruction support.
DonDiego authored
1242 vis
3827a86 @nbabic Optimization of AMR NB and WB decoders for MIPS
nbabic authored
1243 mipsfpu
1244 mips32r2
1245 mipsdspr1
1246 mipsdspr2
50cd43f @DonDiego configure: Add more fine-grained SSE CPU capabilities flags
DonDiego authored
1247 "
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1248
fd712a5 @DonDiego configure: Refactor HAVE_ options available on the command line
DonDiego authored
1249 HAVE_LIST_CMDLINE='
1250 inline_asm
1251 symver
1252 yasm
1253 '
1254
a3e02a8 @mansr Create and install libavutil/avconfig.h
mansr authored
1255 HAVE_LIST_PUB='
1256 bigendian
d268eee @mansr Set fast_unaligned in avconfig.h
mansr authored
1257 fast_unaligned
42e7855 @michaelni configure: add switch to enable debian/libav compatible ABI
michaelni authored
1258 incompatible_fork_abi
a3e02a8 @mansr Create and install libavutil/avconfig.h
mansr authored
1259 '
1260
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1261 HAVE_LIST="
1262 $ARCH_EXT_LIST
43b73d5 @DonDiego configure: x86: Separate inline from standalone assembler capabilities
DonDiego authored
1263 $(add_suffix _external $ARCH_EXT_LIST)
1264 $(add_suffix _inline $ARCH_EXT_LIST)
fd712a5 @DonDiego configure: Refactor HAVE_ options available on the command line
DonDiego authored
1265 $HAVE_LIST_CMDLINE
a3e02a8 @mansr Create and install libavutil/avconfig.h
mansr authored
1266 $HAVE_LIST_PUB
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1267 $THREADS_LIST
be1a839 @rbultje mem: add support for _aligned_malloc() as found on Windows
rbultje authored
1268 aligned_malloc
59782b8 @mansr Add HAVE_ALIGNED_STACK config setting
mansr authored
1269 aligned_stack
35fd812 Add ALSA support in libavdevice.
Nicolas George authored
1270 alsa_asoundlib_h
3f5b56e @mansr replace TARGET_* with HAVE_* simplifying lists in configure script
mansr authored
1271 altivec_h
c9fdab0 @mmuman Some more BeOS cleanup: check for arpa/inet.h; declare the prototype for...
mmuman authored
1272 arpa_inet_h
ec9d2c1 @mansr ARM: use Q/R inline asm operand modifiers only if supported
mansr authored
1273 asm_mod_q
6308729 @mansr ARM: check for inline asm 'y' operand modifier support
mansr authored
1274 asm_mod_y
ffa1f54 @tevansuk libavdevice: Fix v4l2 compilation under FreeBSD
tevansuk authored
1275 asm_types_h
dffb41b @mansr Check for may_alias gcc attribute support
mansr authored
1276 attribute_may_alias
e7ea5e3 @mansr Check for __attribute__((packed)) support
mansr authored
1277 attribute_packed
5ae9fa1 @dwbuiten MinGW: Use our snprintf/vsnprintf when MinGW's is broken
dwbuiten authored
1278 broken_snprintf
ab25397 @mansr Check for cbrtf() and provide fallback
mansr authored
1279 cbrtf
12292f3 v4l2: allow to convert monotonic timestamps.
Nicolas George authored
1280 clock_gettime
ecf97f2 @axic check for closesocket
axic authored
1281 closesocket
1ac9331 @mansr simplify setting of TARGET_* variables
mansr authored
1282 cmov
180d43b @mansr x86: use nop cpu directives only if supported
mansr authored
1283 cpunop
1093383 @mstorsjo random_seed: Support using CryptGenRandom on windows
mstorsjo authored
1284 CryptGenRandom
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1285 dcbzl
f8aa696 @DonDiego Properly check for all required bktr headers.
DonDiego authored
1286 dev_bktr_ioctl_bt848_h
1287 dev_bktr_ioctl_meteor_h
1288 dev_ic_bt8xx_h
1289 dev_video_bktr_ioctl_bt848_h
3e0b1c9 @DonDiego configure: cosmetics: sort some lists where appropriate
DonDiego authored
1290 dev_video_meteor_ioctl_meteor_h
ca6b544 @mstorsjo os_support: Choose between direct.h and io.h using a configure check
mstorsjo authored
1291 direct_h
18b67ae @mansr rename HAVE_DLFCN to HAVE_DLFCN_H
mansr authored
1292 dlfcn_h
c88f5d7 @mansr break CONFIG_LIST and HAVE_LIST onto multiple lines
mansr authored
1293 dlopen
bc57440 @ramiropolla Only special-case absolute DOS paths on systems that support them.
ramiropolla authored
1294 dos_paths
fa84506 @rbultje dxva2: include dxva.h if found
rbultje authored
1295 dxva_h
245626d @DonDiego Move ebx_available and ebp_available from CONFIG_LIST to HAVE_LIST,
DonDiego authored
1296 ebp_available
1297 ebx_available