yading@10
|
1 #!/bin/sh
|
yading@10
|
2 #
|
yading@10
|
3 # FFmpeg configure script
|
yading@10
|
4 #
|
yading@10
|
5 # Copyright (c) 2000-2002 Fabrice Bellard
|
yading@10
|
6 # Copyright (c) 2005-2008 Diego Biurrun
|
yading@10
|
7 # Copyright (c) 2005-2008 Mans Rullgard
|
yading@10
|
8 #
|
yading@10
|
9
|
yading@10
|
10 # Prevent locale nonsense from breaking basic text processing.
|
yading@10
|
11 LC_ALL=C
|
yading@10
|
12 export LC_ALL
|
yading@10
|
13
|
yading@10
|
14 # make sure we are running under a compatible shell
|
yading@10
|
15 # try to make this part work with most shells
|
yading@10
|
16
|
yading@10
|
17 try_exec(){
|
yading@10
|
18 echo "Trying shell $1"
|
yading@10
|
19 type "$1" > /dev/null 2>&1 && exec "$@"
|
yading@10
|
20 }
|
yading@10
|
21
|
yading@10
|
22 unset foo
|
yading@10
|
23 (: ${foo%%bar}) 2> /dev/null
|
yading@10
|
24 E1="$?"
|
yading@10
|
25
|
yading@10
|
26 (: ${foo?}) 2> /dev/null
|
yading@10
|
27 E2="$?"
|
yading@10
|
28
|
yading@10
|
29 if test "$E1" != 0 || test "$E2" = 0; then
|
yading@10
|
30 echo "Broken shell detected. Trying alternatives."
|
yading@10
|
31 export FF_CONF_EXEC
|
yading@10
|
32 if test "0$FF_CONF_EXEC" -lt 1; then
|
yading@10
|
33 FF_CONF_EXEC=1
|
yading@10
|
34 try_exec bash "$0" "$@"
|
yading@10
|
35 fi
|
yading@10
|
36 if test "0$FF_CONF_EXEC" -lt 2; then
|
yading@10
|
37 FF_CONF_EXEC=2
|
yading@10
|
38 try_exec ksh "$0" "$@"
|
yading@10
|
39 fi
|
yading@10
|
40 if test "0$FF_CONF_EXEC" -lt 3; then
|
yading@10
|
41 FF_CONF_EXEC=3
|
yading@10
|
42 try_exec /usr/xpg4/bin/sh "$0" "$@"
|
yading@10
|
43 fi
|
yading@10
|
44 echo "No compatible shell script interpreter found."
|
yading@10
|
45 echo "This configure script requires a POSIX-compatible shell"
|
yading@10
|
46 echo "such as bash or ksh."
|
yading@10
|
47 echo "THIS IS NOT A BUG IN FFMPEG, DO NOT REPORT IT AS SUCH."
|
yading@10
|
48 echo "Instead, install a working POSIX-compatible shell."
|
yading@10
|
49 echo "Disabling this configure test will create a broken FFmpeg."
|
yading@10
|
50 if test "$BASH_VERSION" = '2.04.0(1)-release'; then
|
yading@10
|
51 echo "This bash version ($BASH_VERSION) is broken on your platform."
|
yading@10
|
52 echo "Upgrade to a later version if available."
|
yading@10
|
53 fi
|
yading@10
|
54 exit 1
|
yading@10
|
55 fi
|
yading@10
|
56
|
yading@10
|
57 test -d /usr/xpg4/bin && PATH=/usr/xpg4/bin:$PATH
|
yading@10
|
58
|
yading@10
|
59 show_help(){
|
yading@10
|
60 cat <<EOF
|
yading@10
|
61 Usage: configure [options]
|
yading@10
|
62 Options: [defaults in brackets after descriptions]
|
yading@10
|
63
|
yading@10
|
64 Help options:
|
yading@10
|
65 --help print this message
|
yading@10
|
66 --list-decoders show all available decoders
|
yading@10
|
67 --list-encoders show all available encoders
|
yading@10
|
68 --list-hwaccels show all available hardware accelerators
|
yading@10
|
69 --list-demuxers show all available demuxers
|
yading@10
|
70 --list-muxers show all available muxers
|
yading@10
|
71 --list-parsers show all available parsers
|
yading@10
|
72 --list-protocols show all available protocols
|
yading@10
|
73 --list-bsfs show all available bitstream filters
|
yading@10
|
74 --list-indevs show all available input devices
|
yading@10
|
75 --list-outdevs show all available output devices
|
yading@10
|
76 --list-filters show all available filters
|
yading@10
|
77
|
yading@10
|
78 Standard options:
|
yading@10
|
79 --logfile=FILE log tests and output to FILE [config.log]
|
yading@10
|
80 --disable-logging do not log configure debug information
|
yading@10
|
81 --fatal-warnings fail if any configure warning is generated
|
yading@10
|
82 --prefix=PREFIX install in PREFIX [$prefix]
|
yading@10
|
83 --bindir=DIR install binaries in DIR [PREFIX/bin]
|
yading@10
|
84 --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]
|
yading@10
|
85 --libdir=DIR install libs in DIR [PREFIX/lib]
|
yading@10
|
86 --shlibdir=DIR install shared libs in DIR [PREFIX/lib]
|
yading@10
|
87 --incdir=DIR install includes in DIR [PREFIX/include]
|
yading@10
|
88 --mandir=DIR install man page in DIR [PREFIX/share/man]
|
yading@10
|
89
|
yading@10
|
90 Licensing options:
|
yading@10
|
91 --enable-gpl allow use of GPL code, the resulting libs
|
yading@10
|
92 and binaries will be under GPL [no]
|
yading@10
|
93 --enable-version3 upgrade (L)GPL to version 3 [no]
|
yading@10
|
94 --enable-nonfree allow use of nonfree code, the resulting libs
|
yading@10
|
95 and binaries will be unredistributable [no]
|
yading@10
|
96
|
yading@10
|
97 Configuration options:
|
yading@10
|
98 --disable-static do not build static libraries [no]
|
yading@10
|
99 --enable-shared build shared libraries [no]
|
yading@10
|
100 --enable-small optimize for size instead of speed
|
yading@10
|
101 --disable-runtime-cpudetect disable detecting cpu capabilities at runtime (smaller binary)
|
yading@10
|
102 --enable-gray enable full grayscale support (slower color)
|
yading@10
|
103 --disable-swscale-alpha disable alpha channel support in swscale
|
yading@10
|
104 --disable-all disable building components, libraries and programs
|
yading@10
|
105
|
yading@10
|
106 Program options:
|
yading@10
|
107 --disable-programs do not build command line programs
|
yading@10
|
108 --disable-ffmpeg disable ffmpeg build
|
yading@10
|
109 --disable-ffplay disable ffplay build
|
yading@10
|
110 --disable-ffprobe disable ffprobe build
|
yading@10
|
111 --disable-ffserver disable ffserver build
|
yading@10
|
112
|
yading@10
|
113 Documentation options:
|
yading@10
|
114 --disable-doc do not build documentation
|
yading@10
|
115 --disable-htmlpages do not build HTML documentation pages
|
yading@10
|
116 --disable-manpages do not build man documentation pages
|
yading@10
|
117 --disable-podpages do not build POD documentation pages
|
yading@10
|
118 --disable-txtpages do not build text documentation pages
|
yading@10
|
119
|
yading@10
|
120 Component options:
|
yading@10
|
121 --disable-avdevice disable libavdevice build
|
yading@10
|
122 --disable-avcodec disable libavcodec build
|
yading@10
|
123 --disable-avformat disable libavformat build
|
yading@10
|
124 --disable-avutil disable libavutil build
|
yading@10
|
125 --disable-swresample disable libswresample build
|
yading@10
|
126 --disable-swscale disable libswscale build
|
yading@10
|
127 --disable-postproc disable libpostproc build
|
yading@10
|
128 --disable-avfilter disable libavfilter build
|
yading@10
|
129 --enable-avresample enable libavresample build [no]
|
yading@10
|
130 --disable-pthreads disable pthreads [auto]
|
yading@10
|
131 --disable-w32threads disable Win32 threads [auto]
|
yading@10
|
132 --disable-os2threads disable OS/2 threads [auto]
|
yading@10
|
133 --disable-network disable network support [no]
|
yading@10
|
134 --disable-dct disable DCT code
|
yading@10
|
135 --disable-dwt disable DWT code
|
yading@10
|
136 --disable-error-resilience disable error resilience code
|
yading@10
|
137 --disable-lsp disable LSP code
|
yading@10
|
138 --disable-lzo disable LZO decoder code
|
yading@10
|
139 --disable-mdct disable MDCT code
|
yading@10
|
140 --disable-rdft disable RDFT code
|
yading@10
|
141 --disable-fft disable FFT code
|
yading@10
|
142
|
yading@10
|
143 Hardware accelerators:
|
yading@10
|
144 --enable-dxva2 enable DXVA2 code
|
yading@10
|
145 --enable-vaapi enable VAAPI code
|
yading@10
|
146 --enable-vda enable VDA code
|
yading@10
|
147 --enable-vdpau enable VDPAU code
|
yading@10
|
148
|
yading@10
|
149 Individual component options:
|
yading@10
|
150 --disable-everything disable all components listed below
|
yading@10
|
151 --disable-encoder=NAME disable encoder NAME
|
yading@10
|
152 --enable-encoder=NAME enable encoder NAME
|
yading@10
|
153 --disable-encoders disable all encoders
|
yading@10
|
154 --disable-decoder=NAME disable decoder NAME
|
yading@10
|
155 --enable-decoder=NAME enable decoder NAME
|
yading@10
|
156 --disable-decoders disable all decoders
|
yading@10
|
157 --disable-hwaccel=NAME disable hwaccel NAME
|
yading@10
|
158 --enable-hwaccel=NAME enable hwaccel NAME
|
yading@10
|
159 --disable-hwaccels disable all hwaccels
|
yading@10
|
160 --disable-muxer=NAME disable muxer NAME
|
yading@10
|
161 --enable-muxer=NAME enable muxer NAME
|
yading@10
|
162 --disable-muxers disable all muxers
|
yading@10
|
163 --disable-demuxer=NAME disable demuxer NAME
|
yading@10
|
164 --enable-demuxer=NAME enable demuxer NAME
|
yading@10
|
165 --disable-demuxers disable all demuxers
|
yading@10
|
166 --enable-parser=NAME enable parser NAME
|
yading@10
|
167 --disable-parser=NAME disable parser NAME
|
yading@10
|
168 --disable-parsers disable all parsers
|
yading@10
|
169 --enable-bsf=NAME enable bitstream filter NAME
|
yading@10
|
170 --disable-bsf=NAME disable bitstream filter NAME
|
yading@10
|
171 --disable-bsfs disable all bitstream filters
|
yading@10
|
172 --enable-protocol=NAME enable protocol NAME
|
yading@10
|
173 --disable-protocol=NAME disable protocol NAME
|
yading@10
|
174 --disable-protocols disable all protocols
|
yading@10
|
175 --enable-indev=NAME enable input device NAME
|
yading@10
|
176 --disable-indev=NAME disable input device NAME
|
yading@10
|
177 --disable-indevs disable input devices
|
yading@10
|
178 --enable-outdev=NAME enable output device NAME
|
yading@10
|
179 --disable-outdev=NAME disable output device NAME
|
yading@10
|
180 --disable-outdevs disable output devices
|
yading@10
|
181 --disable-devices disable all devices
|
yading@10
|
182 --enable-filter=NAME enable filter NAME
|
yading@10
|
183 --disable-filter=NAME disable filter NAME
|
yading@10
|
184 --disable-filters disable all filters
|
yading@10
|
185
|
yading@10
|
186 External library support:
|
yading@10
|
187 --enable-avisynth enable reading of AVISynth script files [no]
|
yading@10
|
188 --enable-bzlib enable bzlib [autodetect]
|
yading@10
|
189 --enable-fontconfig enable fontconfig
|
yading@10
|
190 --enable-frei0r enable frei0r video filtering
|
yading@10
|
191 --enable-gnutls enable gnutls [no]
|
yading@10
|
192 --enable-iconv enable iconv [autodetect]
|
yading@10
|
193 --enable-libaacplus enable AAC+ encoding via libaacplus [no]
|
yading@10
|
194 --enable-libass enable libass subtitles rendering [no]
|
yading@10
|
195 --enable-libbluray enable BluRay reading using libbluray [no]
|
yading@10
|
196 --enable-libcaca enable textual display using libcaca
|
yading@10
|
197 --enable-libcelt enable CELT decoding via libcelt [no]
|
yading@10
|
198 --enable-libcdio enable audio CD grabbing with libcdio
|
yading@10
|
199 --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
|
yading@10
|
200 and libraw1394 [no]
|
yading@10
|
201 --enable-libfaac enable AAC encoding via libfaac [no]
|
yading@10
|
202 --enable-libfdk-aac enable AAC encoding via libfdk-aac [no]
|
yading@10
|
203 --enable-libflite enable flite (voice synthesis) support via libflite [no]
|
yading@10
|
204 --enable-libfreetype enable libfreetype [no]
|
yading@10
|
205 --enable-libgsm enable GSM de/encoding via libgsm [no]
|
yading@10
|
206 --enable-libiec61883 enable iec61883 via libiec61883 [no]
|
yading@10
|
207 --enable-libilbc enable iLBC de/encoding via libilbc [no]
|
yading@10
|
208 --enable-libmodplug enable ModPlug via libmodplug [no]
|
yading@10
|
209 --enable-libmp3lame enable MP3 encoding via libmp3lame [no]
|
yading@10
|
210 --enable-libnut enable NUT (de)muxing via libnut,
|
yading@10
|
211 native (de)muxer exists [no]
|
yading@10
|
212 --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
|
yading@10
|
213 --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
|
yading@10
|
214 --enable-libopencv enable video filtering via libopencv [no]
|
yading@10
|
215 --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
|
yading@10
|
216 --enable-libopus enable Opus decoding via libopus [no]
|
yading@10
|
217 --enable-libpulse enable Pulseaudio input via libpulse [no]
|
yading@10
|
218 --enable-libquvi enable quvi input via libquvi [no]
|
yading@10
|
219 --enable-librtmp enable RTMP[E] support via librtmp [no]
|
yading@10
|
220 --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
|
yading@10
|
221 --enable-libshine enable fixed-point MP3 encoding via libshine [no]
|
yading@10
|
222 --enable-libsoxr enable Include libsoxr resampling [no]
|
yading@10
|
223 --enable-libspeex enable Speex de/encoding via libspeex [no]
|
yading@10
|
224 --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no]
|
yading@10
|
225 --enable-libtheora enable Theora encoding via libtheora [no]
|
yading@10
|
226 --enable-libtwolame enable MP2 encoding via libtwolame [no]
|
yading@10
|
227 --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no]
|
yading@10
|
228 --enable-libv4l2 enable libv4l2/v4l-utils [no]
|
yading@10
|
229 --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
|
yading@10
|
230 --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
|
yading@10
|
231 --enable-libvorbis enable Vorbis en/decoding via libvorbis,
|
yading@10
|
232 native implementation exists [no]
|
yading@10
|
233 --enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
|
yading@10
|
234 --enable-libx264 enable H.264 encoding via x264 [no]
|
yading@10
|
235 --enable-libxavs enable AVS encoding via xavs [no]
|
yading@10
|
236 --enable-libxvid enable Xvid encoding via xvidcore,
|
yading@10
|
237 native MPEG-4/Xvid encoder exists [no]
|
yading@10
|
238 --enable-openal enable OpenAL 1.1 capture support [no]
|
yading@10
|
239 --enable-opencl enable OpenCL code
|
yading@10
|
240 --enable-openssl enable openssl [no]
|
yading@10
|
241 --enable-x11grab enable X11 grabbing [no]
|
yading@10
|
242 --enable-zlib enable zlib [autodetect]
|
yading@10
|
243
|
yading@10
|
244 Advanced options (experts only):
|
yading@10
|
245 --cross-prefix=PREFIX use PREFIX for compilation tools [$cross_prefix]
|
yading@10
|
246 --enable-cross-compile assume a cross-compiler is used
|
yading@10
|
247 --sysroot=PATH root of cross-build tree
|
yading@10
|
248 --sysinclude=PATH location of cross-build system headers
|
yading@10
|
249 --target-os=OS compiler targets OS [$target_os]
|
yading@10
|
250 --target-exec=CMD command to run executables on target
|
yading@10
|
251 --target-path=DIR path to view of build directory on target
|
yading@10
|
252 --toolchain=NAME set tool defaults according to NAME
|
yading@10
|
253 --nm=NM use nm tool NM [$nm_default]
|
yading@10
|
254 --ar=AR use archive tool AR [$ar_default]
|
yading@10
|
255 --as=AS use assembler AS [$as_default]
|
yading@10
|
256 --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default]
|
yading@10
|
257 --cc=CC use C compiler CC [$cc_default]
|
yading@10
|
258 --cxx=CXX use C compiler CXX [$cxx_default]
|
yading@10
|
259 --dep-cc=DEPCC use dependency generator DEPCC [$cc_default]
|
yading@10
|
260 --ld=LD use linker LD [$ld_default]
|
yading@10
|
261 --host-cc=HOSTCC use host C compiler HOSTCC
|
yading@10
|
262 --host-cflags=HCFLAGS use HCFLAGS when compiling for host
|
yading@10
|
263 --host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host
|
yading@10
|
264 --host-ld=HOSTLD use host linker HOSTLD
|
yading@10
|
265 --host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
|
yading@10
|
266 --host-libs=HLIBS use libs HLIBS when linking for host
|
yading@10
|
267 --host-os=OS compiler host OS [$target_os]
|
yading@10
|
268 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
|
yading@10
|
269 --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
|
yading@10
|
270 --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
|
yading@10
|
271 --extra-libs=ELIBS add ELIBS [$ELIBS]
|
yading@10
|
272 --extra-version=STRING version string suffix []
|
yading@10
|
273 --optflags=OPTFLAGS override optimization-related compiler flags
|
yading@10
|
274 --build-suffix=SUFFIX library name suffix []
|
yading@10
|
275 --malloc-prefix=PREFIX prefix malloc and related names with PREFIX
|
yading@10
|
276 --progs-suffix=SUFFIX program name suffix []
|
yading@10
|
277 --arch=ARCH select architecture [$arch]
|
yading@10
|
278 --cpu=CPU select the minimum required CPU (affects
|
yading@10
|
279 instruction selection, may crash on older CPUs)
|
yading@10
|
280 --enable-pic build position-independent code
|
yading@10
|
281 --enable-sram allow use of on-chip SRAM
|
yading@10
|
282 --enable-thumb compile for Thumb instruction set
|
yading@10
|
283 --disable-symver disable symbol versioning
|
yading@10
|
284 --enable-hardcoded-tables use hardcoded tables instead of runtime generation
|
yading@10
|
285 --disable-safe-bitstream-reader
|
yading@10
|
286 disable buffer boundary checking in bitreaders
|
yading@10
|
287 (faster, but may crash)
|
yading@10
|
288 --enable-memalign-hack emulate memalign, interferes with memory debuggers
|
yading@10
|
289 --enable-lto use link-time optimization
|
yading@10
|
290
|
yading@10
|
291 Optimization options (experts only):
|
yading@10
|
292 --disable-asm disable all assembler optimizations
|
yading@10
|
293 --disable-altivec disable AltiVec optimizations
|
yading@10
|
294 --disable-amd3dnow disable 3DNow! optimizations
|
yading@10
|
295 --disable-amd3dnowext disable 3DNow! extended optimizations
|
yading@10
|
296 --disable-mmx disable MMX optimizations
|
yading@10
|
297 --disable-mmxext disable MMXEXT optimizations
|
yading@10
|
298 --disable-sse disable SSE optimizations
|
yading@10
|
299 --disable-sse2 disable SSE2 optimizations
|
yading@10
|
300 --disable-sse3 disable SSE3 optimizations
|
yading@10
|
301 --disable-ssse3 disable SSSE3 optimizations
|
yading@10
|
302 --disable-sse4 disable SSE4 optimizations
|
yading@10
|
303 --disable-sse42 disable SSE4.2 optimizations
|
yading@10
|
304 --disable-avx disable AVX optimizations
|
yading@10
|
305 --disable-fma4 disable FMA4 optimizations
|
yading@10
|
306 --disable-armv5te disable armv5te optimizations
|
yading@10
|
307 --disable-armv6 disable armv6 optimizations
|
yading@10
|
308 --disable-armv6t2 disable armv6t2 optimizations
|
yading@10
|
309 --disable-vfp disable VFP optimizations
|
yading@10
|
310 --disable-neon disable NEON optimizations
|
yading@10
|
311 --disable-vis disable VIS optimizations
|
yading@10
|
312 --disable-inline-asm disable use of inline assembler
|
yading@10
|
313 --disable-yasm disable use of yasm assembler
|
yading@10
|
314 --disable-mips32r2 disable MIPS32R2 optimizations
|
yading@10
|
315 --disable-mipsdspr1 disable MIPS DSP ASE R1 optimizations
|
yading@10
|
316 --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations
|
yading@10
|
317 --disable-mipsfpu disable floating point MIPS optimizations
|
yading@10
|
318 --disable-fast-unaligned consider unaligned accesses slow
|
yading@10
|
319
|
yading@10
|
320 Developer options (useful when working on FFmpeg itself):
|
yading@10
|
321 --disable-debug disable debugging symbols
|
yading@10
|
322 --enable-debug=LEVEL set the debug level [$debuglevel]
|
yading@10
|
323 --disable-optimizations disable compiler optimizations
|
yading@10
|
324 --enable-extra-warnings enable more compiler warnings
|
yading@10
|
325 --disable-stripping disable stripping of executables and shared libraries
|
yading@10
|
326 --assert-level=level 0(default), 1 or 2, amount of assertion testing,
|
yading@10
|
327 2 causes a slowdown at runtime.
|
yading@10
|
328 --enable-memory-poisoning fill heap uninitialized allocated space with arbitrary data
|
yading@10
|
329 --valgrind=VALGRIND run "make fate" tests through valgrind to detect memory
|
yading@10
|
330 leaks and errors, using the specified valgrind binary.
|
yading@10
|
331 Cannot be combined with --target-exec
|
yading@10
|
332 --enable-ftrapv Trap arithmetic overflows
|
yading@10
|
333 --samples=PATH location of test samples for FATE, if not set use
|
yading@10
|
334 \$FATE_SAMPLES at make invocation time.
|
yading@10
|
335 --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
|
yading@10
|
336 should be used only for debugging purposes)
|
yading@10
|
337 --enable-random randomly enable/disable components
|
yading@10
|
338 --disable-random
|
yading@10
|
339 --enable-random=LIST randomly enable/disable specific components or
|
yading@10
|
340 --disable-random=LIST component groups. LIST is a comma-separated list
|
yading@10
|
341 of NAME[:PROB] entries where NAME is a component
|
yading@10
|
342 (group) and PROB the probability associated with
|
yading@10
|
343 NAME (default 0.5).
|
yading@10
|
344 --random-seed=VALUE seed value for --enable/disable-random
|
yading@10
|
345
|
yading@10
|
346 NOTE: Object files are built at the place where configure is launched.
|
yading@10
|
347 EOF
|
yading@10
|
348 exit 0
|
yading@10
|
349 }
|
yading@10
|
350
|
yading@10
|
351 quotes='""'
|
yading@10
|
352
|
yading@10
|
353 log(){
|
yading@10
|
354 echo "$@" >> $logfile
|
yading@10
|
355 }
|
yading@10
|
356
|
yading@10
|
357 log_file(){
|
yading@10
|
358 log BEGIN $1
|
yading@10
|
359 pr -n -t $1 >> $logfile
|
yading@10
|
360 log END $1
|
yading@10
|
361 }
|
yading@10
|
362
|
yading@10
|
363 echolog(){
|
yading@10
|
364 log "$@"
|
yading@10
|
365 echo "$@"
|
yading@10
|
366 }
|
yading@10
|
367
|
yading@10
|
368 warn(){
|
yading@10
|
369 log "WARNING: $*"
|
yading@10
|
370 WARNINGS="${WARNINGS}WARNING: $*\n"
|
yading@10
|
371 }
|
yading@10
|
372
|
yading@10
|
373 die(){
|
yading@10
|
374 echolog "$@"
|
yading@10
|
375 cat <<EOF
|
yading@10
|
376
|
yading@10
|
377 If you think configure made a mistake, make sure you are using the latest
|
yading@10
|
378 version from Git. If the latest version fails, report the problem to the
|
yading@10
|
379 ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
|
yading@10
|
380 EOF
|
yading@10
|
381 if disabled logging; then
|
yading@10
|
382 cat <<EOF
|
yading@10
|
383 Rerun configure with logging enabled (do not use --disable-logging), and
|
yading@10
|
384 include the log this produces with your report.
|
yading@10
|
385 EOF
|
yading@10
|
386 else
|
yading@10
|
387 cat <<EOF
|
yading@10
|
388 Include the log file "$logfile" produced by configure as this will help
|
yading@10
|
389 solving the problem.
|
yading@10
|
390 EOF
|
yading@10
|
391 fi
|
yading@10
|
392 exit 1
|
yading@10
|
393 }
|
yading@10
|
394
|
yading@10
|
395 # Avoid locale weirdness, besides we really just want to translate ASCII.
|
yading@10
|
396 toupper(){
|
yading@10
|
397 echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
yading@10
|
398 }
|
yading@10
|
399
|
yading@10
|
400 tolower(){
|
yading@10
|
401 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
|
yading@10
|
402 }
|
yading@10
|
403
|
yading@10
|
404 c_escape(){
|
yading@10
|
405 echo "$*" | sed 's/["\\]/\\\0/g'
|
yading@10
|
406 }
|
yading@10
|
407
|
yading@10
|
408 sh_quote(){
|
yading@10
|
409 v=$(echo "$1" | sed "s/'/'\\\\''/g")
|
yading@10
|
410 test "x$v" = "x${v#*[!A-Za-z0-9_/.+-]}" || v="'$v'"
|
yading@10
|
411 echo "$v"
|
yading@10
|
412 }
|
yading@10
|
413
|
yading@10
|
414 cleanws(){
|
yading@10
|
415 echo "$@" | sed 's/^ *//;s/ */ /g;s/ *$//'
|
yading@10
|
416 }
|
yading@10
|
417
|
yading@10
|
418 filter(){
|
yading@10
|
419 pat=$1
|
yading@10
|
420 shift
|
yading@10
|
421 for v; do
|
yading@10
|
422 eval "case $v in $pat) echo $v ;; esac"
|
yading@10
|
423 done
|
yading@10
|
424 }
|
yading@10
|
425
|
yading@10
|
426 filter_out(){
|
yading@10
|
427 pat=$1
|
yading@10
|
428 shift
|
yading@10
|
429 for v; do
|
yading@10
|
430 eval "case $v in $pat) ;; *) echo $v ;; esac"
|
yading@10
|
431 done
|
yading@10
|
432 }
|
yading@10
|
433
|
yading@10
|
434 map(){
|
yading@10
|
435 m=$1
|
yading@10
|
436 shift
|
yading@10
|
437 for v; do eval $m; done
|
yading@10
|
438 }
|
yading@10
|
439
|
yading@10
|
440 add_suffix(){
|
yading@10
|
441 suffix=$1
|
yading@10
|
442 shift
|
yading@10
|
443 for v; do echo ${v}${suffix}; done
|
yading@10
|
444 }
|
yading@10
|
445
|
yading@10
|
446 set_all(){
|
yading@10
|
447 value=$1
|
yading@10
|
448 shift
|
yading@10
|
449 for var in $*; do
|
yading@10
|
450 eval $var=$value
|
yading@10
|
451 done
|
yading@10
|
452 }
|
yading@10
|
453
|
yading@10
|
454 set_weak(){
|
yading@10
|
455 value=$1
|
yading@10
|
456 shift
|
yading@10
|
457 for var; do
|
yading@10
|
458 eval : \${$var:=$value}
|
yading@10
|
459 done
|
yading@10
|
460 }
|
yading@10
|
461
|
yading@10
|
462 sanitize_var_name(){
|
yading@10
|
463 echo $@ | sed 's/[^A-Za-z0-9_]/_/g'
|
yading@10
|
464 }
|
yading@10
|
465
|
yading@10
|
466 set_safe(){
|
yading@10
|
467 var=$1
|
yading@10
|
468 shift
|
yading@10
|
469 eval $(sanitize_var_name "$var")='$*'
|
yading@10
|
470 }
|
yading@10
|
471
|
yading@10
|
472 get_safe(){
|
yading@10
|
473 eval echo \$$(sanitize_var_name "$1")
|
yading@10
|
474 }
|
yading@10
|
475
|
yading@10
|
476 pushvar(){
|
yading@10
|
477 for var in $*; do
|
yading@10
|
478 eval level=\${${var}_level:=0}
|
yading@10
|
479 eval ${var}_${level}="\$$var"
|
yading@10
|
480 eval ${var}_level=$(($level+1))
|
yading@10
|
481 done
|
yading@10
|
482 }
|
yading@10
|
483
|
yading@10
|
484 popvar(){
|
yading@10
|
485 for var in $*; do
|
yading@10
|
486 eval level=\${${var}_level:-0}
|
yading@10
|
487 test $level = 0 && continue
|
yading@10
|
488 eval level=$(($level-1))
|
yading@10
|
489 eval $var="\${${var}_${level}}"
|
yading@10
|
490 eval ${var}_level=$level
|
yading@10
|
491 eval unset ${var}_${level}
|
yading@10
|
492 done
|
yading@10
|
493 }
|
yading@10
|
494
|
yading@10
|
495 enable(){
|
yading@10
|
496 set_all yes $*
|
yading@10
|
497 }
|
yading@10
|
498
|
yading@10
|
499 disable(){
|
yading@10
|
500 set_all no $*
|
yading@10
|
501 }
|
yading@10
|
502
|
yading@10
|
503 enable_weak(){
|
yading@10
|
504 set_weak yes $*
|
yading@10
|
505 }
|
yading@10
|
506
|
yading@10
|
507 disable_weak(){
|
yading@10
|
508 set_weak no $*
|
yading@10
|
509 }
|
yading@10
|
510
|
yading@10
|
511 enable_safe(){
|
yading@10
|
512 for var; do
|
yading@10
|
513 enable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')
|
yading@10
|
514 done
|
yading@10
|
515 }
|
yading@10
|
516
|
yading@10
|
517 disable_safe(){
|
yading@10
|
518 for var; do
|
yading@10
|
519 disable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')
|
yading@10
|
520 done
|
yading@10
|
521 }
|
yading@10
|
522
|
yading@10
|
523 do_enable_deep(){
|
yading@10
|
524 for var; do
|
yading@10
|
525 enabled $var && continue
|
yading@10
|
526 eval sel="\$${var}_select"
|
yading@10
|
527 eval sgs="\$${var}_suggest"
|
yading@10
|
528 pushvar var sgs
|
yading@10
|
529 enable_deep $sel
|
yading@10
|
530 popvar sgs
|
yading@10
|
531 enable_deep_weak $sgs
|
yading@10
|
532 popvar var
|
yading@10
|
533 done
|
yading@10
|
534 }
|
yading@10
|
535
|
yading@10
|
536 enable_deep(){
|
yading@10
|
537 do_enable_deep $*
|
yading@10
|
538 enable $*
|
yading@10
|
539 }
|
yading@10
|
540
|
yading@10
|
541 enable_deep_weak(){
|
yading@10
|
542 do_enable_deep $*
|
yading@10
|
543 enable_weak $*
|
yading@10
|
544 }
|
yading@10
|
545
|
yading@10
|
546 enabled(){
|
yading@10
|
547 test "${1#!}" = "$1" && op== || op=!=
|
yading@10
|
548 eval test "x\$${1#!}" $op "xyes"
|
yading@10
|
549 }
|
yading@10
|
550
|
yading@10
|
551 disabled(){
|
yading@10
|
552 test "${1#!}" = "$1" && op== || op=!=
|
yading@10
|
553 eval test "x\$${1#!}" $op "xno"
|
yading@10
|
554 }
|
yading@10
|
555
|
yading@10
|
556 enabled_all(){
|
yading@10
|
557 for opt; do
|
yading@10
|
558 enabled $opt || return 1
|
yading@10
|
559 done
|
yading@10
|
560 }
|
yading@10
|
561
|
yading@10
|
562 disabled_all(){
|
yading@10
|
563 for opt; do
|
yading@10
|
564 disabled $opt || return 1
|
yading@10
|
565 done
|
yading@10
|
566 }
|
yading@10
|
567
|
yading@10
|
568 enabled_any(){
|
yading@10
|
569 for opt; do
|
yading@10
|
570 enabled $opt && return 0
|
yading@10
|
571 done
|
yading@10
|
572 }
|
yading@10
|
573
|
yading@10
|
574 disabled_any(){
|
yading@10
|
575 for opt; do
|
yading@10
|
576 disabled $opt && return 0
|
yading@10
|
577 done
|
yading@10
|
578 return 1
|
yading@10
|
579 }
|
yading@10
|
580
|
yading@10
|
581 set_default(){
|
yading@10
|
582 for opt; do
|
yading@10
|
583 eval : \${$opt:=\$${opt}_default}
|
yading@10
|
584 done
|
yading@10
|
585 }
|
yading@10
|
586
|
yading@10
|
587 is_in(){
|
yading@10
|
588 value=$1
|
yading@10
|
589 shift
|
yading@10
|
590 for var in $*; do
|
yading@10
|
591 [ $var = $value ] && return 0
|
yading@10
|
592 done
|
yading@10
|
593 return 1
|
yading@10
|
594 }
|
yading@10
|
595
|
yading@10
|
596 do_check_deps(){
|
yading@10
|
597 for cfg; do
|
yading@10
|
598 cfg="${cfg#!}"
|
yading@10
|
599 enabled ${cfg}_checking && die "Circular dependency for $cfg."
|
yading@10
|
600 disabled ${cfg}_checking && continue
|
yading@10
|
601 enable ${cfg}_checking
|
yading@10
|
602 append allopts $cfg
|
yading@10
|
603
|
yading@10
|
604 eval dep_all="\$${cfg}_deps"
|
yading@10
|
605 eval dep_any="\$${cfg}_deps_any"
|
yading@10
|
606 eval dep_sel="\$${cfg}_select"
|
yading@10
|
607 eval dep_sgs="\$${cfg}_suggest"
|
yading@10
|
608 eval dep_ifa="\$${cfg}_if"
|
yading@10
|
609 eval dep_ifn="\$${cfg}_if_any"
|
yading@10
|
610
|
yading@10
|
611 pushvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
|
yading@10
|
612 do_check_deps $dep_all $dep_any $dep_sel $dep_sgs $dep_ifa $dep_ifn
|
yading@10
|
613 popvar cfg dep_all dep_any dep_sel dep_sgs dep_ifa dep_ifn
|
yading@10
|
614
|
yading@10
|
615 [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; }
|
yading@10
|
616 [ -n "$dep_ifn" ] && { enabled_any $dep_ifn && enable_weak $cfg; }
|
yading@10
|
617 enabled_all $dep_all || disable $cfg
|
yading@10
|
618 enabled_any $dep_any || disable $cfg
|
yading@10
|
619 disabled_any $dep_sel && disable $cfg
|
yading@10
|
620
|
yading@10
|
621 if enabled $cfg; then
|
yading@10
|
622 enable_deep $dep_sel
|
yading@10
|
623 enable_deep_weak $dep_sgs
|
yading@10
|
624 fi
|
yading@10
|
625
|
yading@10
|
626 disable ${cfg}_checking
|
yading@10
|
627 done
|
yading@10
|
628 }
|
yading@10
|
629
|
yading@10
|
630 check_deps(){
|
yading@10
|
631 unset allopts
|
yading@10
|
632
|
yading@10
|
633 do_check_deps "$@"
|
yading@10
|
634
|
yading@10
|
635 for cfg in $allopts; do
|
yading@10
|
636 enabled $cfg || continue
|
yading@10
|
637 eval dep_extralibs="\$${cfg}_extralibs"
|
yading@10
|
638 test -n "$dep_extralibs" && add_extralibs $dep_extralibs
|
yading@10
|
639 done
|
yading@10
|
640 }
|
yading@10
|
641
|
yading@10
|
642 print_config(){
|
yading@10
|
643 pfx=$1
|
yading@10
|
644 files=$2
|
yading@10
|
645 shift 2
|
yading@10
|
646 map 'eval echo "$v \${$v:-no}"' "$@" |
|
yading@10
|
647 awk "BEGIN { split(\"$files\", files) }
|
yading@10
|
648 {
|
yading@10
|
649 c = \"$pfx\" toupper(\$1);
|
yading@10
|
650 v = \$2;
|
yading@10
|
651 sub(/yes/, 1, v);
|
yading@10
|
652 sub(/no/, 0, v);
|
yading@10
|
653 for (f in files) {
|
yading@10
|
654 file = files[f];
|
yading@10
|
655 if (file ~ /\\.h\$/) {
|
yading@10
|
656 printf(\"#define %s %d\\n\", c, v) >>file;
|
yading@10
|
657 } else if (file ~ /\\.asm\$/) {
|
yading@10
|
658 printf(\"%%define %s %d\\n\", c, v) >>file;
|
yading@10
|
659 } else if (file ~ /\\.mak\$/) {
|
yading@10
|
660 n = -v ? \"\" : \"!\";
|
yading@10
|
661 printf(\"%s%s=yes\\n\", n, c) >>file;
|
yading@10
|
662 } else if (file ~ /\\.texi\$/) {
|
yading@10
|
663 pre = -v ? \"\" : \"@c \";
|
yading@10
|
664 yesno = \$2;
|
yading@10
|
665 c2 = tolower(c);
|
yading@10
|
666 gsub(/_/, \"-\", c2);
|
yading@10
|
667 printf(\"%s@set %s %s\\n\", pre, c2, yesno) >>file;
|
yading@10
|
668 }
|
yading@10
|
669 }
|
yading@10
|
670 }"
|
yading@10
|
671 }
|
yading@10
|
672
|
yading@10
|
673 print_enabled(){
|
yading@10
|
674 suf=$1
|
yading@10
|
675 shift
|
yading@10
|
676 for v; do
|
yading@10
|
677 enabled $v && printf "%s\n" ${v%$suf};
|
yading@10
|
678 done
|
yading@10
|
679 }
|
yading@10
|
680
|
yading@10
|
681 append(){
|
yading@10
|
682 var=$1
|
yading@10
|
683 shift
|
yading@10
|
684 eval "$var=\"\$$var $*\""
|
yading@10
|
685 }
|
yading@10
|
686
|
yading@10
|
687 prepend(){
|
yading@10
|
688 var=$1
|
yading@10
|
689 shift
|
yading@10
|
690 eval "$var=\"$* \$$var\""
|
yading@10
|
691 }
|
yading@10
|
692
|
yading@10
|
693 add_cppflags(){
|
yading@10
|
694 append CPPFLAGS "$@"
|
yading@10
|
695 }
|
yading@10
|
696
|
yading@10
|
697 add_cflags(){
|
yading@10
|
698 append CFLAGS $($cflags_filter "$@")
|
yading@10
|
699 }
|
yading@10
|
700
|
yading@10
|
701 add_cxxflags(){
|
yading@10
|
702 append CXXFLAGS $($cflags_filter "$@")
|
yading@10
|
703 }
|
yading@10
|
704
|
yading@10
|
705 add_asflags(){
|
yading@10
|
706 append ASFLAGS $($asflags_filter "$@")
|
yading@10
|
707 }
|
yading@10
|
708
|
yading@10
|
709 add_ldflags(){
|
yading@10
|
710 append LDFLAGS $($ldflags_filter "$@")
|
yading@10
|
711 }
|
yading@10
|
712
|
yading@10
|
713 add_extralibs(){
|
yading@10
|
714 prepend extralibs $($ldflags_filter "$@")
|
yading@10
|
715 }
|
yading@10
|
716
|
yading@10
|
717 add_host_cppflags(){
|
yading@10
|
718 append host_cppflags "$@"
|
yading@10
|
719 }
|
yading@10
|
720
|
yading@10
|
721 add_host_cflags(){
|
yading@10
|
722 append host_cflags $($host_cflags_filter "$@")
|
yading@10
|
723 }
|
yading@10
|
724
|
yading@10
|
725 add_host_ldflags(){
|
yading@10
|
726 append host_ldflags $($host_ldflags_filter "$@")
|
yading@10
|
727 }
|
yading@10
|
728
|
yading@10
|
729 add_compat(){
|
yading@10
|
730 append compat_objs $1
|
yading@10
|
731 shift
|
yading@10
|
732 map 'add_cppflags -D$v' "$@"
|
yading@10
|
733 }
|
yading@10
|
734
|
yading@10
|
735 check_cmd(){
|
yading@10
|
736 log "$@"
|
yading@10
|
737 "$@" >> $logfile 2>&1
|
yading@10
|
738 }
|
yading@10
|
739
|
yading@10
|
740 cc_o(){
|
yading@10
|
741 eval printf '%s\\n' $CC_O
|
yading@10
|
742 }
|
yading@10
|
743
|
yading@10
|
744 cc_e(){
|
yading@10
|
745 eval printf '%s\\n' $CC_E
|
yading@10
|
746 }
|
yading@10
|
747
|
yading@10
|
748 check_cc(){
|
yading@10
|
749 log check_cc "$@"
|
yading@10
|
750 cat > $TMPC
|
yading@10
|
751 log_file $TMPC
|
yading@10
|
752 check_cmd $cc $CPPFLAGS $CFLAGS "$@" $CC_C $(cc_o $TMPO) $TMPC
|
yading@10
|
753 }
|
yading@10
|
754
|
yading@10
|
755 check_cxx(){
|
yading@10
|
756 log check_cxx "$@"
|
yading@10
|
757 cat > $TMPCPP
|
yading@10
|
758 log_file $TMPCPP
|
yading@10
|
759 check_cmd $cxx $CPPFLAGS $CFLAGS $CXXFLAGS "$@" $CXX_C -o $TMPO $TMPCPP
|
yading@10
|
760 }
|
yading@10
|
761
|
yading@10
|
762 check_cpp(){
|
yading@10
|
763 log check_cpp "$@"
|
yading@10
|
764 cat > $TMPC
|
yading@10
|
765 log_file $TMPC
|
yading@10
|
766 check_cmd $cc $CPPFLAGS $CFLAGS "$@" $(cc_e $TMPO) $TMPC
|
yading@10
|
767 }
|
yading@10
|
768
|
yading@10
|
769 as_o(){
|
yading@10
|
770 eval printf '%s\\n' $AS_O
|
yading@10
|
771 }
|
yading@10
|
772
|
yading@10
|
773 check_as(){
|
yading@10
|
774 log check_as "$@"
|
yading@10
|
775 cat > $TMPS
|
yading@10
|
776 log_file $TMPS
|
yading@10
|
777 check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C $(as_o $TMPO) $TMPS
|
yading@10
|
778 }
|
yading@10
|
779
|
yading@10
|
780 check_inline_asm(){
|
yading@10
|
781 log check_inline_asm "$@"
|
yading@10
|
782 name="$1"
|
yading@10
|
783 code="$2"
|
yading@10
|
784 shift 2
|
yading@10
|
785 disable $name
|
yading@10
|
786 check_cc "$@" <<EOF && enable $name
|
yading@10
|
787 void foo(void){ __asm__ volatile($code); }
|
yading@10
|
788 EOF
|
yading@10
|
789 }
|
yading@10
|
790
|
yading@10
|
791 check_insn(){
|
yading@10
|
792 log check_insn "$@"
|
yading@10
|
793 check_inline_asm ${1}_inline "\"$2\""
|
yading@10
|
794 echo "$2" | check_as && enable ${1}_external || disable ${1}_external
|
yading@10
|
795 }
|
yading@10
|
796
|
yading@10
|
797 check_yasm(){
|
yading@10
|
798 log check_yasm "$@"
|
yading@10
|
799 echo "$1" > $TMPS
|
yading@10
|
800 log_file $TMPS
|
yading@10
|
801 shift 1
|
yading@10
|
802 check_cmd $yasmexe $YASMFLAGS -Werror "$@" -o $TMPO $TMPS
|
yading@10
|
803 }
|
yading@10
|
804
|
yading@10
|
805 ld_o(){
|
yading@10
|
806 eval printf '%s\\n' $LD_O
|
yading@10
|
807 }
|
yading@10
|
808
|
yading@10
|
809 check_ld(){
|
yading@10
|
810 log check_ld "$@"
|
yading@10
|
811 type=$1
|
yading@10
|
812 shift 1
|
yading@10
|
813 flags=$(filter_out '-l*|*.so' $@)
|
yading@10
|
814 libs=$(filter '-l*|*.so' $@)
|
yading@10
|
815 check_$type $($cflags_filter $flags) || return
|
yading@10
|
816 flags=$($ldflags_filter $flags)
|
yading@10
|
817 libs=$($ldflags_filter $libs)
|
yading@10
|
818 check_cmd $ld $LDFLAGS $flags $(ld_o $TMPE) $TMPO $libs $extralibs
|
yading@10
|
819 }
|
yading@10
|
820
|
yading@10
|
821 check_code(){
|
yading@10
|
822 log check_code "$@"
|
yading@10
|
823 check=$1
|
yading@10
|
824 headers=$2
|
yading@10
|
825 code=$3
|
yading@10
|
826 shift 3
|
yading@10
|
827 {
|
yading@10
|
828 for hdr in $headers; do
|
yading@10
|
829 echo "#include <$hdr>"
|
yading@10
|
830 done
|
yading@10
|
831 echo "int main(void) { $code; return 0; }"
|
yading@10
|
832 } | check_$check "$@"
|
yading@10
|
833 }
|
yading@10
|
834
|
yading@10
|
835 check_cppflags(){
|
yading@10
|
836 log check_cppflags "$@"
|
yading@10
|
837 check_cc "$@" <<EOF && append CPPFLAGS "$@"
|
yading@10
|
838 int x;
|
yading@10
|
839 EOF
|
yading@10
|
840 }
|
yading@10
|
841
|
yading@10
|
842 check_cflags(){
|
yading@10
|
843 log check_cflags "$@"
|
yading@10
|
844 set -- $($cflags_filter "$@")
|
yading@10
|
845 check_cc "$@" <<EOF && append CFLAGS "$@"
|
yading@10
|
846 int x;
|
yading@10
|
847 EOF
|
yading@10
|
848 }
|
yading@10
|
849
|
yading@10
|
850 check_cxxflags(){
|
yading@10
|
851 log check_cxxflags "$@"
|
yading@10
|
852 set -- $($cflags_filter "$@")
|
yading@10
|
853 check_cxx "$@" <<EOF && append CXXFLAGS "$@"
|
yading@10
|
854 int x;
|
yading@10
|
855 EOF
|
yading@10
|
856 }
|
yading@10
|
857
|
yading@10
|
858 test_ldflags(){
|
yading@10
|
859 log test_ldflags "$@"
|
yading@10
|
860 check_ld "cc" "$@" <<EOF
|
yading@10
|
861 int main(void){ return 0; }
|
yading@10
|
862 EOF
|
yading@10
|
863 }
|
yading@10
|
864
|
yading@10
|
865 check_ldflags(){
|
yading@10
|
866 log check_ldflags "$@"
|
yading@10
|
867 test_ldflags "$@" && add_ldflags "$@"
|
yading@10
|
868 }
|
yading@10
|
869
|
yading@10
|
870 check_header(){
|
yading@10
|
871 log check_header "$@"
|
yading@10
|
872 header=$1
|
yading@10
|
873 shift
|
yading@10
|
874 disable_safe $header
|
yading@10
|
875 check_cpp "$@" <<EOF && enable_safe $header
|
yading@10
|
876 #include <$header>
|
yading@10
|
877 int x;
|
yading@10
|
878 EOF
|
yading@10
|
879 }
|
yading@10
|
880
|
yading@10
|
881 check_func(){
|
yading@10
|
882 log check_func "$@"
|
yading@10
|
883 func=$1
|
yading@10
|
884 shift
|
yading@10
|
885 disable $func
|
yading@10
|
886 check_ld "cc" "$@" <<EOF && enable $func
|
yading@10
|
887 extern int $func();
|
yading@10
|
888 int main(void){ $func(); }
|
yading@10
|
889 EOF
|
yading@10
|
890 }
|
yading@10
|
891
|
yading@10
|
892 check_mathfunc(){
|
yading@10
|
893 log check_mathfunc "$@"
|
yading@10
|
894 func=$1
|
yading@10
|
895 narg=$2
|
yading@10
|
896 shift 2
|
yading@10
|
897 test $narg = 2 && args="f, g" || args="f"
|
yading@10
|
898 disable $func
|
yading@10
|
899 check_ld "cc" "$@" <<EOF && enable $func
|
yading@10
|
900 #include <math.h>
|
yading@10
|
901 float foo(float f, float g) { return $func($args); }
|
yading@10
|
902 int main(void){ return (int) foo; }
|
yading@10
|
903 EOF
|
yading@10
|
904 }
|
yading@10
|
905
|
yading@10
|
906 check_func_headers(){
|
yading@10
|
907 log check_func_headers "$@"
|
yading@10
|
908 headers=$1
|
yading@10
|
909 funcs=$2
|
yading@10
|
910 shift 2
|
yading@10
|
911 {
|
yading@10
|
912 for hdr in $headers; do
|
yading@10
|
913 echo "#include <$hdr>"
|
yading@10
|
914 done
|
yading@10
|
915 for func in $funcs; do
|
yading@10
|
916 echo "long check_$func(void) { return (long) $func; }"
|
yading@10
|
917 done
|
yading@10
|
918 echo "int main(void) { return 0; }"
|
yading@10
|
919 } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers
|
yading@10
|
920 }
|
yading@10
|
921
|
yading@10
|
922 check_class_headers_cpp(){
|
yading@10
|
923 log check_class_headers_cpp "$@"
|
yading@10
|
924 headers=$1
|
yading@10
|
925 classes=$2
|
yading@10
|
926 shift 2
|
yading@10
|
927 {
|
yading@10
|
928 for hdr in $headers; do
|
yading@10
|
929 echo "#include <$hdr>"
|
yading@10
|
930 done
|
yading@10
|
931 echo "int main(void) { "
|
yading@10
|
932 i=1
|
yading@10
|
933 for class in $classes; do
|
yading@10
|
934 echo "$class obj$i;"
|
yading@10
|
935 i=$(expr $i + 1)
|
yading@10
|
936 done
|
yading@10
|
937 echo "return 0; }"
|
yading@10
|
938 } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers
|
yading@10
|
939 }
|
yading@10
|
940
|
yading@10
|
941 check_cpp_condition(){
|
yading@10
|
942 log check_cpp_condition "$@"
|
yading@10
|
943 header=$1
|
yading@10
|
944 condition=$2
|
yading@10
|
945 shift 2
|
yading@10
|
946 check_cpp "$@" <<EOF
|
yading@10
|
947 #include <$header>
|
yading@10
|
948 #if !($condition)
|
yading@10
|
949 #error "unsatisfied condition: $condition"
|
yading@10
|
950 #endif
|
yading@10
|
951 EOF
|
yading@10
|
952 }
|
yading@10
|
953
|
yading@10
|
954 check_lib(){
|
yading@10
|
955 log check_lib "$@"
|
yading@10
|
956 header="$1"
|
yading@10
|
957 func="$2"
|
yading@10
|
958 shift 2
|
yading@10
|
959 check_header $header && check_func $func "$@" && add_extralibs "$@"
|
yading@10
|
960 }
|
yading@10
|
961
|
yading@10
|
962 check_lib2(){
|
yading@10
|
963 log check_lib2 "$@"
|
yading@10
|
964 headers="$1"
|
yading@10
|
965 funcs="$2"
|
yading@10
|
966 shift 2
|
yading@10
|
967 check_func_headers "$headers" "$funcs" "$@" && add_extralibs "$@"
|
yading@10
|
968 }
|
yading@10
|
969
|
yading@10
|
970 check_lib_cpp(){
|
yading@10
|
971 log check_lib_cpp "$@"
|
yading@10
|
972 headers="$1"
|
yading@10
|
973 classes="$2"
|
yading@10
|
974 shift 2
|
yading@10
|
975 check_class_headers_cpp "$headers" "$classes" "$@" && add_extralibs "$@"
|
yading@10
|
976 }
|
yading@10
|
977
|
yading@10
|
978 check_pkg_config(){
|
yading@10
|
979 log check_pkg_config "$@"
|
yading@10
|
980 pkg="$1"
|
yading@10
|
981 headers="$2"
|
yading@10
|
982 funcs="$3"
|
yading@10
|
983 shift 3
|
yading@10
|
984 $pkg_config --exists $pkg 2>/dev/null || return
|
yading@10
|
985 pkg_cflags=$($pkg_config --cflags $pkg)
|
yading@10
|
986 pkg_libs=$($pkg_config --libs $pkg)
|
yading@10
|
987 check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" &&
|
yading@10
|
988 set_safe ${pkg}_cflags $pkg_cflags &&
|
yading@10
|
989 set_safe ${pkg}_libs $pkg_libs
|
yading@10
|
990 }
|
yading@10
|
991
|
yading@10
|
992 check_exec(){
|
yading@10
|
993 check_ld "cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
|
yading@10
|
994 }
|
yading@10
|
995
|
yading@10
|
996 check_exec_crash(){
|
yading@10
|
997 code=$(cat)
|
yading@10
|
998
|
yading@10
|
999 # exit() is not async signal safe. _Exit (C99) and _exit (POSIX)
|
yading@10
|
1000 # are safe but may not be available everywhere. Thus we use
|
yading@10
|
1001 # raise(SIGTERM) instead. The check is run in a subshell so we
|
yading@10
|
1002 # can redirect the "Terminated" message from the shell. SIGBUS
|
yading@10
|
1003 # is not defined by standard C so it is used conditionally.
|
yading@10
|
1004
|
yading@10
|
1005 (check_exec "$@") >> $logfile 2>&1 <<EOF
|
yading@10
|
1006 #include <signal.h>
|
yading@10
|
1007 static void sighandler(int sig){
|
yading@10
|
1008 raise(SIGTERM);
|
yading@10
|
1009 }
|
yading@10
|
1010 int func(void){
|
yading@10
|
1011 $code
|
yading@10
|
1012 }
|
yading@10
|
1013 int (*func_ptr)(void) = func;
|
yading@10
|
1014 int main(void){
|
yading@10
|
1015 signal(SIGILL, sighandler);
|
yading@10
|
1016 signal(SIGFPE, sighandler);
|
yading@10
|
1017 signal(SIGSEGV, sighandler);
|
yading@10
|
1018 #ifdef SIGBUS
|
yading@10
|
1019 signal(SIGBUS, sighandler);
|
yading@10
|
1020 #endif
|
yading@10
|
1021 return func_ptr();
|
yading@10
|
1022 }
|
yading@10
|
1023 EOF
|
yading@10
|
1024 }
|
yading@10
|
1025
|
yading@10
|
1026 check_type(){
|
yading@10
|
1027 log check_type "$@"
|
yading@10
|
1028 headers=$1
|
yading@10
|
1029 type=$2
|
yading@10
|
1030 shift 2
|
yading@10
|
1031 disable_safe "$type"
|
yading@10
|
1032 check_code cc "$headers" "$type v" "$@" && enable_safe "$type"
|
yading@10
|
1033 }
|
yading@10
|
1034
|
yading@10
|
1035 check_struct(){
|
yading@10
|
1036 log check_struct "$@"
|
yading@10
|
1037 headers=$1
|
yading@10
|
1038 struct=$2
|
yading@10
|
1039 member=$3
|
yading@10
|
1040 shift 3
|
yading@10
|
1041 disable_safe "${struct}_${member}"
|
yading@10
|
1042 check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
|
yading@10
|
1043 enable_safe "${struct}_${member}"
|
yading@10
|
1044 }
|
yading@10
|
1045
|
yading@10
|
1046 check_builtin(){
|
yading@10
|
1047 log check_builtin "$@"
|
yading@10
|
1048 name=$1
|
yading@10
|
1049 headers=$2
|
yading@10
|
1050 builtin=$3
|
yading@10
|
1051 shift 3
|
yading@10
|
1052 disable "$name"
|
yading@10
|
1053 check_code ld "$headers" "$builtin" "cc" "$@" && enable "$name"
|
yading@10
|
1054 }
|
yading@10
|
1055
|
yading@10
|
1056 require(){
|
yading@10
|
1057 name="$1"
|
yading@10
|
1058 header="$2"
|
yading@10
|
1059 func="$3"
|
yading@10
|
1060 shift 3
|
yading@10
|
1061 check_lib $header $func "$@" || die "ERROR: $name not found"
|
yading@10
|
1062 }
|
yading@10
|
1063
|
yading@10
|
1064 require2(){
|
yading@10
|
1065 name="$1"
|
yading@10
|
1066 headers="$2"
|
yading@10
|
1067 func="$3"
|
yading@10
|
1068 shift 3
|
yading@10
|
1069 check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
|
yading@10
|
1070 }
|
yading@10
|
1071
|
yading@10
|
1072 require_cpp(){
|
yading@10
|
1073 name="$1"
|
yading@10
|
1074 headers="$2"
|
yading@10
|
1075 classes="$3"
|
yading@10
|
1076 shift 3
|
yading@10
|
1077 check_lib_cpp "$headers" "$classes" "$@" || die "ERROR: $name not found"
|
yading@10
|
1078 }
|
yading@10
|
1079
|
yading@10
|
1080 require_pkg_config(){
|
yading@10
|
1081 pkg="$1"
|
yading@10
|
1082 check_pkg_config "$@" || die "ERROR: $pkg not found"
|
yading@10
|
1083 add_cflags $(get_safe ${pkg}_cflags)
|
yading@10
|
1084 add_extralibs $(get_safe ${pkg}_libs)
|
yading@10
|
1085 }
|
yading@10
|
1086
|
yading@10
|
1087 hostcc_o(){
|
yading@10
|
1088 eval printf '%s\\n' $HOSTCC_O
|
yading@10
|
1089 }
|
yading@10
|
1090
|
yading@10
|
1091 check_host_cc(){
|
yading@10
|
1092 log check_host_cc "$@"
|
yading@10
|
1093 cat > $TMPC
|
yading@10
|
1094 log_file $TMPC
|
yading@10
|
1095 check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
|
yading@10
|
1096 }
|
yading@10
|
1097
|
yading@10
|
1098 check_host_cppflags(){
|
yading@10
|
1099 log check_host_cppflags "$@"
|
yading@10
|
1100 check_host_cc "$@" <<EOF && append host_cppflags "$@"
|
yading@10
|
1101 int x;
|
yading@10
|
1102 EOF
|
yading@10
|
1103 }
|
yading@10
|
1104
|
yading@10
|
1105 check_host_cflags(){
|
yading@10
|
1106 log check_host_cflags "$@"
|
yading@10
|
1107 set -- $($host_cflags_filter "$@")
|
yading@10
|
1108 check_host_cc "$@" <<EOF && append host_cflags "$@"
|
yading@10
|
1109 int x;
|
yading@10
|
1110 EOF
|
yading@10
|
1111 }
|
yading@10
|
1112
|
yading@10
|
1113 apply(){
|
yading@10
|
1114 file=$1
|
yading@10
|
1115 shift
|
yading@10
|
1116 "$@" < "$file" > "$file.tmp" && mv "$file.tmp" "$file" || rm "$file.tmp"
|
yading@10
|
1117 }
|
yading@10
|
1118
|
yading@10
|
1119 cp_if_changed(){
|
yading@10
|
1120 cmp -s "$1" "$2" && echo "$2 is unchanged" && return
|
yading@10
|
1121 mkdir -p "$(dirname $2)"
|
yading@10
|
1122 $cp_f "$1" "$2"
|
yading@10
|
1123 }
|
yading@10
|
1124
|
yading@10
|
1125 # CONFIG_LIST contains configurable options, while HAVE_LIST is for
|
yading@10
|
1126 # system-dependent things.
|
yading@10
|
1127
|
yading@10
|
1128 COMPONENT_LIST="
|
yading@10
|
1129 bsfs
|
yading@10
|
1130 decoders
|
yading@10
|
1131 demuxers
|
yading@10
|
1132 encoders
|
yading@10
|
1133 filters
|
yading@10
|
1134 hwaccels
|
yading@10
|
1135 indevs
|
yading@10
|
1136 muxers
|
yading@10
|
1137 outdevs
|
yading@10
|
1138 parsers
|
yading@10
|
1139 protocols
|
yading@10
|
1140 "
|
yading@10
|
1141
|
yading@10
|
1142 EXTERNAL_LIBRARY_LIST="
|
yading@10
|
1143 avisynth
|
yading@10
|
1144 bzlib
|
yading@10
|
1145 crystalhd
|
yading@10
|
1146 fontconfig
|
yading@10
|
1147 frei0r
|
yading@10
|
1148 gnutls
|
yading@10
|
1149 iconv
|
yading@10
|
1150 libaacplus
|
yading@10
|
1151 libass
|
yading@10
|
1152 libbluray
|
yading@10
|
1153 libcaca
|
yading@10
|
1154 libcdio
|
yading@10
|
1155 libcelt
|
yading@10
|
1156 libdc1394
|
yading@10
|
1157 libfaac
|
yading@10
|
1158 libfdk_aac
|
yading@10
|
1159 libflite
|
yading@10
|
1160 libfreetype
|
yading@10
|
1161 libgsm
|
yading@10
|
1162 libiec61883
|
yading@10
|
1163 libilbc
|
yading@10
|
1164 libmodplug
|
yading@10
|
1165 libmp3lame
|
yading@10
|
1166 libnut
|
yading@10
|
1167 libopencore_amrnb
|
yading@10
|
1168 libopencore_amrwb
|
yading@10
|
1169 libopencv
|
yading@10
|
1170 libopenjpeg
|
yading@10
|
1171 libopus
|
yading@10
|
1172 libpulse
|
yading@10
|
1173 libquvi
|
yading@10
|
1174 librtmp
|
yading@10
|
1175 libschroedinger
|
yading@10
|
1176 libshine
|
yading@10
|
1177 libsoxr
|
yading@10
|
1178 libspeex
|
yading@10
|
1179 libstagefright_h264
|
yading@10
|
1180 libtheora
|
yading@10
|
1181 libtwolame
|
yading@10
|
1182 libutvideo
|
yading@10
|
1183 libv4l2
|
yading@10
|
1184 libvo_aacenc
|
yading@10
|
1185 libvo_amrwbenc
|
yading@10
|
1186 libvorbis
|
yading@10
|
1187 libvpx
|
yading@10
|
1188 libx264
|
yading@10
|
1189 libxavs
|
yading@10
|
1190 libxvid
|
yading@10
|
1191 openal
|
yading@10
|
1192 opencl
|
yading@10
|
1193 openssl
|
yading@10
|
1194 x11grab
|
yading@10
|
1195 zlib
|
yading@10
|
1196 "
|
yading@10
|
1197
|
yading@10
|
1198 DOCUMENT_LIST="
|
yading@10
|
1199 doc
|
yading@10
|
1200 htmlpages
|
yading@10
|
1201 manpages
|
yading@10
|
1202 podpages
|
yading@10
|
1203 txtpages
|
yading@10
|
1204 "
|
yading@10
|
1205
|
yading@10
|
1206 HWACCEL_LIST="
|
yading@10
|
1207 dxva2
|
yading@10
|
1208 vaapi
|
yading@10
|
1209 vda
|
yading@10
|
1210 vdpau
|
yading@10
|
1211 "
|
yading@10
|
1212
|
yading@10
|
1213 LIBRARY_LIST="
|
yading@10
|
1214 avcodec
|
yading@10
|
1215 avdevice
|
yading@10
|
1216 avfilter
|
yading@10
|
1217 avformat
|
yading@10
|
1218 avresample
|
yading@10
|
1219 avutil
|
yading@10
|
1220 postproc
|
yading@10
|
1221 swresample
|
yading@10
|
1222 swscale
|
yading@10
|
1223 "
|
yading@10
|
1224
|
yading@10
|
1225 PROGRAM_LIST="
|
yading@10
|
1226 ffplay
|
yading@10
|
1227 ffprobe
|
yading@10
|
1228 ffserver
|
yading@10
|
1229 ffmpeg
|
yading@10
|
1230 "
|
yading@10
|
1231
|
yading@10
|
1232 CONFIG_LIST="
|
yading@10
|
1233 $COMPONENT_LIST
|
yading@10
|
1234 $DOCUMENT_LIST
|
yading@10
|
1235 $EXTERNAL_LIBRARY_LIST
|
yading@10
|
1236 $HWACCEL_LIST
|
yading@10
|
1237 $LIBRARY_LIST
|
yading@10
|
1238 $PROGRAM_LIST
|
yading@10
|
1239 dct
|
yading@10
|
1240 dwt
|
yading@10
|
1241 error_resilience
|
yading@10
|
1242 fast_unaligned
|
yading@10
|
1243 fft
|
yading@10
|
1244 ftrapv
|
yading@10
|
1245 gpl
|
yading@10
|
1246 gray
|
yading@10
|
1247 hardcoded_tables
|
yading@10
|
1248 incompatible_fork_abi
|
yading@10
|
1249 lsp
|
yading@10
|
1250 lzo
|
yading@10
|
1251 mdct
|
yading@10
|
1252 memalign_hack
|
yading@10
|
1253 memory_poisoning
|
yading@10
|
1254 network
|
yading@10
|
1255 nonfree
|
yading@10
|
1256 pic
|
yading@10
|
1257 rdft
|
yading@10
|
1258 runtime_cpudetect
|
yading@10
|
1259 safe_bitstream_reader
|
yading@10
|
1260 shared
|
yading@10
|
1261 small
|
yading@10
|
1262 sram
|
yading@10
|
1263 static
|
yading@10
|
1264 swscale_alpha
|
yading@10
|
1265 thumb
|
yading@10
|
1266 version3
|
yading@10
|
1267 xmm_clobber_test
|
yading@10
|
1268 "
|
yading@10
|
1269
|
yading@10
|
1270 THREADS_LIST='
|
yading@10
|
1271 pthreads
|
yading@10
|
1272 w32threads
|
yading@10
|
1273 os2threads
|
yading@10
|
1274 '
|
yading@10
|
1275
|
yading@10
|
1276 ATOMICS_LIST='
|
yading@10
|
1277 atomics_gcc
|
yading@10
|
1278 atomics_suncc
|
yading@10
|
1279 atomics_win32
|
yading@10
|
1280 '
|
yading@10
|
1281
|
yading@10
|
1282 ARCH_LIST='
|
yading@10
|
1283 aarch64
|
yading@10
|
1284 alpha
|
yading@10
|
1285 arm
|
yading@10
|
1286 avr32
|
yading@10
|
1287 avr32_ap
|
yading@10
|
1288 avr32_uc
|
yading@10
|
1289 bfin
|
yading@10
|
1290 ia64
|
yading@10
|
1291 m68k
|
yading@10
|
1292 mips
|
yading@10
|
1293 mips64
|
yading@10
|
1294 parisc
|
yading@10
|
1295 ppc
|
yading@10
|
1296 ppc64
|
yading@10
|
1297 s390
|
yading@10
|
1298 sh4
|
yading@10
|
1299 sparc
|
yading@10
|
1300 sparc64
|
yading@10
|
1301 tilegx
|
yading@10
|
1302 tilepro
|
yading@10
|
1303 tomi
|
yading@10
|
1304 x86
|
yading@10
|
1305 x86_32
|
yading@10
|
1306 x86_64
|
yading@10
|
1307 '
|
yading@10
|
1308
|
yading@10
|
1309 ARCH_EXT_LIST_ARM='
|
yading@10
|
1310 armv5te
|
yading@10
|
1311 armv6
|
yading@10
|
1312 armv6t2
|
yading@10
|
1313 neon
|
yading@10
|
1314 vfp
|
yading@10
|
1315 vfpv3
|
yading@10
|
1316 '
|
yading@10
|
1317
|
yading@10
|
1318 ARCH_EXT_LIST_X86='
|
yading@10
|
1319 amd3dnow
|
yading@10
|
1320 amd3dnowext
|
yading@10
|
1321 avx
|
yading@10
|
1322 fma4
|
yading@10
|
1323 mmx
|
yading@10
|
1324 mmxext
|
yading@10
|
1325 sse
|
yading@10
|
1326 sse2
|
yading@10
|
1327 sse3
|
yading@10
|
1328 sse4
|
yading@10
|
1329 sse42
|
yading@10
|
1330 ssse3
|
yading@10
|
1331 '
|
yading@10
|
1332
|
yading@10
|
1333 ARCH_EXT_LIST="
|
yading@10
|
1334 $ARCH_EXT_LIST_ARM
|
yading@10
|
1335 $ARCH_EXT_LIST_X86
|
yading@10
|
1336 altivec
|
yading@10
|
1337 ppc4xx
|
yading@10
|
1338 vis
|
yading@10
|
1339 mipsfpu
|
yading@10
|
1340 mips32r2
|
yading@10
|
1341 mipsdspr1
|
yading@10
|
1342 mipsdspr2
|
yading@10
|
1343 "
|
yading@10
|
1344
|
yading@10
|
1345 HAVE_LIST_CMDLINE='
|
yading@10
|
1346 inline_asm
|
yading@10
|
1347 symver
|
yading@10
|
1348 yasm
|
yading@10
|
1349 '
|
yading@10
|
1350
|
yading@10
|
1351 HAVE_LIST_PUB='
|
yading@10
|
1352 bigendian
|
yading@10
|
1353 fast_unaligned
|
yading@10
|
1354 incompatible_fork_abi
|
yading@10
|
1355 '
|
yading@10
|
1356
|
yading@10
|
1357 MATH_FUNCS="
|
yading@10
|
1358 atanf
|
yading@10
|
1359 atan2f
|
yading@10
|
1360 cbrt
|
yading@10
|
1361 cbrtf
|
yading@10
|
1362 cosf
|
yading@10
|
1363 exp2
|
yading@10
|
1364 exp2f
|
yading@10
|
1365 expf
|
yading@10
|
1366 isinf
|
yading@10
|
1367 isnan
|
yading@10
|
1368 ldexpf
|
yading@10
|
1369 llrint
|
yading@10
|
1370 llrintf
|
yading@10
|
1371 log2
|
yading@10
|
1372 log2f
|
yading@10
|
1373 log10f
|
yading@10
|
1374 lrint
|
yading@10
|
1375 lrintf
|
yading@10
|
1376 powf
|
yading@10
|
1377 rint
|
yading@10
|
1378 round
|
yading@10
|
1379 roundf
|
yading@10
|
1380 sinf
|
yading@10
|
1381 trunc
|
yading@10
|
1382 truncf
|
yading@10
|
1383 "
|
yading@10
|
1384
|
yading@10
|
1385 HAVE_LIST="
|
yading@10
|
1386 $ARCH_EXT_LIST
|
yading@10
|
1387 $(add_suffix _external $ARCH_EXT_LIST)
|
yading@10
|
1388 $(add_suffix _inline $ARCH_EXT_LIST)
|
yading@10
|
1389 $HAVE_LIST_CMDLINE
|
yading@10
|
1390 $HAVE_LIST_PUB
|
yading@10
|
1391 $THREADS_LIST
|
yading@10
|
1392 $ATOMICS_LIST
|
yading@10
|
1393 $MATH_FUNCS
|
yading@10
|
1394 access
|
yading@10
|
1395 aligned_malloc
|
yading@10
|
1396 aligned_stack
|
yading@10
|
1397 alsa_asoundlib_h
|
yading@10
|
1398 altivec_h
|
yading@10
|
1399 arpa_inet_h
|
yading@10
|
1400 asm_mod_q
|
yading@10
|
1401 asm_mod_y
|
yading@10
|
1402 asm_types_h
|
yading@10
|
1403 atomic_cas_ptr
|
yading@10
|
1404 atomics_native
|
yading@10
|
1405 attribute_may_alias
|
yading@10
|
1406 attribute_packed
|
yading@10
|
1407 cdio_paranoia_h
|
yading@10
|
1408 cdio_paranoia_paranoia_h
|
yading@10
|
1409 clock_gettime
|
yading@10
|
1410 closesocket
|
yading@10
|
1411 cmov
|
yading@10
|
1412 CommandLineToArgvW
|
yading@10
|
1413 cpunop
|
yading@10
|
1414 CryptGenRandom
|
yading@10
|
1415 dcbzl
|
yading@10
|
1416 dev_bktr_ioctl_bt848_h
|
yading@10
|
1417 dev_bktr_ioctl_meteor_h
|
yading@10
|
1418 dev_ic_bt8xx_h
|
yading@10
|
1419 dev_video_bktr_ioctl_bt848_h
|
yading@10
|
1420 dev_video_meteor_ioctl_meteor_h
|
yading@10
|
1421 direct_h
|
yading@10
|
1422 dlfcn_h
|
yading@10
|
1423 dlopen
|
yading@10
|
1424 dos_paths
|
yading@10
|
1425 dxva_h
|
yading@10
|
1426 ebp_available
|
yading@10
|
1427 ebx_available
|
yading@10
|
1428 fast_64bit
|
yading@10
|
1429 fast_clz
|
yading@10
|
1430 fast_cmov
|
yading@10
|
1431 fcntl
|
yading@10
|
1432 fork
|
yading@10
|
1433 getaddrinfo
|
yading@10
|
1434 gethrtime
|
yading@10
|
1435 getopt
|
yading@10
|
1436 GetProcessAffinityMask
|
yading@10
|
1437 GetProcessMemoryInfo
|
yading@10
|
1438 GetProcessTimes
|
yading@10
|
1439 GetSystemTimeAsFileTime
|
yading@10
|
1440 getrusage
|
yading@10
|
1441 getservbyport
|
yading@10
|
1442 gettimeofday
|
yading@10
|
1443 glob
|
yading@10
|
1444 gnu_as
|
yading@10
|
1445 gsm_h
|
yading@10
|
1446 ibm_asm
|
yading@10
|
1447 inet_aton
|
yading@10
|
1448 io_h
|
yading@10
|
1449 isatty
|
yading@10
|
1450 jack_port_get_latency_range
|
yading@10
|
1451 kbhit
|
yading@10
|
1452 ldbrx
|
yading@10
|
1453 libdc1394_1
|
yading@10
|
1454 libdc1394_2
|
yading@10
|
1455 local_aligned_16
|
yading@10
|
1456 local_aligned_8
|
yading@10
|
1457 localtime_r
|
yading@10
|
1458 loongson
|
yading@10
|
1459 lzo1x_999_compress
|
yading@10
|
1460 machine_ioctl_bt848_h
|
yading@10
|
1461 machine_ioctl_meteor_h
|
yading@10
|
1462 machine_rw_barrier
|
yading@10
|
1463 makeinfo
|
yading@10
|
1464 malloc_h
|
yading@10
|
1465 MapViewOfFile
|
yading@10
|
1466 memalign
|
yading@10
|
1467 MemoryBarrier
|
yading@10
|
1468 mkstemp
|
yading@10
|
1469 mm_empty
|
yading@10
|
1470 mmap
|
yading@10
|
1471 mprotect
|
yading@10
|
1472 msvcrt
|
yading@10
|
1473 nanosleep
|
yading@10
|
1474 openjpeg_1_5_openjpeg_h
|
yading@10
|
1475 PeekNamedPipe
|
yading@10
|
1476 perl
|
yading@10
|
1477 pod2man
|
yading@10
|
1478 poll_h
|
yading@10
|
1479 posix_memalign
|
yading@10
|
1480 pthread_cancel
|
yading@10
|
1481 rdtsc
|
yading@10
|
1482 rsync_contimeout
|
yading@10
|
1483 sched_getaffinity
|
yading@10
|
1484 sdl
|
yading@10
|
1485 SetConsoleTextAttribute
|
yading@10
|
1486 setmode
|
yading@10
|
1487 setrlimit
|
yading@10
|
1488 Sleep
|
yading@10
|
1489 sndio_h
|
yading@10
|
1490 socklen_t
|
yading@10
|
1491 soundcard_h
|
yading@10
|
1492 strerror_r
|
yading@10
|
1493 struct_addrinfo
|
yading@10
|
1494 struct_group_source_req
|
yading@10
|
1495 struct_ip_mreq_source
|
yading@10
|
1496 struct_ipv6_mreq
|
yading@10
|
1497 struct_pollfd
|
yading@10
|
1498 struct_rusage_ru_maxrss
|
yading@10
|
1499 struct_sctp_event_subscribe
|
yading@10
|
1500 struct_sockaddr_in6
|
yading@10
|
1501 struct_sockaddr_sa_len
|
yading@10
|
1502 struct_sockaddr_storage
|
yading@10
|
1503 struct_v4l2_frmivalenum_discrete
|
yading@10
|
1504 symver_asm_label
|
yading@10
|
1505 symver_gnu_asm
|
yading@10
|
1506 sync_val_compare_and_swap
|
yading@10
|
1507 sysconf
|
yading@10
|
1508 sysctl
|
yading@10
|
1509 sys_mman_h
|
yading@10
|
1510 sys_param_h
|
yading@10
|
1511 sys_resource_h
|
yading@10
|
1512 sys_select_h
|
yading@10
|
1513 sys_soundcard_h
|
yading@10
|
1514 sys_time_h
|
yading@10
|
1515 sys_videoio_h
|
yading@10
|
1516 termios_h
|
yading@10
|
1517 texi2html
|
yading@10
|
1518 threads
|
yading@10
|
1519 unistd_h
|
yading@10
|
1520 usleep
|
yading@10
|
1521 vfp_args
|
yading@10
|
1522 VirtualAlloc
|
yading@10
|
1523 windows_h
|
yading@10
|
1524 winsock2_h
|
yading@10
|
1525 xform_asm
|
yading@10
|
1526 xmm_clobbers
|
yading@10
|
1527 "
|
yading@10
|
1528
|
yading@10
|
1529 # options emitted with CONFIG_ prefix but not available on the command line
|
yading@10
|
1530 CONFIG_EXTRA="
|
yading@10
|
1531 aandcttables
|
yading@10
|
1532 ac3dsp
|
yading@10
|
1533 audio_frame_queue
|
yading@10
|
1534 dsputil
|
yading@10
|
1535 frame_thread_encoder
|
yading@10
|
1536 gcrypt
|
yading@10
|
1537 golomb
|
yading@10
|
1538 gplv3
|
yading@10
|
1539 h264chroma
|
yading@10
|
1540 h264dsp
|
yading@10
|
1541 h264pred
|
yading@10
|
1542 h264qpel
|
yading@10
|
1543 hpeldsp
|
yading@10
|
1544 huffman
|
yading@10
|
1545 lgplv3
|
yading@10
|
1546 lpc
|
yading@10
|
1547 mpegaudio
|
yading@10
|
1548 mpegaudiodsp
|
yading@10
|
1549 mpegvideo
|
yading@10
|
1550 mpegvideoenc
|
yading@10
|
1551 nettle
|
yading@10
|
1552 rangecoder
|
yading@10
|
1553 rtpdec
|
yading@10
|
1554 rtpenc_chain
|
yading@10
|
1555 sinewin
|
yading@10
|
1556 videodsp
|
yading@10
|
1557 vp3dsp
|
yading@10
|
1558 "
|
yading@10
|
1559
|
yading@10
|
1560 CMDLINE_SELECT="
|
yading@10
|
1561 $ARCH_EXT_LIST
|
yading@10
|
1562 $CONFIG_LIST
|
yading@10
|
1563 $HAVE_LIST_CMDLINE
|
yading@10
|
1564 $THREADS_LIST
|
yading@10
|
1565 asm
|
yading@10
|
1566 cross_compile
|
yading@10
|
1567 debug
|
yading@10
|
1568 extra_warnings
|
yading@10
|
1569 logging
|
yading@10
|
1570 lto
|
yading@10
|
1571 optimizations
|
yading@10
|
1572 stripping
|
yading@10
|
1573 "
|
yading@10
|
1574
|
yading@10
|
1575 PATHS_LIST='
|
yading@10
|
1576 bindir
|
yading@10
|
1577 datadir
|
yading@10
|
1578 incdir
|
yading@10
|
1579 libdir
|
yading@10
|
1580 mandir
|
yading@10
|
1581 prefix
|
yading@10
|
1582 shlibdir
|
yading@10
|
1583 '
|
yading@10
|
1584
|
yading@10
|
1585 CMDLINE_SET="
|
yading@10
|
1586 $PATHS_LIST
|
yading@10
|
1587 ar
|
yading@10
|
1588 arch
|
yading@10
|
1589 as
|
yading@10
|
1590 assert_level
|
yading@10
|
1591 build_suffix
|
yading@10
|
1592 cc
|
yading@10
|
1593 cpu
|
yading@10
|
1594 cross_prefix
|
yading@10
|
1595 cxx
|
yading@10
|
1596 dep_cc
|
yading@10
|
1597 extra_version
|
yading@10
|
1598 host_cc
|
yading@10
|
1599 host_cflags
|
yading@10
|
1600 host_ld
|
yading@10
|
1601 host_ldflags
|
yading@10
|
1602 host_libs
|
yading@10
|
1603 host_os
|
yading@10
|
1604 install
|
yading@10
|
1605 ld
|
yading@10
|
1606 logfile
|
yading@10
|
1607 malloc_prefix
|
yading@10
|
1608 nm
|
yading@10
|
1609 optflags
|
yading@10
|
1610 pkg_config
|
yading@10
|
1611 progs_suffix
|
yading@10
|
1612 random_seed
|
yading@10
|
1613 samples
|
yading@10
|
1614 strip
|
yading@10
|
1615 sysinclude
|
yading@10
|
1616 sysroot
|
yading@10
|
1617 target_exec
|
yading@10
|
1618 target_os
|
yading@10
|
1619 target_path
|
yading@10
|
1620 toolchain
|
yading@10
|
1621 valgrind
|
yading@10
|
1622 yasmexe
|
yading@10
|
1623 "
|
yading@10
|
1624
|
yading@10
|
1625 CMDLINE_APPEND="
|
yading@10
|
1626 extra_cflags
|
yading@10
|
1627 extra_cxxflags
|
yading@10
|
1628 host_cppflags
|
yading@10
|
1629 "
|
yading@10
|
1630
|
yading@10
|
1631 # code dependency declarations
|
yading@10
|
1632
|
yading@10
|
1633 # architecture extensions
|
yading@10
|
1634
|
yading@10
|
1635 armv5te_deps="arm"
|
yading@10
|
1636 armv6_deps="arm"
|
yading@10
|
1637 armv6t2_deps="arm"
|
yading@10
|
1638 neon_deps="arm"
|
yading@10
|
1639 vfp_deps="arm"
|
yading@10
|
1640 vfpv3_deps="vfp"
|
yading@10
|
1641
|
yading@10
|
1642 map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM
|
yading@10
|
1643
|
yading@10
|
1644 mipsfpu_deps="mips"
|
yading@10
|
1645 mips32r2_deps="mips"
|
yading@10
|
1646 mipsdspr1_deps="mips"
|
yading@10
|
1647 mipsdspr2_deps="mips"
|
yading@10
|
1648
|
yading@10
|
1649 altivec_deps="ppc"
|
yading@10
|
1650 ppc4xx_deps="ppc"
|
yading@10
|
1651
|
yading@10
|
1652 vis_deps="sparc"
|
yading@10
|
1653
|
yading@10
|
1654 x86_64_suggest="cmov fast_cmov"
|
yading@10
|
1655
|
yading@10
|
1656 amd3dnow_deps="mmx"
|
yading@10
|
1657 amd3dnowext_deps="amd3dnow"
|
yading@10
|
1658 mmx_deps="x86"
|
yading@10
|
1659 mmxext_deps="mmx"
|
yading@10
|
1660 sse_deps="mmxext"
|
yading@10
|
1661 sse2_deps="sse"
|
yading@10
|
1662 sse3_deps="sse2"
|
yading@10
|
1663 ssse3_deps="sse3"
|
yading@10
|
1664 sse4_deps="ssse3"
|
yading@10
|
1665 sse42_deps="sse4"
|
yading@10
|
1666 avx_deps="sse42"
|
yading@10
|
1667 fma4_deps="avx"
|
yading@10
|
1668
|
yading@10
|
1669 mmx_external_deps="yasm"
|
yading@10
|
1670 mmx_inline_deps="inline_asm"
|
yading@10
|
1671 mmx_suggest="mmx_external mmx_inline"
|
yading@10
|
1672
|
yading@10
|
1673 for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do
|
yading@10
|
1674 eval dep=\$${ext}_deps
|
yading@10
|
1675 eval ${ext}_external_deps='"${dep}_external"'
|
yading@10
|
1676 eval ${ext}_inline_deps='"${dep}_inline"'
|
yading@10
|
1677 eval ${ext}_suggest='"${ext}_external ${ext}_inline"'
|
yading@10
|
1678 done
|
yading@10
|
1679
|
yading@10
|
1680 aligned_stack_if_any="ppc x86"
|
yading@10
|
1681 fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
|
yading@10
|
1682 fast_clz_if_any="alpha avr32 mips ppc x86"
|
yading@10
|
1683 fast_unaligned_if_any="ppc x86"
|
yading@10
|
1684
|
yading@10
|
1685 inline_asm_deps="!tms470"
|
yading@10
|
1686 need_memalign="altivec neon sse"
|
yading@10
|
1687
|
yading@10
|
1688 symver_if_any="symver_asm_label symver_gnu_asm"
|
yading@10
|
1689
|
yading@10
|
1690 log2_deps="!msvcrt"
|
yading@10
|
1691
|
yading@10
|
1692 # subsystems
|
yading@10
|
1693 dct_select="rdft"
|
yading@10
|
1694 error_resilience_select="dsputil"
|
yading@10
|
1695 frame_thread_encoder_deps="encoders threads"
|
yading@10
|
1696 lpc_select="dsputil"
|
yading@10
|
1697 mdct_select="fft"
|
yading@10
|
1698 rdft_select="fft"
|
yading@10
|
1699 mpegaudio_select="mpegaudiodsp"
|
yading@10
|
1700 mpegaudiodsp_select="dct"
|
yading@10
|
1701 mpegvideo_select="dsputil h264chroma hpeldsp videodsp"
|
yading@10
|
1702 mpegvideoenc_select="mpegvideo"
|
yading@10
|
1703
|
yading@10
|
1704 # decoders / encoders
|
yading@10
|
1705 aac_decoder_select="mdct sinewin"
|
yading@10
|
1706 aac_encoder_select="audio_frame_queue mdct sinewin"
|
yading@10
|
1707 aac_latm_decoder_select="aac_decoder aac_latm_parser"
|
yading@10
|
1708 ac3_decoder_select="mdct ac3dsp ac3_parser dsputil"
|
yading@10
|
1709 ac3_encoder_select="mdct ac3dsp dsputil"
|
yading@10
|
1710 ac3_fixed_encoder_select="mdct ac3dsp dsputil"
|
yading@10
|
1711 alac_encoder_select="lpc"
|
yading@10
|
1712 als_decoder_select="dsputil"
|
yading@10
|
1713 amrnb_decoder_select="lsp"
|
yading@10
|
1714 amrwb_decoder_select="lsp"
|
yading@10
|
1715 amv_decoder_select="dsputil hpeldsp"
|
yading@10
|
1716 amv_encoder_select="aandcttables"
|
yading@10
|
1717 ape_decoder_select="dsputil"
|
yading@10
|
1718 asv1_decoder_select="dsputil"
|
yading@10
|
1719 asv1_encoder_select="dsputil"
|
yading@10
|
1720 asv2_decoder_select="dsputil"
|
yading@10
|
1721 asv2_encoder_select="dsputil"
|
yading@10
|
1722 atrac1_decoder_select="mdct sinewin"
|
yading@10
|
1723 atrac3_decoder_select="mdct"
|
yading@10
|
1724 bink_decoder_select="dsputil hpeldsp"
|
yading@10
|
1725 binkaudio_dct_decoder_select="mdct rdft dct sinewin"
|
yading@10
|
1726 binkaudio_rdft_decoder_select="mdct rdft sinewin"
|
yading@10
|
1727 cavs_decoder_select="dsputil golomb h264chroma videodsp"
|
yading@10
|
1728 cllc_decoder_select="dsputil"
|
yading@10
|
1729 comfortnoise_encoder_select="lpc"
|
yading@10
|
1730 cook_decoder_select="dsputil mdct sinewin"
|
yading@10
|
1731 cscd_decoder_select="lzo"
|
yading@10
|
1732 cscd_decoder_suggest="zlib"
|
yading@10
|
1733 dca_decoder_select="mdct"
|
yading@10
|
1734 dirac_decoder_select="dsputil dwt golomb videodsp"
|
yading@10
|
1735 dnxhd_decoder_select="dsputil"
|
yading@10
|
1736 dnxhd_encoder_select="aandcttables dsputil mpegvideoenc"
|
yading@10
|
1737 dvvideo_decoder_select="dsputil"
|
yading@10
|
1738 dvvideo_encoder_select="dsputil"
|
yading@10
|
1739 dxa_decoder_select="zlib"
|
yading@10
|
1740 eac3_decoder_select="ac3_decoder"
|
yading@10
|
1741 eac3_encoder_select="ac3_encoder"
|
yading@10
|
1742 eamad_decoder_select="aandcttables dsputil mpegvideo"
|
yading@10
|
1743 eatgq_decoder_select="aandcttables"
|
yading@10
|
1744 eatqi_decoder_select="aandcttables error_resilience mpegvideo"
|
yading@10
|
1745 exr_decoder_select="zlib"
|
yading@10
|
1746 ffv1_decoder_select="dsputil golomb rangecoder"
|
yading@10
|
1747 ffv1_encoder_select="dsputil rangecoder"
|
yading@10
|
1748 ffvhuff_decoder_select="dsputil"
|
yading@10
|
1749 ffvhuff_encoder_select="dsputil huffman"
|
yading@10
|
1750 flac_decoder_select="golomb"
|
yading@10
|
1751 flac_encoder_select="dsputil golomb lpc"
|
yading@10
|
1752 flashsv_decoder_select="zlib"
|
yading@10
|
1753 flashsv_encoder_select="zlib"
|
yading@10
|
1754 flashsv2_encoder_select="zlib"
|
yading@10
|
1755 flashsv2_decoder_select="zlib"
|
yading@10
|
1756 flv_decoder_select="h263_decoder"
|
yading@10
|
1757 flv_encoder_select="h263_encoder"
|
yading@10
|
1758 fourxm_decoder_select="dsputil"
|
yading@10
|
1759 fraps_decoder_select="dsputil huffman"
|
yading@10
|
1760 g729_decoder_select="dsputil"
|
yading@10
|
1761 h261_decoder_select="error_resilience mpegvideo"
|
yading@10
|
1762 h261_encoder_select="aandcttables mpegvideoenc"
|
yading@10
|
1763 h263_decoder_select="error_resilience h263_parser mpegvideo"
|
yading@10
|
1764 h263_encoder_select="aandcttables mpegvideoenc"
|
yading@10
|
1765 h263i_decoder_select="h263_decoder"
|
yading@10
|
1766 h263p_encoder_select="h263_encoder"
|
yading@10
|
1767 h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
|
yading@10
|
1768 h264_decoder_suggest="error_resilience"
|
yading@10
|
1769 huffyuv_decoder_select="dsputil"
|
yading@10
|
1770 huffyuv_encoder_select="dsputil huffman"
|
yading@10
|
1771 iac_decoder_select="dsputil fft mdct sinewin"
|
yading@10
|
1772 imc_decoder_select="dsputil fft mdct sinewin"
|
yading@10
|
1773 indeo3_decoder_select="hpeldsp"
|
yading@10
|
1774 interplay_video_decoder_select="hpeldsp"
|
yading@10
|
1775 jpegls_decoder_select="dsputil golomb hpeldsp"
|
yading@10
|
1776 jpegls_encoder_select="golomb"
|
yading@10
|
1777 jv_decoder_select="dsputil"
|
yading@10
|
1778 lagarith_decoder_select="dsputil"
|
yading@10
|
1779 ljpeg_encoder_select="aandcttables mpegvideoenc"
|
yading@10
|
1780 loco_decoder_select="golomb"
|
yading@10
|
1781 mdec_decoder_select="dsputil error_resilience mpegvideo"
|
yading@10
|
1782 mimic_decoder_select="dsputil hpeldsp"
|
yading@10
|
1783 mjpeg_decoder_select="dsputil hpeldsp"
|
yading@10
|
1784 mjpegb_decoder_select="dsputil hpeldsp"
|
yading@10
|
1785 mjpeg_encoder_select="aandcttables dsputil mpegvideoenc"
|
yading@10
|
1786 mlp_decoder_select="dsputil mlp_parser"
|
yading@10
|
1787 motionpixels_decoder_select="dsputil"
|
yading@10
|
1788 mp1_decoder_select="mpegaudio"
|
yading@10
|
1789 mp1float_decoder_select="mpegaudio"
|
yading@10
|
1790 mp2_decoder_select="mpegaudio"
|
yading@10
|
1791 mp2float_decoder_select="mpegaudio"
|
yading@10
|
1792 mp3_decoder_select="mpegaudio"
|
yading@10
|
1793 mp3adu_decoder_select="mpegaudio"
|
yading@10
|
1794 mp3adufloat_decoder_select="mpegaudio"
|
yading@10
|
1795 mp3float_decoder_select="mpegaudio"
|
yading@10
|
1796 mp3on4_decoder_select="mpegaudio"
|
yading@10
|
1797 mp3on4float_decoder_select="mpegaudio"
|
yading@10
|
1798 mpc7_decoder_select="dsputil mpegaudiodsp"
|
yading@10
|
1799 mpc8_decoder_select="dsputil mpegaudiodsp"
|
yading@10
|
1800 mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
|
yading@10
|
1801 mpeg_xvmc_decoder_select="mpeg2video_decoder"
|
yading@10
|
1802 mpeg1video_decoder_select="error_resilience mpegvideo"
|
yading@10
|
1803 mpeg1video_encoder_select="aandcttables mpegvideoenc"
|
yading@10
|
1804 mpeg2video_decoder_select="error_resilience mpegvideo"
|
yading@10
|
1805 mpeg2video_encoder_select="aandcttables mpegvideoenc"
|
yading@10
|
1806 mpeg4_decoder_select="h263_decoder mpeg4video_parser"
|
yading@10
|
1807 mpeg4_encoder_select="h263_encoder"
|
yading@10
|
1808 msmpeg4v1_decoder_select="h263_decoder"
|
yading@10
|
1809 msmpeg4v2_decoder_select="h263_decoder"
|
yading@10
|
1810 msmpeg4v2_encoder_select="h263_encoder"
|
yading@10
|
1811 msmpeg4v3_decoder_select="h263_decoder"
|
yading@10
|
1812 msmpeg4v3_encoder_select="h263_encoder"
|
yading@10
|
1813 mss2_decoder_select="error_resilience vc1_decoder"
|
yading@10
|
1814 mxpeg_decoder_select="dsputil hpeldsp"
|
yading@10
|
1815 nellymoser_decoder_select="mdct sinewin"
|
yading@10
|
1816 nellymoser_encoder_select="audio_frame_queue mdct sinewin"
|
yading@10
|
1817 nuv_decoder_select="dsputil lzo"
|
yading@10
|
1818 png_decoder_select="zlib"
|
yading@10
|
1819 png_encoder_select="dsputil zlib"
|
yading@10
|
1820 prores_decoder_select="dsputil"
|
yading@10
|
1821 prores_encoder_select="dsputil"
|
yading@10
|
1822 qcelp_decoder_select="lsp"
|
yading@10
|
1823 qdm2_decoder_select="mdct rdft mpegaudiodsp"
|
yading@10
|
1824 ra_144_encoder_select="audio_frame_queue lpc"
|
yading@10
|
1825 ralf_decoder_select="golomb"
|
yading@10
|
1826 rtjpeg_decoder_select="dsputil"
|
yading@10
|
1827 rv10_decoder_select="error_resilience h263_decoder"
|
yading@10
|
1828 rv10_encoder_select="h263_encoder"
|
yading@10
|
1829 rv20_decoder_select="error_resilience h263_decoder"
|
yading@10
|
1830 rv20_encoder_select="h263_encoder"
|
yading@10
|
1831 rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
|
yading@10
|
1832 rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
|
yading@10
|
1833 shorten_decoder_select="golomb"
|
yading@10
|
1834 sipr_decoder_select="lsp"
|
yading@10
|
1835 snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder"
|
yading@10
|
1836 snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder"
|
yading@10
|
1837 sonic_decoder_select="golomb"
|
yading@10
|
1838 sonic_encoder_select="golomb"
|
yading@10
|
1839 sonic_ls_encoder_select="golomb"
|
yading@10
|
1840 sp5x_decoder_select="dsputil hpeldsp"
|
yading@10
|
1841 svq1_decoder_select="hpeldsp"
|
yading@10
|
1842 svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc"
|
yading@10
|
1843 svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel hpeldsp mpegvideo videodsp"
|
yading@10
|
1844 svq3_decoder_suggest="error_resilience zlib"
|
yading@10
|
1845 tak_decoder_select="dsputil"
|
yading@10
|
1846 theora_decoder_select="vp3_decoder"
|
yading@10
|
1847 tiff_decoder_suggest="zlib"
|
yading@10
|
1848 tiff_encoder_suggest="zlib"
|
yading@10
|
1849 thp_decoder_select="dsputil hpeldsp"
|
yading@10
|
1850 truehd_decoder_select="mlp_parser"
|
yading@10
|
1851 truemotion2_decoder_select="dsputil"
|
yading@10
|
1852 truespeech_decoder_select="dsputil"
|
yading@10
|
1853 tscc_decoder_select="zlib"
|
yading@10
|
1854 twinvq_decoder_select="mdct lsp sinewin"
|
yading@10
|
1855 utvideo_decoder_select="dsputil"
|
yading@10
|
1856 utvideo_encoder_select="dsputil huffman"
|
yading@10
|
1857 vble_decoder_select="dsputil"
|
yading@10
|
1858 vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel"
|
yading@10
|
1859 vc1image_decoder_select="vc1_decoder"
|
yading@10
|
1860 vorbis_decoder_select="mdct"
|
yading@10
|
1861 vorbis_encoder_select="mdct"
|
yading@10
|
1862 vp3_decoder_select="hpeldsp vp3dsp videodsp"
|
yading@10
|
1863 vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp"
|
yading@10
|
1864 vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp"
|
yading@10
|
1865 vp6a_decoder_select="vp6_decoder"
|
yading@10
|
1866 vp6f_decoder_select="vp6_decoder"
|
yading@10
|
1867 vp8_decoder_select="h264pred videodsp"
|
yading@10
|
1868 wmapro_decoder_select="mdct sinewin"
|
yading@10
|
1869 wmav1_decoder_select="mdct sinewin"
|
yading@10
|
1870 wmav1_encoder_select="mdct sinewin"
|
yading@10
|
1871 wmav2_decoder_select="mdct sinewin"
|
yading@10
|
1872 wmav2_encoder_select="mdct sinewin"
|
yading@10
|
1873 wmavoice_decoder_select="lsp rdft dct mdct sinewin"
|
yading@10
|
1874 wmv1_decoder_select="h263_decoder"
|
yading@10
|
1875 wmv1_encoder_select="h263_encoder"
|
yading@10
|
1876 wmv2_decoder_select="h263_decoder videodsp"
|
yading@10
|
1877 wmv2_encoder_select="h263_encoder"
|
yading@10
|
1878 wmv3_decoder_select="vc1_decoder"
|
yading@10
|
1879 wmv3image_decoder_select="wmv3_decoder"
|
yading@10
|
1880 zerocodec_decoder_select="zlib"
|
yading@10
|
1881 zlib_decoder_select="zlib"
|
yading@10
|
1882 zlib_encoder_select="zlib"
|
yading@10
|
1883 zmbv_decoder_select="zlib"
|
yading@10
|
1884 zmbv_encoder_select="zlib"
|
yading@10
|
1885
|
yading@10
|
1886 # hardware accelerators
|
yading@10
|
1887 crystalhd_deps="libcrystalhd_libcrystalhd_if_h"
|
yading@10
|
1888 dxva2_deps="dxva2api_h"
|
yading@10
|
1889 vaapi_deps="va_va_h"
|
yading@10
|
1890 vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
|
yading@10
|
1891 vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
|
yading@10
|
1892 vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
|
yading@10
|
1893
|
yading@10
|
1894 h263_vaapi_hwaccel_deps="vaapi"
|
yading@10
|
1895 h263_vaapi_hwaccel_select="h263_decoder"
|
yading@10
|
1896 h263_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1897 h263_vdpau_hwaccel_select="h263_decoder"
|
yading@10
|
1898 h264_crystalhd_decoder_select="crystalhd h264_mp4toannexb_bsf h264_parser"
|
yading@10
|
1899 h264_dxva2_hwaccel_deps="dxva2"
|
yading@10
|
1900 h264_dxva2_hwaccel_select="h264_decoder"
|
yading@10
|
1901 h264_vaapi_hwaccel_deps="vaapi"
|
yading@10
|
1902 h264_vaapi_hwaccel_select="h264_decoder"
|
yading@10
|
1903 h264_vda_decoder_deps="vda"
|
yading@10
|
1904 h264_vda_decoder_select="h264_decoder"
|
yading@10
|
1905 h264_vda_hwaccel_deps="vda"
|
yading@10
|
1906 h264_vda_hwaccel_select="h264_decoder"
|
yading@10
|
1907 h264_vdpau_decoder_deps="vdpau"
|
yading@10
|
1908 h264_vdpau_decoder_select="h264_decoder"
|
yading@10
|
1909 h264_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1910 h264_vdpau_hwaccel_select="h264_decoder"
|
yading@10
|
1911 mpeg_vdpau_decoder_deps="vdpau"
|
yading@10
|
1912 mpeg_vdpau_decoder_select="mpeg2video_decoder"
|
yading@10
|
1913 mpeg1_vdpau_decoder_deps="vdpau"
|
yading@10
|
1914 mpeg1_vdpau_decoder_select="mpeg1video_decoder"
|
yading@10
|
1915 mpeg1_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1916 mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
|
yading@10
|
1917 mpeg2_crystalhd_decoder_select="crystalhd"
|
yading@10
|
1918 mpeg2_dxva2_hwaccel_deps="dxva2"
|
yading@10
|
1919 mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
|
yading@10
|
1920 mpeg2_vaapi_hwaccel_deps="vaapi"
|
yading@10
|
1921 mpeg2_vaapi_hwaccel_select="mpeg2video_decoder"
|
yading@10
|
1922 mpeg2_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1923 mpeg2_vdpau_hwaccel_select="mpeg2video_decoder"
|
yading@10
|
1924 mpeg4_crystalhd_decoder_select="crystalhd"
|
yading@10
|
1925 mpeg4_vaapi_hwaccel_deps="vaapi"
|
yading@10
|
1926 mpeg4_vaapi_hwaccel_select="mpeg4_decoder"
|
yading@10
|
1927 mpeg4_vdpau_decoder_deps="vdpau"
|
yading@10
|
1928 mpeg4_vdpau_decoder_select="mpeg4_decoder"
|
yading@10
|
1929 mpeg4_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1930 mpeg4_vdpau_hwaccel_select="mpeg4_decoder"
|
yading@10
|
1931 msmpeg4_crystalhd_decoder_select="crystalhd"
|
yading@10
|
1932 vc1_crystalhd_decoder_select="crystalhd"
|
yading@10
|
1933 vc1_dxva2_hwaccel_deps="dxva2"
|
yading@10
|
1934 vc1_dxva2_hwaccel_select="vc1_decoder"
|
yading@10
|
1935 vc1_vaapi_hwaccel_deps="vaapi"
|
yading@10
|
1936 vc1_vaapi_hwaccel_select="vc1_decoder"
|
yading@10
|
1937 vc1_vdpau_decoder_deps="vdpau"
|
yading@10
|
1938 vc1_vdpau_decoder_select="vc1_decoder"
|
yading@10
|
1939 vc1_vdpau_hwaccel_deps="vdpau"
|
yading@10
|
1940 vc1_vdpau_hwaccel_select="vc1_decoder"
|
yading@10
|
1941 wmv3_crystalhd_decoder_select="crystalhd"
|
yading@10
|
1942 wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
|
yading@10
|
1943 wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
|
yading@10
|
1944 wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
|
yading@10
|
1945 wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
|
yading@10
|
1946
|
yading@10
|
1947 # parsers
|
yading@10
|
1948 h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
|
yading@10
|
1949 mpeg4video_parser_select="error_resilience mpegvideo"
|
yading@10
|
1950 mpegvideo_parser_select="error_resilience mpegvideo"
|
yading@10
|
1951 vc1_parser_select="mpegvideo"
|
yading@10
|
1952
|
yading@10
|
1953 # external libraries
|
yading@10
|
1954 libaacplus_encoder_deps="libaacplus"
|
yading@10
|
1955 libcelt_decoder_deps="libcelt"
|
yading@10
|
1956 libfaac_encoder_deps="libfaac"
|
yading@10
|
1957 libfaac_encoder_select="audio_frame_queue"
|
yading@10
|
1958 libfdk_aac_encoder_deps="libfdk_aac"
|
yading@10
|
1959 libfdk_aac_encoder_select="audio_frame_queue"
|
yading@10
|
1960 libgsm_decoder_deps="libgsm"
|
yading@10
|
1961 libgsm_encoder_deps="libgsm"
|
yading@10
|
1962 libgsm_ms_decoder_deps="libgsm"
|
yading@10
|
1963 libgsm_ms_encoder_deps="libgsm"
|
yading@10
|
1964 libilbc_decoder_deps="libilbc"
|
yading@10
|
1965 libilbc_encoder_deps="libilbc"
|
yading@10
|
1966 libmodplug_demuxer_deps="libmodplug"
|
yading@10
|
1967 libmp3lame_encoder_deps="libmp3lame"
|
yading@10
|
1968 libmp3lame_encoder_select="audio_frame_queue"
|
yading@10
|
1969 libopencore_amrnb_decoder_deps="libopencore_amrnb"
|
yading@10
|
1970 libopencore_amrnb_encoder_deps="libopencore_amrnb"
|
yading@10
|
1971 libopencore_amrnb_encoder_select="audio_frame_queue"
|
yading@10
|
1972 libopencore_amrwb_decoder_deps="libopencore_amrwb"
|
yading@10
|
1973 libopenjpeg_decoder_deps="libopenjpeg"
|
yading@10
|
1974 libopenjpeg_encoder_deps="libopenjpeg"
|
yading@10
|
1975 libopus_decoder_deps="libopus"
|
yading@10
|
1976 libopus_encoder_deps="libopus"
|
yading@10
|
1977 libopus_encoder_select="audio_frame_queue"
|
yading@10
|
1978 libquvi_demuxer_deps="libquvi"
|
yading@10
|
1979 libschroedinger_decoder_deps="libschroedinger"
|
yading@10
|
1980 libschroedinger_encoder_deps="libschroedinger"
|
yading@10
|
1981 libshine_encoder_deps="libshine"
|
yading@10
|
1982 libshine_encoder_select="audio_frame_queue"
|
yading@10
|
1983 libspeex_decoder_deps="libspeex"
|
yading@10
|
1984 libspeex_encoder_deps="libspeex"
|
yading@10
|
1985 libspeex_encoder_select="audio_frame_queue"
|
yading@10
|
1986 libstagefright_h264_decoder_deps="libstagefright_h264"
|
yading@10
|
1987 libtheora_encoder_deps="libtheora"
|
yading@10
|
1988 libtwolame_encoder_deps="libtwolame"
|
yading@10
|
1989 libvo_aacenc_encoder_deps="libvo_aacenc"
|
yading@10
|
1990 libvo_aacenc_encoder_select="audio_frame_queue"
|
yading@10
|
1991 libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
|
yading@10
|
1992 libvorbis_decoder_deps="libvorbis"
|
yading@10
|
1993 libvorbis_encoder_deps="libvorbis"
|
yading@10
|
1994 libvorbis_encoder_select="audio_frame_queue"
|
yading@10
|
1995 libvpx_vp8_decoder_deps="libvpx"
|
yading@10
|
1996 libvpx_vp8_encoder_deps="libvpx"
|
yading@10
|
1997 libvpx_vp9_decoder_deps="libvpx"
|
yading@10
|
1998 libvpx_vp9_encoder_deps="libvpx"
|
yading@10
|
1999 libx264_encoder_deps="libx264"
|
yading@10
|
2000 libx264rgb_encoder_deps="libx264"
|
yading@10
|
2001 libxavs_encoder_deps="libxavs"
|
yading@10
|
2002 libxvid_encoder_deps="libxvid"
|
yading@10
|
2003 libutvideo_decoder_deps="libutvideo"
|
yading@10
|
2004 libutvideo_encoder_deps="libutvideo"
|
yading@10
|
2005
|
yading@10
|
2006 # demuxers / muxers
|
yading@10
|
2007 ac3_demuxer_select="ac3_parser"
|
yading@10
|
2008 asf_stream_muxer_select="asf_muxer"
|
yading@10
|
2009 avisynth_demuxer_deps="avisynth"
|
yading@10
|
2010 dirac_demuxer_select="dirac_parser"
|
yading@10
|
2011 dts_demuxer_select="dca_parser"
|
yading@10
|
2012 dtshd_demuxer_select="dca_parser"
|
yading@10
|
2013 eac3_demuxer_select="ac3_parser"
|
yading@10
|
2014 f4v_muxer_select="mov_muxer"
|
yading@10
|
2015 flac_demuxer_select="flac_parser"
|
yading@10
|
2016 ipod_muxer_select="mov_muxer"
|
yading@10
|
2017 ismv_muxer_select="mov_muxer"
|
yading@10
|
2018 libnut_demuxer_deps="libnut"
|
yading@10
|
2019 libnut_muxer_deps="libnut"
|
yading@10
|
2020 matroska_audio_muxer_select="matroska_muxer"
|
yading@10
|
2021 matroska_demuxer_suggest="bzlib lzo zlib"
|
yading@10
|
2022 mov_demuxer_suggest="zlib"
|
yading@10
|
2023 mov_muxer_select="rtpenc_chain"
|
yading@10
|
2024 mp3_demuxer_select="mpegaudio_parser"
|
yading@10
|
2025 mp4_muxer_select="mov_muxer"
|
yading@10
|
2026 mpegts_muxer_select="adts_muxer latm_muxer"
|
yading@10
|
2027 mpegtsraw_demuxer_select="mpegts_demuxer"
|
yading@10
|
2028 mxf_d10_muxer_select="mxf_muxer"
|
yading@10
|
2029 ogg_demuxer_select="golomb"
|
yading@10
|
2030 psp_muxer_select="mov_muxer"
|
yading@10
|
2031 rtp_demuxer_select="sdp_demuxer"
|
yading@10
|
2032 rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
|
yading@10
|
2033 rtsp_demuxer_select="http_protocol rtpdec"
|
yading@10
|
2034 rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain"
|
yading@10
|
2035 sap_demuxer_select="sdp_demuxer"
|
yading@10
|
2036 sap_muxer_select="rtp_muxer rtp_protocol rtpenc_chain"
|
yading@10
|
2037 sdp_demuxer_select="rtpdec"
|
yading@10
|
2038 smoothstreaming_muxer_select="ismv_muxer"
|
yading@10
|
2039 spdif_muxer_select="aac_parser"
|
yading@10
|
2040 tak_demuxer_select="tak_parser"
|
yading@10
|
2041 tg2_muxer_select="mov_muxer"
|
yading@10
|
2042 tgp_muxer_select="mov_muxer"
|
yading@10
|
2043 vobsub_demuxer_select="mpegps_demuxer"
|
yading@10
|
2044 w64_demuxer_deps="wav_demuxer"
|
yading@10
|
2045 w64_muxer_deps="wav_muxer"
|
yading@10
|
2046
|
yading@10
|
2047 # indevs / outdevs
|
yading@10
|
2048 alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp"
|
yading@10
|
2049 alsa_outdev_deps="alsa_asoundlib_h"
|
yading@10
|
2050 bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
|
yading@10
|
2051 caca_outdev_deps="libcaca"
|
yading@10
|
2052 dshow_indev_deps="IBaseFilter"
|
yading@10
|
2053 dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid"
|
yading@10
|
2054 dv1394_indev_deps="dv1394 dv_demuxer"
|
yading@10
|
2055 fbdev_indev_deps="linux_fb_h"
|
yading@10
|
2056 iec61883_indev_deps="libiec61883"
|
yading@10
|
2057 jack_indev_deps="jack_jack_h sem_timedwait"
|
yading@10
|
2058 lavfi_indev_deps="avfilter"
|
yading@10
|
2059 libcdio_indev_deps="libcdio"
|
yading@10
|
2060 libdc1394_indev_deps="libdc1394"
|
yading@10
|
2061 libv4l2_indev_deps="libv4l2"
|
yading@10
|
2062 openal_indev_deps="openal"
|
yading@10
|
2063 oss_indev_deps_any="soundcard_h sys_soundcard_h"
|
yading@10
|
2064 oss_outdev_deps_any="soundcard_h sys_soundcard_h"
|
yading@10
|
2065 pulse_indev_deps="libpulse"
|
yading@10
|
2066 sdl_outdev_deps="sdl"
|
yading@10
|
2067 sndio_indev_deps="sndio_h"
|
yading@10
|
2068 sndio_outdev_deps="sndio_h"
|
yading@10
|
2069 v4l_indev_deps="linux_videodev_h"
|
yading@10
|
2070 v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
|
yading@10
|
2071 vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
|
yading@10
|
2072 vfwcap_indev_extralibs="-lavicap32"
|
yading@10
|
2073 x11grab_indev_deps="x11grab"
|
yading@10
|
2074
|
yading@10
|
2075 # protocols
|
yading@10
|
2076 bluray_protocol_deps="libbluray"
|
yading@10
|
2077 ffrtmpcrypt_protocol_deps="!librtmp_protocol"
|
yading@10
|
2078 ffrtmpcrypt_protocol_deps_any="gcrypt nettle openssl"
|
yading@10
|
2079 ffrtmpcrypt_protocol_select="tcp_protocol"
|
yading@10
|
2080 ffrtmphttp_protocol_deps="!librtmp_protocol"
|
yading@10
|
2081 ffrtmphttp_protocol_select="http_protocol"
|
yading@10
|
2082 gopher_protocol_select="network"
|
yading@10
|
2083 httpproxy_protocol_select="tcp_protocol"
|
yading@10
|
2084 http_protocol_select="tcp_protocol"
|
yading@10
|
2085 https_protocol_select="tls_protocol"
|
yading@10
|
2086 librtmp_protocol_deps="librtmp"
|
yading@10
|
2087 librtmpe_protocol_deps="librtmp"
|
yading@10
|
2088 librtmps_protocol_deps="librtmp"
|
yading@10
|
2089 librtmpt_protocol_deps="librtmp"
|
yading@10
|
2090 librtmpte_protocol_deps="librtmp"
|
yading@10
|
2091 mmsh_protocol_select="http_protocol"
|
yading@10
|
2092 mmst_protocol_select="network"
|
yading@10
|
2093 rtmp_protocol_deps="!librtmp_protocol"
|
yading@10
|
2094 rtmp_protocol_select="tcp_protocol"
|
yading@10
|
2095 rtmpe_protocol_select="ffrtmpcrypt_protocol"
|
yading@10
|
2096 rtmps_protocol_deps="!librtmp_protocol"
|
yading@10
|
2097 rtmps_protocol_select="tls_protocol"
|
yading@10
|
2098 rtmpt_protocol_select="ffrtmphttp_protocol"
|
yading@10
|
2099 rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
|
yading@10
|
2100 rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
|
yading@10
|
2101 rtp_protocol_select="udp_protocol"
|
yading@10
|
2102 sctp_protocol_deps="struct_sctp_event_subscribe"
|
yading@10
|
2103 sctp_protocol_select="network"
|
yading@10
|
2104 srtp_protocol_select="rtp_protocol"
|
yading@10
|
2105 tcp_protocol_select="network"
|
yading@10
|
2106 tls_protocol_deps_any="openssl gnutls"
|
yading@10
|
2107 tls_protocol_select="tcp_protocol"
|
yading@10
|
2108 udp_protocol_select="network"
|
yading@10
|
2109
|
yading@10
|
2110 # filters
|
yading@10
|
2111 aconvert_filter_deps="swresample"
|
yading@10
|
2112 amovie_filter_deps="avcodec avformat"
|
yading@10
|
2113 aresample_filter_deps="swresample"
|
yading@10
|
2114 ass_filter_deps="libass"
|
yading@10
|
2115 asyncts_filter_deps="avresample"
|
yading@10
|
2116 atempo_filter_deps="avcodec rdft"
|
yading@10
|
2117 blackframe_filter_deps="gpl"
|
yading@10
|
2118 boxblur_filter_deps="gpl"
|
yading@10
|
2119 colormatrix_filter_deps="gpl"
|
yading@10
|
2120 cropdetect_filter_deps="gpl"
|
yading@10
|
2121 delogo_filter_deps="gpl"
|
yading@10
|
2122 deshake_filter_deps="avcodec"
|
yading@10
|
2123 deshake_filter_select="dsputil"
|
yading@10
|
2124 drawtext_filter_deps="libfreetype"
|
yading@10
|
2125 ebur128_filter_deps="gpl"
|
yading@10
|
2126 flite_filter_deps="libflite"
|
yading@10
|
2127 frei0r_filter_deps="frei0r dlopen"
|
yading@10
|
2128 frei0r_filter_extralibs='$ldl'
|
yading@10
|
2129 frei0r_src_filter_deps="frei0r dlopen"
|
yading@10
|
2130 frei0r_src_filter_extralibs='$ldl'
|
yading@10
|
2131 geq_filter_deps="gpl"
|
yading@10
|
2132 histeq_filter_deps="gpl"
|
yading@10
|
2133 hqdn3d_filter_deps="gpl"
|
yading@10
|
2134 hue_filter_deps="gpl"
|
yading@10
|
2135 interlace_filter_deps="gpl"
|
yading@10
|
2136 kerndeint_filter_deps="gpl"
|
yading@10
|
2137 movie_filter_deps="avcodec avformat"
|
yading@10
|
2138 mp_filter_deps="gpl avcodec swscale inline_asm"
|
yading@10
|
2139 mpdecimate_filter_deps="gpl avcodec"
|
yading@10
|
2140 mptestsrc_filter_deps="gpl"
|
yading@10
|
2141 negate_filter_deps="lut_filter"
|
yading@10
|
2142 noise_filter_deps="gpl"
|
yading@10
|
2143 resample_filter_deps="avresample"
|
yading@10
|
2144 ocv_filter_deps="libopencv"
|
yading@10
|
2145 pan_filter_deps="swresample"
|
yading@10
|
2146 pp_filter_deps="gpl postproc"
|
yading@10
|
2147 removelogo_filter_deps="avcodec avformat swscale"
|
yading@10
|
2148 scale_filter_deps="swscale"
|
yading@10
|
2149 smartblur_filter_deps="gpl swscale"
|
yading@10
|
2150 showspectrum_filter_deps="avcodec rdft"
|
yading@10
|
2151 stereo3d_filter_deps="gpl"
|
yading@10
|
2152 subtitles_filter_deps="avformat avcodec libass"
|
yading@10
|
2153 super2xsai_filter_deps="gpl"
|
yading@10
|
2154 tinterlace_filter_deps="gpl"
|
yading@10
|
2155 yadif_filter_deps="gpl"
|
yading@10
|
2156 pixfmts_super2xsai_test_deps="super2xsai_filter"
|
yading@10
|
2157 tinterlace_merge_test_deps="tinterlace_filter"
|
yading@10
|
2158 tinterlace_pad_test_deps="tinterlace_filter"
|
yading@10
|
2159
|
yading@10
|
2160 # libraries
|
yading@10
|
2161 avcodec_deps="avutil"
|
yading@10
|
2162 avdevice_deps="avutil avcodec avformat"
|
yading@10
|
2163 avfilter_deps="avutil"
|
yading@10
|
2164 avformat_deps="avutil avcodec"
|
yading@10
|
2165 avresample_deps="avutil"
|
yading@10
|
2166 postproc_deps="avutil gpl"
|
yading@10
|
2167 swscale_deps="avutil"
|
yading@10
|
2168
|
yading@10
|
2169 # programs
|
yading@10
|
2170 ffmpeg_deps="avcodec avfilter avformat swscale swresample"
|
yading@10
|
2171 ffmpeg_select="format_filter aformat_filter
|
yading@10
|
2172 setpts_filter null_filter anull_filter"
|
yading@10
|
2173 ffplay_deps="avcodec avformat swscale swresample sdl"
|
yading@10
|
2174 ffplay_select="rdft crop_filter"
|
yading@10
|
2175 ffprobe_deps="avcodec avformat"
|
yading@10
|
2176 ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
|
yading@10
|
2177 ffserver_extralibs='$ldl'
|
yading@10
|
2178
|
yading@10
|
2179 # documentation
|
yading@10
|
2180 podpages_deps="perl"
|
yading@10
|
2181 manpages_deps="perl pod2man"
|
yading@10
|
2182 htmlpages_deps="texi2html"
|
yading@10
|
2183 txtpages_deps="makeinfo"
|
yading@10
|
2184 doc_deps_any="manpages htmlpages podpages txtpages"
|
yading@10
|
2185
|
yading@10
|
2186 # default parameters
|
yading@10
|
2187
|
yading@10
|
2188 logfile="config.log"
|
yading@10
|
2189
|
yading@10
|
2190 # installation paths
|
yading@10
|
2191 prefix_default="/usr/local"
|
yading@10
|
2192 bindir_default='${prefix}/bin'
|
yading@10
|
2193 datadir_default='${prefix}/share/ffmpeg'
|
yading@10
|
2194 incdir_default='${prefix}/include'
|
yading@10
|
2195 libdir_default='${prefix}/lib'
|
yading@10
|
2196 mandir_default='${prefix}/share/man'
|
yading@10
|
2197 shlibdir_default="$libdir_default"
|
yading@10
|
2198
|
yading@10
|
2199 # toolchain
|
yading@10
|
2200 ar_default="ar"
|
yading@10
|
2201 cc_default="gcc"
|
yading@10
|
2202 cxx_default="g++"
|
yading@10
|
2203 host_cc_default="gcc"
|
yading@10
|
2204 cp_f="cp -f"
|
yading@10
|
2205 install="install"
|
yading@10
|
2206 ln_s="ln -s -f"
|
yading@10
|
2207 nm_default="nm -g"
|
yading@10
|
2208 objformat="elf"
|
yading@10
|
2209 pkg_config_default=pkg-config
|
yading@10
|
2210 ranlib="ranlib"
|
yading@10
|
2211 strip_default="strip"
|
yading@10
|
2212 yasmexe_default="yasm"
|
yading@10
|
2213
|
yading@10
|
2214 nogas=":"
|
yading@10
|
2215
|
yading@10
|
2216 # machine
|
yading@10
|
2217 arch_default=$(uname -m)
|
yading@10
|
2218 cpu="generic"
|
yading@10
|
2219
|
yading@10
|
2220 # OS
|
yading@10
|
2221 target_os_default=$(tolower $(uname -s))
|
yading@10
|
2222 host_os=$target_os_default
|
yading@10
|
2223
|
yading@10
|
2224 # configurable options
|
yading@10
|
2225 enable $PROGRAM_LIST
|
yading@10
|
2226 enable $DOCUMENT_LIST
|
yading@10
|
2227 enable $(filter_out avresample $LIBRARY_LIST)
|
yading@10
|
2228 enable stripping
|
yading@10
|
2229
|
yading@10
|
2230 enable asm
|
yading@10
|
2231 enable debug
|
yading@10
|
2232 enable doc
|
yading@10
|
2233 enable optimizations
|
yading@10
|
2234 enable runtime_cpudetect
|
yading@10
|
2235 enable safe_bitstream_reader
|
yading@10
|
2236 enable static
|
yading@10
|
2237 enable swscale_alpha
|
yading@10
|
2238
|
yading@10
|
2239 # By default, enable only those hwaccels that have no external dependencies.
|
yading@10
|
2240 enable dxva2 vdpau
|
yading@10
|
2241
|
yading@10
|
2242 # build settings
|
yading@10
|
2243 SHFLAGS='-shared -Wl,-soname,$$(@F)'
|
yading@10
|
2244 FFSERVERLDFLAGS=-Wl,-E
|
yading@10
|
2245 LIBPREF="lib"
|
yading@10
|
2246 LIBSUF=".a"
|
yading@10
|
2247 FULLNAME='$(NAME)$(BUILDSUF)'
|
yading@10
|
2248 LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
|
yading@10
|
2249 SLIBPREF="lib"
|
yading@10
|
2250 SLIBSUF=".so"
|
yading@10
|
2251 SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
|
yading@10
|
2252 SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
|
yading@10
|
2253 SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
|
yading@10
|
2254 LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
|
yading@10
|
2255 SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
|
yading@10
|
2256 SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
|
yading@10
|
2257
|
yading@10
|
2258 asflags_filter=echo
|
yading@10
|
2259 cflags_filter=echo
|
yading@10
|
2260 ldflags_filter=echo
|
yading@10
|
2261
|
yading@10
|
2262 AS_C='-c'
|
yading@10
|
2263 AS_O='-o $@'
|
yading@10
|
2264 CC_C='-c'
|
yading@10
|
2265 CC_E='-E -o $@'
|
yading@10
|
2266 CC_O='-o $@'
|
yading@10
|
2267 CXX_C='-c'
|
yading@10
|
2268 CXX_O='-o $@'
|
yading@10
|
2269 LD_O='-o $@'
|
yading@10
|
2270 LD_LIB='-l%'
|
yading@10
|
2271 LD_PATH='-L'
|
yading@10
|
2272 HOSTCC_C='-c'
|
yading@10
|
2273 HOSTCC_O='-o $@'
|
yading@10
|
2274 HOSTLD_O='-o $@'
|
yading@10
|
2275
|
yading@10
|
2276 host_cflags='-O3 -g'
|
yading@10
|
2277 host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600'
|
yading@10
|
2278 host_libs='-lm'
|
yading@10
|
2279 host_cflags_filter=echo
|
yading@10
|
2280 host_ldflags_filter=echo
|
yading@10
|
2281
|
yading@10
|
2282 target_path='$(CURDIR)'
|
yading@10
|
2283
|
yading@10
|
2284 # since the object filename is not given with the -MM flag, the compiler
|
yading@10
|
2285 # is only able to print the basename, and we must add the path ourselves
|
yading@10
|
2286 DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "/^\#.*/d" -e "s,^[[:space:]]*$(*F)\\.o,$(@D)/$(*F).o," > $(@:.o=.d)'
|
yading@10
|
2287 DEPFLAGS='-MM'
|
yading@10
|
2288
|
yading@10
|
2289 # find source path
|
yading@10
|
2290 if test -f configure; then
|
yading@10
|
2291 source_path=.
|
yading@10
|
2292 else
|
yading@10
|
2293 source_path=$(cd $(dirname "$0"); pwd)
|
yading@10
|
2294 echo "$source_path" | grep -q '[[:blank:]]' &&
|
yading@10
|
2295 die "Out of tree builds are impossible with whitespace in source path."
|
yading@10
|
2296 test -e "$source_path/config.h" &&
|
yading@10
|
2297 die "Out of tree builds are impossible with config.h in source dir."
|
yading@10
|
2298 fi
|
yading@10
|
2299
|
yading@10
|
2300 for v in "$@"; do
|
yading@10
|
2301 r=${v#*=}
|
yading@10
|
2302 l=${v%"$r"}
|
yading@10
|
2303 r=$(sh_quote "$r")
|
yading@10
|
2304 FFMPEG_CONFIGURATION="${FFMPEG_CONFIGURATION# } ${l}${r}"
|
yading@10
|
2305 done
|
yading@10
|
2306
|
yading@10
|
2307 find_things(){
|
yading@10
|
2308 thing=$1
|
yading@10
|
2309 pattern=$2
|
yading@10
|
2310 file=$source_path/$3
|
yading@10
|
2311 sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file"
|
yading@10
|
2312 }
|
yading@10
|
2313
|
yading@10
|
2314 ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c)
|
yading@10
|
2315 DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c)
|
yading@10
|
2316 HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c)
|
yading@10
|
2317 PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c)
|
yading@10
|
2318 BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c)
|
yading@10
|
2319 MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c)
|
yading@10
|
2320 DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c)
|
yading@10
|
2321 OUTDEV_LIST=$(find_things outdev OUTDEV libavdevice/alldevices.c)
|
yading@10
|
2322 INDEV_LIST=$(find_things indev _IN libavdevice/alldevices.c)
|
yading@10
|
2323 PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c)
|
yading@10
|
2324 FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c)
|
yading@10
|
2325
|
yading@10
|
2326 ALL_COMPONENTS="
|
yading@10
|
2327 $BSF_LIST
|
yading@10
|
2328 $DECODER_LIST
|
yading@10
|
2329 $DEMUXER_LIST
|
yading@10
|
2330 $ENCODER_LIST
|
yading@10
|
2331 $FILTER_LIST
|
yading@10
|
2332 $HWACCEL_LIST
|
yading@10
|
2333 $INDEV_LIST
|
yading@10
|
2334 $MUXER_LIST
|
yading@10
|
2335 $OUTDEV_LIST
|
yading@10
|
2336 $PARSER_LIST
|
yading@10
|
2337 $PROTOCOL_LIST
|
yading@10
|
2338 "
|
yading@10
|
2339
|
yading@10
|
2340 for n in $COMPONENT_LIST; do
|
yading@10
|
2341 v=$(toupper ${n%s})_LIST
|
yading@10
|
2342 eval enable \$$v
|
yading@10
|
2343 eval ${n}_if_any="\$$v"
|
yading@10
|
2344 done
|
yading@10
|
2345
|
yading@10
|
2346 enable $ARCH_EXT_LIST
|
yading@10
|
2347
|
yading@10
|
2348 die_unknown(){
|
yading@10
|
2349 echo "Unknown option \"$1\"."
|
yading@10
|
2350 echo "See $0 --help for available options."
|
yading@10
|
2351 exit 1
|
yading@10
|
2352 }
|
yading@10
|
2353
|
yading@10
|
2354 print_3_columns() {
|
yading@10
|
2355 cat | tr ' ' '\n' | sort | pr -r -3 -t
|
yading@10
|
2356 }
|
yading@10
|
2357
|
yading@10
|
2358 show_list() {
|
yading@10
|
2359 suffix=_$1
|
yading@10
|
2360 shift
|
yading@10
|
2361 echo $* | sed s/$suffix//g | print_3_columns
|
yading@10
|
2362 exit 0
|
yading@10
|
2363 }
|
yading@10
|
2364
|
yading@10
|
2365 rand_list(){
|
yading@10
|
2366 IFS=', '
|
yading@10
|
2367 set -- $*
|
yading@10
|
2368 unset IFS
|
yading@10
|
2369 for thing; do
|
yading@10
|
2370 comp=${thing%:*}
|
yading@10
|
2371 prob=${thing#$comp}
|
yading@10
|
2372 prob=${prob#:}
|
yading@10
|
2373 is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST
|
yading@10
|
2374 echo "prob ${prob:-0.5}"
|
yading@10
|
2375 printf '%s\n' $comp
|
yading@10
|
2376 done
|
yading@10
|
2377 }
|
yading@10
|
2378
|
yading@10
|
2379 do_random(){
|
yading@10
|
2380 action=$1
|
yading@10
|
2381 shift
|
yading@10
|
2382 random_seed=$(awk "BEGIN { srand($random_seed); print srand() }")
|
yading@10
|
2383 $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }")
|
yading@10
|
2384 }
|
yading@10
|
2385
|
yading@10
|
2386 for opt do
|
yading@10
|
2387 optval="${opt#*=}"
|
yading@10
|
2388 case "$opt" in
|
yading@10
|
2389 --extra-ldflags=*)
|
yading@10
|
2390 add_ldflags $optval
|
yading@10
|
2391 ;;
|
yading@10
|
2392 --extra-libs=*)
|
yading@10
|
2393 add_extralibs $optval
|
yading@10
|
2394 ;;
|
yading@10
|
2395 --disable-devices)
|
yading@10
|
2396 disable $INDEV_LIST $OUTDEV_LIST
|
yading@10
|
2397 ;;
|
yading@10
|
2398 --enable-debug=*)
|
yading@10
|
2399 debuglevel="$optval"
|
yading@10
|
2400 ;;
|
yading@10
|
2401 --disable-programs)
|
yading@10
|
2402 disable $PROGRAM_LIST
|
yading@10
|
2403 ;;
|
yading@10
|
2404 --disable-everything)
|
yading@10
|
2405 map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
yading@10
|
2406 ;;
|
yading@10
|
2407 --disable-all)
|
yading@10
|
2408 map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
yading@10
|
2409 disable $LIBRARY_LIST $PROGRAM_LIST doc
|
yading@10
|
2410 ;;
|
yading@10
|
2411 --enable-random|--disable-random)
|
yading@10
|
2412 action=${opt%%-random}
|
yading@10
|
2413 do_random ${action#--} $COMPONENT_LIST
|
yading@10
|
2414 ;;
|
yading@10
|
2415 --enable-random=*|--disable-random=*)
|
yading@10
|
2416 action=${opt%%-random=*}
|
yading@10
|
2417 do_random ${action#--} $optval
|
yading@10
|
2418 ;;
|
yading@10
|
2419 --enable-*=*|--disable-*=*)
|
yading@10
|
2420 eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
|
yading@10
|
2421 is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
|
yading@10
|
2422 eval list=\$$(toupper $thing)_LIST
|
yading@10
|
2423 name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
|
yading@10
|
2424 list=$(filter "$name" $list)
|
yading@10
|
2425 [ "$list" = "" ] && warn "Option $opt did not match anything"
|
yading@10
|
2426 $action $list
|
yading@10
|
2427 ;;
|
yading@10
|
2428 --enable-?*|--disable-?*)
|
yading@10
|
2429 eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
|
yading@10
|
2430 if is_in $option $COMPONENT_LIST; then
|
yading@10
|
2431 test $action = disable && action=unset
|
yading@10
|
2432 eval $action \$$(toupper ${option%s})_LIST
|
yading@10
|
2433 elif is_in $option $CMDLINE_SELECT; then
|
yading@10
|
2434 $action $option
|
yading@10
|
2435 else
|
yading@10
|
2436 die_unknown $opt
|
yading@10
|
2437 fi
|
yading@10
|
2438 ;;
|
yading@10
|
2439 --list-*)
|
yading@10
|
2440 NAME="${opt#--list-}"
|
yading@10
|
2441 is_in $NAME $COMPONENT_LIST || die_unknown $opt
|
yading@10
|
2442 NAME=${NAME%s}
|
yading@10
|
2443 eval show_list $NAME \$$(toupper $NAME)_LIST
|
yading@10
|
2444 ;;
|
yading@10
|
2445 --help|-h) show_help
|
yading@10
|
2446 ;;
|
yading@10
|
2447 --fatal-warnings) enable fatal_warnings
|
yading@10
|
2448 ;;
|
yading@10
|
2449 *)
|
yading@10
|
2450 optname="${opt%%=*}"
|
yading@10
|
2451 optname="${optname#--}"
|
yading@10
|
2452 optname=$(echo "$optname" | sed 's/-/_/g')
|
yading@10
|
2453 if is_in $optname $CMDLINE_SET; then
|
yading@10
|
2454 eval $optname='$optval'
|
yading@10
|
2455 elif is_in $optname $CMDLINE_APPEND; then
|
yading@10
|
2456 append $optname "$optval"
|
yading@10
|
2457 else
|
yading@10
|
2458 die_unknown $opt
|
yading@10
|
2459 fi
|
yading@10
|
2460 ;;
|
yading@10
|
2461 esac
|
yading@10
|
2462 done
|
yading@10
|
2463
|
yading@10
|
2464 disabled logging && logfile=/dev/null
|
yading@10
|
2465
|
yading@10
|
2466 echo "# $0 $FFMPEG_CONFIGURATION" > $logfile
|
yading@10
|
2467 set >> $logfile
|
yading@10
|
2468
|
yading@10
|
2469 test -n "$cross_prefix" && enable cross_compile
|
yading@10
|
2470
|
yading@10
|
2471 if enabled cross_compile; then
|
yading@10
|
2472 test -n "$arch" && test -n "$target_os" ||
|
yading@10
|
2473 die "Must specify target arch and OS when cross-compiling"
|
yading@10
|
2474 fi
|
yading@10
|
2475
|
yading@10
|
2476 ar_default="${cross_prefix}${ar_default}"
|
yading@10
|
2477 cc_default="${cross_prefix}${cc_default}"
|
yading@10
|
2478 cxx_default="${cross_prefix}${cxx_default}"
|
yading@10
|
2479 nm_default="${cross_prefix}${nm_default}"
|
yading@10
|
2480 pkg_config_default="${cross_prefix}${pkg_config_default}"
|
yading@10
|
2481 ranlib="${cross_prefix}${ranlib}"
|
yading@10
|
2482 strip_default="${cross_prefix}${strip_default}"
|
yading@10
|
2483
|
yading@10
|
2484 sysinclude_default="${sysroot}/usr/include"
|
yading@10
|
2485
|
yading@10
|
2486 case "$toolchain" in
|
yading@10
|
2487 clang-asan)
|
yading@10
|
2488 cc_default="clang"
|
yading@10
|
2489 add_cflags -fsanitize=address
|
yading@10
|
2490 add_ldflags -fsanitize=address
|
yading@10
|
2491 ;;
|
yading@10
|
2492 clang-tsan)
|
yading@10
|
2493 cc_default="clang"
|
yading@10
|
2494 add_cflags -fsanitize=thread -pie
|
yading@10
|
2495 add_ldflags -fsanitize=thread -pie
|
yading@10
|
2496 ;;
|
yading@10
|
2497 msvc)
|
yading@10
|
2498 cc_default="c99wrap cl"
|
yading@10
|
2499 ld_default="c99wrap link"
|
yading@10
|
2500 nm_default="dumpbin -symbols"
|
yading@10
|
2501 ar_default="lib"
|
yading@10
|
2502 target_os_default="win32"
|
yading@10
|
2503 ;;
|
yading@10
|
2504 gcov)
|
yading@10
|
2505 add_cflags -fprofile-arcs -ftest-coverage
|
yading@10
|
2506 add_ldflags -fprofile-arcs -ftest-coverage
|
yading@10
|
2507 ;;
|
yading@10
|
2508 ?*)
|
yading@10
|
2509 die "Unknown toolchain $toolchain"
|
yading@10
|
2510 ;;
|
yading@10
|
2511 esac
|
yading@10
|
2512
|
yading@10
|
2513 set_default arch cc cxx pkg_config strip sysinclude target_os yasmexe
|
yading@10
|
2514 enabled cross_compile || host_cc_default=$cc
|
yading@10
|
2515 set_default host_cc
|
yading@10
|
2516
|
yading@10
|
2517 if ! $pkg_config --version >/dev/null 2>&1; then
|
yading@10
|
2518 warn "$pkg_config not found, library detection may fail."
|
yading@10
|
2519 pkg_config=false
|
yading@10
|
2520 fi
|
yading@10
|
2521
|
yading@10
|
2522 exesuf() {
|
yading@10
|
2523 case $1 in
|
yading@10
|
2524 mingw32*|win32|win64|cygwin*|*-dos|freedos|opendos|os/2*|symbian) echo .exe ;;
|
yading@10
|
2525 esac
|
yading@10
|
2526 }
|
yading@10
|
2527
|
yading@10
|
2528 EXESUF=$(exesuf $target_os)
|
yading@10
|
2529 HOSTEXESUF=$(exesuf $host_os)
|
yading@10
|
2530
|
yading@10
|
2531 # set temporary file name
|
yading@10
|
2532 : ${TMPDIR:=$TEMPDIR}
|
yading@10
|
2533 : ${TMPDIR:=$TMP}
|
yading@10
|
2534 : ${TMPDIR:=/tmp}
|
yading@10
|
2535
|
yading@10
|
2536 if ! check_cmd mktemp -u XXXXXX; then
|
yading@10
|
2537 # simple replacement for missing mktemp
|
yading@10
|
2538 # NOT SAFE FOR GENERAL USE
|
yading@10
|
2539 mktemp(){
|
yading@10
|
2540 echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$"
|
yading@10
|
2541 }
|
yading@10
|
2542 fi
|
yading@10
|
2543
|
yading@10
|
2544 tmpfile(){
|
yading@10
|
2545 tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 &&
|
yading@10
|
2546 (set -C; exec > $tmp) 2>/dev/null ||
|
yading@10
|
2547 die "Unable to create temporary file in $TMPDIR."
|
yading@10
|
2548 append TMPFILES $tmp
|
yading@10
|
2549 eval $1=$tmp
|
yading@10
|
2550 }
|
yading@10
|
2551
|
yading@10
|
2552 trap 'rm -f -- $TMPFILES' EXIT
|
yading@10
|
2553
|
yading@10
|
2554 tmpfile TMPASM .asm
|
yading@10
|
2555 tmpfile TMPC .c
|
yading@10
|
2556 tmpfile TMPCPP .cpp
|
yading@10
|
2557 tmpfile TMPE $EXESUF
|
yading@10
|
2558 tmpfile TMPH .h
|
yading@10
|
2559 tmpfile TMPO .o
|
yading@10
|
2560 tmpfile TMPS .S
|
yading@10
|
2561 tmpfile TMPSH .sh
|
yading@10
|
2562 tmpfile TMPV .ver
|
yading@10
|
2563
|
yading@10
|
2564 unset -f mktemp
|
yading@10
|
2565
|
yading@10
|
2566 chmod +x $TMPE
|
yading@10
|
2567
|
yading@10
|
2568 # make sure we can execute files in $TMPDIR
|
yading@10
|
2569 cat > $TMPSH 2>> $logfile <<EOF
|
yading@10
|
2570 #! /bin/sh
|
yading@10
|
2571 EOF
|
yading@10
|
2572 chmod +x $TMPSH >> $logfile 2>&1
|
yading@10
|
2573 if ! $TMPSH >> $logfile 2>&1; then
|
yading@10
|
2574 cat <<EOF
|
yading@10
|
2575 Unable to create and execute files in $TMPDIR. Set the TMPDIR environment
|
yading@10
|
2576 variable to another directory and make sure that it is not mounted noexec.
|
yading@10
|
2577 EOF
|
yading@10
|
2578 die "Sanity test failed."
|
yading@10
|
2579 fi
|
yading@10
|
2580
|
yading@10
|
2581 ccc_flags(){
|
yading@10
|
2582 for flag; do
|
yading@10
|
2583 case $flag in
|
yading@10
|
2584 -std=c99) echo -c99 ;;
|
yading@10
|
2585 -mcpu=*) echo -arch ${flag#*=} ;;
|
yading@10
|
2586 -mieee) echo -ieee ;;
|
yading@10
|
2587 -O*|-fast) echo $flag ;;
|
yading@10
|
2588 -fno-math-errno) echo -assume nomath_errno ;;
|
yading@10
|
2589 -g) echo -g3 ;;
|
yading@10
|
2590 -Wall) echo -msg_enable level2 ;;
|
yading@10
|
2591 -Wno-pointer-sign) echo -msg_disable ptrmismatch1 ;;
|
yading@10
|
2592 -Wl,*) echo $flag ;;
|
yading@10
|
2593 -f*|-W*) ;;
|
yading@10
|
2594 *) echo $flag ;;
|
yading@10
|
2595 esac
|
yading@10
|
2596 done
|
yading@10
|
2597 }
|
yading@10
|
2598
|
yading@10
|
2599 msvc_flags(){
|
yading@10
|
2600 for flag; do
|
yading@10
|
2601 case $flag in
|
yading@10
|
2602 -fomit-frame-pointer) echo -Oy ;;
|
yading@10
|
2603 -g) echo -Z7 ;;
|
yading@10
|
2604 -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
|
yading@10
|
2605 -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
|
yading@10
|
2606 -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
|
yading@10
|
2607 -wd4554 \
|
yading@10
|
2608 -wd4996 -wd4273 ;;
|
yading@10
|
2609 -std=c99) ;;
|
yading@10
|
2610 -fno-math-errno) ;;
|
yading@10
|
2611 -fno-common) ;;
|
yading@10
|
2612 -fno-signed-zeros) ;;
|
yading@10
|
2613 -fPIC) ;;
|
yading@10
|
2614 -lz) echo zlib.lib ;;
|
yading@10
|
2615 -lavifil32) echo vfw32.lib ;;
|
yading@10
|
2616 -lavicap32) echo vfw32.lib user32.lib ;;
|
yading@10
|
2617 -l*) echo ${flag#-l}.lib ;;
|
yading@10
|
2618 *) echo $flag ;;
|
yading@10
|
2619 esac
|
yading@10
|
2620 done
|
yading@10
|
2621 }
|
yading@10
|
2622
|
yading@10
|
2623 pgi_flags(){
|
yading@10
|
2624 for flag; do
|
yading@10
|
2625 case $flag in
|
yading@10
|
2626 -flto) echo -Mipa=fast,libopt,libinline,vestigial ;;
|
yading@10
|
2627 -fomit-frame-pointer) echo -Mnoframe ;;
|
yading@10
|
2628 -g) echo -gopt ;;
|
yading@10
|
2629 *) echo $flag ;;
|
yading@10
|
2630 esac
|
yading@10
|
2631 done
|
yading@10
|
2632 }
|
yading@10
|
2633
|
yading@10
|
2634 suncc_flags(){
|
yading@10
|
2635 for flag; do
|
yading@10
|
2636 case $flag in
|
yading@10
|
2637 -march=*|-mcpu=*)
|
yading@10
|
2638 case "${flag#*=}" in
|
yading@10
|
2639 native) echo -xtarget=native ;;
|
yading@10
|
2640 v9|niagara) echo -xarch=sparc ;;
|
yading@10
|
2641 ultrasparc) echo -xarch=sparcvis ;;
|
yading@10
|
2642 ultrasparc3|niagara2) echo -xarch=sparcvis2 ;;
|
yading@10
|
2643 i586|pentium) echo -xchip=pentium ;;
|
yading@10
|
2644 i686|pentiumpro|pentium2) echo -xtarget=pentium_pro ;;
|
yading@10
|
2645 pentium3*|c3-2) echo -xtarget=pentium3 ;;
|
yading@10
|
2646 pentium-m) echo -xarch=sse2 -xchip=pentium3 ;;
|
yading@10
|
2647 pentium4*) echo -xtarget=pentium4 ;;
|
yading@10
|
2648 prescott|nocona) echo -xarch=sse3 -xchip=pentium4 ;;
|
yading@10
|
2649 *-sse3) echo -xarch=sse3 ;;
|
yading@10
|
2650 core2) echo -xarch=ssse3 -xchip=core2 ;;
|
yading@10
|
2651 corei7) echo -xarch=sse4_2 -xchip=nehalem ;;
|
yading@10
|
2652 corei7-avx) echo -xarch=avx -xchip=sandybridge ;;
|
yading@10
|
2653 amdfam10|barcelona) echo -xtarget=barcelona ;;
|
yading@10
|
2654 bdver*) echo -xarch=avx ;;
|
yading@10
|
2655 athlon-4|athlon-[mx]p) echo -xarch=ssea ;;
|
yading@10
|
2656 k8|opteron|athlon64|athlon-fx)
|
yading@10
|
2657 echo -xarch=sse2a ;;
|
yading@10
|
2658 athlon*) echo -xarch=pentium_proa ;;
|
yading@10
|
2659 esac
|
yading@10
|
2660 ;;
|
yading@10
|
2661 -std=c99) echo -xc99 ;;
|
yading@10
|
2662 -fomit-frame-pointer) echo -xregs=frameptr ;;
|
yading@10
|
2663 -fPIC) echo -KPIC -xcode=pic32 ;;
|
yading@10
|
2664 -W*,*) echo $flag ;;
|
yading@10
|
2665 -f*-*|-W*|-mimpure-text) ;;
|
yading@10
|
2666 -shared) echo -G ;;
|
yading@10
|
2667 *) echo $flag ;;
|
yading@10
|
2668 esac
|
yading@10
|
2669 done
|
yading@10
|
2670 }
|
yading@10
|
2671
|
yading@10
|
2672 tms470_flags(){
|
yading@10
|
2673 for flag; do
|
yading@10
|
2674 case $flag in
|
yading@10
|
2675 -march=*|-mcpu=*)
|
yading@10
|
2676 case "${flag#*=}" in
|
yading@10
|
2677 armv7-a|cortex-a*) echo -mv=7a8 ;;
|
yading@10
|
2678 armv7-r|cortex-r*) echo -mv=7r4 ;;
|
yading@10
|
2679 armv7-m|cortex-m*) echo -mv=7m3 ;;
|
yading@10
|
2680 armv6*|arm11*) echo -mv=6 ;;
|
yading@10
|
2681 armv5*e|arm[79]*e*|arm9[24]6*|arm96*|arm102[26])
|
yading@10
|
2682 echo -mv=5e ;;
|
yading@10
|
2683 armv4*|arm7*|arm9[24]*) echo -mv=4 ;;
|
yading@10
|
2684 esac
|
yading@10
|
2685 ;;
|
yading@10
|
2686 -mfpu=neon) echo --float_support=vfpv3 --neon ;;
|
yading@10
|
2687 -mfpu=vfp) echo --float_support=vfpv2 ;;
|
yading@10
|
2688 -mfpu=vfpv3) echo --float_support=vfpv3 ;;
|
yading@10
|
2689 -mfpu=vfpv3-d16) echo --float_support=vfpv3d16 ;;
|
yading@10
|
2690 -msoft-float) echo --float_support=vfplib ;;
|
yading@10
|
2691 -O[0-3]|-mf=*) echo $flag ;;
|
yading@10
|
2692 -g) echo -g -mn ;;
|
yading@10
|
2693 -pds=*) echo $flag ;;
|
yading@10
|
2694 -D*|-I*) echo $flag ;;
|
yading@10
|
2695 --gcc|--abi=*) echo $flag ;;
|
yading@10
|
2696 -me) echo $flag ;;
|
yading@10
|
2697 esac
|
yading@10
|
2698 done
|
yading@10
|
2699 }
|
yading@10
|
2700
|
yading@10
|
2701 probe_cc(){
|
yading@10
|
2702 pfx=$1
|
yading@10
|
2703 _cc=$2
|
yading@10
|
2704
|
yading@10
|
2705 unset _type _ident _cc_c _cc_e _cc_o _flags _cflags
|
yading@10
|
2706 unset _ld_o _ldflags _ld_lib _ld_path
|
yading@10
|
2707 unset _depflags _DEPCMD _DEPFLAGS
|
yading@10
|
2708 _flags_filter=echo
|
yading@10
|
2709
|
yading@10
|
2710 if $_cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
|
yading@10
|
2711 _type=llvm_gcc
|
yading@10
|
2712 gcc_extra_ver=$(expr "$($_cc --version | head -n1)" : '.*\((.*)\)')
|
yading@10
|
2713 _ident="llvm-gcc $($_cc -dumpversion) $gcc_extra_ver"
|
yading@10
|
2714 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
|
yading@10
|
2715 _cflags_speed='-O3'
|
yading@10
|
2716 _cflags_size='-Os'
|
yading@10
|
2717 elif $_cc -v 2>&1 | grep -qi ^gcc; then
|
yading@10
|
2718 _type=gcc
|
yading@10
|
2719 gcc_version=$($_cc --version | head -n1)
|
yading@10
|
2720 gcc_basever=$($_cc -dumpversion)
|
yading@10
|
2721 gcc_pkg_ver=$(expr "$gcc_version" : '[^ ]* \(([^)]*)\)')
|
yading@10
|
2722 gcc_ext_ver=$(expr "$gcc_version" : ".*$gcc_pkg_ver $gcc_basever \\(.*\\)")
|
yading@10
|
2723 _ident=$(cleanws "gcc $gcc_basever $gcc_pkg_ver $gcc_ext_ver")
|
yading@10
|
2724 if ! $_cc -dumpversion | grep -q '^2\.'; then
|
yading@10
|
2725 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
|
yading@10
|
2726 fi
|
yading@10
|
2727 _cflags_speed='-O3'
|
yading@10
|
2728 _cflags_size='-Os'
|
yading@10
|
2729 elif $_cc --version 2>/dev/null | grep -q ^icc; then
|
yading@10
|
2730 _type=icc
|
yading@10
|
2731 _ident=$($_cc --version | head -n1)
|
yading@10
|
2732 _depflags='-MMD'
|
yading@10
|
2733 _cflags_speed='-O3'
|
yading@10
|
2734 _cflags_size='-Os'
|
yading@10
|
2735 _cflags_noopt='-O1'
|
yading@10
|
2736 elif $_cc -v 2>&1 | grep -q xlc; then
|
yading@10
|
2737 _type=xlc
|
yading@10
|
2738 _ident=$($_cc -qversion 2>/dev/null | head -n1)
|
yading@10
|
2739 _cflags_speed='-O5'
|
yading@10
|
2740 _cflags_size='-O5 -qcompact'
|
yading@10
|
2741 elif $_cc -V 2>/dev/null | grep -q Compaq; then
|
yading@10
|
2742 _type=ccc
|
yading@10
|
2743 _ident=$($_cc -V | head -n1 | cut -d' ' -f1-3)
|
yading@10
|
2744 _DEPFLAGS='-M'
|
yading@10
|
2745 _cflags_speed='-fast'
|
yading@10
|
2746 _cflags_size='-O1'
|
yading@10
|
2747 _flags_filter=ccc_flags
|
yading@10
|
2748 elif $_cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then
|
yading@10
|
2749 test -d "$sysroot" || die "No valid sysroot specified."
|
yading@10
|
2750 _type=armcc
|
yading@10
|
2751 _ident=$($_cc --vsn | head -n1)
|
yading@10
|
2752 armcc_conf="$PWD/armcc.conf"
|
yading@10
|
2753 $_cc --arm_linux_configure \
|
yading@10
|
2754 --arm_linux_config_file="$armcc_conf" \
|
yading@10
|
2755 --configure_sysroot="$sysroot" \
|
yading@10
|
2756 --configure_cpp_headers="$sysinclude" >>$logfile 2>&1 ||
|
yading@10
|
2757 die "Error creating armcc configuration file."
|
yading@10
|
2758 $_cc --vsn | grep -q RVCT && armcc_opt=rvct || armcc_opt=armcc
|
yading@10
|
2759 _flags="--arm_linux_config_file=$armcc_conf --translate_gcc"
|
yading@10
|
2760 as_default="${cross_prefix}gcc"
|
yading@10
|
2761 _depflags='-MMD'
|
yading@10
|
2762 _cflags_speed='-O3'
|
yading@10
|
2763 _cflags_size='-Os'
|
yading@10
|
2764 elif $_cc -version 2>/dev/null | grep -Eq 'TMS470|TI ARM'; then
|
yading@10
|
2765 _type=tms470
|
yading@10
|
2766 _ident=$($_cc -version | head -n1 | tr -s ' ')
|
yading@10
|
2767 _flags='--gcc --abi=eabi -me'
|
yading@10
|
2768 _cc_e='-ppl -fe=$@'
|
yading@10
|
2769 _cc_o='-fe=$@'
|
yading@10
|
2770 _depflags='-ppa -ppd=$(@:.o=.d)'
|
yading@10
|
2771 _cflags_speed='-O3 -mf=5'
|
yading@10
|
2772 _cflags_size='-O3 -mf=2'
|
yading@10
|
2773 _flags_filter=tms470_flags
|
yading@10
|
2774 elif $_cc -v 2>&1 | grep -q clang; then
|
yading@10
|
2775 _type=clang
|
yading@10
|
2776 _ident=$($_cc --version | head -n1)
|
yading@10
|
2777 _depflags='-MMD'
|
yading@10
|
2778 _cflags_speed='-O3'
|
yading@10
|
2779 _cflags_size='-Os'
|
yading@10
|
2780 elif $_cc -V 2>&1 | grep -q Sun; then
|
yading@10
|
2781 _type=suncc
|
yading@10
|
2782 _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-)
|
yading@10
|
2783 _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)'
|
yading@10
|
2784 _DEPFLAGS='-xM1 -xc99'
|
yading@10
|
2785 _ldflags='-std=c99'
|
yading@10
|
2786 _cflags_speed='-O5'
|
yading@10
|
2787 _cflags_size='-O5 -xspace'
|
yading@10
|
2788 _flags_filter=suncc_flags
|
yading@10
|
2789 elif $_cc -v 2>&1 | grep -q 'PathScale\|Path64'; then
|
yading@10
|
2790 _type=pathscale
|
yading@10
|
2791 _ident=$($_cc -v 2>&1 | head -n1 | tr -d :)
|
yading@10
|
2792 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
|
yading@10
|
2793 _cflags_speed='-O2'
|
yading@10
|
2794 _cflags_size='-Os'
|
yading@10
|
2795 _flags_filter='filter_out -Wdisabled-optimization'
|
yading@10
|
2796 elif $_cc -v 2>&1 | grep -q Open64; then
|
yading@10
|
2797 _type=open64
|
yading@10
|
2798 _ident=$($_cc -v 2>&1 | head -n1 | tr -d :)
|
yading@10
|
2799 _depflags='-MMD -MF $(@:.o=.d) -MT $@'
|
yading@10
|
2800 _cflags_speed='-O2'
|
yading@10
|
2801 _cflags_size='-Os'
|
yading@10
|
2802 _flags_filter='filter_out -Wdisabled-optimization|-Wtype-limits|-fno-signed-zeros'
|
yading@10
|
2803 elif $_cc -V 2>&1 | grep -q Portland; then
|
yading@10
|
2804 _type=pgi
|
yading@10
|
2805 _ident="PGI $($_cc -V 2>&1 | awk '/^pgcc/ { print $2; exit }')"
|
yading@10
|
2806 opt_common='-alias=ansi -Mdse -Mlre -Mpre'
|
yading@10
|
2807 _cflags_speed="-O3 -Mautoinline -Munroll=c:4 $opt_common"
|
yading@10
|
2808 _cflags_size="-O2 -Munroll=c:1 $opt_common"
|
yading@10
|
2809 _cflags_noopt="-O"
|
yading@10
|
2810 _flags_filter=pgi_flags
|
yading@10
|
2811 elif $_cc 2>&1 | grep -q Microsoft; then
|
yading@10
|
2812 _type=msvc
|
yading@10
|
2813 _ident=$($cc 2>&1 | head -n1)
|
yading@10
|
2814 _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'
|
yading@10
|
2815 _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
|
yading@10
|
2816 _cflags_speed="-O2"
|
yading@10
|
2817 _cflags_size="-O1"
|
yading@10
|
2818 # Nonstandard output options, to avoid msys path conversion issues, relies on wrapper to remap it
|
yading@10
|
2819 if $_cc 2>&1 | grep -q Linker; then
|
yading@10
|
2820 _ld_o='-out $@'
|
yading@10
|
2821 else
|
yading@10
|
2822 _ld_o='-Fe$@'
|
yading@10
|
2823 fi
|
yading@10
|
2824 _cc_o='-Fo $@'
|
yading@10
|
2825 _cc_e='-P -Fi $@'
|
yading@10
|
2826 _flags_filter=msvc_flags
|
yading@10
|
2827 _ld_lib='lib%.a'
|
yading@10
|
2828 _ld_path='-libpath:'
|
yading@10
|
2829 _flags='-nologo'
|
yading@10
|
2830 _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64'
|
yading@10
|
2831 if [ $pfx = hostcc ]; then
|
yading@10
|
2832 append _cflags -Dsnprintf=_snprintf
|
yading@10
|
2833 fi
|
yading@10
|
2834 disable stripping
|
yading@10
|
2835 fi
|
yading@10
|
2836
|
yading@10
|
2837 eval ${pfx}_type=\$_type
|
yading@10
|
2838 eval ${pfx}_ident=\$_ident
|
yading@10
|
2839 }
|
yading@10
|
2840
|
yading@10
|
2841 set_ccvars(){
|
yading@10
|
2842 eval ${1}_C=\${_cc_c-\${${1}_C}}
|
yading@10
|
2843 eval ${1}_E=\${_cc_e-\${${1}_E}}
|
yading@10
|
2844 eval ${1}_O=\${_cc_o-\${${1}_O}}
|
yading@10
|
2845
|
yading@10
|
2846 if [ -n "$_depflags" ]; then
|
yading@10
|
2847 eval ${1}_DEPFLAGS=\$_depflags
|
yading@10
|
2848 else
|
yading@10
|
2849 eval ${1}DEP=\${_DEPCMD:-\$DEPCMD}
|
yading@10
|
2850 eval ${1}DEP_FLAGS=\${_DEPFLAGS:-\$DEPFLAGS}
|
yading@10
|
2851 eval DEP${1}FLAGS=\$_flags
|
yading@10
|
2852 fi
|
yading@10
|
2853 }
|
yading@10
|
2854
|
yading@10
|
2855 probe_cc cc "$cc"
|
yading@10
|
2856 cflags_filter=$_flags_filter
|
yading@10
|
2857 cflags_speed=$_cflags_speed
|
yading@10
|
2858 cflags_size=$_cflags_size
|
yading@10
|
2859 cflags_noopt=$_cflags_noopt
|
yading@10
|
2860 add_cflags $_flags $_cflags
|
yading@10
|
2861 cc_ldflags=$_ldflags
|
yading@10
|
2862 set_ccvars CC
|
yading@10
|
2863
|
yading@10
|
2864 probe_cc hostcc "$host_cc"
|
yading@10
|
2865 host_cflags_filter=$_flags_filter
|
yading@10
|
2866 add_host_cflags $_flags $_cflags
|
yading@10
|
2867 set_ccvars HOSTCC
|
yading@10
|
2868
|
yading@10
|
2869 test -n "$cc_type" && enable $cc_type ||
|
yading@10
|
2870 warn "Unknown C compiler $cc, unable to select optimal CFLAGS"
|
yading@10
|
2871
|
yading@10
|
2872 : ${as_default:=$cc}
|
yading@10
|
2873 : ${dep_cc_default:=$cc}
|
yading@10
|
2874 : ${ld_default:=$cc}
|
yading@10
|
2875 : ${host_ld_default:=$host_cc}
|
yading@10
|
2876 set_default ar as dep_cc ld host_ld
|
yading@10
|
2877
|
yading@10
|
2878 probe_cc as "$as"
|
yading@10
|
2879 asflags_filter=$_flags_filter
|
yading@10
|
2880 add_asflags $_flags $_cflags
|
yading@10
|
2881 set_ccvars AS
|
yading@10
|
2882
|
yading@10
|
2883 probe_cc ld "$ld"
|
yading@10
|
2884 ldflags_filter=$_flags_filter
|
yading@10
|
2885 add_ldflags $_flags $_ldflags
|
yading@10
|
2886 test "$cc_type" != "$ld_type" && add_ldflags $cc_ldflags
|
yading@10
|
2887 LD_O=${_ld_o-$LD_O}
|
yading@10
|
2888 LD_LIB=${_ld_lib-$LD_LIB}
|
yading@10
|
2889 LD_PATH=${_ld_path-$LD_PATH}
|
yading@10
|
2890
|
yading@10
|
2891 probe_cc hostld "$host_ld"
|
yading@10
|
2892 host_ldflags_filter=$_flags_filter
|
yading@10
|
2893 add_host_ldflags $_flags $_ldflags
|
yading@10
|
2894 HOSTLD_O=${_ld_o-$HOSTLD_O}
|
yading@10
|
2895
|
yading@10
|
2896 if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then
|
yading@10
|
2897 probe_cc depcc "$dep_cc"
|
yading@10
|
2898 CCDEP=${_DEPCMD:-$DEPCMD}
|
yading@10
|
2899 CCDEP_FLAGS=${_DEPFLAGS:=$DEPFLAGS}
|
yading@10
|
2900 DEPCCFLAGS=$_flags
|
yading@10
|
2901 fi
|
yading@10
|
2902
|
yading@10
|
2903 if $ar 2>&1 | grep -q Microsoft; then
|
yading@10
|
2904 arflags="-nologo"
|
yading@10
|
2905 ar_o='-out:$@'
|
yading@10
|
2906 elif $ar 2>&1 | grep -q 'Texas Instruments'; then
|
yading@10
|
2907 arflags="rq"
|
yading@10
|
2908 ar_o='$@'
|
yading@10
|
2909 else
|
yading@10
|
2910 arflags="rc"
|
yading@10
|
2911 ar_o='$@'
|
yading@10
|
2912 fi
|
yading@10
|
2913
|
yading@10
|
2914 add_cflags $extra_cflags
|
yading@10
|
2915 add_cxxflags $extra_cxxflags
|
yading@10
|
2916 add_asflags $extra_cflags
|
yading@10
|
2917
|
yading@10
|
2918 if test -n "$sysroot"; then
|
yading@10
|
2919 case "$cc_type" in
|
yading@10
|
2920 gcc|llvm_gcc|clang)
|
yading@10
|
2921 add_cppflags --sysroot="$sysroot"
|
yading@10
|
2922 add_ldflags --sysroot="$sysroot"
|
yading@10
|
2923 ;;
|
yading@10
|
2924 tms470)
|
yading@10
|
2925 add_cppflags -I"$sysinclude"
|
yading@10
|
2926 add_ldflags --sysroot="$sysroot"
|
yading@10
|
2927 ;;
|
yading@10
|
2928 esac
|
yading@10
|
2929 fi
|
yading@10
|
2930
|
yading@10
|
2931 if test "$cpu" = host; then
|
yading@10
|
2932 enabled cross_compile && die "--cpu=host makes no sense when cross-compiling."
|
yading@10
|
2933
|
yading@10
|
2934 case "$cc_type" in
|
yading@10
|
2935 gcc|llvm_gcc)
|
yading@10
|
2936 check_native(){
|
yading@10
|
2937 $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return
|
yading@10
|
2938 sed -n "/cc1.*$1=/{
|
yading@10
|
2939 s/.*$1=\\([^ ]*\\).*/\\1/
|
yading@10
|
2940 p
|
yading@10
|
2941 q
|
yading@10
|
2942 }" $TMPE
|
yading@10
|
2943 }
|
yading@10
|
2944 cpu=$(check_native -march || check_native -mcpu)
|
yading@10
|
2945 ;;
|
yading@10
|
2946 esac
|
yading@10
|
2947
|
yading@10
|
2948 test "${cpu:-host}" = host && die "--cpu=host not supported with compiler $cc"
|
yading@10
|
2949 fi
|
yading@10
|
2950
|
yading@10
|
2951 # Deal with common $arch aliases
|
yading@10
|
2952 case "$arch" in
|
yading@10
|
2953 aarch64|arm64)
|
yading@10
|
2954 arch="aarch64"
|
yading@10
|
2955 ;;
|
yading@10
|
2956 arm*|iPad*)
|
yading@10
|
2957 arch="arm"
|
yading@10
|
2958 ;;
|
yading@10
|
2959 mips*|IP*)
|
yading@10
|
2960 arch="mips"
|
yading@10
|
2961 ;;
|
yading@10
|
2962 parisc*|hppa*)
|
yading@10
|
2963 arch="parisc"
|
yading@10
|
2964 ;;
|
yading@10
|
2965 "Power Macintosh"|ppc*|powerpc*)
|
yading@10
|
2966 arch="ppc"
|
yading@10
|
2967 ;;
|
yading@10
|
2968 s390|s390x)
|
yading@10
|
2969 arch="s390"
|
yading@10
|
2970 ;;
|
yading@10
|
2971 sh4|sh)
|
yading@10
|
2972 arch="sh4"
|
yading@10
|
2973 ;;
|
yading@10
|
2974 sun4u|sparc*)
|
yading@10
|
2975 arch="sparc"
|
yading@10
|
2976 ;;
|
yading@10
|
2977 tilegx|tile-gx)
|
yading@10
|
2978 arch="tilegx"
|
yading@10
|
2979 ;;
|
yading@10
|
2980 i[3-6]86|i86pc|BePC|x86pc|x86_64|x86_32|amd64)
|
yading@10
|
2981 arch="x86"
|
yading@10
|
2982 ;;
|
yading@10
|
2983 esac
|
yading@10
|
2984
|
yading@10
|
2985 is_in $arch $ARCH_LIST || warn "unknown architecture $arch"
|
yading@10
|
2986 enable $arch
|
yading@10
|
2987
|
yading@10
|
2988 # Add processor-specific flags
|
yading@10
|
2989 if enabled aarch64; then
|
yading@10
|
2990
|
yading@10
|
2991 case $cpu in
|
yading@10
|
2992 armv*)
|
yading@10
|
2993 cpuflags="-march=$cpu"
|
yading@10
|
2994 ;;
|
yading@10
|
2995 *)
|
yading@10
|
2996 cpuflags="-mcpu=$cpu"
|
yading@10
|
2997 ;;
|
yading@10
|
2998 esac
|
yading@10
|
2999
|
yading@10
|
3000 elif enabled alpha; then
|
yading@10
|
3001
|
yading@10
|
3002 cpuflags="-mcpu=$cpu"
|
yading@10
|
3003
|
yading@10
|
3004 elif enabled arm; then
|
yading@10
|
3005
|
yading@10
|
3006 check_arm_arch() {
|
yading@10
|
3007 check_cpp_condition stddef.h \
|
yading@10
|
3008 "defined __ARM_ARCH_${1}__ || defined __TARGET_ARCH_${2:-$1}" \
|
yading@10
|
3009 $cpuflags
|
yading@10
|
3010 }
|
yading@10
|
3011
|
yading@10
|
3012 probe_arm_arch() {
|
yading@10
|
3013 if check_arm_arch 4; then echo armv4;
|
yading@10
|
3014 elif check_arm_arch 4T; then echo armv4t;
|
yading@10
|
3015 elif check_arm_arch 5; then echo armv5;
|
yading@10
|
3016 elif check_arm_arch 5E; then echo armv5e;
|
yading@10
|
3017 elif check_arm_arch 5T; then echo armv5t;
|
yading@10
|
3018 elif check_arm_arch 5TE; then echo armv5te;
|
yading@10
|
3019 elif check_arm_arch 5TEJ; then echo armv5te;
|
yading@10
|
3020 elif check_arm_arch 6; then echo armv6;
|
yading@10
|
3021 elif check_arm_arch 6J; then echo armv6j;
|
yading@10
|
3022 elif check_arm_arch 6K; then echo armv6k;
|
yading@10
|
3023 elif check_arm_arch 6Z; then echo armv6z;
|
yading@10
|
3024 elif check_arm_arch 6ZK; then echo armv6zk;
|
yading@10
|
3025 elif check_arm_arch 6T2; then echo armv6t2;
|
yading@10
|
3026 elif check_arm_arch 7; then echo armv7;
|
yading@10
|
3027 elif check_arm_arch 7A 7_A; then echo armv7-a;
|
yading@10
|
3028 elif check_arm_arch 7R 7_R; then echo armv7-r;
|
yading@10
|
3029 elif check_arm_arch 7M 7_M; then echo armv7-m;
|
yading@10
|
3030 elif check_arm_arch 7EM 7E_M; then echo armv7-m;
|
yading@10
|
3031 elif check_arm_arch 8A 8_A; then echo armv8-a;
|
yading@10
|
3032 fi
|
yading@10
|
3033 }
|
yading@10
|
3034
|
yading@10
|
3035 [ "$cpu" = generic ] && cpu=$(probe_arm_arch)
|
yading@10
|
3036
|
yading@10
|
3037 case $cpu in
|
yading@10
|
3038 armv*)
|
yading@10
|
3039 cpuflags="-march=$cpu"
|
yading@10
|
3040 subarch=$(echo $cpu | sed 's/[^a-z0-9]//g')
|
yading@10
|
3041 ;;
|
yading@10
|
3042 *)
|
yading@10
|
3043 cpuflags="-mcpu=$cpu"
|
yading@10
|
3044 case $cpu in
|
yading@10
|
3045 cortex-a*) subarch=armv7a ;;
|
yading@10
|
3046 cortex-r*) subarch=armv7r ;;
|
yading@10
|
3047 cortex-m*) enable thumb; subarch=armv7m ;;
|
yading@10
|
3048 arm11*) subarch=armv6 ;;
|
yading@10
|
3049 arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;;
|
yading@10
|
3050 armv4*|arm7*|arm9[24]*) subarch=armv4 ;;
|
yading@10
|
3051 *) subarch=$(probe_arm_arch) ;;
|
yading@10
|
3052 esac
|
yading@10
|
3053 ;;
|
yading@10
|
3054 esac
|
yading@10
|
3055
|
yading@10
|
3056 case "$subarch" in
|
yading@10
|
3057 armv5t*) enable fast_clz ;;
|
yading@10
|
3058 armv[6-8]*) enable fast_clz fast_unaligned ;;
|
yading@10
|
3059 esac
|
yading@10
|
3060
|
yading@10
|
3061 elif enabled avr32; then
|
yading@10
|
3062
|
yading@10
|
3063 case $cpu in
|
yading@10
|
3064 ap7[02]0[0-2])
|
yading@10
|
3065 subarch="avr32_ap"
|
yading@10
|
3066 cpuflags="-mpart=$cpu"
|
yading@10
|
3067 ;;
|
yading@10
|
3068 ap)
|
yading@10
|
3069 subarch="avr32_ap"
|
yading@10
|
3070 cpuflags="-march=$cpu"
|
yading@10
|
3071 ;;
|
yading@10
|
3072 uc3[ab]*)
|
yading@10
|
3073 subarch="avr32_uc"
|
yading@10
|
3074 cpuflags="-mcpu=$cpu"
|
yading@10
|
3075 ;;
|
yading@10
|
3076 uc)
|
yading@10
|
3077 subarch="avr32_uc"
|
yading@10
|
3078 cpuflags="-march=$cpu"
|
yading@10
|
3079 ;;
|
yading@10
|
3080 esac
|
yading@10
|
3081
|
yading@10
|
3082 elif enabled bfin; then
|
yading@10
|
3083
|
yading@10
|
3084 cpuflags="-mcpu=$cpu"
|
yading@10
|
3085
|
yading@10
|
3086 elif enabled mips; then
|
yading@10
|
3087
|
yading@10
|
3088 cpuflags="-march=$cpu"
|
yading@10
|
3089
|
yading@10
|
3090 case $cpu in
|
yading@10
|
3091 24kc)
|
yading@10
|
3092 disable mipsfpu
|
yading@10
|
3093 disable mipsdspr1
|
yading@10
|
3094 disable mipsdspr2
|
yading@10
|
3095 ;;
|
yading@10
|
3096 24kf*)
|
yading@10
|
3097 disable mipsdspr1
|
yading@10
|
3098 disable mipsdspr2
|
yading@10
|
3099 ;;
|
yading@10
|
3100 24kec|34kc|1004kc)
|
yading@10
|
3101 disable mipsfpu
|
yading@10
|
3102 disable mipsdspr2
|
yading@10
|
3103 ;;
|
yading@10
|
3104 24kef*|34kf*|1004kf*)
|
yading@10
|
3105 disable mipsdspr2
|
yading@10
|
3106 ;;
|
yading@10
|
3107 74kc)
|
yading@10
|
3108 disable mipsfpu
|
yading@10
|
3109 ;;
|
yading@10
|
3110 esac
|
yading@10
|
3111
|
yading@10
|
3112 elif enabled ppc; then
|
yading@10
|
3113
|
yading@10
|
3114 case $(tolower $cpu) in
|
yading@10
|
3115 601|ppc601|powerpc601)
|
yading@10
|
3116 cpuflags="-mcpu=601"
|
yading@10
|
3117 disable altivec
|
yading@10
|
3118 ;;
|
yading@10
|
3119 603*|ppc603*|powerpc603*)
|
yading@10
|
3120 cpuflags="-mcpu=603"
|
yading@10
|
3121 disable altivec
|
yading@10
|
3122 ;;
|
yading@10
|
3123 604*|ppc604*|powerpc604*)
|
yading@10
|
3124 cpuflags="-mcpu=604"
|
yading@10
|
3125 disable altivec
|
yading@10
|
3126 ;;
|
yading@10
|
3127 g3|75*|ppc75*|powerpc75*)
|
yading@10
|
3128 cpuflags="-mcpu=750"
|
yading@10
|
3129 disable altivec
|
yading@10
|
3130 ;;
|
yading@10
|
3131 g4|745*|ppc745*|powerpc745*)
|
yading@10
|
3132 cpuflags="-mcpu=7450"
|
yading@10
|
3133 ;;
|
yading@10
|
3134 74*|ppc74*|powerpc74*)
|
yading@10
|
3135 cpuflags="-mcpu=7400"
|
yading@10
|
3136 ;;
|
yading@10
|
3137 g5|970|ppc970|powerpc970)
|
yading@10
|
3138 cpuflags="-mcpu=970"
|
yading@10
|
3139 ;;
|
yading@10
|
3140 power[3-7]*)
|
yading@10
|
3141 cpuflags="-mcpu=$cpu"
|
yading@10
|
3142 ;;
|
yading@10
|
3143 cell)
|
yading@10
|
3144 cpuflags="-mcpu=cell"
|
yading@10
|
3145 enable ldbrx
|
yading@10
|
3146 ;;
|
yading@10
|
3147 e500mc)
|
yading@10
|
3148 cpuflags="-mcpu=e500mc"
|
yading@10
|
3149 disable altivec
|
yading@10
|
3150 ;;
|
yading@10
|
3151 e500v2)
|
yading@10
|
3152 cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
|
yading@10
|
3153 disable altivec
|
yading@10
|
3154 ;;
|
yading@10
|
3155 e500)
|
yading@10
|
3156 cpuflags="-mcpu=8540 -mhard-float"
|
yading@10
|
3157 disable altivec
|
yading@10
|
3158 ;;
|
yading@10
|
3159 esac
|
yading@10
|
3160
|
yading@10
|
3161 elif enabled sparc; then
|
yading@10
|
3162
|
yading@10
|
3163 case $cpu in
|
yading@10
|
3164 cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789])
|
yading@10
|
3165 cpuflags="-mcpu=$cpu"
|
yading@10
|
3166 disable vis
|
yading@10
|
3167 ;;
|
yading@10
|
3168 ultrasparc*|niagara[234])
|
yading@10
|
3169 cpuflags="-mcpu=$cpu"
|
yading@10
|
3170 ;;
|
yading@10
|
3171 esac
|
yading@10
|
3172
|
yading@10
|
3173 elif enabled x86; then
|
yading@10
|
3174
|
yading@10
|
3175 case $cpu in
|
yading@10
|
3176 i[345]86|pentium)
|
yading@10
|
3177 cpuflags="-march=$cpu"
|
yading@10
|
3178 disable mmx
|
yading@10
|
3179 ;;
|
yading@10
|
3180 # targets that do NOT support conditional mov (cmov)
|
yading@10
|
3181 pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
|
yading@10
|
3182 cpuflags="-march=$cpu"
|
yading@10
|
3183 disable cmov
|
yading@10
|
3184 ;;
|
yading@10
|
3185 # targets that do support conditional mov (cmov)
|
yading@10
|
3186 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*)
|
yading@10
|
3187 cpuflags="-march=$cpu"
|
yading@10
|
3188 enable cmov
|
yading@10
|
3189 enable fast_cmov
|
yading@10
|
3190 ;;
|
yading@10
|
3191 # targets that do support conditional mov but on which it's slow
|
yading@10
|
3192 pentium4|pentium4m|prescott|nocona)
|
yading@10
|
3193 cpuflags="-march=$cpu"
|
yading@10
|
3194 enable cmov
|
yading@10
|
3195 disable fast_cmov
|
yading@10
|
3196 ;;
|
yading@10
|
3197 esac
|
yading@10
|
3198
|
yading@10
|
3199 fi
|
yading@10
|
3200
|
yading@10
|
3201 if [ "$cpu" != generic ]; then
|
yading@10
|
3202 add_cflags $cpuflags
|
yading@10
|
3203 add_asflags $cpuflags
|
yading@10
|
3204 fi
|
yading@10
|
3205
|
yading@10
|
3206 # compiler sanity check
|
yading@10
|
3207 check_exec <<EOF
|
yading@10
|
3208 int main(void){ return 0; }
|
yading@10
|
3209 EOF
|
yading@10
|
3210 if test "$?" != 0; then
|
yading@10
|
3211 echo "$cc is unable to create an executable file."
|
yading@10
|
3212 if test -z "$cross_prefix" && ! enabled cross_compile ; then
|
yading@10
|
3213 echo "If $cc is a cross-compiler, use the --enable-cross-compile option."
|
yading@10
|
3214 echo "Only do this if you know what cross compiling means."
|
yading@10
|
3215 fi
|
yading@10
|
3216 die "C compiler test failed."
|
yading@10
|
3217 fi
|
yading@10
|
3218
|
yading@10
|
3219 add_cppflags -D_ISOC99_SOURCE
|
yading@10
|
3220 add_cxxflags -D__STDC_CONSTANT_MACROS
|
yading@10
|
3221 check_cflags -std=c99
|
yading@10
|
3222 check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64
|
yading@10
|
3223 #include <stdlib.h>
|
yading@10
|
3224 EOF
|
yading@10
|
3225 check_cc -D_LARGEFILE_SOURCE <<EOF && add_cppflags -D_LARGEFILE_SOURCE
|
yading@10
|
3226 #include <stdlib.h>
|
yading@10
|
3227 EOF
|
yading@10
|
3228
|
yading@10
|
3229 check_host_cflags -std=c99
|
yading@10
|
3230 check_host_cflags -Wall
|
yading@10
|
3231
|
yading@10
|
3232 check_64bit(){
|
yading@10
|
3233 arch32=$1
|
yading@10
|
3234 arch64=$2
|
yading@10
|
3235 expr=$3
|
yading@10
|
3236 check_code cc "" "int test[2*($expr) - 1]" &&
|
yading@10
|
3237 subarch=$arch64 || subarch=$arch32
|
yading@10
|
3238 }
|
yading@10
|
3239
|
yading@10
|
3240 case "$arch" in
|
yading@10
|
3241 aarch64|alpha|ia64)
|
yading@10
|
3242 spic=$shared
|
yading@10
|
3243 ;;
|
yading@10
|
3244 mips)
|
yading@10
|
3245 check_64bit mips mips64 '_MIPS_SIM > 1'
|
yading@10
|
3246 spic=$shared
|
yading@10
|
3247 ;;
|
yading@10
|
3248 parisc)
|
yading@10
|
3249 check_64bit parisc parisc64 'sizeof(void *) > 4'
|
yading@10
|
3250 spic=$shared
|
yading@10
|
3251 ;;
|
yading@10
|
3252 ppc)
|
yading@10
|
3253 check_64bit ppc ppc64 'sizeof(void *) > 4'
|
yading@10
|
3254 spic=$shared
|
yading@10
|
3255 ;;
|
yading@10
|
3256 sparc)
|
yading@10
|
3257 check_64bit sparc sparc64 'sizeof(void *) > 4'
|
yading@10
|
3258 spic=$shared
|
yading@10
|
3259 ;;
|
yading@10
|
3260 x86)
|
yading@10
|
3261 check_64bit x86_32 x86_64 'sizeof(void *) > 4'
|
yading@10
|
3262 if test "$subarch" = "x86_64"; then
|
yading@10
|
3263 spic=$shared
|
yading@10
|
3264 fi
|
yading@10
|
3265 ;;
|
yading@10
|
3266 ppc)
|
yading@10
|
3267 check_cc <<EOF && subarch="ppc64"
|
yading@10
|
3268 int test[(int)sizeof(char*) - 7];
|
yading@10
|
3269 EOF
|
yading@10
|
3270 ;;
|
yading@10
|
3271 esac
|
yading@10
|
3272
|
yading@10
|
3273 enable $subarch
|
yading@10
|
3274 enabled spic && enable pic
|
yading@10
|
3275
|
yading@10
|
3276 # OS specific
|
yading@10
|
3277 case $target_os in
|
yading@10
|
3278 haiku)
|
yading@10
|
3279 prefix_default="/boot/common"
|
yading@10
|
3280 network_extralibs="-lnetwork"
|
yading@10
|
3281 host_libs=
|
yading@10
|
3282 ;;
|
yading@10
|
3283 sunos)
|
yading@10
|
3284 FFSERVERLDFLAGS=""
|
yading@10
|
3285 SHFLAGS='-shared -Wl,-h,$$(@F)'
|
yading@10
|
3286 enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
|
yading@10
|
3287 network_extralibs="-lsocket -lnsl"
|
yading@10
|
3288 add_cppflags -D__EXTENSIONS__ -D_XOPEN_SOURCE=600
|
yading@10
|
3289 # When using suncc to build, the Solaris linker will mark
|
yading@10
|
3290 # an executable with each instruction set encountered by
|
yading@10
|
3291 # the Solaris assembler. As our libraries contain their own
|
yading@10
|
3292 # guards for processor-specific code, instead suppress
|
yading@10
|
3293 # generation of the HWCAPS ELF section on Solaris x86 only.
|
yading@10
|
3294 enabled_all suncc x86 && echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile
|
yading@10
|
3295 nm_default='nm -P -g'
|
yading@10
|
3296 ;;
|
yading@10
|
3297 netbsd)
|
yading@10
|
3298 disable symver
|
yading@10
|
3299 oss_indev_extralibs="-lossaudio"
|
yading@10
|
3300 oss_outdev_extralibs="-lossaudio"
|
yading@10
|
3301 enabled gcc || check_ldflags -Wl,-zmuldefs
|
yading@10
|
3302 ;;
|
yading@10
|
3303 openbsd|bitrig)
|
yading@10
|
3304 disable symver
|
yading@10
|
3305 SHFLAGS='-shared'
|
yading@10
|
3306 SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
|
yading@10
|
3307 SLIB_INSTALL_LINKS=
|
yading@10
|
3308 oss_indev_extralibs="-lossaudio"
|
yading@10
|
3309 oss_outdev_extralibs="-lossaudio"
|
yading@10
|
3310 ;;
|
yading@10
|
3311 dragonfly)
|
yading@10
|
3312 disable symver
|
yading@10
|
3313 ;;
|
yading@10
|
3314 freebsd)
|
yading@10
|
3315 ;;
|
yading@10
|
3316 bsd/os)
|
yading@10
|
3317 add_extralibs -lpoll -lgnugetopt
|
yading@10
|
3318 strip="strip -d"
|
yading@10
|
3319 ;;
|
yading@10
|
3320 darwin)
|
yading@10
|
3321 gas="gas-preprocessor.pl $cc"
|
yading@10
|
3322 enabled ppc && add_asflags -force_cpusubtype_ALL
|
yading@10
|
3323 SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
|
yading@10
|
3324 enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
|
yading@10
|
3325 strip="${strip} -x"
|
yading@10
|
3326 add_ldflags -Wl,-dynamic,-search_paths_first
|
yading@10
|
3327 SLIBSUF=".dylib"
|
yading@10
|
3328 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
|
yading@10
|
3329 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
|
yading@10
|
3330 FFSERVERLDFLAGS=-Wl,-bind_at_load
|
yading@10
|
3331 objformat="macho"
|
yading@10
|
3332 enabled x86_64 && objformat="macho64"
|
yading@10
|
3333 enabled_any pic shared ||
|
yading@10
|
3334 { check_cflags -mdynamic-no-pic && add_asflags -mdynamic-no-pic; }
|
yading@10
|
3335 ;;
|
yading@10
|
3336 mingw32*)
|
yading@10
|
3337 if test $target_os = "mingw32ce"; then
|
yading@10
|
3338 disable network
|
yading@10
|
3339 else
|
yading@10
|
3340 target_os=mingw32
|
yading@10
|
3341 fi
|
yading@10
|
3342 LIBTARGET=i386
|
yading@10
|
3343 if enabled x86_64; then
|
yading@10
|
3344 LIBTARGET="i386:x86-64"
|
yading@10
|
3345 elif enabled arm; then
|
yading@10
|
3346 LIBTARGET=arm-wince
|
yading@10
|
3347 fi
|
yading@10
|
3348 shlibdir_default="$bindir_default"
|
yading@10
|
3349 SLIBPREF=""
|
yading@10
|
3350 SLIBSUF=".dll"
|
yading@10
|
3351 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
yading@10
|
3352 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
|
yading@10
|
3353 dlltool="${cross_prefix}dlltool"
|
yading@10
|
3354 if check_cmd lib.exe -list; then
|
yading@10
|
3355 SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
|
yading@10
|
3356 if enabled x86_64; then
|
yading@10
|
3357 LIBTARGET=x64
|
yading@10
|
3358 fi
|
yading@10
|
3359 elif check_cmd $dlltool --version; then
|
yading@10
|
3360 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)'
|
yading@10
|
3361 fi
|
yading@10
|
3362 SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
|
yading@10
|
3363 SLIB_INSTALL_LINKS=
|
yading@10
|
3364 SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
|
yading@10
|
3365 SLIB_INSTALL_EXTRA_LIB='lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
|
yading@10
|
3366 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'
|
yading@10
|
3367 objformat="win32"
|
yading@10
|
3368 ranlib=:
|
yading@10
|
3369 enable dos_paths
|
yading@10
|
3370 ;;
|
yading@10
|
3371 win32|win64)
|
yading@10
|
3372 if enabled shared; then
|
yading@10
|
3373 # Link to the import library instead of the normal static library
|
yading@10
|
3374 # for shared libs.
|
yading@10
|
3375 LD_LIB='%.lib'
|
yading@10
|
3376 # Cannot build shared and static libraries at the same time with
|
yading@10
|
3377 # MSVC.
|
yading@10
|
3378 disable static
|
yading@10
|
3379 fi
|
yading@10
|
3380 shlibdir_default="$bindir_default"
|
yading@10
|
3381 SLIBPREF=""
|
yading@10
|
3382 SLIBSUF=".dll"
|
yading@10
|
3383 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
yading@10
|
3384 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
|
yading@10
|
3385 SLIB_CREATE_DEF_CMD='makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)'
|
yading@10
|
3386 SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
|
yading@10
|
3387 SLIB_INSTALL_LINKS=
|
yading@10
|
3388 SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
|
yading@10
|
3389 SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
|
yading@10
|
3390 SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
|
yading@10
|
3391 objformat="win32"
|
yading@10
|
3392 ranlib=:
|
yading@10
|
3393 enable dos_paths
|
yading@10
|
3394 ;;
|
yading@10
|
3395 cygwin*)
|
yading@10
|
3396 target_os=cygwin
|
yading@10
|
3397 shlibdir_default="$bindir_default"
|
yading@10
|
3398 SLIBPREF="cyg"
|
yading@10
|
3399 SLIBSUF=".dll"
|
yading@10
|
3400 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
yading@10
|
3401 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
|
yading@10
|
3402 SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
|
yading@10
|
3403 SLIB_INSTALL_LINKS=
|
yading@10
|
3404 SLIB_INSTALL_EXTRA_LIB='lib$(FULLNAME).dll.a'
|
yading@10
|
3405 SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
|
yading@10
|
3406 objformat="win32"
|
yading@10
|
3407 enable dos_paths
|
yading@10
|
3408 ;;
|
yading@10
|
3409 *-dos|freedos|opendos)
|
yading@10
|
3410 network_extralibs="-lsocket"
|
yading@10
|
3411 objformat="coff"
|
yading@10
|
3412 enable dos_paths
|
yading@10
|
3413 add_cppflags -U__STRICT_ANSI__
|
yading@10
|
3414 ;;
|
yading@10
|
3415 linux)
|
yading@10
|
3416 enable dv1394
|
yading@10
|
3417 ;;
|
yading@10
|
3418 irix*)
|
yading@10
|
3419 target_os=irix
|
yading@10
|
3420 ranlib="echo ignoring ranlib"
|
yading@10
|
3421 ;;
|
yading@10
|
3422 os/2*)
|
yading@10
|
3423 strip="lxlite -CS"
|
yading@10
|
3424 ln_s="cp -f"
|
yading@10
|
3425 objformat="aout"
|
yading@10
|
3426 add_cppflags -D_GNU_SOURCE
|
yading@10
|
3427 add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
|
yading@10
|
3428 SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
|
yading@10
|
3429 FFSERVERLDFLAGS=""
|
yading@10
|
3430 LIBSUF="_s.a"
|
yading@10
|
3431 SLIBPREF=""
|
yading@10
|
3432 SLIBSUF=".dll"
|
yading@10
|
3433 SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
|
yading@10
|
3434 SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
|
yading@10
|
3435 SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \
|
yading@10
|
3436 echo PROTMODE >> $(SUBDIR)$(NAME).def; \
|
yading@10
|
3437 echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \
|
yading@10
|
3438 echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \
|
yading@10
|
3439 echo EXPORTS >> $(SUBDIR)$(NAME).def; \
|
yading@10
|
3440 emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def'
|
yading@10
|
3441 SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \
|
yading@10
|
3442 emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;'
|
yading@10
|
3443 SLIB_INSTALL_EXTRA_LIB='$(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib'
|
yading@10
|
3444 enable dos_paths
|
yading@10
|
3445 enable_weak os2threads
|
yading@10
|
3446 ;;
|
yading@10
|
3447 gnu/kfreebsd)
|
yading@10
|
3448 add_cppflags -D_BSD_SOURCE
|
yading@10
|
3449 ;;
|
yading@10
|
3450 gnu)
|
yading@10
|
3451 ;;
|
yading@10
|
3452 qnx)
|
yading@10
|
3453 add_cppflags -D_QNX_SOURCE
|
yading@10
|
3454 network_extralibs="-lsocket"
|
yading@10
|
3455 ;;
|
yading@10
|
3456 symbian)
|
yading@10
|
3457 SLIBSUF=".dll"
|
yading@10
|
3458 enable dos_paths
|
yading@10
|
3459 add_cflags --include=$sysinclude/gcce/gcce.h -fvisibility=default
|
yading@10
|
3460 add_cppflags -D__GCCE__ -D__SYMBIAN32__ -DSYMBIAN_OE_POSIX_SIGNALS
|
yading@10
|
3461 add_ldflags -Wl,--target1-abs,--no-undefined \
|
yading@10
|
3462 -Wl,-Ttext,0x80000,-Tdata,0x1000000 -shared \
|
yading@10
|
3463 -Wl,--entry=_E32Startup -Wl,-u,_E32Startup
|
yading@10
|
3464 add_extralibs -l:eexe.lib -l:usrt2_2.lib -l:dfpaeabi.dso \
|
yading@10
|
3465 -l:drtaeabi.dso -l:scppnwdl.dso -lsupc++ -lgcc \
|
yading@10
|
3466 -l:libc.dso -l:libm.dso -l:euser.dso -l:libcrt0.lib
|
yading@10
|
3467 ;;
|
yading@10
|
3468 osf1)
|
yading@10
|
3469 add_cppflags -D_OSF_SOURCE -D_POSIX_PII -D_REENTRANT
|
yading@10
|
3470 FFSERVERLDFLAGS=
|
yading@10
|
3471 ;;
|
yading@10
|
3472 minix)
|
yading@10
|
3473 ;;
|
yading@10
|
3474 plan9)
|
yading@10
|
3475 add_cppflags -D_C99_SNPRINTF_EXTENSION \
|
yading@10
|
3476 -D_REENTRANT_SOURCE \
|
yading@10
|
3477 -D_RESEARCH_SOURCE \
|
yading@10
|
3478 -DFD_SETSIZE=96 \
|
yading@10
|
3479 -DHAVE_SOCK_OPTS
|
yading@10
|
3480 add_compat strtod.o strtod=avpriv_strtod
|
yading@10
|
3481 network_extralibs='-lbsd'
|
yading@10
|
3482 exeobjs=compat/plan9/main.o
|
yading@10
|
3483 disable ffserver
|
yading@10
|
3484 cp_f='cp'
|
yading@10
|
3485 ;;
|
yading@10
|
3486 none)
|
yading@10
|
3487 ;;
|
yading@10
|
3488 *)
|
yading@10
|
3489 die "Unknown OS '$target_os'."
|
yading@10
|
3490 ;;
|
yading@10
|
3491 esac
|
yading@10
|
3492
|
yading@10
|
3493 # determine libc flavour
|
yading@10
|
3494
|
yading@10
|
3495 # uclibc defines __GLIBC__, so it needs to be checked before glibc.
|
yading@10
|
3496 if check_cpp_condition features.h "defined __UCLIBC__"; then
|
yading@10
|
3497 libc_type=uclibc
|
yading@10
|
3498 add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
|
yading@10
|
3499 elif check_cpp_condition features.h "defined __GLIBC__"; then
|
yading@10
|
3500 libc_type=glibc
|
yading@10
|
3501 add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
|
yading@10
|
3502 # MinGW headers can be installed on Cygwin, so check for newlib first.
|
yading@10
|
3503 elif check_cpp_condition newlib.h "defined _NEWLIB_VERSION"; then
|
yading@10
|
3504 libc_type=newlib
|
yading@10
|
3505 add_cppflags -U__STRICT_ANSI__
|
yading@10
|
3506 elif check_header _mingw.h; then
|
yading@10
|
3507 libc_type=mingw
|
yading@10
|
3508 check_cpp_condition _mingw.h \
|
yading@10
|
3509 "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \
|
yading@10
|
3510 (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
|
yading@10
|
3511 die "ERROR: MinGW runtime version must be >= 3.15."
|
yading@10
|
3512 add_cppflags -U__STRICT_ANSI__
|
yading@10
|
3513 if check_cpp_condition _mingw.h "defined(__MINGW64_VERSION_MAJOR) && \
|
yading@10
|
3514 __MINGW64_VERSION_MAJOR < 3"; then
|
yading@10
|
3515 add_compat msvcrt/snprintf.o
|
yading@10
|
3516 add_cflags "-include $source_path/compat/msvcrt/snprintf.h"
|
yading@10
|
3517 fi
|
yading@10
|
3518 elif check_func_headers stdlib.h _get_doserrno; then
|
yading@10
|
3519 libc_type=msvcrt
|
yading@10
|
3520 add_compat strtod.o strtod=avpriv_strtod
|
yading@10
|
3521 add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \
|
yading@10
|
3522 _snprintf=avpriv_snprintf \
|
yading@10
|
3523 vsnprintf=avpriv_vsnprintf
|
yading@10
|
3524 elif check_cpp_condition stddef.h "defined __KLIBC__"; then
|
yading@10
|
3525 libc_type=klibc
|
yading@10
|
3526 fi
|
yading@10
|
3527
|
yading@10
|
3528 test -n "$libc_type" && enable $libc_type
|
yading@10
|
3529
|
yading@10
|
3530 # hacks for compiler/libc/os combinations
|
yading@10
|
3531
|
yading@10
|
3532 if enabled_all tms470 glibc; then
|
yading@10
|
3533 CPPFLAGS="-I${source_path}/compat/tms470 ${CPPFLAGS}"
|
yading@10
|
3534 add_cppflags -D__USER_LABEL_PREFIX__=
|
yading@10
|
3535 add_cppflags -D__builtin_memset=memset
|
yading@10
|
3536 add_cppflags -D__gnuc_va_list=va_list -D_VA_LIST_DEFINED
|
yading@10
|
3537 add_cflags -pds=48 # incompatible redefinition of macro
|
yading@10
|
3538 fi
|
yading@10
|
3539
|
yading@10
|
3540 if enabled_all ccc glibc; then
|
yading@10
|
3541 add_ldflags -Wl,-z,now # calls to libots crash without this
|
yading@10
|
3542 fi
|
yading@10
|
3543
|
yading@10
|
3544 esc(){
|
yading@10
|
3545 echo "$*" | sed 's/%/%25/g;s/:/%3a/g'
|
yading@10
|
3546 }
|
yading@10
|
3547
|
yading@10
|
3548 echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate
|
yading@10
|
3549
|
yading@10
|
3550 check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic
|
yading@10
|
3551
|
yading@10
|
3552 set_default $PATHS_LIST
|
yading@10
|
3553 set_default nm
|
yading@10
|
3554
|
yading@10
|
3555 # we need to build at least one lib type
|
yading@10
|
3556 if ! enabled_any static shared; then
|
yading@10
|
3557 cat <<EOF
|
yading@10
|
3558 At least one library type must be built.
|
yading@10
|
3559 Specify --enable-static to build the static libraries or --enable-shared to
|
yading@10
|
3560 build the shared libraries as well. To only build the shared libraries specify
|
yading@10
|
3561 --disable-static in addition to --enable-shared.
|
yading@10
|
3562 EOF
|
yading@10
|
3563 exit 1;
|
yading@10
|
3564 fi
|
yading@10
|
3565
|
yading@10
|
3566 die_license_disabled() {
|
yading@10
|
3567 enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; }
|
yading@10
|
3568 }
|
yading@10
|
3569
|
yading@10
|
3570 die_license_disabled_gpl() {
|
yading@10
|
3571 enabled $1 || { enabled $2 && die "$2 is incompatible with the gpl and --enable-$1 is not specified."; }
|
yading@10
|
3572 }
|
yading@10
|
3573
|
yading@10
|
3574 die_license_disabled gpl libcdio
|
yading@10
|
3575 die_license_disabled gpl libutvideo
|
yading@10
|
3576 die_license_disabled gpl libx264
|
yading@10
|
3577 die_license_disabled gpl libxavs
|
yading@10
|
3578 die_license_disabled gpl libxvid
|
yading@10
|
3579 die_license_disabled gpl x11grab
|
yading@10
|
3580
|
yading@10
|
3581 die_license_disabled nonfree libaacplus
|
yading@10
|
3582 die_license_disabled nonfree libfaac
|
yading@10
|
3583 enabled gpl && die_license_disabled_gpl nonfree libfdk_aac
|
yading@10
|
3584 enabled gpl && die_license_disabled_gpl nonfree openssl
|
yading@10
|
3585
|
yading@10
|
3586 die_license_disabled version3 libopencore_amrnb
|
yading@10
|
3587 die_license_disabled version3 libopencore_amrwb
|
yading@10
|
3588 die_license_disabled version3 libvo_aacenc
|
yading@10
|
3589 die_license_disabled version3 libvo_amrwbenc
|
yading@10
|
3590
|
yading@10
|
3591 enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
|
yading@10
|
3592
|
yading@10
|
3593 disabled optimizations || check_cflags -fomit-frame-pointer
|
yading@10
|
3594
|
yading@10
|
3595 enable_pic() {
|
yading@10
|
3596 enable pic
|
yading@10
|
3597 add_cppflags -DPIC
|
yading@10
|
3598 add_cflags -fPIC
|
yading@10
|
3599 add_asflags -fPIC
|
yading@10
|
3600 }
|
yading@10
|
3601
|
yading@10
|
3602 enabled pic && enable_pic
|
yading@10
|
3603
|
yading@10
|
3604 check_cc <<EOF || die "Symbol mangling check failed."
|
yading@10
|
3605 int ff_extern;
|
yading@10
|
3606 EOF
|
yading@10
|
3607 sym=$($nm $TMPO | awk '/ff_extern/{ print substr($0, match($0, /[^ \t]*ff_extern/)) }')
|
yading@10
|
3608 extern_prefix=${sym%%ff_extern*}
|
yading@10
|
3609
|
yading@10
|
3610 check_cc <<EOF && enable_weak inline_asm
|
yading@10
|
3611 void foo(void) { __asm__ volatile ("" ::); }
|
yading@10
|
3612 EOF
|
yading@10
|
3613
|
yading@10
|
3614 _restrict=
|
yading@10
|
3615 for restrict_keyword in restrict __restrict__ __restrict; do
|
yading@10
|
3616 check_cc <<EOF && _restrict=$restrict_keyword && break
|
yading@10
|
3617 void foo(char * $restrict_keyword p);
|
yading@10
|
3618 EOF
|
yading@10
|
3619 done
|
yading@10
|
3620
|
yading@10
|
3621 check_cc <<EOF && enable attribute_packed
|
yading@10
|
3622 struct { int x; } __attribute__((packed)) x;
|
yading@10
|
3623 EOF
|
yading@10
|
3624
|
yading@10
|
3625 check_cc <<EOF && enable attribute_may_alias
|
yading@10
|
3626 union { int x; } __attribute__((may_alias)) x;
|
yading@10
|
3627 EOF
|
yading@10
|
3628
|
yading@10
|
3629 check_cc <<EOF || die "endian test failed"
|
yading@10
|
3630 unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
|
yading@10
|
3631 EOF
|
yading@10
|
3632 od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
|
yading@10
|
3633
|
yading@10
|
3634 if enabled alpha; then
|
yading@10
|
3635
|
yading@10
|
3636 check_cflags -mieee
|
yading@10
|
3637
|
yading@10
|
3638 elif enabled arm; then
|
yading@10
|
3639
|
yading@10
|
3640 check_cpp_condition stddef.h "defined __thumb__" && check_cc <<EOF && enable_weak thumb
|
yading@10
|
3641 float func(float a, float b){ return a+b; }
|
yading@10
|
3642 EOF
|
yading@10
|
3643
|
yading@10
|
3644 enabled thumb && check_cflags -mthumb || check_cflags -marm
|
yading@10
|
3645 nogas=die
|
yading@10
|
3646
|
yading@10
|
3647 if check_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
|
yading@10
|
3648 enable vfp_args
|
yading@10
|
3649 elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__"; then
|
yading@10
|
3650 case "${cross_prefix:-$cc}" in
|
yading@10
|
3651 *hardfloat*) enable vfp_args; fpabi=vfp ;;
|
yading@10
|
3652 *) check_ld "cc" <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
|
yading@10
|
3653 __asm__ (".eabi_attribute 28, 1");
|
yading@10
|
3654 int main(void) { return 0; }
|
yading@10
|
3655 EOF
|
yading@10
|
3656 esac
|
yading@10
|
3657 warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
|
yading@10
|
3658 fi
|
yading@10
|
3659
|
yading@10
|
3660 enabled armv5te && check_insn armv5te 'qadd r0, r0, r0'
|
yading@10
|
3661 enabled armv6 && check_insn armv6 'sadd16 r0, r0, r0'
|
yading@10
|
3662 enabled armv6t2 && check_insn armv6t2 'movt r0, #0'
|
yading@10
|
3663 enabled neon && check_insn neon 'vadd.i16 q0, q0, q0'
|
yading@10
|
3664 enabled vfp && check_insn vfp 'fadds s0, s0, s0'
|
yading@10
|
3665 enabled vfpv3 && check_insn vfpv3 'vmov.f32 s0, #1.0'
|
yading@10
|
3666
|
yading@10
|
3667 [ $target_os = linux ] ||
|
yading@10
|
3668 map 'enabled_any ${v}_external ${v}_inline || disable $v' \
|
yading@10
|
3669 $ARCH_EXT_LIST_ARM
|
yading@10
|
3670
|
yading@10
|
3671 check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
|
yading@10
|
3672 check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
|
yading@10
|
3673
|
yading@10
|
3674 enabled_all armv6t2 shared !pic && enable_pic
|
yading@10
|
3675
|
yading@10
|
3676 elif enabled mips; then
|
yading@10
|
3677
|
yading@10
|
3678 check_inline_asm loongson '"dmult.g $1, $2, $3"'
|
yading@10
|
3679 enabled mips32r2 && add_cflags "-mips32r2" && add_asflags "-mips32r2" &&
|
yading@10
|
3680 check_inline_asm mips32r2 '"rotr $t0, $t1, 1"'
|
yading@10
|
3681 enabled mipsdspr1 && add_cflags "-mdsp" && add_asflags "-mdsp" &&
|
yading@10
|
3682 check_inline_asm mipsdspr1 '"addu.qb $t0, $t1, $t2"'
|
yading@10
|
3683 enabled mipsdspr2 && add_cflags "-mdspr2" && add_asflags "-mdspr2" &&
|
yading@10
|
3684 check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"'
|
yading@10
|
3685 enabled mipsfpu && add_cflags "-mhard-float" && add_asflags "-mhard-float" &&
|
yading@10
|
3686 check_inline_asm mipsfpu '"madd.d $f0, $f2, $f4, $f6"'
|
yading@10
|
3687
|
yading@10
|
3688 elif enabled parisc; then
|
yading@10
|
3689
|
yading@10
|
3690 if enabled gcc; then
|
yading@10
|
3691 case $($cc -dumpversion) in
|
yading@10
|
3692 4.[3-8].*) check_cflags -fno-optimize-sibling-calls ;;
|
yading@10
|
3693 esac
|
yading@10
|
3694 fi
|
yading@10
|
3695
|
yading@10
|
3696 elif enabled ppc; then
|
yading@10
|
3697
|
yading@10
|
3698 enable local_aligned_8 local_aligned_16
|
yading@10
|
3699
|
yading@10
|
3700 check_inline_asm dcbzl '"dcbzl 0, %0" :: "r"(0)'
|
yading@10
|
3701 check_inline_asm ibm_asm '"add 0, 0, 0"'
|
yading@10
|
3702 check_inline_asm ppc4xx '"maclhw r10, r11, r12"'
|
yading@10
|
3703 check_inline_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
|
yading@10
|
3704
|
yading@10
|
3705 # AltiVec flags: The FSF version of GCC differs from the Apple version
|
yading@10
|
3706 if enabled altivec; then
|
yading@10
|
3707 nogas=warn
|
yading@10
|
3708 check_cflags -maltivec -mabi=altivec &&
|
yading@10
|
3709 { check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } ||
|
yading@10
|
3710 check_cflags -faltivec
|
yading@10
|
3711
|
yading@10
|
3712 # check if our compiler supports Motorola AltiVec C API
|
yading@10
|
3713 check_cc <<EOF || disable altivec
|
yading@10
|
3714 $inc_altivec_h
|
yading@10
|
3715 int main(void) {
|
yading@10
|
3716 vector signed int v1 = (vector signed int) { 0 };
|
yading@10
|
3717 vector signed int v2 = (vector signed int) { 1 };
|
yading@10
|
3718 v1 = vec_add(v1, v2);
|
yading@10
|
3719 return 0;
|
yading@10
|
3720 }
|
yading@10
|
3721 EOF
|
yading@10
|
3722
|
yading@10
|
3723 enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
|
yading@10
|
3724 fi
|
yading@10
|
3725
|
yading@10
|
3726 elif enabled sparc; then
|
yading@10
|
3727
|
yading@10
|
3728 enabled vis && check_inline_asm vis '"pdist %f0, %f0, %f0"'
|
yading@10
|
3729
|
yading@10
|
3730 elif enabled x86; then
|
yading@10
|
3731
|
yading@10
|
3732 check_builtin rdtsc intrin.h "__rdtsc()"
|
yading@10
|
3733 check_builtin mm_empty mmintrin.h "_mm_empty()"
|
yading@10
|
3734
|
yading@10
|
3735 enable local_aligned_8 local_aligned_16
|
yading@10
|
3736
|
yading@10
|
3737 # check whether EBP is available on x86
|
yading@10
|
3738 # As 'i' is stored on the stack, this program will crash
|
yading@10
|
3739 # if the base pointer is used to access it because the
|
yading@10
|
3740 # base pointer is cleared in the inline assembly code.
|
yading@10
|
3741 check_exec_crash <<EOF && enable ebp_available
|
yading@10
|
3742 volatile int i=0;
|
yading@10
|
3743 __asm__ volatile ("xorl %%ebp, %%ebp" ::: "%ebp");
|
yading@10
|
3744 return i;
|
yading@10
|
3745 EOF
|
yading@10
|
3746
|
yading@10
|
3747 # check whether EBX is available on x86
|
yading@10
|
3748 check_inline_asm ebx_available '""::"b"(0)' &&
|
yading@10
|
3749 check_inline_asm ebx_available '"":::"%ebx"'
|
yading@10
|
3750
|
yading@10
|
3751 # check whether xmm clobbers are supported
|
yading@10
|
3752 check_inline_asm xmm_clobbers '"":::"%xmm0"'
|
yading@10
|
3753
|
yading@10
|
3754 # check whether binutils is new enough to compile SSSE3/MMXEXT
|
yading@10
|
3755 enabled ssse3 && check_inline_asm ssse3_inline '"pabsw %xmm0, %xmm0"'
|
yading@10
|
3756 enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"'
|
yading@10
|
3757
|
yading@10
|
3758 if ! disabled_any asm mmx yasm; then
|
yading@10
|
3759 if check_cmd $yasmexe --version; then
|
yading@10
|
3760 enabled x86_64 && yasm_extra="-m amd64"
|
yading@10
|
3761 yasm_debug="-g dwarf2"
|
yading@10
|
3762 elif check_cmd nasm -v; then
|
yading@10
|
3763 yasmexe=nasm
|
yading@10
|
3764 yasm_debug="-g -F dwarf"
|
yading@10
|
3765 enabled x86_64 && test "$objformat" = elf && objformat=elf64
|
yading@10
|
3766 fi
|
yading@10
|
3767
|
yading@10
|
3768 YASMFLAGS="-f $objformat $yasm_extra"
|
yading@10
|
3769 enabled pic && append YASMFLAGS "-DPIC"
|
yading@10
|
3770 test -n "$extern_prefix" && append YASMFLAGS "-DPREFIX"
|
yading@10
|
3771 case "$objformat" in
|
yading@10
|
3772 elf*) enabled debug && append YASMFLAGS $yasm_debug ;;
|
yading@10
|
3773 esac
|
yading@10
|
3774
|
yading@10
|
3775 check_yasm "pextrd [eax], xmm0, 1" && enable yasm ||
|
yading@10
|
3776 die "yasm not found, use --disable-yasm for a crippled build"
|
yading@10
|
3777 check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx_external
|
yading@10
|
3778 check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
|
yading@10
|
3779 check_yasm "CPU amdnop" && enable cpunop
|
yading@10
|
3780 fi
|
yading@10
|
3781
|
yading@10
|
3782 case "$cpu" in
|
yading@10
|
3783 athlon*|opteron*|k8*|pentium|pentium-mmx|prescott|nocona|atom|geode)
|
yading@10
|
3784 disable fast_clz
|
yading@10
|
3785 ;;
|
yading@10
|
3786 esac
|
yading@10
|
3787
|
yading@10
|
3788 fi
|
yading@10
|
3789
|
yading@10
|
3790 if enabled asm; then
|
yading@10
|
3791 as=${gas:=$as}
|
yading@10
|
3792 check_as <<EOF && enable gnu_as || \
|
yading@10
|
3793 $nogas "GNU assembler not found, install gas-preprocessor"
|
yading@10
|
3794 .macro m n
|
yading@10
|
3795 \n: .int 0
|
yading@10
|
3796 .endm
|
yading@10
|
3797 m x
|
yading@10
|
3798 EOF
|
yading@10
|
3799 fi
|
yading@10
|
3800
|
yading@10
|
3801 check_ldflags -Wl,--as-needed
|
yading@10
|
3802
|
yading@10
|
3803 if check_func dlopen; then
|
yading@10
|
3804 ldl=
|
yading@10
|
3805 elif check_func dlopen -ldl; then
|
yading@10
|
3806 ldl=-ldl
|
yading@10
|
3807 fi
|
yading@10
|
3808
|
yading@10
|
3809 if ! disabled network; then
|
yading@10
|
3810 check_type "sys/types.h sys/socket.h" socklen_t
|
yading@10
|
3811 check_type netdb.h "struct addrinfo"
|
yading@10
|
3812 check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
|
yading@10
|
3813 check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE
|
yading@10
|
3814 check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
|
yading@10
|
3815 check_type netinet/in.h "struct sockaddr_in6"
|
yading@10
|
3816 check_type poll.h "struct pollfd"
|
yading@10
|
3817 check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
|
yading@10
|
3818 check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
|
yading@10
|
3819 check_type netinet/sctp.h "struct sctp_event_subscribe"
|
yading@10
|
3820 check_func getaddrinfo $network_extralibs
|
yading@10
|
3821 check_func getservbyport $network_extralibs
|
yading@10
|
3822 # Prefer arpa/inet.h over winsock2
|
yading@10
|
3823 if check_header arpa/inet.h ; then
|
yading@10
|
3824 check_func closesocket
|
yading@10
|
3825 elif check_header winsock2.h ; then
|
yading@10
|
3826 check_func_headers winsock2.h closesocket -lws2 &&
|
yading@10
|
3827 network_extralibs="-lws2" ||
|
yading@10
|
3828 { check_func_headers winsock2.h closesocket -lws2_32 &&
|
yading@10
|
3829 network_extralibs="-lws2_32"; }
|
yading@10
|
3830 check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
|
yading@10
|
3831 check_type ws2tcpip.h socklen_t
|
yading@10
|
3832 check_type ws2tcpip.h "struct addrinfo"
|
yading@10
|
3833 check_type ws2tcpip.h "struct group_source_req"
|
yading@10
|
3834 check_type ws2tcpip.h "struct ip_mreq_source"
|
yading@10
|
3835 check_type ws2tcpip.h "struct ipv6_mreq"
|
yading@10
|
3836 check_type winsock2.h "struct pollfd"
|
yading@10
|
3837 check_type ws2tcpip.h "struct sockaddr_in6"
|
yading@10
|
3838 check_type ws2tcpip.h "struct sockaddr_storage"
|
yading@10
|
3839 check_struct winsock2.h "struct sockaddr" sa_len
|
yading@10
|
3840 else
|
yading@10
|
3841 disable network
|
yading@10
|
3842 fi
|
yading@10
|
3843 fi
|
yading@10
|
3844
|
yading@10
|
3845 # Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
|
yading@10
|
3846 check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
|
yading@10
|
3847
|
yading@10
|
3848 check_func access
|
yading@10
|
3849 check_func clock_gettime || { check_func clock_gettime -lrt && add_extralibs -lrt; }
|
yading@10
|
3850 check_func fcntl
|
yading@10
|
3851 check_func fork
|
yading@10
|
3852 check_func gethrtime
|
yading@10
|
3853 check_func getopt
|
yading@10
|
3854 check_func getrusage
|
yading@10
|
3855 check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
yading@10
|
3856 check_func gettimeofday
|
yading@10
|
3857 check_func inet_aton $network_extralibs
|
yading@10
|
3858 check_func isatty
|
yading@10
|
3859 check_func localtime_r
|
yading@10
|
3860 check_func ${malloc_prefix}memalign && enable memalign
|
yading@10
|
3861 check_func mkstemp
|
yading@10
|
3862 check_func mmap
|
yading@10
|
3863 check_func mprotect
|
yading@10
|
3864 check_func ${malloc_prefix}posix_memalign && enable posix_memalign
|
yading@10
|
3865 check_func_headers malloc.h _aligned_malloc && enable aligned_malloc
|
yading@10
|
3866 check_func setrlimit
|
yading@10
|
3867 check_func strerror_r
|
yading@10
|
3868 check_func sched_getaffinity
|
yading@10
|
3869 check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
|
yading@10
|
3870 check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
|
yading@10
|
3871 check_builtin atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
|
yading@10
|
3872 check_builtin MemoryBarrier windows.h "MemoryBarrier()"
|
yading@10
|
3873 check_func sysconf
|
yading@10
|
3874 check_func sysctl
|
yading@10
|
3875 check_func usleep
|
yading@10
|
3876 check_func_headers conio.h kbhit
|
yading@10
|
3877 check_func_headers windows.h PeekNamedPipe
|
yading@10
|
3878 check_func_headers io.h setmode
|
yading@10
|
3879 check_func_headers lzo/lzo1x.h lzo1x_999_compress
|
yading@10
|
3880 check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
|
yading@10
|
3881 check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
|
yading@10
|
3882 check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
|
yading@10
|
3883 check_func_headers windows.h GetProcessAffinityMask
|
yading@10
|
3884 check_func_headers windows.h GetProcessTimes
|
yading@10
|
3885 check_func_headers windows.h GetSystemTimeAsFileTime
|
yading@10
|
3886 check_func_headers windows.h MapViewOfFile
|
yading@10
|
3887 check_func_headers windows.h SetConsoleTextAttribute
|
yading@10
|
3888 check_func_headers windows.h Sleep
|
yading@10
|
3889 check_func_headers windows.h VirtualAlloc
|
yading@10
|
3890 check_func_headers glob.h glob
|
yading@10
|
3891
|
yading@10
|
3892 check_header direct.h
|
yading@10
|
3893 check_header dlfcn.h
|
yading@10
|
3894 check_header dxva.h
|
yading@10
|
3895 check_header dxva2api.h -D_WIN32_WINNT=0x0600
|
yading@10
|
3896 check_header io.h
|
yading@10
|
3897 check_header libcrystalhd/libcrystalhd_if.h
|
yading@10
|
3898 check_header malloc.h
|
yading@10
|
3899 check_header poll.h
|
yading@10
|
3900 check_header sys/mman.h
|
yading@10
|
3901 check_header sys/param.h
|
yading@10
|
3902 check_header sys/resource.h
|
yading@10
|
3903 check_header sys/select.h
|
yading@10
|
3904 check_header sys/time.h
|
yading@10
|
3905 check_header termios.h
|
yading@10
|
3906 check_header unistd.h
|
yading@10
|
3907 check_header vdpau/vdpau.h
|
yading@10
|
3908 check_header vdpau/vdpau_x11.h
|
yading@10
|
3909 check_header VideoDecodeAcceleration/VDADecoder.h
|
yading@10
|
3910 check_header windows.h
|
yading@10
|
3911 check_header X11/extensions/XvMClib.h
|
yading@10
|
3912 check_header asm/types.h
|
yading@10
|
3913
|
yading@10
|
3914 disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
|
yading@10
|
3915 disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
|
yading@10
|
3916
|
yading@10
|
3917 if ! disabled w32threads && ! enabled pthreads; then
|
yading@10
|
3918 check_func_headers "windows.h process.h" _beginthreadex && enable w32threads
|
yading@10
|
3919 fi
|
yading@10
|
3920
|
yading@10
|
3921 # check for some common methods of building with pthread support
|
yading@10
|
3922 # do this before the optional library checks as some of them require pthreads
|
yading@10
|
3923 if ! disabled pthreads && ! enabled w32threads && ! enabled os2threads; then
|
yading@10
|
3924 enable pthreads
|
yading@10
|
3925 if check_func pthread_create; then
|
yading@10
|
3926 :
|
yading@10
|
3927 elif check_func pthread_create -pthread; then
|
yading@10
|
3928 add_cflags -pthread
|
yading@10
|
3929 add_extralibs -pthread
|
yading@10
|
3930 elif check_func pthread_create -pthreads; then
|
yading@10
|
3931 add_cflags -pthreads
|
yading@10
|
3932 add_extralibs -pthreads
|
yading@10
|
3933 elif check_func pthread_create -lpthreadGC2; then
|
yading@10
|
3934 add_extralibs -lpthreadGC2
|
yading@10
|
3935 elif ! check_lib pthread.h pthread_create -lpthread; then
|
yading@10
|
3936 disable pthreads
|
yading@10
|
3937 fi
|
yading@10
|
3938 fi
|
yading@10
|
3939
|
yading@10
|
3940 for thread in $THREADS_LIST; do
|
yading@10
|
3941 if enabled $thread; then
|
yading@10
|
3942 test -n "$thread_type" &&
|
yading@10
|
3943 die "ERROR: Only one thread type must be selected." ||
|
yading@10
|
3944 thread_type="$thread"
|
yading@10
|
3945 fi
|
yading@10
|
3946 done
|
yading@10
|
3947
|
yading@10
|
3948 if enabled pthreads; then
|
yading@10
|
3949 check_func pthread_cancel
|
yading@10
|
3950 fi
|
yading@10
|
3951
|
yading@10
|
3952 enabled sync_val_compare_and_swap && enable atomics_gcc
|
yading@10
|
3953 enabled machine_rw_barrier && enabled atomic_cas_ptr && enable atomics_suncc
|
yading@10
|
3954 enabled MemoryBarrier && enable atomics_win32
|
yading@10
|
3955
|
yading@10
|
3956 check_lib math.h sin -lm && LIBM="-lm"
|
yading@10
|
3957 disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
|
yading@10
|
3958 enabled vaapi && require vaapi va/va.h vaInitialize -lva
|
yading@10
|
3959
|
yading@10
|
3960 atan2f_args=2
|
yading@10
|
3961 ldexpf_args=2
|
yading@10
|
3962 powf_args=2
|
yading@10
|
3963
|
yading@10
|
3964 for func in $MATH_FUNCS; do
|
yading@10
|
3965 eval check_mathfunc $func \${${func}_args:-1}
|
yading@10
|
3966 done
|
yading@10
|
3967
|
yading@10
|
3968 # these are off by default, so fail if requested and not available
|
yading@10
|
3969 enabled avisynth && { { check_lib2 "windows.h" LoadLibrary; } ||
|
yading@10
|
3970 { check_lib2 "dlfcn.h" dlopen -ldl; } ||
|
yading@10
|
3971 die "ERROR: LoadLibrary/dlopen not found for avisynth"; }
|
yading@10
|
3972 enabled fontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
|
yading@10
|
3973 enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; }
|
yading@10
|
3974 enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
|
yading@10
|
3975 enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
|
yading@10
|
3976 enabled libaacplus && require "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus
|
yading@10
|
3977 enabled libass && require_pkg_config libass ass/ass.h ass_library_init
|
yading@10
|
3978 enabled libbluray && require libbluray libbluray/bluray.h bd_open -lbluray
|
yading@10
|
3979 enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 &&
|
yading@10
|
3980 { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 ||
|
yading@10
|
3981 die "ERROR: libcelt must be installed and version must be >= 0.11.0."; }
|
yading@10
|
3982 enabled libcaca && require_pkg_config caca caca.h caca_create_canvas
|
yading@10
|
3983 enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
|
yading@10
|
3984 enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
|
yading@10
|
3985 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"
|
yading@10
|
3986 enabled libflite && require2 libflite "flite/flite.h" flite_init $flite_libs
|
yading@10
|
3987 enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType
|
yading@10
|
3988 enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
|
yading@10
|
3989 check_lib "${gsm_hdr}" gsm_create -lgsm && break;
|
yading@10
|
3990 done || die "ERROR: libgsm not found"; }
|
yading@10
|
3991 enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
|
yading@10
|
3992 enabled libmodplug && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug
|
yading@10
|
3993 enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
|
yading@10
|
3994 enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
|
yading@10
|
3995 enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
|
yading@10
|
3996 enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
|
yading@10
|
3997 enabled libopencv && require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader
|
yading@10
|
3998 enabled libopenjpeg && { check_lib openjpeg-1.5/openjpeg.h opj_version -lopenjpeg ||
|
yading@10
|
3999 check_lib openjpeg.h opj_version -lopenjpeg ||
|
yading@10
|
4000 die "ERROR: libopenjpeg not found"; }
|
yading@10
|
4001 enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
|
yading@10
|
4002 enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new
|
yading@10
|
4003 enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init
|
yading@10
|
4004 enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
|
yading@10
|
4005 enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
|
yading@10
|
4006 enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_frame
|
yading@10
|
4007 enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
|
yading@10
|
4008 enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
|
yading@10
|
4009 enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h
|
yading@10
|
4010 media/stagefright/MediaBufferGroup.h media/stagefright/MediaDebug.h media/stagefright/MediaDefs.h
|
yading@10
|
4011 media/stagefright/OMXClient.h media/stagefright/OMXCodec.h" android::OMXClient -lstagefright -lmedia -lutils -lbinder -lgnustl_static
|
yading@10
|
4012 enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
|
yading@10
|
4013 enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame &&
|
yading@10
|
4014 { check_lib twolame.h twolame_encode_buffer_float32_interleaved -ltwolame ||
|
yading@10
|
4015 die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; }
|
yading@10
|
4016 enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++
|
yading@10
|
4017 enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl
|
yading@10
|
4018 enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc
|
yading@10
|
4019 enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
|
yading@10
|
4020 enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
|
yading@10
|
4021 enabled libvpx && {
|
yading@10
|
4022 enabled libvpx_vp8_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
|
yading@10
|
4023 die "ERROR: libvpx decoder version must be >=0.9.1"; }
|
yading@10
|
4024 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 ||
|
yading@10
|
4025 die "ERROR: libvpx encoder version must be >=0.9.7"; }
|
yading@10
|
4026 enabled libvpx_vp9_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx" -lvpx || disable libvpx_vp9_decoder; }
|
yading@10
|
4027 enabled libvpx_vp9_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx" -lvpx || disable libvpx_vp9_encoder; } }
|
yading@10
|
4028 enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 &&
|
yading@10
|
4029 { check_cpp_condition x264.h "X264_BUILD >= 118" ||
|
yading@10
|
4030 die "ERROR: libx264 must be installed and version must be >= 0.118."; }
|
yading@10
|
4031 enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
|
yading@10
|
4032 enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
|
yading@10
|
4033 enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
|
yading@10
|
4034 check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } ||
|
yading@10
|
4035 die "ERROR: openal not found"; } &&
|
yading@10
|
4036 { check_cpp_condition "AL/al.h" "defined(AL_VERSION_1_1)" ||
|
yading@10
|
4037 die "ERROR: openal must be installed and version must be 1.1 or compatible"; }
|
yading@10
|
4038 enabled opencl && require2 opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL
|
yading@10
|
4039 enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
|
yading@10
|
4040 check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
|
yading@10
|
4041 check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
|
yading@10
|
4042 die "ERROR: openssl not found"; }
|
yading@10
|
4043
|
yading@10
|
4044 if enabled gnutls; then
|
yading@10
|
4045 { check_lib nettle/bignum.h nettle_mpz_get_str_256 -lnettle -lhogweed -lgmp && enable nettle; } ||
|
yading@10
|
4046 { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; }
|
yading@10
|
4047 fi
|
yading@10
|
4048
|
yading@10
|
4049 # libdc1394 check
|
yading@10
|
4050 if enabled libdc1394; then
|
yading@10
|
4051 { check_lib dc1394/dc1394.h dc1394_new -ldc1394 -lraw1394 &&
|
yading@10
|
4052 enable libdc1394_2; } ||
|
yading@10
|
4053 { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 &&
|
yading@10
|
4054 enable libdc1394_1; } ||
|
yading@10
|
4055 die "ERROR: No version of libdc1394 found "
|
yading@10
|
4056 fi
|
yading@10
|
4057
|
yading@10
|
4058 SDL_CONFIG="${cross_prefix}sdl-config"
|
yading@10
|
4059 if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
|
yading@10
|
4060 check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
|
yading@10
|
4061 check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
|
yading@10
|
4062 enable sdl
|
yading@10
|
4063 else
|
yading@10
|
4064 if "${SDL_CONFIG}" --version > /dev/null 2>&1; then
|
yading@10
|
4065 sdl_cflags=$("${SDL_CONFIG}" --cflags)
|
yading@10
|
4066 sdl_libs=$("${SDL_CONFIG}" --libs)
|
yading@10
|
4067 check_func_headers SDL_version.h SDL_Linked_Version $sdl_cflags $sdl_libs &&
|
yading@10
|
4068 check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
|
yading@10
|
4069 check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
|
yading@10
|
4070 enable sdl
|
yading@10
|
4071 fi
|
yading@10
|
4072 fi
|
yading@10
|
4073 enabled sdl && add_cflags $sdl_cflags && add_extralibs $sdl_libs
|
yading@10
|
4074
|
yading@10
|
4075 texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html
|
yading@10
|
4076 makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo
|
yading@10
|
4077 perl --version > /dev/null 2>&1 && enable perl || disable perl
|
yading@10
|
4078 pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
|
yading@10
|
4079 rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout
|
yading@10
|
4080
|
yading@10
|
4081 check_header linux/fb.h
|
yading@10
|
4082 check_header linux/videodev.h
|
yading@10
|
4083 check_header linux/videodev2.h
|
yading@10
|
4084 check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete
|
yading@10
|
4085
|
yading@10
|
4086 check_header sys/videoio.h
|
yading@10
|
4087
|
yading@10
|
4088 check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs"
|
yading@10
|
4089 # check that WM_CAP_DRIVER_CONNECT is defined to the proper value
|
yading@10
|
4090 # w32api 3.12 had it defined wrong
|
yading@10
|
4091 check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
|
yading@10
|
4092
|
yading@10
|
4093 check_type "dshow.h" IBaseFilter
|
yading@10
|
4094
|
yading@10
|
4095 # check for ioctl_meteor.h, ioctl_bt848.h and alternatives
|
yading@10
|
4096 { check_header dev/bktr/ioctl_meteor.h &&
|
yading@10
|
4097 check_header dev/bktr/ioctl_bt848.h; } ||
|
yading@10
|
4098 { check_header machine/ioctl_meteor.h &&
|
yading@10
|
4099 check_header machine/ioctl_bt848.h; } ||
|
yading@10
|
4100 { check_header dev/video/meteor/ioctl_meteor.h &&
|
yading@10
|
4101 check_header dev/video/bktr/ioctl_bt848.h; } ||
|
yading@10
|
4102 check_header dev/ic/bt8xx.h
|
yading@10
|
4103
|
yading@10
|
4104 check_header sndio.h
|
yading@10
|
4105 if check_struct sys/soundcard.h audio_buf_info bytes; then
|
yading@10
|
4106 enable_safe sys/soundcard.h
|
yading@10
|
4107 else
|
yading@10
|
4108 check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_safe sys/soundcard.h
|
yading@10
|
4109 #include <sys/soundcard.h>
|
yading@10
|
4110 audio_buf_info abc;
|
yading@10
|
4111 EOF
|
yading@10
|
4112 fi
|
yading@10
|
4113 check_header soundcard.h
|
yading@10
|
4114
|
yading@10
|
4115 enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
|
yading@10
|
4116
|
yading@10
|
4117 enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait &&
|
yading@10
|
4118 check_func jack_port_get_latency_range -ljack
|
yading@10
|
4119
|
yading@10
|
4120 enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
|
yading@10
|
4121
|
yading@10
|
4122 if enabled libcdio; then
|
yading@10
|
4123 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
|
yading@10
|
4124 fi
|
yading@10
|
4125
|
yading@10
|
4126 enabled x11grab &&
|
yading@10
|
4127 require X11 X11/Xlib.h XOpenDisplay -lX11 &&
|
yading@10
|
4128 require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
|
yading@10
|
4129 require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
|
yading@10
|
4130
|
yading@10
|
4131 if ! disabled vaapi; then
|
yading@10
|
4132 check_lib va/va.h vaInitialize -lva && {
|
yading@10
|
4133 check_cpp_condition va/va_version.h "VA_CHECK_VERSION(0,32,0)" ||
|
yading@10
|
4134 warn "Please upgrade to VA-API >= 0.32 if you would like full VA-API support.";
|
yading@10
|
4135 } || disable vaapi
|
yading@10
|
4136 fi
|
yading@10
|
4137
|
yading@10
|
4138 enabled vdpau &&
|
yading@10
|
4139 check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
|
yading@10
|
4140 disable vdpau
|
yading@10
|
4141
|
yading@10
|
4142 # Funny iconv installations are not unusual, so check it after all flags have been set
|
yading@10
|
4143 disabled iconv || check_func_headers iconv.h iconv || check_lib2 iconv.h iconv -liconv || disable iconv
|
yading@10
|
4144
|
yading@10
|
4145 enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
|
yading@10
|
4146 test -n "$valgrind" && target_exec="$valgrind --error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
|
yading@10
|
4147
|
yading@10
|
4148 # add some useful compiler flags if supported
|
yading@10
|
4149 check_cflags -Wdeclaration-after-statement
|
yading@10
|
4150 check_cflags -Wall
|
yading@10
|
4151 check_cflags -Wno-parentheses
|
yading@10
|
4152 check_cflags -Wno-switch
|
yading@10
|
4153 check_cflags -Wno-format-zero-length
|
yading@10
|
4154 check_cflags -Wdisabled-optimization
|
yading@10
|
4155 check_cflags -Wpointer-arith
|
yading@10
|
4156 check_cflags -Wredundant-decls
|
yading@10
|
4157 check_cflags -Wno-pointer-sign
|
yading@10
|
4158 check_cflags -Wwrite-strings
|
yading@10
|
4159 check_cflags -Wtype-limits
|
yading@10
|
4160 check_cflags -Wundef
|
yading@10
|
4161 check_cflags -Wmissing-prototypes
|
yading@10
|
4162 check_cflags -Wno-pointer-to-int-cast
|
yading@10
|
4163 check_cflags -Wstrict-prototypes
|
yading@10
|
4164 enabled extra_warnings && check_cflags -Winline
|
yading@10
|
4165
|
yading@10
|
4166 # add some linker flags
|
yading@10
|
4167 check_ldflags -Wl,--warn-common
|
yading@10
|
4168 check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
|
yading@10
|
4169 test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
|
yading@10
|
4170
|
yading@10
|
4171 enabled xmm_clobber_test &&
|
yading@10
|
4172 check_ldflags -Wl,--wrap,avcodec_open2 \
|
yading@10
|
4173 -Wl,--wrap,avcodec_decode_audio4 \
|
yading@10
|
4174 -Wl,--wrap,avcodec_decode_video2 \
|
yading@10
|
4175 -Wl,--wrap,avcodec_decode_subtitle2 \
|
yading@10
|
4176 -Wl,--wrap,avcodec_encode_audio2 \
|
yading@10
|
4177 -Wl,--wrap,avcodec_encode_video \
|
yading@10
|
4178 -Wl,--wrap,avcodec_encode_subtitle \
|
yading@10
|
4179 -Wl,--wrap,sws_scale ||
|
yading@10
|
4180 disable xmm_clobber_test
|
yading@10
|
4181
|
yading@10
|
4182 echo "X{};" > $TMPV
|
yading@10
|
4183 if test_ldflags -Wl,--version-script,$TMPV; then
|
yading@10
|
4184 append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
|
yading@10
|
4185 check_cc <<EOF && enable symver_asm_label
|
yading@10
|
4186 void ff_foo(void) __asm__ ("av_foo@VERSION");
|
yading@10
|
4187 void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
|
yading@10
|
4188 EOF
|
yading@10
|
4189 check_cc <<EOF && enable symver_gnu_asm
|
yading@10
|
4190 __asm__(".symver ff_foo,av_foo@VERSION");
|
yading@10
|
4191 void ff_foo(void) {}
|
yading@10
|
4192 EOF
|
yading@10
|
4193 fi
|
yading@10
|
4194
|
yading@10
|
4195 if [ -z "$optflags" ]; then
|
yading@10
|
4196 if enabled small; then
|
yading@10
|
4197 optflags=$cflags_size
|
yading@10
|
4198 elif enabled optimizations; then
|
yading@10
|
4199 optflags=$cflags_speed
|
yading@10
|
4200 else
|
yading@10
|
4201 optflags=$cflags_noopt
|
yading@10
|
4202 fi
|
yading@10
|
4203 fi
|
yading@10
|
4204
|
yading@10
|
4205 check_optflags(){
|
yading@10
|
4206 check_cflags "$@"
|
yading@10
|
4207 enabled lto && check_ldflags "$@"
|
yading@10
|
4208 }
|
yading@10
|
4209
|
yading@10
|
4210
|
yading@10
|
4211 if enabled lto; then
|
yading@10
|
4212 test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker"
|
yading@10
|
4213 check_cflags -flto
|
yading@10
|
4214 check_ldflags -flto $cpuflags
|
yading@10
|
4215 fi
|
yading@10
|
4216
|
yading@10
|
4217 check_optflags $optflags
|
yading@10
|
4218 check_optflags -fno-math-errno
|
yading@10
|
4219 check_optflags -fno-signed-zeros
|
yading@10
|
4220
|
yading@10
|
4221 enabled ftrapv && check_cflags -ftrapv
|
yading@10
|
4222
|
yading@10
|
4223 check_cc -mno-red-zone <<EOF && noredzone_flags="-mno-red-zone"
|
yading@10
|
4224 int x;
|
yading@10
|
4225 EOF
|
yading@10
|
4226
|
yading@10
|
4227
|
yading@10
|
4228 if enabled icc; then
|
yading@10
|
4229 # Just warnings, no remarks
|
yading@10
|
4230 check_cflags -w1
|
yading@10
|
4231 # -wd: Disable following warnings
|
yading@10
|
4232 # 144, 167, 556: -Wno-pointer-sign
|
yading@10
|
4233 # 188: enumerated type mixed with another type
|
yading@10
|
4234 # 1292: attribute "foo" ignored
|
yading@10
|
4235 # 1419: external declaration in primary source file
|
yading@10
|
4236 # 10006: ignoring unknown option -fno-signed-zeros
|
yading@10
|
4237 # 10148: ignoring unknown option -Wno-parentheses
|
yading@10
|
4238 # 10156: ignoring option '-W'; no argument required
|
yading@10
|
4239 check_cflags -wd144,167,188,556,1292,1419,10006,10148,10156
|
yading@10
|
4240 # 11030: Warning unknown option --as-needed
|
yading@10
|
4241 # 10156: ignoring option '-export'; no argument required
|
yading@10
|
4242 check_ldflags -wd10156,11030
|
yading@10
|
4243 # icc 11.0 and 11.1 work with ebp_available, but don't pass the test
|
yading@10
|
4244 enable ebp_available
|
yading@10
|
4245 if enabled x86_32; then
|
yading@10
|
4246 icc_version=$($cc -dumpversion)
|
yading@10
|
4247 test ${icc_version%%.*} -ge 11 &&
|
yading@10
|
4248 check_cflags -falign-stack=maintain-16-byte ||
|
yading@10
|
4249 disable aligned_stack
|
yading@10
|
4250 fi
|
yading@10
|
4251 elif enabled ccc; then
|
yading@10
|
4252 # disable some annoying warnings
|
yading@10
|
4253 add_cflags -msg_disable bitnotint
|
yading@10
|
4254 add_cflags -msg_disable mixfuncvoid
|
yading@10
|
4255 add_cflags -msg_disable nonstandcast
|
yading@10
|
4256 add_cflags -msg_disable unsupieee
|
yading@10
|
4257 elif enabled gcc; then
|
yading@10
|
4258 check_optflags -fno-tree-vectorize
|
yading@10
|
4259 check_cflags -Werror=implicit-function-declaration
|
yading@10
|
4260 check_cflags -Werror=missing-prototypes
|
yading@10
|
4261 check_cflags -Werror=return-type
|
yading@10
|
4262 check_cflags -Werror=vla
|
yading@10
|
4263 elif enabled llvm_gcc; then
|
yading@10
|
4264 check_cflags -mllvm -stack-alignment=16
|
yading@10
|
4265 elif enabled clang; then
|
yading@10
|
4266 check_cflags -mllvm -stack-alignment=16
|
yading@10
|
4267 check_cflags -Qunused-arguments
|
yading@10
|
4268 check_cflags -Werror=implicit-function-declaration
|
yading@10
|
4269 check_cflags -Werror=missing-prototypes
|
yading@10
|
4270 check_cflags -Werror=return-type
|
yading@10
|
4271 elif enabled armcc; then
|
yading@10
|
4272 # 2523: use of inline assembler is deprecated
|
yading@10
|
4273 add_cflags -W${armcc_opt},--diag_suppress=2523
|
yading@10
|
4274 add_cflags -W${armcc_opt},--diag_suppress=1207
|
yading@10
|
4275 add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
|
yading@10
|
4276 add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
|
yading@10
|
4277 add_cflags -W${armcc_opt},--diag_suppress=167 # pointer sign
|
yading@10
|
4278 add_cflags -W${armcc_opt},--diag_suppress=513 # pointer sign
|
yading@10
|
4279 elif enabled tms470; then
|
yading@10
|
4280 add_cflags -pds=824 -pds=837
|
yading@10
|
4281 elif enabled pathscale; then
|
yading@10
|
4282 add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF
|
yading@10
|
4283 elif enabled msvc; then
|
yading@10
|
4284 enabled x86_32 && disable aligned_stack
|
yading@10
|
4285 fi
|
yading@10
|
4286
|
yading@10
|
4287 case $target_os in
|
yading@10
|
4288 osf1)
|
yading@10
|
4289 enabled ccc && add_ldflags '-Wl,-expect_unresolved,*'
|
yading@10
|
4290 ;;
|
yading@10
|
4291 plan9)
|
yading@10
|
4292 add_cppflags -Dmain=plan9_main
|
yading@10
|
4293 ;;
|
yading@10
|
4294 esac
|
yading@10
|
4295
|
yading@10
|
4296 enable frame_thread_encoder
|
yading@10
|
4297 enabled_any $THREADS_LIST && enable threads
|
yading@10
|
4298 enabled_any $ATOMICS_LIST && enable atomics_native
|
yading@10
|
4299
|
yading@10
|
4300 enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
|
yading@10
|
4301
|
yading@10
|
4302 check_deps $CONFIG_LIST \
|
yading@10
|
4303 $CONFIG_EXTRA \
|
yading@10
|
4304 $HAVE_LIST \
|
yading@10
|
4305 $ALL_COMPONENTS \
|
yading@10
|
4306
|
yading@10
|
4307
|
yading@10
|
4308 if test $target_os = "haiku"; then
|
yading@10
|
4309 disable memalign
|
yading@10
|
4310 disable posix_memalign
|
yading@10
|
4311 fi
|
yading@10
|
4312
|
yading@10
|
4313 ! enabled_any memalign posix_memalign aligned_malloc &&
|
yading@10
|
4314 enabled_any $need_memalign && enable memalign_hack
|
yading@10
|
4315
|
yading@10
|
4316 # add_dep lib dep
|
yading@10
|
4317 # -> enable ${lib}_deps_${dep}
|
yading@10
|
4318 # -> add $dep to ${lib}_deps only once
|
yading@10
|
4319 add_dep() {
|
yading@10
|
4320 lib=$1
|
yading@10
|
4321 dep=$2
|
yading@10
|
4322 enabled "${lib}_deps_${dep}" && return 0
|
yading@10
|
4323 enable "${lib}_deps_${dep}"
|
yading@10
|
4324 prepend "${lib}_deps" $dep
|
yading@10
|
4325 }
|
yading@10
|
4326
|
yading@10
|
4327 # merge deps lib components
|
yading@10
|
4328 # merge all ${component}_deps into ${lib}_deps and ${lib}_deps_*
|
yading@10
|
4329 merge_deps() {
|
yading@10
|
4330 lib=$1
|
yading@10
|
4331 shift
|
yading@10
|
4332 for comp in $*; do
|
yading@10
|
4333 enabled $comp || continue
|
yading@10
|
4334 eval "dep=\"\$${comp}_deps\""
|
yading@10
|
4335 for d in $dep; do
|
yading@10
|
4336 add_dep $lib $d
|
yading@10
|
4337 done
|
yading@10
|
4338 done
|
yading@10
|
4339 }
|
yading@10
|
4340
|
yading@10
|
4341 merge_deps libavfilter $FILTER_LIST
|
yading@10
|
4342
|
yading@10
|
4343 echo "install prefix $prefix"
|
yading@10
|
4344 echo "source path $source_path"
|
yading@10
|
4345 echo "C compiler $cc"
|
yading@10
|
4346 echo "ARCH $arch ($cpu)"
|
yading@10
|
4347 if test "$build_suffix" != ""; then
|
yading@10
|
4348 echo "build suffix $build_suffix"
|
yading@10
|
4349 fi
|
yading@10
|
4350 if test "$progs_suffix" != ""; then
|
yading@10
|
4351 echo "progs suffix $progs_suffix"
|
yading@10
|
4352 fi
|
yading@10
|
4353 if test "$extra_version" != ""; then
|
yading@10
|
4354 echo "version string suffix $extra_version"
|
yading@10
|
4355 fi
|
yading@10
|
4356 echo "big-endian ${bigendian-no}"
|
yading@10
|
4357 echo "runtime cpu detection ${runtime_cpudetect-no}"
|
yading@10
|
4358 if enabled x86; then
|
yading@10
|
4359 echo "${yasmexe} ${yasm-no}"
|
yading@10
|
4360 echo "MMX enabled ${mmx-no}"
|
yading@10
|
4361 echo "MMXEXT enabled ${mmxext-no}"
|
yading@10
|
4362 echo "3DNow! enabled ${amd3dnow-no}"
|
yading@10
|
4363 echo "3DNow! extended enabled ${amd3dnowext-no}"
|
yading@10
|
4364 echo "SSE enabled ${sse-no}"
|
yading@10
|
4365 echo "SSSE3 enabled ${ssse3-no}"
|
yading@10
|
4366 echo "AVX enabled ${avx-no}"
|
yading@10
|
4367 echo "FMA4 enabled ${fma4-no}"
|
yading@10
|
4368 echo "CMOV enabled ${cmov-no}"
|
yading@10
|
4369 echo "CMOV is fast ${fast_cmov-no}"
|
yading@10
|
4370 echo "EBX available ${ebx_available-no}"
|
yading@10
|
4371 echo "EBP available ${ebp_available-no}"
|
yading@10
|
4372 fi
|
yading@10
|
4373 if enabled arm; then
|
yading@10
|
4374 echo "ARMv5TE enabled ${armv5te-no}"
|
yading@10
|
4375 echo "ARMv6 enabled ${armv6-no}"
|
yading@10
|
4376 echo "ARMv6T2 enabled ${armv6t2-no}"
|
yading@10
|
4377 echo "VFP enabled ${vfp-no}"
|
yading@10
|
4378 echo "NEON enabled ${neon-no}"
|
yading@10
|
4379 echo "THUMB enabled ${thumb-no}"
|
yading@10
|
4380 fi
|
yading@10
|
4381 if enabled mips; then
|
yading@10
|
4382 echo "MIPS FPU enabled ${mipsfpu-no}"
|
yading@10
|
4383 echo "MIPS32R2 enabled ${mips32r2-no}"
|
yading@10
|
4384 echo "MIPS DSP R1 enabled ${mipsdspr1-no}"
|
yading@10
|
4385 echo "MIPS DSP R2 enabled ${mipsdspr2-no}"
|
yading@10
|
4386 fi
|
yading@10
|
4387 if enabled ppc; then
|
yading@10
|
4388 echo "AltiVec enabled ${altivec-no}"
|
yading@10
|
4389 echo "PPC 4xx optimizations ${ppc4xx-no}"
|
yading@10
|
4390 echo "dcbzl available ${dcbzl-no}"
|
yading@10
|
4391 fi
|
yading@10
|
4392 if enabled sparc; then
|
yading@10
|
4393 echo "VIS enabled ${vis-no}"
|
yading@10
|
4394 fi
|
yading@10
|
4395 echo "debug symbols ${debug-no}"
|
yading@10
|
4396 echo "strip symbols ${stripping-no}"
|
yading@10
|
4397 echo "optimize for size ${small-no}"
|
yading@10
|
4398 echo "optimizations ${optimizations-no}"
|
yading@10
|
4399 echo "static ${static-no}"
|
yading@10
|
4400 echo "shared ${shared-no}"
|
yading@10
|
4401 echo "postprocessing support ${postproc-no}"
|
yading@10
|
4402 echo "new filter support ${avfilter-no}"
|
yading@10
|
4403 echo "network support ${network-no}"
|
yading@10
|
4404 echo "threading support ${thread_type-no}"
|
yading@10
|
4405 echo "safe bitstream reader ${safe_bitstream_reader-no}"
|
yading@10
|
4406 echo "SDL support ${sdl-no}"
|
yading@10
|
4407 echo "opencl enabled ${opencl-no}"
|
yading@10
|
4408 echo "libshine enabled ${libshine-no}"
|
yading@10
|
4409 echo "texi2html enabled ${texi2html-no}"
|
yading@10
|
4410 echo "perl enabled ${perl-no}"
|
yading@10
|
4411 echo "pod2man enabled ${pod2man-no}"
|
yading@10
|
4412 echo "makeinfo enabled ${makeinfo-no}"
|
yading@10
|
4413 test -n "$random_seed" &&
|
yading@10
|
4414 echo "random seed ${random_seed}"
|
yading@10
|
4415 echo
|
yading@10
|
4416
|
yading@10
|
4417 echo "External libraries:"
|
yading@10
|
4418 print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns
|
yading@10
|
4419 echo
|
yading@10
|
4420
|
yading@10
|
4421 for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
|
yading@10
|
4422 echo "Enabled ${type}s:"
|
yading@10
|
4423 eval list=\$$(toupper $type)_LIST
|
yading@10
|
4424 print_enabled '_*' $list | print_3_columns
|
yading@10
|
4425 echo
|
yading@10
|
4426 done
|
yading@10
|
4427
|
yading@10
|
4428 license="LGPL version 2.1 or later"
|
yading@10
|
4429 if enabled nonfree; then
|
yading@10
|
4430 license="nonfree and unredistributable"
|
yading@10
|
4431 elif enabled gplv3; then
|
yading@10
|
4432 license="GPL version 3 or later"
|
yading@10
|
4433 elif enabled lgplv3; then
|
yading@10
|
4434 license="LGPL version 3 or later"
|
yading@10
|
4435 elif enabled gpl; then
|
yading@10
|
4436 license="GPL version 2 or later"
|
yading@10
|
4437 fi
|
yading@10
|
4438
|
yading@10
|
4439 echo "License: $license"
|
yading@10
|
4440
|
yading@10
|
4441 echo "Creating config.mak, config.h, and doc/config.texi..."
|
yading@10
|
4442
|
yading@10
|
4443 test -e Makefile || $ln_s "$source_path/Makefile" .
|
yading@10
|
4444
|
yading@10
|
4445 enabled stripping || strip="echo skipping strip"
|
yading@10
|
4446
|
yading@10
|
4447 config_files="$TMPH config.mak doc/config.texi"
|
yading@10
|
4448
|
yading@10
|
4449 cat > config.mak <<EOF
|
yading@10
|
4450 # Automatically generated by configure - do not modify!
|
yading@10
|
4451 ifndef FFMPEG_CONFIG_MAK
|
yading@10
|
4452 FFMPEG_CONFIG_MAK=1
|
yading@10
|
4453 FFMPEG_CONFIGURATION=$FFMPEG_CONFIGURATION
|
yading@10
|
4454 prefix=$prefix
|
yading@10
|
4455 LIBDIR=\$(DESTDIR)$libdir
|
yading@10
|
4456 SHLIBDIR=\$(DESTDIR)$shlibdir
|
yading@10
|
4457 INCDIR=\$(DESTDIR)$incdir
|
yading@10
|
4458 BINDIR=\$(DESTDIR)$bindir
|
yading@10
|
4459 DATADIR=\$(DESTDIR)$datadir
|
yading@10
|
4460 MANDIR=\$(DESTDIR)$mandir
|
yading@10
|
4461 SRC_PATH=$source_path
|
yading@10
|
4462 ifndef MAIN_MAKEFILE
|
yading@10
|
4463 SRC_PATH:=\$(SRC_PATH:.%=..%)
|
yading@10
|
4464 endif
|
yading@10
|
4465 CC_IDENT=$cc_ident
|
yading@10
|
4466 ARCH=$arch
|
yading@10
|
4467 CC=$cc
|
yading@10
|
4468 CXX=$cxx
|
yading@10
|
4469 AS=$as
|
yading@10
|
4470 LD=$ld
|
yading@10
|
4471 DEPCC=$dep_cc
|
yading@10
|
4472 DEPCCFLAGS=$DEPCCFLAGS \$(CPPFLAGS)
|
yading@10
|
4473 DEPAS=$as
|
yading@10
|
4474 DEPASFLAGS=$DEPASFLAGS \$(CPPFLAGS)
|
yading@10
|
4475 YASM=$yasmexe
|
yading@10
|
4476 DEPYASM=$yasmexe
|
yading@10
|
4477 AR=$ar
|
yading@10
|
4478 ARFLAGS=$arflags
|
yading@10
|
4479 AR_O=$ar_o
|
yading@10
|
4480 RANLIB=$ranlib
|
yading@10
|
4481 CP=cp -p
|
yading@10
|
4482 LN_S=$ln_s
|
yading@10
|
4483 STRIP=$strip
|
yading@10
|
4484 CPPFLAGS=$CPPFLAGS
|
yading@10
|
4485 CFLAGS=$CFLAGS
|
yading@10
|
4486 CXXFLAGS=$CXXFLAGS
|
yading@10
|
4487 ASFLAGS=$ASFLAGS
|
yading@10
|
4488 AS_C=$AS_C
|
yading@10
|
4489 AS_O=$AS_O
|
yading@10
|
4490 CC_C=$CC_C
|
yading@10
|
4491 CC_E=$CC_E
|
yading@10
|
4492 CC_O=$CC_O
|
yading@10
|
4493 CXX_C=$CXX_C
|
yading@10
|
4494 CXX_O=$CXX_O
|
yading@10
|
4495 LD_O=$LD_O
|
yading@10
|
4496 LD_LIB=$LD_LIB
|
yading@10
|
4497 LD_PATH=$LD_PATH
|
yading@10
|
4498 DLLTOOL=$dlltool
|
yading@10
|
4499 LDFLAGS=$LDFLAGS
|
yading@10
|
4500 LDFLAGS-ffserver=$FFSERVERLDFLAGS
|
yading@10
|
4501 SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
|
yading@10
|
4502 YASMFLAGS=$YASMFLAGS
|
yading@10
|
4503 BUILDSUF=$build_suffix
|
yading@10
|
4504 PROGSSUF=$progs_suffix
|
yading@10
|
4505 FULLNAME=$FULLNAME
|
yading@10
|
4506 LIBPREF=$LIBPREF
|
yading@10
|
4507 LIBSUF=$LIBSUF
|
yading@10
|
4508 LIBNAME=$LIBNAME
|
yading@10
|
4509 SLIBPREF=$SLIBPREF
|
yading@10
|
4510 SLIBSUF=$SLIBSUF
|
yading@10
|
4511 EXESUF=$EXESUF
|
yading@10
|
4512 EXTRA_VERSION=$extra_version
|
yading@10
|
4513 CCDEP=$CCDEP
|
yading@10
|
4514 CXXDEP=$CXXDEP
|
yading@10
|
4515 CCDEP_FLAGS=$CCDEP_FLAGS
|
yading@10
|
4516 ASDEP=$ASDEP
|
yading@10
|
4517 ASDEP_FLAGS=$ASDEP_FLAGS
|
yading@10
|
4518 CC_DEPFLAGS=$CC_DEPFLAGS
|
yading@10
|
4519 AS_DEPFLAGS=$AS_DEPFLAGS
|
yading@10
|
4520 HOSTCC=$host_cc
|
yading@10
|
4521 HOSTLD=$host_ld
|
yading@10
|
4522 HOSTCFLAGS=$host_cflags
|
yading@10
|
4523 HOSTCPPFLAGS=$host_cppflags
|
yading@10
|
4524 HOSTEXESUF=$HOSTEXESUF
|
yading@10
|
4525 HOSTLDFLAGS=$host_ldflags
|
yading@10
|
4526 HOSTLIBS=$host_libs
|
yading@10
|
4527 DEPHOSTCC=$host_cc
|
yading@10
|
4528 DEPHOSTCCFLAGS=$DEPHOSTCCFLAGS \$(HOSTCCFLAGS)
|
yading@10
|
4529 HOSTCCDEP=$HOSTCCDEP
|
yading@10
|
4530 HOSTCCDEP_FLAGS=$HOSTCCDEP_FLAGS
|
yading@10
|
4531 HOSTCC_DEPFLAGS=$HOSTCC_DEPFLAGS
|
yading@10
|
4532 HOSTCC_C=$HOSTCC_C
|
yading@10
|
4533 HOSTCC_O=$HOSTCC_O
|
yading@10
|
4534 HOSTLD_O=$HOSTLD_O
|
yading@10
|
4535 TARGET_EXEC=$target_exec
|
yading@10
|
4536 TARGET_PATH=$target_path
|
yading@10
|
4537 LIBS-ffplay=$sdl_libs
|
yading@10
|
4538 CFLAGS-ffplay=$sdl_cflags
|
yading@10
|
4539 ZLIB=$($ldflags_filter -lz)
|
yading@10
|
4540 LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
|
yading@10
|
4541 EXTRALIBS=$extralibs
|
yading@10
|
4542 COMPAT_OBJS=$compat_objs
|
yading@10
|
4543 EXEOBJS=$exeobjs
|
yading@10
|
4544 INSTALL=$install
|
yading@10
|
4545 LIBTARGET=${LIBTARGET}
|
yading@10
|
4546 SLIBNAME=${SLIBNAME}
|
yading@10
|
4547 SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
|
yading@10
|
4548 SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
|
yading@10
|
4549 SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}
|
yading@10
|
4550 SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}
|
yading@10
|
4551 SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME}
|
yading@10
|
4552 SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
|
yading@10
|
4553 SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
|
yading@10
|
4554 SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
|
yading@10
|
4555 SAMPLES:=${samples:-\$(FATE_SAMPLES)}
|
yading@10
|
4556 NOREDZONE_FLAGS=$noredzone_flags
|
yading@10
|
4557 EOF
|
yading@10
|
4558
|
yading@10
|
4559 get_version(){
|
yading@10
|
4560 lcname=lib${1}
|
yading@10
|
4561 name=$(toupper $lcname)
|
yading@10
|
4562 file=$source_path/$lcname/version.h
|
yading@10
|
4563 eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
|
yading@10
|
4564 eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
|
yading@10
|
4565 eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
|
yading@10
|
4566 eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
|
yading@10
|
4567 eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak
|
yading@10
|
4568 }
|
yading@10
|
4569
|
yading@10
|
4570 map 'get_version $v' $LIBRARY_LIST
|
yading@10
|
4571
|
yading@10
|
4572 cat > $TMPH <<EOF
|
yading@10
|
4573 /* Automatically generated by configure - do not modify! */
|
yading@10
|
4574 #ifndef FFMPEG_CONFIG_H
|
yading@10
|
4575 #define FFMPEG_CONFIG_H
|
yading@10
|
4576 #define FFMPEG_CONFIGURATION "$(c_escape $FFMPEG_CONFIGURATION)"
|
yading@10
|
4577 #define FFMPEG_LICENSE "$(c_escape $license)"
|
yading@10
|
4578 #define FFMPEG_DATADIR "$(eval c_escape $datadir)"
|
yading@10
|
4579 #define AVCONV_DATADIR "$(eval c_escape $datadir)"
|
yading@10
|
4580 #define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
|
yading@10
|
4581 #define av_restrict $_restrict
|
yading@10
|
4582 #define EXTERN_PREFIX "${extern_prefix}"
|
yading@10
|
4583 #define EXTERN_ASM ${extern_prefix}
|
yading@10
|
4584 #define SLIBSUF "$SLIBSUF"
|
yading@10
|
4585 #define HAVE_MMX2 HAVE_MMXEXT
|
yading@10
|
4586 EOF
|
yading@10
|
4587
|
yading@10
|
4588 test -n "$assert_level" &&
|
yading@10
|
4589 echo "#define ASSERT_LEVEL $assert_level" >>$TMPH
|
yading@10
|
4590
|
yading@10
|
4591 test -n "$malloc_prefix" &&
|
yading@10
|
4592 echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH
|
yading@10
|
4593
|
yading@10
|
4594 if enabled yasm; then
|
yading@10
|
4595 append config_files $TMPASM
|
yading@10
|
4596 printf '' >$TMPASM
|
yading@10
|
4597 fi
|
yading@10
|
4598
|
yading@10
|
4599 mkdir -p doc
|
yading@10
|
4600 echo "@c auto-generated by configure" > doc/config.texi
|
yading@10
|
4601
|
yading@10
|
4602 print_config ARCH_ "$config_files" $ARCH_LIST
|
yading@10
|
4603 print_config HAVE_ "$config_files" $HAVE_LIST
|
yading@10
|
4604 print_config CONFIG_ "$config_files" $CONFIG_LIST \
|
yading@10
|
4605 $CONFIG_EXTRA \
|
yading@10
|
4606 $ALL_COMPONENTS \
|
yading@10
|
4607
|
yading@10
|
4608 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
|
yading@10
|
4609 echo "endif # FFMPEG_CONFIG_MAK" >> config.mak
|
yading@10
|
4610
|
yading@10
|
4611 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
|
yading@10
|
4612 cp_if_changed $TMPH config.h
|
yading@10
|
4613 touch .config
|
yading@10
|
4614
|
yading@10
|
4615 enabled yasm && cp_if_changed $TMPASM config.asm
|
yading@10
|
4616
|
yading@10
|
4617 cat > $TMPH <<EOF
|
yading@10
|
4618 /* Generated by ffconf */
|
yading@10
|
4619 #ifndef AVUTIL_AVCONFIG_H
|
yading@10
|
4620 #define AVUTIL_AVCONFIG_H
|
yading@10
|
4621 EOF
|
yading@10
|
4622
|
yading@10
|
4623 print_config AV_HAVE_ $TMPH $HAVE_LIST_PUB
|
yading@10
|
4624
|
yading@10
|
4625 echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
|
yading@10
|
4626
|
yading@10
|
4627 cp_if_changed $TMPH libavutil/avconfig.h
|
yading@10
|
4628
|
yading@10
|
4629 if test -n "$WARNINGS"; then
|
yading@10
|
4630 printf "\n$WARNINGS"
|
yading@10
|
4631 enabled fatal_warnings && exit 1
|
yading@10
|
4632 fi
|
yading@10
|
4633
|
yading@10
|
4634 # build pkg-config files
|
yading@10
|
4635
|
yading@10
|
4636 pkgconfig_generate(){
|
yading@10
|
4637 name=$1
|
yading@10
|
4638 shortname=${name#lib}${build_suffix}
|
yading@10
|
4639 comment=$2
|
yading@10
|
4640 version=$3
|
yading@10
|
4641 libs=$4
|
yading@10
|
4642 requires=$5
|
yading@10
|
4643 enabled ${name#lib} || return 0
|
yading@10
|
4644 mkdir -p $name
|
yading@10
|
4645 cat <<EOF > $name/$name${build_suffix}.pc
|
yading@10
|
4646 prefix=$prefix
|
yading@10
|
4647 exec_prefix=\${prefix}
|
yading@10
|
4648 libdir=$libdir
|
yading@10
|
4649 includedir=$incdir
|
yading@10
|
4650
|
yading@10
|
4651 Name: $name
|
yading@10
|
4652 Description: $comment
|
yading@10
|
4653 Version: $version
|
yading@10
|
4654 Requires: $(enabled shared || echo $requires)
|
yading@10
|
4655 Requires.private: $(enabled shared && echo $requires)
|
yading@10
|
4656 Conflicts:
|
yading@10
|
4657 Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs)
|
yading@10
|
4658 Libs.private: $(enabled shared && echo $libs)
|
yading@10
|
4659 Cflags: -I\${includedir}
|
yading@10
|
4660 EOF
|
yading@10
|
4661
|
yading@10
|
4662 mkdir -p doc/examples/pc-uninstalled
|
yading@10
|
4663 includedir=${source_path}
|
yading@10
|
4664 [ "$includedir" = . ] && includedir="\${pcfiledir}/../../.."
|
yading@10
|
4665 cat <<EOF > doc/examples/pc-uninstalled/$name.pc
|
yading@10
|
4666 prefix=
|
yading@10
|
4667 exec_prefix=
|
yading@10
|
4668 libdir=\${pcfiledir}/../../../$name
|
yading@10
|
4669 includedir=${includedir}
|
yading@10
|
4670
|
yading@10
|
4671 Name: $name
|
yading@10
|
4672 Description: $comment
|
yading@10
|
4673 Version: $version
|
yading@10
|
4674 Requires: $requires
|
yading@10
|
4675 Conflicts:
|
yading@10
|
4676 Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs)
|
yading@10
|
4677 Cflags: -I\${includedir}
|
yading@10
|
4678 EOF
|
yading@10
|
4679 }
|
yading@10
|
4680
|
yading@10
|
4681 libavfilter_pc_deps="libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4682 enabled libavfilter_deps_avcodec && prepend libavfilter_pc_deps "libavcodec${build_suffix} = $LIBAVCODEC_VERSION,"
|
yading@10
|
4683 enabled libavfilter_deps_avformat && prepend libavfilter_pc_deps "libavformat${build_suffix} = $LIBAVFORMAT_VERSION,"
|
yading@10
|
4684 enabled libavfilter_deps_avresample && prepend libavfilter_pc_deps "libavresample${build_suffix} = $LIBAVRESAMPLE_VERSION,"
|
yading@10
|
4685 enabled libavfilter_deps_swscale && prepend libavfilter_pc_deps "libswscale${build_suffix} = $LIBSWSCALE_VERSION,"
|
yading@10
|
4686 enabled libavfilter_deps_swresample && prepend libavfilter_pc_deps "libswresample${build_suffix} = $LIBSWRESAMPLE_VERSION,"
|
yading@10
|
4687 enabled libavfilter_deps_postproc && prepend libavfilter_pc_deps "libpostproc${build_suffix} = $LIBPOSTPROC_VERSION,"
|
yading@10
|
4688 libavfilter_pc_deps=${libavfilter_pc_deps%, }
|
yading@10
|
4689
|
yading@10
|
4690 libavdevice_pc_deps="libavformat${build_suffix} = $LIBAVFORMAT_VERSION"
|
yading@10
|
4691 enabled lavfi_indev && prepend libavdevice_pc_deps "libavfilter${build_suffix} = $LIBAVFILTER_VERSION,"
|
yading@10
|
4692
|
yading@10
|
4693 pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" "$LIBM"
|
yading@10
|
4694 pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4695 pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec${build_suffix} = $LIBAVCODEC_VERSION"
|
yading@10
|
4696 pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "$libavdevice_pc_deps"
|
yading@10
|
4697 pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$libavfilter_pc_deps"
|
yading@10
|
4698 pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4699 pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4700 pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4701 pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM" "libavutil${build_suffix} = $LIBAVUTIL_VERSION"
|
yading@10
|
4702
|
yading@10
|
4703 fix_ffmpeg_remote(){
|
yading@10
|
4704 git_remote_from=$1
|
yading@10
|
4705 git_remote_to=$2
|
yading@10
|
4706 fixme_remote=$(git --git-dir=$source_path/.git --work-tree=$source_path remote -v | grep $git_remote_from | cut -f 1 | sort | uniq)
|
yading@10
|
4707 if [ "$fixme_remote" != "" ]; then
|
yading@10
|
4708 echolog "
|
yading@10
|
4709 Outdated domain in git config, the official domain for ffmpeg git is since
|
yading@10
|
4710 November 2011, source.ffmpeg.org, both the old and the new point to the same
|
yading@10
|
4711 repository and server. To update it enter the following commands:
|
yading@10
|
4712 "
|
yading@10
|
4713 for remote in $fixme_remote; do
|
yading@10
|
4714 echolog "git remote set-url $remote $git_remote_to"
|
yading@10
|
4715 done
|
yading@10
|
4716 fi
|
yading@10
|
4717 }
|
yading@10
|
4718
|
yading@10
|
4719 if test -f "$source_path/.git/config"; then
|
yading@10
|
4720 remote_from=git.videolan.org
|
yading@10
|
4721 remote_to=source.ffmpeg.org
|
yading@10
|
4722 fix_ffmpeg_remote git@$remote_from:ffmpeg git@$remote_to:ffmpeg
|
yading@10
|
4723 fix_ffmpeg_remote git://$remote_from/ffmpeg git://$remote_to/ffmpeg
|
yading@10
|
4724 fi
|