Remove unused static functions asx_list_add() and asx_list_remove().
[mplayer/glamo.git] / configure
blob6e485ece3d425034ae0bfda89e8fc29c4ea53517
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm*) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
284 --disable-ass disable SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --enable-liba52-internal enable builtin liba52 [disabled]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
345 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
346 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
347 --disable-decoder=DECODER disable specified FFmpeg decoder
348 --enable-decoder=DECODER enable specified FFmpeg decoder
349 --disable-encoder=ENCODER disable specified FFmpeg encoder
350 --enable-encoder=ENCODER enable specified FFmpeg encoder
351 --disable-parser=PARSER disable specified FFmpeg parser
352 --enable-parser=PARSER enable specified FFmpeg parser
353 --disable-protocol=PROTO disable specified FFmpeg protocol
354 --enable-protocol=PROTO enable specified FFmpeg protocol
355 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
356 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
357 --disable-muxer=MUXER disable specified FFmpeg muxer
358 --enable-muxer=MUXER enable specified FFmpeg muxer
360 Video output:
361 --disable-vidix disable VIDIX [for x86 *nix]
362 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
363 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
364 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
365 --disable-vidix-pcidb disable VIDIX PCI device name database
366 --enable-dhahelper enable VIDIX dhahelper support
367 --enable-svgalib_helper enable VIDIX svgalib_helper support
368 --enable-gl enable OpenGL video output [autodetect]
369 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
370 --enable-dga2 enable DGA 2 support [autodetect]
371 --enable-dga1 enable DGA 1 support [autodetect]
372 --enable-vesa enable VESA video output [autodetect]
373 --enable-svga enable SVGAlib video output [autodetect]
374 --enable-sdl enable SDL video output [autodetect]
375 --enable-kva enable KVA video output [autodetect]
376 --enable-aa enable AAlib video output [autodetect]
377 --enable-caca enable CACA video output [autodetect]
378 --enable-ggi enable GGI video output [autodetect]
379 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
380 --enable-direct3d enable Direct3D video output [autodetect]
381 --enable-directx enable DirectX video output [autodetect]
382 --enable-dxr2 enable DXR2 video output [autodetect]
383 --enable-dxr3 enable DXR3/H+ video output [autodetect]
384 --enable-ivtv enable IVTV TV-Out video output [autodetect]
385 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
386 --enable-dvb enable DVB video output [autodetect]
387 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
388 --enable-mga enable mga_vid video output [autodetect]
389 --enable-xmga enable mga_vid X11 video output [autodetect]
390 --enable-xv enable Xv video output [autodetect]
391 --enable-xvmc enable XvMC acceleration [disable]
392 --enable-vdpau enable VDPAU acceleration [autodetect]
393 --enable-vm enable XF86VidMode support [autodetect]
394 --enable-xinerama enable Xinerama support [autodetect]
395 --enable-x11 enable X11 video output [autodetect]
396 --enable-xshape enable XShape support [autodetect]
397 --disable-xss disable screensaver support via xss [autodetect]
398 --enable-fbdev enable FBDev video output [autodetect]
399 --enable-mlib enable mediaLib video output (Solaris) [disable]
400 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
401 --enable-tdfxfb enable tdfxfb video output [disable]
402 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
403 --enable-wii enable Nintendo Wii/GameCube video output [disable]
404 --enable-directfb enable DirectFB video output [autodetect]
405 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
406 --enable-bl enable Blinkenlights video output [disable]
407 --enable-tdfxvid enable tdfx_vid video output [disable]
408 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
409 --disable-tga disable Targa video output [enable]
410 --disable-pnm disable PNM video output [enable]
411 --disable-md5sum disable md5sum video output [enable]
412 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
413 --disable-corevideo disable CoreVideo video output [autodetect]
414 --disable-quartz disable Quartz video output [autodetect]
416 Audio output:
417 --disable-alsa disable ALSA audio output [autodetect]
418 --disable-ossaudio disable OSS audio output [autodetect]
419 --disable-arts disable aRts audio output [autodetect]
420 --disable-esd disable esd audio output [autodetect]
421 --disable-pulse disable Pulseaudio audio output [autodetect]
422 --disable-jack disable JACK audio output [autodetect]
423 --disable-openal disable OpenAL audio output [autodetect]
424 --disable-nas disable NAS audio output [autodetect]
425 --disable-sgiaudio disable SGI audio output [autodetect]
426 --disable-sunaudio disable Sun audio output [autodetect]
427 --disable-kai disable KAI audio output [autodetect]
428 --disable-dart disable DART audio output [autodetect]
429 --disable-win32waveout disable Windows waveout audio output [autodetect]
430 --disable-coreaudio disable CoreAudio audio output [autodetect]
431 --disable-select disable using select() on the audio device [enable]
433 Language options:
434 --charset=charset convert the console messages to this character set
435 --language-doc=lang language to use for the documentation [en]
436 --language-man=lang language to use for the man pages [en]
437 --language-msg=lang language to use for the messages and the GUI [en]
438 --language=lang default language to use [en]
439 Specific options override --language. You can pass a list of languages separated
440 by whitespace or commas instead of a single language. Nonexisting translations
441 will be dropped from each list. All documentation and man page translations
442 available in the list will be installed, for the messages the first available
443 translation will be used. The value "all" will activate all translations. The
444 LINGUAS environment variable is honored. In all cases the fallback is English.
445 Available values are: all $msg_lang_all
447 Miscellaneous options:
448 --enable-runtime-cpudetection enable runtime CPU detection [disable]
449 --enable-cross-compile enable cross-compilation [autodetect]
450 --cc=COMPILER C compiler to build MPlayer [gcc]
451 --host-cc=COMPILER C compiler for tools needed while building [gcc]
452 --as=ASSEMBLER assembler to build MPlayer [as]
453 --nm=NM nm tool to build MPlayer [nm]
454 --yasm=YASM Yasm assembler to build MPlayer [yasm]
455 --ar=AR librarian to build MPlayer [ar]
456 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
457 --windres=WINDRES windres to build MPlayer [windres]
458 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
459 --enable-static build a statically linked binary
460 --with-install=PATH path to a custom install program
462 Advanced options:
463 --enable-mmx enable MMX [autodetect]
464 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
465 --enable-3dnow enable 3DNow! [autodetect]
466 --enable-3dnowext enable extended 3DNow! [autodetect]
467 --enable-sse enable SSE [autodetect]
468 --enable-sse2 enable SSE2 [autodetect]
469 --enable-ssse3 enable SSSE3 [autodetect]
470 --enable-shm enable shm [autodetect]
471 --enable-altivec enable AltiVec (PowerPC) [autodetect]
472 --enable-armv5te enable DSP extensions (ARM) [autodetect]
473 --enable-armv6 enable ARMv6 (ARM) [autodetect]
474 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
475 --enable-armvfp enable ARM VFP (ARM) [autodetect]
476 --enable-neon enable NEON (ARM) [autodetect]
477 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
478 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
479 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
480 --enable-big-endian force byte order to big-endian [autodetect]
481 --enable-debug[=1-3] compile-in debugging information [disable]
482 --enable-profile compile-in profiling information [disable]
483 --disable-sighandler disable sighandler for crashes [enable]
484 --enable-crash-debug enable automatic gdb attach on crash [disable]
485 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
487 Use these options if autodetection fails:
488 --extra-cflags=FLAGS extra CFLAGS
489 --extra-ldflags=FLAGS extra LDFLAGS
490 --extra-libs=FLAGS extra linker flags
491 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
492 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
493 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
495 --with-freetype-config=PATH path to freetype-config
496 --with-fribidi-config=PATH path to fribidi-config
497 --with-glib-config=PATH path to glib*-config
498 --with-gtk-config=PATH path to gtk*-config
499 --with-sdl-config=PATH path to sdl*-config
500 --with-dvdnav-config=PATH path to dvdnav-config
501 --with-dvdread-config=PATH path to dvdread-config
503 This configure script is NOT autoconf-based, even though its output is similar.
504 It will try to autodetect all configuration options. If you --enable an option
505 it will be forcefully turned on, skipping autodetection. This can break
506 compilation, so you need to know what you are doing.
508 exit 0
509 } #show_help()
511 # GOTCHA: the variables below defines the default behavior for autodetection
512 # and have - unless stated otherwise - at least 2 states : yes no
513 # If autodetection is available then the third state is: auto
514 _mmx=auto
515 _3dnow=auto
516 _3dnowext=auto
517 _mmxext=auto
518 _sse=auto
519 _sse2=auto
520 _ssse3=auto
521 _cmov=auto
522 _fast_cmov=auto
523 _fast_clz=auto
524 _armv5te=auto
525 _armv6=auto
526 _armv6t2=auto
527 _armvfp=auto
528 neon=auto
529 _iwmmxt=auto
530 _mtrr=auto
531 _altivec=auto
532 _install=install
533 _ranlib=ranlib
534 _windres=windres
535 _cc=cc
536 _ar=ar
537 test "$CC" && _cc="$CC"
538 _as=auto
539 _nm=auto
540 _yasm=yasm
541 _runtime_cpudetection=no
542 _cross_compile=auto
543 _prefix="/usr/local"
544 _libavutil_a=auto
545 _libavutil_so=auto
546 _libavcodec_a=auto
547 _libopencore_amrnb=auto
548 _libopencore_amrwb=auto
549 libopenjpeg=auto
550 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
551 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
552 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
553 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
554 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
555 _libavparsers=$_libavparsers_all
556 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
557 _libavbsfs=$_libavbsfs_all
558 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
559 # Disable all hardware accelerators for now.
560 _libavhwaccels=
561 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
562 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
563 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
564 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
565 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
566 _libavprotocols=$_libavprotocols_all
567 _libavcodec_so=auto
568 _libavformat_a=auto
569 _libavformat_so=auto
570 _libpostproc_a=auto
571 _libpostproc_so=auto
572 _libswscale_a=auto
573 _libswscale_so=auto
574 _libavcodec_mpegaudio_hp=yes
575 _mencoder=yes
576 _mplayer=yes
577 _x11=auto
578 _xshape=auto
579 _xss=auto
580 _dga1=auto
581 _dga2=auto
582 _xv=auto
583 _xvmc=no #auto when complete
584 _vdpau=auto
585 _sdl=auto
586 _kva=auto
587 _direct3d=auto
588 _directx=auto
589 _win32waveout=auto
590 _nas=auto
591 _png=auto
592 _mng=auto
593 _jpeg=auto
594 _pnm=yes
595 _md5sum=yes
596 _yuv4mpeg=yes
597 _gif=auto
598 _gl=auto
599 matrixview=yes
600 _ggi=auto
601 _ggiwmh=auto
602 _aa=auto
603 _caca=auto
604 _svga=auto
605 _vesa=auto
606 _fbdev=auto
607 _dvb=auto
608 _dvbhead=auto
609 _dxr2=auto
610 _dxr3=auto
611 _ivtv=auto
612 _v4l2=auto
613 _iconv=auto
614 _langinfo=auto
615 _rtc=auto
616 _ossaudio=auto
617 _arts=auto
618 _esd=auto
619 _pulse=auto
620 _jack=auto
621 _kai=auto
622 _dart=auto
623 _openal=auto
624 _libcdio=auto
625 _liblzo=auto
626 _mad=auto
627 _mp3lame=auto
628 _mp3lame_lavc=auto
629 _toolame=auto
630 _twolame=auto
631 _tremor=auto
632 _tremor_internal=yes
633 _tremor_low=no
634 _libvorbis=auto
635 _speex=auto
636 _theora=auto
637 _mp3lib=auto
638 _liba52=auto
639 _liba52_internal=no
640 _libdca=auto
641 _libmpeg2=auto
642 _faad=auto
643 _faad_internal=auto
644 _faad_fixed=no
645 _faac=auto
646 _faac_lavc=auto
647 _ladspa=auto
648 _libbs2b=auto
649 _xmms=no
650 _vcd=auto
651 _dvdnav=auto
652 _dvdnavconfig=dvdnav-config
653 _dvdreadconfig=dvdread-config
654 _dvdread=auto
655 _dvdread_internal=auto
656 _libdvdcss_internal=auto
657 _xanim=auto
658 _real=auto
659 _live=auto
660 _nemesi=auto
661 _native_rtsp=yes
662 _xinerama=auto
663 _mga=auto
664 _xmga=auto
665 _vm=auto
666 _xf86keysym=auto
667 _mlib=no #broken, thus disabled
668 _sgiaudio=auto
669 _sunaudio=auto
670 _alsa=auto
671 _fastmemcpy=yes
672 hardcoded_tables=no
673 _unrar_exec=auto
674 _win32dll=auto
675 _select=yes
676 _radio=no
677 _radio_capture=no
678 _radio_v4l=auto
679 _radio_v4l2=auto
680 _radio_bsdbt848=auto
681 _tv=yes
682 _tv_v4l1=auto
683 _tv_v4l2=auto
684 _tv_bsdbt848=auto
685 _tv_dshow=auto
686 _pvr=auto
687 _network=yes
688 _winsock2_h=auto
689 _struct_addrinfo=auto
690 _getaddrinfo=auto
691 _struct_sockaddr_storage=auto
692 _smb=auto
693 _vidix=auto
694 _vidix_pcidb=yes
695 _dhahelper=no
696 _svgalib_helper=no
697 _joystick=no
698 _xvid=auto
699 _xvid_lavc=auto
700 _x264=auto
701 _x264_lavc=auto
702 _libdirac_lavc=auto
703 _libschroedinger_lavc=auto
704 _libnut=auto
705 _lirc=auto
706 _lircc=auto
707 _apple_remote=auto
708 _apple_ir=auto
709 _gui=no
710 _gtk1=no
711 _termcap=auto
712 _termios=auto
713 _3dfx=no
714 _s3fb=no
715 _wii=no
716 _tdfxfb=no
717 _tdfxvid=no
718 _xvr100=auto
719 _tga=yes
720 _directfb=auto
721 _zr=auto
722 _bl=no
723 _largefiles=yes
724 #language=en
725 _shm=auto
726 _linux_devfs=no
727 _charset="UTF-8"
728 _dynamic_plugins=no
729 _crash_debug=no
730 _sighandler=yes
731 _libdv=auto
732 _cdparanoia=auto
733 _cddb=auto
734 _big_endian=auto
735 _bitmap_font=yes
736 _freetype=auto
737 _fontconfig=auto
738 _menu=no
739 _qtx=auto
740 _maemo=auto
741 _coreaudio=auto
742 _corevideo=auto
743 _quartz=auto
744 quicktime=auto
745 _macosx_finder=no
746 _macosx_bundle=auto
747 _sortsub=yes
748 _freetypeconfig='freetype-config'
749 _fribidi=auto
750 _fribidiconfig='fribidi-config'
751 _enca=auto
752 _inet6=auto
753 _gethostbyname2=auto
754 _ftp=yes
755 _musepack=auto
756 _vstream=auto
757 _pthreads=auto
758 _w32threads=auto
759 _ass=auto
760 ass_internal=yes
761 _rpath=no
762 _asmalign_pot=auto
763 _stream_cache=yes
764 _priority=no
765 def_dos_paths="#define HAVE_DOS_PATHS 0"
766 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
767 def_priority="#undef CONFIG_PRIORITY"
768 def_pthread_cache="#undef PTHREAD_CACHE"
769 _need_shmem=yes
770 for ac_option do
771 case "$ac_option" in
772 --help|-help|-h)
773 show_help
775 --prefix=*)
776 _prefix=$(echo $ac_option | cut -d '=' -f 2)
778 --bindir=*)
779 _bindir=$(echo $ac_option | cut -d '=' -f 2)
781 --datadir=*)
782 _datadir=$(echo $ac_option | cut -d '=' -f 2)
784 --mandir=*)
785 _mandir=$(echo $ac_option | cut -d '=' -f 2)
787 --confdir=*)
788 _confdir=$(echo $ac_option | cut -d '=' -f 2)
790 --libdir=*)
791 _libdir=$(echo $ac_option | cut -d '=' -f 2)
793 --codecsdir=*)
794 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
796 --win32codecsdir=*)
797 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
799 --xanimcodecsdir=*)
800 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
802 --realcodecsdir=*)
803 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
806 --with-install=*)
807 _install=$(echo $ac_option | cut -d '=' -f 2 )
809 --with-xvmclib=*)
810 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
813 --with-sdl-config=*)
814 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
816 --with-freetype-config=*)
817 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
819 --with-fribidi-config=*)
820 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
822 --with-gtk-config=*)
823 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
825 --with-glib-config=*)
826 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
828 --with-dvdnav-config=*)
829 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
831 --with-dvdread-config=*)
832 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
835 --extra-cflags=*)
836 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
838 --extra-ldflags=*)
839 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
841 --extra-libs=*)
842 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
844 --extra-libs-mplayer=*)
845 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
847 --extra-libs-mencoder=*)
848 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
851 --target=*)
852 _target=$(echo $ac_option | cut -d '=' -f 2)
854 --cc=*)
855 _cc=$(echo $ac_option | cut -d '=' -f 2)
857 --host-cc=*)
858 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
860 --as=*)
861 _as=$(echo $ac_option | cut -d '=' -f 2)
863 --nm=*)
864 _nm=$(echo $ac_option | cut -d '=' -f 2)
866 --yasm=*)
867 _yasm=$(echo $ac_option | cut -d '=' -f 2)
869 --ar=*)
870 _ar=$(echo $ac_option | cut -d '=' -f 2)
872 --ranlib=*)
873 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
875 --windres=*)
876 _windres=$(echo $ac_option | cut -d '=' -f 2)
878 --charset=*)
879 _charset=$(echo $ac_option | cut -d '=' -f 2)
881 --language-doc=*)
882 language_doc=$(echo $ac_option | cut -d '=' -f 2)
884 --language-man=*)
885 language_man=$(echo $ac_option | cut -d '=' -f 2)
887 --language-msg=*)
888 language_msg=$(echo $ac_option | cut -d '=' -f 2)
890 --language=*)
891 language=$(echo $ac_option | cut -d '=' -f 2)
894 --enable-static)
895 _ld_static='-static'
897 --disable-static)
898 _ld_static=''
900 --enable-profile)
901 _profile='-p'
903 --disable-profile)
904 _profile=
906 --enable-debug)
907 _debug='-g'
909 --enable-debug=*)
910 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
912 --disable-debug)
913 _debug=
915 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
916 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
917 --enable-cross-compile) _cross_compile=yes ;;
918 --disable-cross-compile) _cross_compile=no ;;
919 --enable-mencoder) _mencoder=yes ;;
920 --disable-mencoder) _mencoder=no ;;
921 --enable-mplayer) _mplayer=yes ;;
922 --disable-mplayer) _mplayer=no ;;
923 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
924 --disable-dynamic-plugins) _dynamic_plugins=no ;;
925 --enable-x11) _x11=yes ;;
926 --disable-x11) _x11=no ;;
927 --enable-xshape) _xshape=yes ;;
928 --disable-xshape) _xshape=no ;;
929 --enable-xss) _xss=yes ;;
930 --disable-xss) _xss=no ;;
931 --enable-xv) _xv=yes ;;
932 --disable-xv) _xv=no ;;
933 --enable-xvmc) _xvmc=yes ;;
934 --disable-xvmc) _xvmc=no ;;
935 --enable-vdpau) _vdpau=yes ;;
936 --disable-vdpau) _vdpau=no ;;
937 --enable-sdl) _sdl=yes ;;
938 --disable-sdl) _sdl=no ;;
939 --enable-kva) _kva=yes ;;
940 --disable-kva) _kva=no ;;
941 --enable-direct3d) _direct3d=yes ;;
942 --disable-direct3d) _direct3d=no ;;
943 --enable-directx) _directx=yes ;;
944 --disable-directx) _directx=no ;;
945 --enable-win32waveout) _win32waveout=yes ;;
946 --disable-win32waveout) _win32waveout=no ;;
947 --enable-nas) _nas=yes ;;
948 --disable-nas) _nas=no ;;
949 --enable-png) _png=yes ;;
950 --disable-png) _png=no ;;
951 --enable-mng) _mng=yes ;;
952 --disable-mng) _mng=no ;;
953 --enable-jpeg) _jpeg=yes ;;
954 --disable-jpeg) _jpeg=no ;;
955 --enable-libopenjpeg) libopenjpeg=yes ;;
956 --disable-libopenjpeg)libopenjpeg=no ;;
957 --enable-pnm) _pnm=yes ;;
958 --disable-pnm) _pnm=no ;;
959 --enable-md5sum) _md5sum=yes ;;
960 --disable-md5sum) _md5sum=no ;;
961 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
962 --disable-yuv4mpeg) _yuv4mpeg=no ;;
963 --enable-gif) _gif=yes ;;
964 --disable-gif) _gif=no ;;
965 --enable-gl) _gl=yes ;;
966 --disable-gl) _gl=no ;;
967 --enable-matrixview) matrixview=yes ;;
968 --disable-matrixview) matrixview=no ;;
969 --enable-ggi) _ggi=yes ;;
970 --disable-ggi) _ggi=no ;;
971 --enable-ggiwmh) _ggiwmh=yes ;;
972 --disable-ggiwmh) _ggiwmh=no ;;
973 --enable-aa) _aa=yes ;;
974 --disable-aa) _aa=no ;;
975 --enable-caca) _caca=yes ;;
976 --disable-caca) _caca=no ;;
977 --enable-svga) _svga=yes ;;
978 --disable-svga) _svga=no ;;
979 --enable-vesa) _vesa=yes ;;
980 --disable-vesa) _vesa=no ;;
981 --enable-fbdev) _fbdev=yes ;;
982 --disable-fbdev) _fbdev=no ;;
983 --enable-dvb) _dvb=yes ;;
984 --disable-dvb) _dvb=no ;;
985 --enable-dvbhead) _dvbhead=yes ;;
986 --disable-dvbhead) _dvbhead=no ;;
987 --enable-dxr2) _dxr2=yes ;;
988 --disable-dxr2) _dxr2=no ;;
989 --enable-dxr3) _dxr3=yes ;;
990 --disable-dxr3) _dxr3=no ;;
991 --enable-ivtv) _ivtv=yes ;;
992 --disable-ivtv) _ivtv=no ;;
993 --enable-v4l2) _v4l2=yes ;;
994 --disable-v4l2) _v4l2=no ;;
995 --enable-iconv) _iconv=yes ;;
996 --disable-iconv) _iconv=no ;;
997 --enable-langinfo) _langinfo=yes ;;
998 --disable-langinfo) _langinfo=no ;;
999 --enable-rtc) _rtc=yes ;;
1000 --disable-rtc) _rtc=no ;;
1001 --enable-libdv) _libdv=yes ;;
1002 --disable-libdv) _libdv=no ;;
1003 --enable-ossaudio) _ossaudio=yes ;;
1004 --disable-ossaudio) _ossaudio=no ;;
1005 --enable-arts) _arts=yes ;;
1006 --disable-arts) _arts=no ;;
1007 --enable-esd) _esd=yes ;;
1008 --disable-esd) _esd=no ;;
1009 --enable-pulse) _pulse=yes ;;
1010 --disable-pulse) _pulse=no ;;
1011 --enable-jack) _jack=yes ;;
1012 --disable-jack) _jack=no ;;
1013 --enable-openal) _openal=yes ;;
1014 --disable-openal) _openal=no ;;
1015 --enable-kai) _kai=yes ;;
1016 --disable-kai) _kai=no ;;
1017 --enable-dart) _dart=yes ;;
1018 --disable-dart) _dart=no ;;
1019 --enable-mad) _mad=yes ;;
1020 --disable-mad) _mad=no ;;
1021 --enable-mp3lame) _mp3lame=yes ;;
1022 --disable-mp3lame) _mp3lame=no ;;
1023 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1024 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1025 --enable-toolame) _toolame=yes ;;
1026 --disable-toolame) _toolame=no ;;
1027 --enable-twolame) _twolame=yes ;;
1028 --disable-twolame) _twolame=no ;;
1029 --enable-libcdio) _libcdio=yes ;;
1030 --disable-libcdio) _libcdio=no ;;
1031 --enable-liblzo) _liblzo=yes ;;
1032 --disable-liblzo) _liblzo=no ;;
1033 --enable-libvorbis) _libvorbis=yes ;;
1034 --disable-libvorbis) _libvorbis=no ;;
1035 --enable-speex) _speex=yes ;;
1036 --disable-speex) _speex=no ;;
1037 --enable-tremor) _tremor=yes ;;
1038 --disable-tremor) _tremor=no ;;
1039 --enable-tremor-internal) _tremor_internal=yes ;;
1040 --disable-tremor-internal) _tremor_internal=no ;;
1041 --enable-tremor-low) _tremor_low=yes ;;
1042 --disable-tremor-low) _tremor_low=no ;;
1043 --enable-theora) _theora=yes ;;
1044 --disable-theora) _theora=no ;;
1045 --enable-mp3lib) _mp3lib=yes ;;
1046 --disable-mp3lib) _mp3lib=no ;;
1047 --enable-liba52-internal) _liba52_internal=yes ;;
1048 --disable-liba52-internal) _liba52_internal=no ;;
1049 --enable-liba52) _liba52=yes ;;
1050 --disable-liba52) _liba52=no ;;
1051 --enable-libdca) _libdca=yes ;;
1052 --disable-libdca) _libdca=no ;;
1053 --enable-libmpeg2) _libmpeg2=yes ;;
1054 --disable-libmpeg2) _libmpeg2=no ;;
1055 --enable-musepack) _musepack=yes ;;
1056 --disable-musepack) _musepack=no ;;
1057 --enable-faad) _faad=yes ;;
1058 --disable-faad) _faad=no ;;
1059 --enable-faad-internal) _faad_internal=yes ;;
1060 --disable-faad-internal) _faad_internal=no ;;
1061 --enable-faad-fixed) _faad_fixed=yes ;;
1062 --disable-faad-fixed) _faad_fixed=no ;;
1063 --enable-faac) _faac=yes ;;
1064 --disable-faac) _faac=no ;;
1065 --enable-faac-lavc) _faac_lavc=yes ;;
1066 --disable-faac-lavc) _faac_lavc=no ;;
1067 --enable-ladspa) _ladspa=yes ;;
1068 --disable-ladspa) _ladspa=no ;;
1069 --enable-libbs2b) _libbs2b=yes ;;
1070 --disable-libbs2b) _libbs2b=no ;;
1071 --enable-xmms) _xmms=yes ;;
1072 --disable-xmms) _xmms=no ;;
1073 --enable-vcd) _vcd=yes ;;
1074 --disable-vcd) _vcd=no ;;
1075 --enable-dvdread) _dvdread=yes ;;
1076 --disable-dvdread) _dvdread=no ;;
1077 --enable-dvdread-internal) _dvdread_internal=yes ;;
1078 --disable-dvdread-internal) _dvdread_internal=no ;;
1079 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1080 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1081 --enable-dvdnav) _dvdnav=yes ;;
1082 --disable-dvdnav) _dvdnav=no ;;
1083 --enable-xanim) _xanim=yes ;;
1084 --disable-xanim) _xanim=no ;;
1085 --enable-real) _real=yes ;;
1086 --disable-real) _real=no ;;
1087 --enable-live) _live=yes ;;
1088 --disable-live) _live=no ;;
1089 --enable-nemesi) _nemesi=yes ;;
1090 --disable-nemesi) _nemesi=no ;;
1091 --enable-xinerama) _xinerama=yes ;;
1092 --disable-xinerama) _xinerama=no ;;
1093 --enable-mga) _mga=yes ;;
1094 --disable-mga) _mga=no ;;
1095 --enable-xmga) _xmga=yes ;;
1096 --disable-xmga) _xmga=no ;;
1097 --enable-vm) _vm=yes ;;
1098 --disable-vm) _vm=no ;;
1099 --enable-xf86keysym) _xf86keysym=yes ;;
1100 --disable-xf86keysym) _xf86keysym=no ;;
1101 --enable-mlib) _mlib=yes ;;
1102 --disable-mlib) _mlib=no ;;
1103 --enable-sunaudio) _sunaudio=yes ;;
1104 --disable-sunaudio) _sunaudio=no ;;
1105 --enable-sgiaudio) _sgiaudio=yes ;;
1106 --disable-sgiaudio) _sgiaudio=no ;;
1107 --enable-alsa) _alsa=yes ;;
1108 --disable-alsa) _alsa=no ;;
1109 --enable-tv) _tv=yes ;;
1110 --disable-tv) _tv=no ;;
1111 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1112 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1113 --enable-tv-v4l1) _tv_v4l1=yes ;;
1114 --disable-tv-v4l1) _tv_v4l1=no ;;
1115 --enable-tv-v4l2) _tv_v4l2=yes ;;
1116 --disable-tv-v4l2) _tv_v4l2=no ;;
1117 --enable-tv-dshow) _tv_dshow=yes ;;
1118 --disable-tv-dshow) _tv_dshow=no ;;
1119 --enable-radio) _radio=yes ;;
1120 --enable-radio-capture) _radio_capture=yes ;;
1121 --disable-radio-capture) _radio_capture=no ;;
1122 --disable-radio) _radio=no ;;
1123 --enable-radio-v4l) _radio_v4l=yes ;;
1124 --disable-radio-v4l) _radio_v4l=no ;;
1125 --enable-radio-v4l2) _radio_v4l2=yes ;;
1126 --disable-radio-v4l2) _radio_v4l2=no ;;
1127 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1128 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1129 --enable-pvr) _pvr=yes ;;
1130 --disable-pvr) _pvr=no ;;
1131 --enable-fastmemcpy) _fastmemcpy=yes ;;
1132 --disable-fastmemcpy) _fastmemcpy=no ;;
1133 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1134 --disable-hardcoded-tables) hardcoded_tables=no ;;
1135 --enable-network) _network=yes ;;
1136 --disable-network) _network=no ;;
1137 --enable-winsock2_h) _winsock2_h=yes ;;
1138 --disable-winsock2_h) _winsock2_h=no ;;
1139 --enable-smb) _smb=yes ;;
1140 --disable-smb) _smb=no ;;
1141 --enable-vidix) _vidix=yes ;;
1142 --disable-vidix) _vidix=no ;;
1143 --with-vidix-drivers=*)
1144 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1146 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1147 --enable-dhahelper) _dhahelper=yes ;;
1148 --disable-dhahelper) _dhahelper=no ;;
1149 --enable-svgalib_helper) _svgalib_helper=yes ;;
1150 --disable-svgalib_helper) _svgalib_helper=no ;;
1151 --enable-joystick) _joystick=yes ;;
1152 --disable-joystick) _joystick=no ;;
1153 --enable-xvid) _xvid=yes ;;
1154 --disable-xvid) _xvid=no ;;
1155 --enable-xvid-lavc) _xvid_lavc=yes ;;
1156 --disable-xvid-lavc) _xvid_lavc=no ;;
1157 --enable-x264) _x264=yes ;;
1158 --disable-x264) _x264=no ;;
1159 --enable-x264-lavc) _x264_lavc=yes ;;
1160 --disable-x264-lavc) _x264_lavc=no ;;
1161 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1162 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1163 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1164 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1165 --enable-libnut) _libnut=yes ;;
1166 --disable-libnut) _libnut=no ;;
1167 --enable-libavutil_a) _libavutil_a=yes ;;
1168 --disable-libavutil_a) _libavutil_a=no ;;
1169 --enable-libavutil_so) _libavutil_so=yes ;;
1170 --disable-libavutil_so) _libavutil_so=no ;;
1171 --enable-libavcodec_a) _libavcodec_a=yes ;;
1172 --disable-libavcodec_a) _libavcodec_a=no ;;
1173 --enable-libavcodec_so) _libavcodec_so=yes ;;
1174 --disable-libavcodec_so) _libavcodec_so=no ;;
1175 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1176 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1177 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1178 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1179 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1180 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1181 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1182 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1183 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1184 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1185 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1186 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1187 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1188 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1189 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1190 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1191 --enable-libavformat_a) _libavformat_a=yes ;;
1192 --disable-libavformat_a) _libavformat_a=no ;;
1193 --enable-libavformat_so) _libavformat_so=yes ;;
1194 --disable-libavformat_so) _libavformat_so=no ;;
1195 --enable-libpostproc_a) _libpostproc_a=yes ;;
1196 --disable-libpostproc_a) _libpostproc_a=no ;;
1197 --enable-libpostproc_so) _libpostproc_so=yes ;;
1198 --disable-libpostproc_so) _libpostproc_so=no ;;
1199 --enable-libswscale_a) _libswscale_a=yes ;;
1200 --disable-libswscale_a) _libswscale_a=no ;;
1201 --enable-libswscale_so) _libswscale_so=yes ;;
1202 --disable-libswscale_so) _libswscale_so=no ;;
1203 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1204 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1206 --enable-lirc) _lirc=yes ;;
1207 --disable-lirc) _lirc=no ;;
1208 --enable-lircc) _lircc=yes ;;
1209 --disable-lircc) _lircc=no ;;
1210 --enable-apple-remote) _apple_remote=yes ;;
1211 --disable-apple-remote) _apple_remote=no ;;
1212 --enable-apple-ir) _apple_ir=yes ;;
1213 --disable-apple-ir) _apple_ir=no ;;
1214 --enable-gui) _gui=yes ;;
1215 --disable-gui) _gui=no ;;
1216 --enable-gtk1) _gtk1=yes ;;
1217 --disable-gtk1) _gtk1=no ;;
1218 --enable-termcap) _termcap=yes ;;
1219 --disable-termcap) _termcap=no ;;
1220 --enable-termios) _termios=yes ;;
1221 --disable-termios) _termios=no ;;
1222 --enable-3dfx) _3dfx=yes ;;
1223 --disable-3dfx) _3dfx=no ;;
1224 --enable-s3fb) _s3fb=yes ;;
1225 --disable-s3fb) _s3fb=no ;;
1226 --enable-wii) _wii=yes ;;
1227 --disable-wii) _wii=no ;;
1228 --enable-tdfxfb) _tdfxfb=yes ;;
1229 --disable-tdfxfb) _tdfxfb=no ;;
1230 --disable-tdfxvid) _tdfxvid=no ;;
1231 --enable-tdfxvid) _tdfxvid=yes ;;
1232 --disable-xvr100) _xvr100=no ;;
1233 --enable-xvr100) _xvr100=yes ;;
1234 --disable-tga) _tga=no ;;
1235 --enable-tga) _tga=yes ;;
1236 --enable-directfb) _directfb=yes ;;
1237 --disable-directfb) _directfb=no ;;
1238 --enable-zr) _zr=yes ;;
1239 --disable-zr) _zr=no ;;
1240 --enable-bl) _bl=yes ;;
1241 --disable-bl) _bl=no ;;
1242 --enable-mtrr) _mtrr=yes ;;
1243 --disable-mtrr) _mtrr=no ;;
1244 --enable-largefiles) _largefiles=yes ;;
1245 --disable-largefiles) _largefiles=no ;;
1246 --enable-shm) _shm=yes ;;
1247 --disable-shm) _shm=no ;;
1248 --enable-select) _select=yes ;;
1249 --disable-select) _select=no ;;
1250 --enable-linux-devfs) _linux_devfs=yes ;;
1251 --disable-linux-devfs) _linux_devfs=no ;;
1252 --enable-cdparanoia) _cdparanoia=yes ;;
1253 --disable-cdparanoia) _cdparanoia=no ;;
1254 --enable-cddb) _cddb=yes ;;
1255 --disable-cddb) _cddb=no ;;
1256 --enable-big-endian) _big_endian=yes ;;
1257 --disable-big-endian) _big_endian=no ;;
1258 --enable-bitmap-font) _bitmap_font=yes ;;
1259 --disable-bitmap-font) _bitmap_font=no ;;
1260 --enable-freetype) _freetype=yes ;;
1261 --disable-freetype) _freetype=no ;;
1262 --enable-fontconfig) _fontconfig=yes ;;
1263 --disable-fontconfig) _fontconfig=no ;;
1264 --enable-unrarexec) _unrar_exec=yes ;;
1265 --disable-unrarexec) _unrar_exec=no ;;
1266 --enable-ftp) _ftp=yes ;;
1267 --disable-ftp) _ftp=no ;;
1268 --enable-vstream) _vstream=yes ;;
1269 --disable-vstream) _vstream=no ;;
1270 --enable-pthreads) _pthreads=yes ;;
1271 --disable-pthreads) _pthreads=no ;;
1272 --enable-w32threads) _w32threads=yes ;;
1273 --disable-w32threads) _w32threads=no ;;
1274 --enable-ass) _ass=yes ;;
1275 --disable-ass) _ass=no ;;
1276 --enable-ass-internal) ass_internal=yes ;;
1277 --disable-ass-internal) ass_internal=no ;;
1278 --enable-rpath) _rpath=yes ;;
1279 --disable-rpath) _rpath=no ;;
1281 --enable-fribidi) _fribidi=yes ;;
1282 --disable-fribidi) _fribidi=no ;;
1284 --enable-enca) _enca=yes ;;
1285 --disable-enca) _enca=no ;;
1287 --enable-inet6) _inet6=yes ;;
1288 --disable-inet6) _inet6=no ;;
1290 --enable-gethostbyname2) _gethostbyname2=yes ;;
1291 --disable-gethostbyname2) _gethostbyname2=no ;;
1293 --enable-dga1) _dga1=yes ;;
1294 --disable-dga1) _dga1=no ;;
1295 --enable-dga2) _dga2=yes ;;
1296 --disable-dga2) _dga2=no ;;
1298 --enable-menu) _menu=yes ;;
1299 --disable-menu) _menu=no ;;
1301 --enable-qtx) _qtx=yes ;;
1302 --disable-qtx) _qtx=no ;;
1304 --enable-coreaudio) _coreaudio=yes ;;
1305 --disable-coreaudio) _coreaudio=no ;;
1306 --enable-corevideo) _corevideo=yes ;;
1307 --disable-corevideo) _corevideo=no ;;
1308 --enable-quartz) _quartz=yes ;;
1309 --disable-quartz) _quartz=no ;;
1310 --enable-macosx-finder) _macosx_finder=yes ;;
1311 --disable-macosx-finder) _macosx_finder=no ;;
1312 --enable-macosx-bundle) _macosx_bundle=yes ;;
1313 --disable-macosx-bundle) _macosx_bundle=no ;;
1315 --enable-maemo) _maemo=yes ;;
1316 --disable-maemo) _maemo=no ;;
1318 --enable-sortsub) _sortsub=yes ;;
1319 --disable-sortsub) _sortsub=no ;;
1321 --enable-crash-debug) _crash_debug=yes ;;
1322 --disable-crash-debug) _crash_debug=no ;;
1323 --enable-sighandler) _sighandler=yes ;;
1324 --disable-sighandler) _sighandler=no ;;
1325 --enable-win32dll) _win32dll=yes ;;
1326 --disable-win32dll) _win32dll=no ;;
1328 --enable-sse) _sse=yes ;;
1329 --disable-sse) _sse=no ;;
1330 --enable-sse2) _sse2=yes ;;
1331 --disable-sse2) _sse2=no ;;
1332 --enable-ssse3) _ssse3=yes ;;
1333 --disable-ssse3) _ssse3=no ;;
1334 --enable-mmxext) _mmxext=yes ;;
1335 --disable-mmxext) _mmxext=no ;;
1336 --enable-3dnow) _3dnow=yes ;;
1337 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1338 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1339 --disable-3dnowext) _3dnowext=no ;;
1340 --enable-cmov) _cmov=yes ;;
1341 --disable-cmov) _cmov=no ;;
1342 --enable-fast-cmov) _fast_cmov=yes ;;
1343 --disable-fast-cmov) _fast_cmov=no ;;
1344 --enable-fast-clz) _fast_clz=yes ;;
1345 --disable-fast-clz) _fast_clz=no ;;
1346 --enable-altivec) _altivec=yes ;;
1347 --disable-altivec) _altivec=no ;;
1348 --enable-armv5te) _armv5te=yes ;;
1349 --disable-armv5te) _armv5te=no ;;
1350 --enable-armv6) _armv6=yes ;;
1351 --disable-armv6) _armv6=no ;;
1352 --enable-armv6t2) _armv6t2=yes ;;
1353 --disable-armv6t2) _armv6t2=no ;;
1354 --enable-armvfp) _armvfp=yes ;;
1355 --disable-armvfp) _armvfp=no ;;
1356 --enable-neon) neon=yes ;;
1357 --disable-neon) neon=no ;;
1358 --enable-iwmmxt) _iwmmxt=yes ;;
1359 --disable-iwmmxt) _iwmmxt=no ;;
1360 --enable-mmx) _mmx=yes ;;
1361 --disable-mmx) # 3Dnow! and MMX2 require MMX
1362 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1365 echo "Unknown parameter: $ac_option"
1366 exit 1
1369 esac
1370 done
1372 # Atmos: moved this here, to be correct, if --prefix is specified
1373 test -z "$_bindir" && _bindir="$_prefix/bin"
1374 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1375 test -z "$_mandir" && _mandir="$_prefix/share/man"
1376 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1377 test -z "$_libdir" && _libdir="$_prefix/lib"
1379 # Determine our OS name and CPU architecture
1380 if test -z "$_target" ; then
1381 # OS name
1382 system_name=$(uname -s 2>&1)
1383 case "$system_name" in
1384 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1386 Haiku)
1387 system_name=BeOS
1389 IRIX*)
1390 system_name=IRIX
1392 GNU/kFreeBSD)
1393 system_name=FreeBSD
1395 HP-UX*)
1396 system_name=HP-UX
1398 [cC][yY][gG][wW][iI][nN]*)
1399 system_name=CYGWIN
1401 MINGW32*)
1402 system_name=MINGW32
1404 OS/2*)
1405 system_name=OS/2
1408 system_name="$system_name-UNKNOWN"
1410 esac
1413 # host's CPU/instruction set
1414 host_arch=$(uname -p 2>&1)
1415 case "$host_arch" in
1416 i386|sparc|ppc|alpha|arm|mips|vax)
1418 powerpc) # Darwin returns 'powerpc'
1419 host_arch=ppc
1421 *) # uname -p on Linux returns 'unknown' for the processor type,
1422 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1424 # Maybe uname -m (machine hardware name) returns something we
1425 # recognize.
1427 # x86/x86pc is used by QNX
1428 case "$(uname -m 2>&1)" in
1429 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1430 ia64) host_arch=ia64 ;;
1431 macppc|ppc) host_arch=ppc ;;
1432 ppc64) host_arch=ppc64 ;;
1433 alpha) host_arch=alpha ;;
1434 sparc) host_arch=sparc ;;
1435 sparc64) host_arch=sparc64 ;;
1436 parisc*|hppa*|9000*) host_arch=hppa ;;
1437 arm*|zaurus|cats) host_arch=arm ;;
1438 sh3|sh4|sh4a) host_arch=sh ;;
1439 s390) host_arch=s390 ;;
1440 s390x) host_arch=s390x ;;
1441 *mips*) host_arch=mips ;;
1442 vax) host_arch=vax ;;
1443 xtensa*) host_arch=xtensa ;;
1444 *) host_arch=UNKNOWN ;;
1445 esac
1447 esac
1448 else # if test -z "$_target"
1449 system_name=$(echo $_target | cut -d '-' -f 2)
1450 case "$(echo $system_name | tr A-Z a-z)" in
1451 linux) system_name=Linux ;;
1452 freebsd) system_name=FreeBSD ;;
1453 gnu/kfreebsd) system_name=FreeBSD ;;
1454 netbsd) system_name=NetBSD ;;
1455 bsd/os) system_name=BSD/OS ;;
1456 openbsd) system_name=OpenBSD ;;
1457 dragonfly) system_name=DragonFly ;;
1458 sunos) system_name=SunOS ;;
1459 qnx) system_name=QNX ;;
1460 morphos) system_name=MorphOS ;;
1461 amigaos) system_name=AmigaOS ;;
1462 mingw32*) system_name=MINGW32 ;;
1463 esac
1464 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1465 host_arch=$(echo $_target | cut -d '-' -f 1)
1466 if test $(echo $host_arch) != "x86_64" ; then
1467 host_arch=$(echo $host_arch | tr '_' '-')
1471 extra_cflags="-I. $extra_cflags"
1472 _timer=timer-linux.c
1473 _getch=getch2.c
1474 if freebsd ; then
1475 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1476 extra_cflags="$extra_cflags -I/usr/local/include"
1479 if netbsd || dragonfly ; then
1480 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1481 extra_cflags="$extra_cflags -I/usr/pkg/include"
1484 if darwin; then
1485 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1486 _timer=timer-darwin.c
1489 if aix ; then
1490 extra_ldflags="$extra_ldflags -lC"
1493 if irix ; then
1494 _ranlib='ar -r'
1495 elif linux ; then
1496 _ranlib='true'
1499 if win32 ; then
1500 _exesuf=".exe"
1501 extra_cflags="$extra_cflags -fno-common"
1502 # -lwinmm is always needed for osdep/timer-win2.c
1503 extra_ldflags="$extra_ldflags -lwinmm"
1504 _pe_executable=yes
1505 _timer=timer-win2.c
1506 _priority=yes
1507 def_dos_paths="#define HAVE_DOS_PATHS 1"
1508 def_priority="#define CONFIG_PRIORITY 1"
1511 if mingw32 ; then
1512 _getch=getch2-win.c
1513 _need_shmem=no
1516 if amigaos ; then
1517 _select=no
1518 _sighandler=no
1519 _stream_cache=no
1520 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1521 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1524 if qnx ; then
1525 extra_ldflags="$extra_ldflags -lph"
1528 if os2 ; then
1529 _exesuf=".exe"
1530 _getch=getch2-os2.c
1531 _need_shmem=no
1532 _priority=yes
1533 def_dos_paths="#define HAVE_DOS_PATHS 1"
1534 def_priority="#define CONFIG_PRIORITY 1"
1537 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1538 test "$I" && break
1539 done
1542 TMPLOG="configure.log"
1543 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1544 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1545 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1546 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1547 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1549 rm -f "$TMPLOG"
1550 echo configuration: $_configuration > "$TMPLOG"
1551 echo >> "$TMPLOG"
1554 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1555 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1559 # Checking CC version...
1560 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1561 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1562 echocheck "$_cc version"
1563 cc_vendor=intel
1564 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1565 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1566 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1567 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1568 # TODO verify older icc/ecc compatibility
1569 case $cc_version in
1571 cc_version="v. ?.??, bad"
1572 cc_fail=yes
1574 10.1|11.0|11.1)
1575 cc_version="$cc_version, ok"
1578 cc_version="$cc_version, bad"
1579 cc_fail=yes
1581 esac
1582 echores "$cc_version"
1583 else
1584 for _cc in "$_cc" gcc cc ; do
1585 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1586 if test "$cc_name_tmp" = "gcc"; then
1587 cc_name=$cc_name_tmp
1588 echocheck "$_cc version"
1589 cc_vendor=gnu
1590 cc_version=$($_cc -dumpversion 2>&1)
1591 case $cc_version in
1592 2.96*)
1593 cc_fail=yes
1596 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1597 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1598 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1600 esac
1601 echores "$cc_version"
1602 break
1604 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1605 if test "$cc_name_tmp" = "Sun C"; then
1606 echocheck "$_cc version"
1607 cc_vendor=sun
1608 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1609 _res_comment="experimental support only"
1610 echores "Sun C $cc_version"
1611 break
1613 done
1614 fi # icc
1615 test "$cc_fail" = yes && die "unsupported compiler version"
1617 if test -z "$_target" && x86 ; then
1618 cat > $TMPC << EOF
1619 int main(void) {
1620 int test[(int)sizeof(char *)-7];
1621 return 0;
1624 cc_check && host_arch=x86_64 || host_arch=i386
1627 echo "Detected operating system: $system_name"
1628 echo "Detected host architecture: $host_arch"
1630 echocheck "host cc"
1631 test "$_host_cc" || _host_cc=$_cc
1632 echores $_host_cc
1634 echocheck "cross compilation"
1635 if test $_cross_compile = auto ; then
1636 cat > $TMPC << EOF
1637 int main(void) { return 0; }
1639 _cross_compile=yes
1640 cc_check && "$TMPEXE" && _cross_compile=no
1642 echores $_cross_compile
1644 if test $_cross_compile = yes; then
1645 tmp_run() {
1646 return 0
1650 # ---
1652 # now that we know what compiler should be used for compilation, try to find
1653 # out which assembler is used by the $_cc compiler
1654 if test "$_as" = auto ; then
1655 _as=$($_cc -print-prog-name=as)
1656 test -z "$_as" && _as=as
1659 if test "$_nm" = auto ; then
1660 _nm=$($_cc -print-prog-name=nm)
1661 test -z "$_nm" && _nm=nm
1664 # XXX: this should be ok..
1665 _cpuinfo="echo"
1667 if test "$_runtime_cpudetection" = no ; then
1669 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1670 # FIXME: Remove the cygwin check once AMD CPUs are supported
1671 if test -r /proc/cpuinfo && ! cygwin; then
1672 # Linux with /proc mounted, extract CPU information from it
1673 _cpuinfo="cat /proc/cpuinfo"
1674 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1675 # FreeBSD with Linux emulation /proc mounted,
1676 # extract CPU information from it
1677 # Don't use it on x86 though, it never reports 3Dnow
1678 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1679 elif darwin && ! x86 ; then
1680 # use hostinfo on Darwin
1681 _cpuinfo="hostinfo"
1682 elif aix; then
1683 # use 'lsattr' on AIX
1684 _cpuinfo="lsattr -E -l proc0 -a type"
1685 elif x86; then
1686 # all other OSes try to extract CPU information from a small helper
1687 # program cpuinfo instead
1688 $_cc -o cpuinfo$_exesuf cpuinfo.c
1689 _cpuinfo="./cpuinfo$_exesuf"
1692 if x86 ; then
1693 # gather more CPU information
1694 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1695 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1696 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1697 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1698 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1700 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1702 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1703 -e s/xmm/sse/ -e s/kni/sse/)
1705 for ext in $pparam ; do
1706 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1707 done
1709 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1710 test $_sse = kernel_check && _mmxext=kernel_check
1712 echocheck "CPU vendor"
1713 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1715 echocheck "CPU type"
1716 echores "$pname"
1719 fi # test "$_runtime_cpudetection" = no
1721 if x86 && test "$_runtime_cpudetection" = no ; then
1722 extcheck() {
1723 if test "$1" = kernel_check ; then
1724 echocheck "kernel support of $2"
1725 cat > $TMPC <<EOF
1726 #include <stdlib.h>
1727 #include <signal.h>
1728 void catch() { exit(1); }
1729 int main(void) {
1730 signal(SIGILL, catch);
1731 __asm__ volatile ("$3":::"memory"); return 0;
1735 if cc_check && tmp_run ; then
1736 eval _$2=yes
1737 echores "yes"
1738 _optimizing="$_optimizing $2"
1739 return 0
1740 else
1741 eval _$2=no
1742 echores "failed"
1743 echo "It seems that your kernel does not correctly support $2."
1744 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1745 return 1
1748 return 0
1751 extcheck $_mmx "mmx" "emms"
1752 extcheck $_mmxext "mmxext" "sfence"
1753 extcheck $_3dnow "3dnow" "femms"
1754 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1755 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1756 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1757 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1758 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1760 echocheck "mtrr support"
1761 if test "$_mtrr" = kernel_check ; then
1762 _mtrr="yes"
1763 _optimizing="$_optimizing mtrr"
1765 echores "$_mtrr"
1767 if test "$_gcc3_ext" != ""; then
1768 # if we had to disable sse/sse2 because the active kernel does not
1769 # support this instruction set extension, we also have to tell
1770 # gcc3 to not generate sse/sse2 instructions for normal C code
1771 cat > $TMPC << EOF
1772 int main(void) { return 0; }
1774 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1780 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1781 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1782 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1783 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1784 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1785 case "$host_arch" in
1786 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1787 _arch='X86 X86_32'
1788 _target_arch="ARCH_X86 = yes"
1789 _target_subarch="ARCH_X86_32 = yes"
1790 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1791 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1792 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1793 iproc=486
1794 proc=i486
1797 if test "$_runtime_cpudetection" = no ; then
1798 case "$pvendor" in
1799 AuthenticAMD)
1800 case "$pfamily" in
1801 3) proc=i386 iproc=386 ;;
1802 4) proc=i486 iproc=486 ;;
1803 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1804 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1805 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1806 proc=k6-3
1807 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1808 proc=geode
1809 elif test "$pmodel" -ge 8; then
1810 proc=k6-2
1811 elif test "$pmodel" -ge 6; then
1812 proc=k6
1813 else
1814 proc=i586
1817 6) iproc=686
1818 # It's a bit difficult to determine the correct type of Family 6
1819 # AMD CPUs just from their signature. Instead, we check directly
1820 # whether it supports SSE.
1821 if test "$_sse" = yes; then
1822 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1823 proc=athlon-xp
1824 else
1825 # Again, gcc treats athlon and athlon-tbird similarly.
1826 proc=athlon
1829 15) iproc=686
1830 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1831 # caught and remedied in the optimization tests below.
1832 proc=k8
1835 *) proc=amdfam10 iproc=686
1836 test $_fast_clz = "auto" && _fast_clz=yes
1838 esac
1840 GenuineIntel)
1841 case "$pfamily" in
1842 3) proc=i386 iproc=386 ;;
1843 4) proc=i486 iproc=486 ;;
1844 5) iproc=586
1845 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1846 proc=pentium-mmx # 4 is desktop, 8 is mobile
1847 else
1848 proc=i586
1851 6) iproc=686
1852 if test "$pmodel" -ge 15; then
1853 proc=core2
1854 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1855 proc=pentium-m
1856 elif test "$pmodel" -ge 7; then
1857 proc=pentium3
1858 elif test "$pmodel" -ge 3; then
1859 proc=pentium2
1860 else
1861 proc=i686
1863 test $_fast_clz = "auto" && _fast_clz=yes
1865 15) iproc=686
1866 # A nocona in 32-bit mode has no more capabilities than a prescott.
1867 if test "$pmodel" -ge 3; then
1868 proc=prescott
1869 else
1870 proc=pentium4
1871 test $_fast_clz = "auto" && _fast_clz=yes
1873 test $_fast_cmov = "auto" && _fast_cmov=no
1875 *) proc=prescott iproc=686 ;;
1876 esac
1878 CentaurHauls)
1879 case "$pfamily" in
1880 5) iproc=586
1881 if test "$pmodel" -ge 8; then
1882 proc=winchip2
1883 elif test "$pmodel" -ge 4; then
1884 proc=winchip-c6
1885 else
1886 proc=i586
1889 6) iproc=686
1890 if test "$pmodel" -ge 9; then
1891 proc=c3-2
1892 else
1893 proc=c3
1894 iproc=586
1897 *) proc=i686 iproc=i686 ;;
1898 esac
1900 unknown)
1901 case "$pfamily" in
1902 3) proc=i386 iproc=386 ;;
1903 4) proc=i486 iproc=486 ;;
1904 *) proc=i586 iproc=586 ;;
1905 esac
1908 proc=i586 iproc=586 ;;
1909 esac
1910 test $_fast_clz = "auto" && _fast_clz=no
1911 fi # test "$_runtime_cpudetection" = no
1914 # check that gcc supports our CPU, if not, fall back to earlier ones
1915 # LGB: check -mcpu and -march swithing step by step with enabling
1916 # to fall back till 386.
1918 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1920 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1921 cpuopt=-mtune
1922 else
1923 cpuopt=-mcpu
1926 echocheck "GCC & CPU optimization abilities"
1927 cat > $TMPC << EOF
1928 int main(void) { return 0; }
1930 if test "$_runtime_cpudetection" = no ; then
1931 cc_check -march=native && proc=native
1932 if test "$proc" = "k8"; then
1933 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1935 if test "$proc" = "athlon-xp"; then
1936 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1938 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1939 cc_check -march=$proc $cpuopt=$proc || proc=k6
1941 if test "$proc" = "k6" || test "$proc" = "c3"; then
1942 if ! cc_check -march=$proc $cpuopt=$proc; then
1943 if cc_check -march=i586 $cpuopt=i686; then
1944 proc=i586-i686
1945 else
1946 proc=i586
1950 if test "$proc" = "prescott" ; then
1951 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1953 if test "$proc" = "core2" ; then
1954 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1956 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then
1957 cc_check -march=$proc $cpuopt=$proc || proc=i686
1959 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1960 cc_check -march=$proc $cpuopt=$proc || proc=i586
1962 if test "$proc" = "i586"; then
1963 cc_check -march=$proc $cpuopt=$proc || proc=i486
1965 if test "$proc" = "i486" ; then
1966 cc_check -march=$proc $cpuopt=$proc || proc=i386
1968 if test "$proc" = "i386" ; then
1969 cc_check -march=$proc $cpuopt=$proc || proc=error
1971 if test "$proc" = "error" ; then
1972 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1973 _mcpu=""
1974 _march=""
1975 _optimizing=""
1976 elif test "$proc" = "i586-i686"; then
1977 _march="-march=i586"
1978 _mcpu="$cpuopt=i686"
1979 _optimizing="$proc"
1980 else
1981 _march="-march=$proc"
1982 _mcpu="$cpuopt=$proc"
1983 _optimizing="$proc"
1985 else # if test "$_runtime_cpudetection" = no
1986 _mcpu="$cpuopt=generic"
1987 # at least i486 required, for bswap instruction
1988 _march="-march=i486"
1989 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1990 cc_check $_mcpu || _mcpu=""
1991 cc_check $_march $_mcpu || _march=""
1994 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1995 ## autodetected mcpu/march parameters
1996 if test "$_target" ; then
1997 # TODO: it may be a good idea to check GCC and fall back in all cases
1998 if test "$host_arch" = "i586-i686"; then
1999 _march="-march=i586"
2000 _mcpu="$cpuopt=i686"
2001 else
2002 _march="-march=$host_arch"
2003 _mcpu="$cpuopt=$host_arch"
2006 proc="$host_arch"
2008 case "$proc" in
2009 i386) iproc=386 ;;
2010 i486) iproc=486 ;;
2011 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2012 i686|athlon*|pentium*) iproc=686 ;;
2013 *) iproc=586 ;;
2014 esac
2017 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2018 _fast_cmov="yes"
2019 else
2020 _fast_cmov="no"
2022 test $_fast_clz = "auto" && _fast_clz=yes
2024 echores "$proc"
2027 ia64)
2028 _arch='IA64'
2029 _target_arch='ARCH_IA64 = yes'
2030 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2031 iproc='ia64'
2034 x86_64|amd64)
2035 _arch='X86 X86_64'
2036 _target_subarch='ARCH_X86_64 = yes'
2037 _target_arch="ARCH_X86 = yes"
2038 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2039 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2040 iproc='x86_64'
2042 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2043 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2044 cpuopt=-mtune
2045 else
2046 cpuopt=-mcpu
2048 if test "$_runtime_cpudetection" = no ; then
2049 case "$pvendor" in
2050 AuthenticAMD)
2051 case "$pfamily" in
2052 15) proc=k8
2053 test $_fast_clz = "auto" && _fast_clz=no
2055 *) proc=amdfam10;;
2056 esac
2058 GenuineIntel)
2059 case "$pfamily" in
2060 6) proc=core2;;
2062 # 64-bit prescotts exist, but as far as GCC is concerned they
2063 # have the same capabilities as a nocona.
2064 proc=nocona
2065 test $_fast_cmov = "auto" && _fast_cmov=no
2066 test $_fast_clz = "auto" && _fast_clz=no
2068 esac
2071 proc=error;;
2072 esac
2073 fi # test "$_runtime_cpudetection" = no
2075 echocheck "GCC & CPU optimization abilities"
2076 cat > $TMPC << EOF
2077 int main(void) { return 0; }
2079 # This is a stripped-down version of the i386 fallback.
2080 if test "$_runtime_cpudetection" = no ; then
2081 cc_check -march=native && proc=native
2082 # --- AMD processors ---
2083 if test "$proc" = "k8"; then
2084 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2086 # This will fail if gcc version < 3.3, which is ok because earlier
2087 # versions don't really support 64-bit on amd64.
2088 # Is this a valid assumption? -Corey
2089 if test "$proc" = "athlon-xp"; then
2090 cc_check -march=$proc $cpuopt=$proc || proc=error
2092 # --- Intel processors ---
2093 if test "$proc" = "core2"; then
2094 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2096 if test "$proc" = "x86-64"; then
2097 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2099 if test "$proc" = "nocona"; then
2100 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2102 if test "$proc" = "pentium4"; then
2103 cc_check -march=$proc $cpuopt=$proc || proc=error
2106 _march="-march=$proc"
2107 _mcpu="$cpuopt=$proc"
2108 if test "$proc" = "error" ; then
2109 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2110 _mcpu=""
2111 _march=""
2113 else # if test "$_runtime_cpudetection" = no
2114 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2115 _march="-march=x86-64"
2116 _mcpu="$cpuopt=generic"
2117 cc_check $_mcpu || _mcpu="x86-64"
2118 cc_check $_mcpu || _mcpu=""
2119 cc_check $_march $_mcpu || _march=""
2122 _optimizing="$proc"
2123 test $_fast_cmov = "auto" && _fast_cmov=yes
2124 test $_fast_clz = "auto" && _fast_clz=yes
2126 echores "$proc"
2129 sparc|sparc64)
2130 _arch='SPARC'
2131 _target_arch='ARCH_SPARC = yes'
2132 iproc='sparc'
2133 if test "$host_arch" = "sparc64" ; then
2134 _vis='yes'
2135 proc='ultrasparc'
2136 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2137 elif sunos ; then
2138 echocheck "CPU type"
2139 karch=$(uname -m)
2140 case "$(echo $karch)" in
2141 sun4) proc=v7 ;;
2142 sun4c) proc=v7 ;;
2143 sun4d) proc=v8 ;;
2144 sun4m) proc=v8 ;;
2145 sun4u) proc=ultrasparc _vis='yes' ;;
2146 sun4v) proc=v9 ;;
2147 *) proc=v8 ;;
2148 esac
2149 echores "$proc"
2150 else
2151 proc=v8
2153 _mcpu="-mcpu=$proc"
2154 _optimizing="$proc"
2157 arm*)
2158 _arch='ARM'
2159 _target_arch='ARCH_ARM = yes'
2160 iproc='arm'
2163 avr32)
2164 _arch='AVR32'
2165 _target_arch='ARCH_AVR32 = yes'
2166 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2167 iproc='avr32'
2168 test $_fast_clz = "auto" && _fast_clz=yes
2171 sh|sh4)
2172 _arch='SH4'
2173 _target_arch='ARCH_SH4 = yes'
2174 iproc='sh4'
2177 ppc|ppc64|powerpc|powerpc64)
2178 _arch='PPC'
2179 def_dcbzl='#define HAVE_DCBZL 0'
2180 _target_arch='ARCH_PPC = yes'
2181 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2182 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2183 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2184 iproc='ppc'
2186 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2187 _arch='PPC PPC64'
2188 _target_subarch='ARCH_PPC64 = yes'
2189 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2191 echocheck "CPU type"
2192 case $system_name in
2193 Linux)
2194 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2195 if test -n "$($_cpuinfo | grep altivec)"; then
2196 test $_altivec = auto && _altivec=yes
2199 Darwin)
2200 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2201 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2202 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2203 test $_altivec = auto && _altivec=yes
2206 NetBSD)
2207 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2208 case $cc_version in
2209 2*|3.0*|3.1*|3.2*|3.3*)
2212 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2213 test $_altivec = auto && _altivec=yes
2216 esac
2218 AIX)
2219 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2221 esac
2222 if test "$_altivec" = yes; then
2223 echores "$proc altivec"
2224 else
2225 _altivec=no
2226 echores "$proc"
2229 echocheck "GCC & CPU optimization abilities"
2231 if test -n "$proc"; then
2232 case "$proc" in
2233 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2234 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2235 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2236 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2237 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2238 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2239 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2240 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2241 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2242 *) ;;
2243 esac
2244 # gcc 3.1(.1) and up supports 7400 and 7450
2245 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2246 case "$proc" in
2247 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2248 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2249 *) ;;
2250 esac
2252 # gcc 3.2 and up supports 970
2253 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2254 case "$proc" in
2255 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2256 def_dcbzl='#define HAVE_DCBZL 1' ;;
2257 *) ;;
2258 esac
2260 # gcc 3.3 and up supports POWER4
2261 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2262 case "$proc" in
2263 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2264 *) ;;
2265 esac
2267 # gcc 3.4 and up supports 440*
2268 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2269 case "$proc" in
2270 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2271 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2272 *) ;;
2273 esac
2275 # gcc 4.0 and up supports POWER5
2276 if test "$_cc_major" -ge "4"; then
2277 case "$proc" in
2278 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2279 *) ;;
2280 esac
2284 if test -n "$_mcpu"; then
2285 _optimizing=$(echo $_mcpu | cut -c 8-)
2286 echores "$_optimizing"
2287 else
2288 echores "none"
2291 test $_fast_clz = "auto" && _fast_clz=yes
2295 alpha*)
2296 _arch='ALPHA'
2297 _target_arch='ARCH_ALPHA = yes'
2298 iproc='alpha'
2300 echocheck "CPU type"
2301 cat > $TMPC << EOF
2302 int main(void) {
2303 unsigned long ver, mask;
2304 __asm__ ("implver %0" : "=r" (ver));
2305 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2306 printf("%ld-%x\n", ver, ~mask);
2307 return 0;
2310 $_cc -o "$TMPEXE" "$TMPC"
2311 case $("$TMPEXE") in
2313 0-0) proc="ev4"; _mvi="0";;
2314 1-0) proc="ev5"; _mvi="0";;
2315 1-1) proc="ev56"; _mvi="0";;
2316 1-101) proc="pca56"; _mvi="1";;
2317 2-303) proc="ev6"; _mvi="1";;
2318 2-307) proc="ev67"; _mvi="1";;
2319 2-1307) proc="ev68"; _mvi="1";;
2320 esac
2321 echores "$proc"
2323 echocheck "GCC & CPU optimization abilities"
2324 if test "$proc" = "ev68" ; then
2325 cc_check -mcpu=$proc || proc=ev67
2327 if test "$proc" = "ev67" ; then
2328 cc_check -mcpu=$proc || proc=ev6
2330 _mcpu="-mcpu=$proc"
2331 echores "$proc"
2333 test $_fast_clz = "auto" && _fast_clz=yes
2335 _optimizing="$proc"
2338 mips)
2339 _arch='SGI_MIPS'
2340 _target_arch='ARCH_SGI_MIPS = yes'
2341 iproc='sgi-mips'
2343 if irix ; then
2344 echocheck "CPU type"
2345 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2346 case "$(echo $proc)" in
2347 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2348 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2349 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2350 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2351 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2352 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2353 esac
2354 # gcc < 3.x does not support -mtune.
2355 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2356 _mcpu=''
2358 echores "$proc"
2361 test $_fast_clz = "auto" && _fast_clz=yes
2365 hppa)
2366 _arch='PA_RISC'
2367 _target_arch='ARCH_PA_RISC = yes'
2368 iproc='PA-RISC'
2371 s390)
2372 _arch='S390'
2373 _target_arch='ARCH_S390 = yes'
2374 iproc='390'
2377 s390x)
2378 _arch='S390X'
2379 _target_arch='ARCH_S390X = yes'
2380 iproc='390x'
2383 vax)
2384 _arch='VAX'
2385 _target_arch='ARCH_VAX = yes'
2386 iproc='vax'
2389 xtensa)
2390 _arch='XTENSA'
2391 _target_arch='ARCH_XTENSA = yes'
2392 iproc='xtensa'
2395 generic)
2396 _arch='GENERIC'
2397 _target_arch='ARCH_GENERIC = yes'
2401 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2402 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2403 die "unsupported architecture $host_arch"
2405 esac # case "$host_arch" in
2407 if test "$_runtime_cpudetection" = yes ; then
2408 if x86 ; then
2409 test "$_cmov" != no && _cmov=yes
2410 x86_32 && _cmov=no
2411 test "$_mmx" != no && _mmx=yes
2412 test "$_3dnow" != no && _3dnow=yes
2413 test "$_3dnowext" != no && _3dnowext=yes
2414 test "$_mmxext" != no && _mmxext=yes
2415 test "$_sse" != no && _sse=yes
2416 test "$_sse2" != no && _sse2=yes
2417 test "$_ssse3" != no && _ssse3=yes
2418 test "$_mtrr" != no && _mtrr=yes
2420 if ppc; then
2421 _altivec=yes
2426 # endian testing
2427 echocheck "byte order"
2428 if test "$_big_endian" = auto ; then
2429 cat > $TMPC <<EOF
2430 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2431 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2432 int main(void) { return (int)ascii_name; }
2434 if cc_check ; then
2435 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2436 _big_endian=yes
2437 else
2438 _big_endian=no
2440 else
2441 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2444 if test "$_big_endian" = yes ; then
2445 _byte_order='big-endian'
2446 def_words_endian='#define WORDS_BIGENDIAN 1'
2447 def_bigendian='#define HAVE_BIGENDIAN 1'
2448 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2449 else
2450 _byte_order='little-endian'
2451 def_words_endian='#undef WORDS_BIGENDIAN'
2452 def_bigendian='#define HAVE_BIGENDIAN 0'
2453 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2455 echores "$_byte_order"
2458 echocheck "extern symbol prefix"
2459 cat > $TMPC << EOF
2460 int ff_extern;
2462 cc_check -c || die "Symbol mangling check failed."
2463 sym=$($_nm -P -g $TMPEXE)
2464 extern_prefix=${sym%%ff_extern*}
2465 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2466 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2467 echores $extern_prefix
2470 echocheck "assembler support of -pipe option"
2471 cat > $TMPC << EOF
2472 int main(void) { return 0; }
2474 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2475 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2478 echocheck "compiler support of named assembler arguments"
2479 _named_asm_args=yes
2480 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2481 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2482 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2483 _named_asm_args=no
2484 def_named_asm_args="#undef NAMED_ASM_ARGS"
2486 echores $_named_asm_args
2489 if darwin && test "$cc_vendor" = "gnu" ; then
2490 echocheck "GCC support of -mstackrealign"
2491 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2492 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2493 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2494 # wrong code with this flag, but this can be worked around by adding
2495 # -fno-unit-at-a-time as described in the blog post at
2496 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2497 cat > $TMPC << EOF
2498 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2499 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2501 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2502 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2503 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2504 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2505 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2508 # Checking for CFLAGS
2509 _install_strip="-s"
2510 if test "$_profile" != "" || test "$_debug" != "" ; then
2511 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2512 _install_strip=
2513 elif test -z "$CFLAGS" ; then
2514 if test "$cc_vendor" = "intel" ; then
2515 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2516 elif test "$cc_vendor" = "sun" ; then
2517 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2518 elif test "$cc_vendor" != "gnu" ; then
2519 CFLAGS="-O2 $_march $_mcpu $_pipe"
2520 else
2521 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2522 extra_ldflags="$extra_ldflags -ffast-math"
2524 else
2525 _warn_CFLAGS=yes
2528 cat > $TMPC << EOF
2529 int main(void) { return 0; }
2531 if test "$cc_vendor" = "gnu" ; then
2532 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2533 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2534 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2535 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2536 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2537 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2538 else
2539 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2542 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2545 if test -n "$LDFLAGS" ; then
2546 extra_ldflags="$extra_ldflags $LDFLAGS"
2547 _warn_CFLAGS=yes
2548 elif test "$cc_vendor" = "intel" ; then
2549 extra_ldflags="$extra_ldflags -i-static"
2551 if test -n "$CPPFLAGS" ; then
2552 extra_cflags="$extra_cflags $CPPFLAGS"
2553 _warn_CFLAGS=yes
2558 if x86_32 ; then
2559 # Checking assembler (_as) compatibility...
2560 # Added workaround for older as that reads from stdin by default - atmos
2561 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2562 echocheck "assembler ($_as $as_version)"
2564 _pref_as_version='2.9.1'
2565 echo 'nop' > $TMPS
2566 if test "$_mmx" = yes ; then
2567 echo 'emms' >> $TMPS
2569 if test "$_3dnow" = yes ; then
2570 _pref_as_version='2.10.1'
2571 echo 'femms' >> $TMPS
2573 if test "$_3dnowext" = yes ; then
2574 _pref_as_version='2.10.1'
2575 echo 'pswapd %mm0, %mm0' >> $TMPS
2577 if test "$_mmxext" = yes ; then
2578 _pref_as_version='2.10.1'
2579 echo 'movntq %mm0, (%eax)' >> $TMPS
2581 if test "$_sse" = yes ; then
2582 _pref_as_version='2.10.1'
2583 echo 'xorps %xmm0, %xmm0' >> $TMPS
2585 #if test "$_sse2" = yes ; then
2586 # _pref_as_version='2.11'
2587 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2589 if test "$_cmov" = yes ; then
2590 _pref_as_version='2.10.1'
2591 echo 'cmovb %eax, %ebx' >> $TMPS
2593 if test "$_ssse3" = yes ; then
2594 _pref_as_version='2.16.92'
2595 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2597 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2599 if test "$as_verc_fail" != yes ; then
2600 echores "ok"
2601 else
2602 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2603 echores "failed"
2604 die "obsolete binutils version"
2607 fi #if x86_32
2609 echocheck ".align is a power of two"
2610 if test "$_asmalign_pot" = auto ; then
2611 _asmalign_pot=no
2612 cat > $TMPC << EOF
2613 int main(void) { __asm__ (".align 3"); return 0; }
2615 cc_check && _asmalign_pot=yes
2617 if test "$_asmalign_pot" = "yes" ; then
2618 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2619 else
2620 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2622 echores $_asmalign_pot
2624 if x86 ; then
2625 echocheck "10 assembler operands"
2626 ten_operands=no
2627 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2628 cat > $TMPC << EOF
2629 int main(void) {
2630 int x=0;
2631 __asm__ volatile(
2633 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2635 return 0;
2638 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2639 echores $ten_operands
2641 echocheck "ebx availability"
2642 ebx_available=no
2643 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2644 cat > $TMPC << EOF
2645 int main(void) {
2646 int x;
2647 __asm__ volatile(
2648 "xor %0, %0"
2649 :"=b"(x)
2650 // just adding ebx to clobber list seems unreliable with some
2651 // compilers, e.g. Haiku's gcc 2.95
2653 // and the above check does not work for OSX 64 bit...
2654 __asm__ volatile("":::"%ebx");
2655 return 0;
2658 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2659 echores $ebx_available
2661 echocheck "PIC"
2662 pic=no
2663 cat > $TMPC << EOF
2664 int main(void) {
2665 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2666 #error PIC not enabled
2667 #endif
2668 return 0;
2671 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2672 echores $pic
2674 echocheck "yasm"
2675 if test -z "$YASMFLAGS" ; then
2676 if darwin ; then
2677 x86_64 && objformat="macho64" || objformat="macho"
2678 elif win32 ; then
2679 objformat="win32"
2680 else
2681 objformat="elf"
2683 # currently tested for Linux x86, x86_64
2684 YASMFLAGS="-f $objformat"
2685 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2686 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2687 case "$objformat" in
2688 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2689 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2690 esac
2691 else
2692 _warn_CFLAGS=yes
2695 echo "pabsw xmm0, xmm0" > $TMPS
2696 yasm_check || _yasm=""
2697 if test $_yasm ; then
2698 test "$_mmx" = "yes" && fft_mmx="yes"
2699 def_yasm='#define HAVE_YASM 1'
2700 _have_yasm="yes"
2701 echores "$_yasm"
2702 else
2703 def_yasm='#define HAVE_YASM 0'
2704 fft_mmx="no"
2705 _have_yasm="no"
2706 echores "no"
2709 echocheck "bswap"
2710 def_bswap='#define HAVE_BSWAP 0'
2711 echo 'bswap %eax' > $TMPS
2712 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2713 echores "$bswap"
2714 fi #if x86
2717 #FIXME: This should happen before the check for CFLAGS..
2718 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2719 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2721 # check if AltiVec is supported by the compiler, and how to enable it
2722 echocheck "GCC AltiVec flags"
2723 cat > $TMPC << EOF
2724 int main(void) { return 0; }
2726 if $(cc_check -maltivec -mabi=altivec) ; then
2727 _altivec_gcc_flags="-maltivec -mabi=altivec"
2728 # check if <altivec.h> should be included
2729 cat > $TMPC << EOF
2730 #include <altivec.h>
2731 int main(void) { return 0; }
2733 if $(cc_check $_altivec_gcc_flags) ; then
2734 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2735 inc_altivec_h='#include <altivec.h>'
2736 else
2737 cat > $TMPC << EOF
2738 int main(void) { return 0; }
2740 if $(cc_check -faltivec) ; then
2741 _altivec_gcc_flags="-faltivec"
2742 else
2743 _altivec=no
2744 _altivec_gcc_flags="none, AltiVec disabled"
2748 echores "$_altivec_gcc_flags"
2750 # check if the compiler supports braces for vector declarations
2751 cat > $TMPC << EOF
2752 $inc_altivec_h
2753 int main(void) { (vector int) {1}; return 0; }
2755 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2757 # Disable runtime cpudetection if we cannot generate AltiVec code or
2758 # AltiVec is disabled by the user.
2759 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2760 && _runtime_cpudetection=no
2762 # Show that we are optimizing for AltiVec (if enabled and supported).
2763 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2764 && _optimizing="$_optimizing altivec"
2766 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2767 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2770 if ppc ; then
2771 def_xform_asm='#define HAVE_XFORM_ASM 0'
2772 xform_asm=no
2773 echocheck "XFORM ASM support"
2774 cat > $TMPC << EOF
2775 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2777 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2778 echores "$xform_asm"
2781 if arm ; then
2782 echocheck "ARM pld instruction"
2783 cat > $TMPC << EOF
2784 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2786 pld=no
2787 cc_check && pld=yes
2788 echores "$pld"
2790 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2791 if test $_armv5te = "auto" ; then
2792 cat > $TMPC << EOF
2793 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2795 _armv5te=no
2796 cc_check && _armv5te=yes
2798 echores "$_armv5te"
2800 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2802 echocheck "ARMv6 (SIMD instructions)"
2803 if test $_armv6 = "auto" ; then
2804 cat > $TMPC << EOF
2805 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2807 _armv6=no
2808 cc_check && _armv6=yes
2810 echores "$_armv6"
2812 echocheck "ARMv6t2 (SIMD instructions)"
2813 if test $_armv6t2 = "auto" ; then
2814 cat > $TMPC << EOF
2815 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2817 _armv6t2=no
2818 cc_check && _armv6t2=yes
2820 echores "$_armv6"
2822 echocheck "ARM VFP"
2823 if test $_armvfp = "auto" ; then
2824 cat > $TMPC << EOF
2825 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2827 _armvfp=no
2828 cc_check && _armvfp=yes
2830 echores "$_armvfp"
2832 echocheck "ARM NEON"
2833 if test $neon = "auto" ; then
2834 cat > $TMPC << EOF
2835 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2837 neon=no
2838 cc_check && neon=yes
2840 echores "$neon"
2842 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2843 if test $_iwmmxt = "auto" ; then
2844 cat > $TMPC << EOF
2845 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2847 _iwmmxt=no
2848 cc_check && _iwmmxt=yes
2850 echores "$_iwmmxt"
2853 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2854 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2855 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2856 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2857 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2858 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2859 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2860 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2861 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2862 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2863 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2864 test "$_fast_clz" = yes && _cpuexts="FAST_CLZ $_cpuexts"
2865 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2866 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2867 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2868 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2869 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2870 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2871 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2872 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2873 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2875 # Checking kernel version...
2876 if x86_32 && linux ; then
2877 _k_verc_problem=no
2878 kernel_version=$(uname -r 2>&1)
2879 echocheck "$system_name kernel version"
2880 case "$kernel_version" in
2881 '') kernel_version="?.??"; _k_verc_fail=yes;;
2882 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2883 _k_verc_problem=yes;;
2884 esac
2885 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2886 _k_verc_fail=yes
2888 if test "$_k_verc_fail" ; then
2889 echores "$kernel_version, fail"
2890 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2891 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2892 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2893 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2894 echo "2.2.x you must upgrade it to get SSE support!"
2895 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2896 else
2897 echores "$kernel_version, ok"
2901 ######################
2902 # MAIN TESTS GO HERE #
2903 ######################
2906 echocheck "-lposix"
2907 cat > $TMPC <<EOF
2908 int main(void) { return 0; }
2910 if cc_check -lposix ; then
2911 extra_ldflags="$extra_ldflags -lposix"
2912 echores "yes"
2913 else
2914 echores "no"
2917 echocheck "-lm"
2918 cat > $TMPC <<EOF
2919 int main(void) { return 0; }
2921 if cc_check -lm ; then
2922 _ld_lm="-lm"
2923 echores "yes"
2924 else
2925 _ld_lm=""
2926 echores "no"
2930 echocheck "langinfo"
2931 if test "$_langinfo" = auto ; then
2932 cat > $TMPC <<EOF
2933 #include <langinfo.h>
2934 int main(void) { nl_langinfo(CODESET); return 0; }
2936 _langinfo=no
2937 cc_check && _langinfo=yes
2939 if test "$_langinfo" = yes ; then
2940 def_langinfo='#define HAVE_LANGINFO 1'
2941 else
2942 def_langinfo='#undef HAVE_LANGINFO'
2944 echores "$_langinfo"
2947 echocheck "language"
2948 # Set preferred languages, "all" uses English as main language.
2949 test -z "$language" && language=$LINGUAS
2950 test -z "$language_doc" && language_doc=$language
2951 test -z "$language_man" && language_man=$language
2952 test -z "$language_msg" && language_msg=$language
2953 language_doc=$(echo $language_doc | tr , " ")
2954 language_man=$(echo $language_man | tr , " ")
2955 language_msg=$(echo $language_msg | tr , " ")
2957 test "$language_doc" = "all" && language_doc=$doc_lang_all
2958 test "$language_man" = "all" && language_man=$man_lang_all
2959 test "$language_msg" = "all" && language_msg=en
2961 # Prune non-existing translations from language lists.
2962 # Set message translation to the first available language.
2963 # Fall back on English.
2964 for lang in $language_doc ; do
2965 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2966 done
2967 language_doc=$tmp_language_doc
2968 test -z "$language_doc" && language_doc=en
2970 for lang in $language_man ; do
2971 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2972 done
2973 language_man=$tmp_language_man
2974 test -z "$language_man" && language_man=en
2976 for lang in $language_msg ; do
2977 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2978 done
2979 language_msg=$tmp_language_msg
2980 test -z "$language_msg" && language_msg=en
2981 _mp_help="help/help_mp-${language_msg}.h"
2982 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2985 echocheck "enable sighandler"
2986 if test "$_sighandler" = yes ; then
2987 def_sighandler='#define CONFIG_SIGHANDLER 1'
2988 else
2989 def_sighandler='#undef CONFIG_SIGHANDLER'
2991 echores "$_sighandler"
2993 echocheck "runtime cpudetection"
2994 if test "$_runtime_cpudetection" = yes ; then
2995 _optimizing="Runtime CPU-Detection enabled"
2996 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2997 else
2998 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
3000 echores "$_runtime_cpudetection"
3003 echocheck "restrict keyword"
3004 for restrict_keyword in restrict __restrict __restrict__ ; do
3005 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
3006 if cc_check; then
3007 def_restrict_keyword=$restrict_keyword
3008 break;
3010 done
3011 if [ -n "$def_restrict_keyword" ]; then
3012 echores "$def_restrict_keyword"
3013 else
3014 echores "none"
3016 # Avoid infinite recursion loop ("#define restrict restrict")
3017 if [ "$def_restrict_keyword" != "restrict" ]; then
3018 def_restrict_keyword="#define restrict $def_restrict_keyword"
3019 else
3020 def_restrict_keyword=""
3024 echocheck "__builtin_expect"
3025 # GCC branch prediction hint
3026 cat > $TMPC << EOF
3027 int foo(int a) {
3028 a = __builtin_expect(a, 10);
3029 return a == 10 ? 0 : 1;
3031 int main(void) { return foo(10) && foo(0); }
3033 _builtin_expect=no
3034 cc_check && _builtin_expect=yes
3035 if test "$_builtin_expect" = yes ; then
3036 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3037 else
3038 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3040 echores "$_builtin_expect"
3043 echocheck "kstat"
3044 cat > $TMPC << EOF
3045 #include <kstat.h>
3046 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3048 _kstat=no
3049 cc_check -lkstat && _kstat=yes
3050 if test "$_kstat" = yes ; then
3051 def_kstat="#define HAVE_LIBKSTAT 1"
3052 extra_ldflags="$extra_ldflags -lkstat"
3053 else
3054 def_kstat="#undef HAVE_LIBKSTAT"
3056 echores "$_kstat"
3059 echocheck "posix4"
3060 # required for nanosleep on some systems
3061 cat > $TMPC << EOF
3062 #include <time.h>
3063 int main(void) { (void) nanosleep(0, 0); return 0; }
3065 _posix4=no
3066 cc_check -lposix4 && _posix4=yes
3067 if test "$_posix4" = yes ; then
3068 extra_ldflags="$extra_ldflags -lposix4"
3070 echores "$_posix4"
3072 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
3073 echocheck $func
3074 cat > $TMPC << EOF
3075 #include <math.h>
3076 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3078 eval _$func=no
3079 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3080 if eval test "x\$_$func" = "xyes"; then
3081 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3082 echores yes
3083 else
3084 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3085 echores no
3087 done
3090 echocheck "mkstemp"
3091 cat > $TMPC << EOF
3092 #include <stdlib.h>
3093 int main(void) { char a; mkstemp(&a); return 0; }
3095 _mkstemp=no
3096 cc_check && _mkstemp=yes
3097 if test "$_mkstemp" = yes ; then
3098 def_mkstemp='#define HAVE_MKSTEMP 1'
3099 else
3100 def_mkstemp='#undef HAVE_MKSTEMP'
3102 echores "$_mkstemp"
3105 echocheck "nanosleep"
3106 # also check for nanosleep
3107 cat > $TMPC << EOF
3108 #include <time.h>
3109 int main(void) { (void) nanosleep(0, 0); return 0; }
3111 _nanosleep=no
3112 cc_check && _nanosleep=yes
3113 if test "$_nanosleep" = yes ; then
3114 def_nanosleep='#define HAVE_NANOSLEEP 1'
3115 else
3116 def_nanosleep='#undef HAVE_NANOSLEEP'
3118 echores "$_nanosleep"
3121 echocheck "socklib"
3122 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3123 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3124 cat > $TMPC << EOF
3125 #include <netdb.h>
3126 #include <sys/socket.h>
3127 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3129 _socklib=no
3130 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3131 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3132 done
3133 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3134 if test $_winsock2_h = auto ; then
3135 _winsock2_h=no
3136 cat > $TMPC << EOF
3137 #include <winsock2.h>
3138 int main(void) { (void) gethostbyname(0); return 0; }
3140 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3142 test "$_ld_sock" && _res_comment="using $_ld_sock"
3143 echores "$_socklib"
3146 if test $_winsock2_h = yes ; then
3147 _ld_sock="-lws2_32"
3148 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3149 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3150 else
3151 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3152 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3156 echocheck "netdb.h, struct addrinfo"
3157 if test "$_struct_addrinfo" = auto; then
3158 _struct_addrinfo=no
3159 cat > $TMPC << EOF
3160 #if HAVE_WINSOCK2_H
3161 #include <winsock2.h>
3162 #include <ws2tcpip.h>
3163 #else
3164 #include <sys/types.h>
3165 #include <sys/socket.h>
3166 #include <netdb.h>
3167 #endif
3168 int main(void) { struct addrinfo ai; return 0; }
3170 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3172 echores "$_struct_addrinfo"
3174 if test "$_struct_addrinfo" = yes; then
3175 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3176 else
3177 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3181 echocheck "netdb.h, getaddrinfo()"
3182 if test "$_getaddrinfo" = auto; then
3183 _getaddrinfo=no
3184 cat > $TMPC << EOF
3185 #if HAVE_WINSOCK2_H
3186 #include <winsock2.h>
3187 #else
3188 #include <sys/types.h>
3189 #include <sys/socket.h>
3190 #include <netdb.h>
3191 #endif
3192 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3194 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3196 echores "$_getaddrinfo"
3198 if test "$_getaddrinfo" = yes; then
3199 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3200 else
3201 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3205 echocheck "sockaddr_storage"
3206 if test "$_struct_sockaddr_storage" = auto; then
3207 _struct_sockaddr_storage=no
3208 cat > $TMPC << EOF
3209 #if HAVE_WINSOCK2_H
3210 #include <winsock2.h>
3211 #else
3212 #include <sys/socket.h>
3213 #endif
3214 int main(void) { struct sockaddr_storage sas; return 0; }
3216 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3218 echores "$_struct_sockaddr_storage"
3220 if test "$_struct_sockaddr_storage" = yes; then
3221 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3222 else
3223 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3227 echocheck "struct ipv6_mreq"
3228 _struct_ipv6_mreq=no
3229 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3230 for header in "netinet/in.h" "ws2tcpip.h" ; do
3231 cat > $TMPC << EOF
3232 #include <$header>
3233 int main(void) { struct ipv6_mreq mreq6; return 0; }
3235 cc_check && _struct_ipv6_mreq=yes && \
3236 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3237 done
3238 echores "$_struct_ipv6_mreq"
3241 echocheck "struct sockaddr_in6"
3242 _struct_sockaddr_in6=no
3243 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3244 for header in "netinet/in.h" "ws2tcpip.h" ; do
3245 cat > $TMPC << EOF
3246 #include <$header>
3247 int main(void) { struct sockaddr_in6 addr; return 0; }
3249 cc_check && _struct_sockaddr_in6=yes && \
3250 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3251 done
3252 echores "$_struct_sockaddr_in6"
3255 echocheck "struct sockaddr sa_len"
3256 _struct_sockaddr_sa_len=no
3257 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3258 cat > $TMPC << EOF
3259 #if HAVE_WINSOCK2_H
3260 #include <winsock2.h>
3261 #else
3262 #include <sys/types.h>
3263 #include <sys/socket.h>
3264 #endif
3265 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3267 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3268 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3269 echores "$_struct_sockaddr_sa_len"
3272 echocheck "arpa/inet.h"
3273 arpa_inet_h=no
3274 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3275 cat > $TMPC << EOF
3276 #include <arpa/inet.h>
3277 int main(void) { return 0; }
3279 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3280 echores "$arpa_inet_h"
3283 echocheck "inet_pton()"
3284 def_inet_pton='#define HAVE_INET_PTON 0'
3285 inet_pton=no
3286 cat > $TMPC << EOF
3287 #include <sys/types.h>
3288 #include <sys/socket.h>
3289 #include <arpa/inet.h>
3290 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3292 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3293 cc_check $_ld_tmp && inet_pton=yes && break
3294 done
3295 if test $inet_pton = yes ; then
3296 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3297 def_inet_pton='#define HAVE_INET_PTON 1'
3299 echores "$inet_pton"
3302 echocheck "inet_aton()"
3303 def_inet_aton='#define HAVE_INET_ATON 0'
3304 inet_aton=no
3305 cat > $TMPC << EOF
3306 #include <sys/types.h>
3307 #include <sys/socket.h>
3308 #include <arpa/inet.h>
3309 int main(void) { (void) inet_aton(0, 0); return 0; }
3311 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3312 cc_check $_ld_tmp && inet_aton=yes && break
3313 done
3314 if test $inet_aton = yes ; then
3315 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3316 def_inet_aton='#define HAVE_INET_ATON 1'
3318 echores "$inet_aton"
3321 echocheck "socklen_t"
3322 _socklen_t=no
3323 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3324 cat > $TMPC << EOF
3325 #include <$header>
3326 int main(void) { socklen_t v = 0; return v; }
3328 cc_check && _socklen_t=yes && break
3329 done
3330 if test "$_socklen_t" = yes ; then
3331 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3332 else
3333 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3335 echores "$_socklen_t"
3338 echocheck "closesocket()"
3339 _closesocket=no
3340 cat > $TMPC << EOF
3341 #include <winsock2.h>
3342 int main(void) { closesocket(~0); return 0; }
3344 cc_check $_ld_sock && _closesocket=yes
3345 if test "$_closesocket" = yes ; then
3346 def_closesocket='#define HAVE_CLOSESOCKET 1'
3347 else
3348 def_closesocket='#define HAVE_CLOSESOCKET 0'
3350 echores "$_closesocket"
3353 echocheck "network"
3354 test $_winsock2_h = no && test $inet_pton = no &&
3355 test $inet_aton = no && _network=no
3356 if test "$_network" = yes ; then
3357 def_network='#define CONFIG_NETWORK 1'
3358 extra_ldflags="$extra_ldflags $_ld_sock"
3359 _inputmodules="network $_inputmodules"
3360 else
3361 _noinputmodules="network $_noinputmodules"
3362 def_network='#undef CONFIG_NETWORK'
3363 _ftp=no
3364 _libavprotocols=$(echo $_libavprotocols | sed -e s/GOPHER_PROTOCOL// -e s/HTTP_PROTOCOL// -e s/RTMP_PROTOCOL// -e s/RTP_PROTOCOL// -e s/TCP_PROTOCOL// -e s/UDP_PROTOCOL//)
3365 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3367 echores "$_network"
3370 echocheck "inet6"
3371 if test "$_inet6" = auto ; then
3372 cat > $TMPC << EOF
3373 #include <sys/types.h>
3374 #if !defined(_WIN32) || defined(__CYGWIN__)
3375 #include <sys/socket.h>
3376 #include <netinet/in.h>
3377 #else
3378 #include <ws2tcpip.h>
3379 #endif
3380 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3382 _inet6=no
3383 if cc_check $_ld_sock ; then
3384 _inet6=yes
3387 if test "$_inet6" = yes ; then
3388 def_inet6='#define HAVE_AF_INET6 1'
3389 else
3390 def_inet6='#undef HAVE_AF_INET6'
3392 echores "$_inet6"
3395 echocheck "gethostbyname2"
3396 if test "$_gethostbyname2" = auto ; then
3397 cat > $TMPC << EOF
3398 #include <sys/types.h>
3399 #include <sys/socket.h>
3400 #include <netdb.h>
3401 int main(void) { gethostbyname2("", AF_INET); return 0; }
3403 _gethostbyname2=no
3404 if cc_check ; then
3405 _gethostbyname2=yes
3408 if test "$_gethostbyname2" = yes ; then
3409 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3410 else
3411 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3413 echores "$_gethostbyname2"
3416 echocheck "inttypes.h (required)"
3417 cat > $TMPC << EOF
3418 #include <inttypes.h>
3419 int main(void) { return 0; }
3421 _inttypes=no
3422 cc_check && _inttypes=yes
3423 echores "$_inttypes"
3425 if test "$_inttypes" = no ; then
3426 echocheck "bitypes.h (inttypes.h predecessor)"
3427 cat > $TMPC << EOF
3428 #include <sys/bitypes.h>
3429 int main(void) { return 0; }
3431 cc_check && _inttypes=yes
3432 if test "$_inttypes" = yes ; then
3433 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
3434 else
3435 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3440 echocheck "int_fastXY_t in inttypes.h"
3441 cat > $TMPC << EOF
3442 #include <inttypes.h>
3443 int main(void) {
3444 volatile int_fast16_t v= 0;
3445 return v; }
3447 _fast_inttypes=no
3448 cc_check && _fast_inttypes=yes
3449 if test "$_fast_inttypes" = no ; then
3450 def_fast_inttypes='
3451 typedef signed char int_fast8_t;
3452 typedef signed int int_fast16_t;
3453 typedef signed int int_fast32_t;
3454 typedef signed long long int_fast64_t;
3455 typedef unsigned char uint_fast8_t;
3456 typedef unsigned int uint_fast16_t;
3457 typedef unsigned int uint_fast32_t;
3458 typedef unsigned long long uint_fast64_t;'
3460 echores "$_fast_inttypes"
3463 echocheck "malloc.h"
3464 cat > $TMPC << EOF
3465 #include <malloc.h>
3466 int main(void) { (void) malloc(0); return 0; }
3468 _malloc=no
3469 cc_check && _malloc=yes
3470 if test "$_malloc" = yes ; then
3471 def_malloc_h='#define HAVE_MALLOC_H 1'
3472 else
3473 def_malloc_h='#define HAVE_MALLOC_H 0'
3475 # malloc.h emits a warning in FreeBSD and OpenBSD
3476 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3477 echores "$_malloc"
3480 echocheck "memalign()"
3481 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3482 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3483 cat > $TMPC << EOF
3484 #include <malloc.h>
3485 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3487 _memalign=no
3488 cc_check && _memalign=yes
3489 if test "$_memalign" = yes ; then
3490 def_memalign='#define HAVE_MEMALIGN 1'
3491 else
3492 def_memalign='#define HAVE_MEMALIGN 0'
3493 def_map_memalign='#define memalign(a,b) malloc(b)'
3494 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3496 echores "$_memalign"
3499 echocheck "posix_memalign()"
3500 posix_memalign=no
3501 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3502 cat > $TMPC << EOF
3503 #define _XOPEN_SOURCE 600
3504 #include <stdlib.h>
3505 int main(void) { posix_memalign(NULL, 0, 0); }
3507 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3508 echores "$posix_memalign"
3511 echocheck "alloca.h"
3512 cat > $TMPC << EOF
3513 #include <alloca.h>
3514 int main(void) { (void) alloca(0); return 0; }
3516 _alloca=no
3517 cc_check && _alloca=yes
3518 if cc_check ; then
3519 def_alloca_h='#define HAVE_ALLOCA_H 1'
3520 else
3521 def_alloca_h='#undef HAVE_ALLOCA_H'
3523 echores "$_alloca"
3526 echocheck "fastmemcpy"
3527 if test "$_fastmemcpy" = yes ; then
3528 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3529 else
3530 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3532 echores "$_fastmemcpy"
3535 echocheck "hard-coded tables"
3536 if test "$hardcoded_tables" = yes ; then
3537 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3538 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3539 else
3540 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3542 echores "$hardcoded_tables"
3545 echocheck "mman.h"
3546 cat > $TMPC << EOF
3547 #include <sys/types.h>
3548 #include <sys/mman.h>
3549 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3551 _mman=no
3552 cc_check && _mman=yes
3553 if test "$_mman" = yes ; then
3554 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3555 else
3556 def_mman_h='#undef HAVE_SYS_MMAN_H'
3557 os2 && _need_mmap=yes
3559 echores "$_mman"
3561 cat > $TMPC << EOF
3562 #include <sys/types.h>
3563 #include <sys/mman.h>
3564 int main(void) { void *p = MAP_FAILED; return 0; }
3566 _mman_has_map_failed=no
3567 cc_check && _mman_has_map_failed=yes
3568 if test "$_mman_has_map_failed" = yes ; then
3569 def_mman_has_map_failed=''
3570 else
3571 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3574 echocheck "dynamic loader"
3575 cat > $TMPC << EOF
3576 #include <stddef.h>
3577 #include <dlfcn.h>
3578 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3580 _dl=no
3581 for _ld_tmp in "" "-ldl" ; do
3582 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3583 done
3584 if test "$_dl" = yes ; then
3585 def_dl='#define HAVE_LIBDL 1'
3586 else
3587 def_dl='#undef HAVE_LIBDL'
3589 echores "$_dl"
3592 echocheck "dynamic a/v plugins support"
3593 if test "$_dl" = no ; then
3594 _dynamic_plugins=no
3596 if test "$_dynamic_plugins" = yes ; then
3597 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3598 else
3599 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3601 echores "$_dynamic_plugins"
3604 def_threads='#define HAVE_THREADS 0'
3606 echocheck "pthread"
3607 if linux ; then
3608 THREAD_CFLAGS=-D_REENTRANT
3609 elif freebsd || netbsd || openbsd || bsdos ; then
3610 THREAD_CFLAGS=-D_THREAD_SAFE
3612 if test "$_pthreads" = auto ; then
3613 cat > $TMPC << EOF
3614 #include <pthread.h>
3615 void* func(void *arg) { return arg; }
3616 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3618 _pthreads=no
3619 if ! hpux ; then
3620 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3621 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3622 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3623 done
3626 if test "$_pthreads" = yes ; then
3627 test $_ld_pthread && _res_comment="using $_ld_pthread"
3628 def_pthreads='#define HAVE_PTHREADS 1'
3629 def_threads='#define HAVE_THREADS 1'
3630 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3631 else
3632 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3633 def_pthreads='#undef HAVE_PTHREADS'
3634 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3635 mingw32 || _win32dll=no
3637 echores "$_pthreads"
3639 if cygwin ; then
3640 if test "$_pthreads" = yes ; then
3641 def_pthread_cache="#define PTHREAD_CACHE 1"
3642 else
3643 _stream_cache=no
3644 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3648 echocheck "w32threads"
3649 if test "$_pthreads" = yes ; then
3650 _res_comment="using pthread instead"
3651 _w32threads=no
3653 if test "$_w32threads" = auto ; then
3654 _w32threads=no
3655 mingw32 && _w32threads=yes
3657 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3658 echores "$_w32threads"
3660 echocheck "rpath"
3661 netbsd &&_rpath=yes
3662 if test "$_rpath" = yes ; then
3663 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3664 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3665 done
3666 extra_ldflags=$tmp
3668 echores "$_rpath"
3670 echocheck "iconv"
3671 if test "$_iconv" = auto ; then
3672 cat > $TMPC << EOF
3673 #include <stdio.h>
3674 #include <unistd.h>
3675 #include <iconv.h>
3676 #define INBUFSIZE 1024
3677 #define OUTBUFSIZE 4096
3679 char inbuffer[INBUFSIZE];
3680 char outbuffer[OUTBUFSIZE];
3682 int main(void) {
3683 size_t numread;
3684 iconv_t icdsc;
3685 char *tocode="UTF-8";
3686 char *fromcode="cp1250";
3687 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3688 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3689 char *iptr=inbuffer;
3690 char *optr=outbuffer;
3691 size_t inleft=numread;
3692 size_t outleft=OUTBUFSIZE;
3693 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3694 != (size_t)(-1)) {
3695 write(1, outbuffer, OUTBUFSIZE - outleft);
3698 if (iconv_close(icdsc) == -1)
3701 return 0;
3704 _iconv=no
3705 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3706 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3707 _iconv=yes && break
3708 done
3710 if test "$_iconv" = yes ; then
3711 def_iconv='#define CONFIG_ICONV 1'
3712 else
3713 def_iconv='#undef CONFIG_ICONV'
3715 echores "$_iconv"
3718 echocheck "soundcard.h"
3719 _soundcard_h=no
3720 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3721 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3722 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3723 cat > $TMPC << EOF
3724 #include <$_soundcard_header>
3725 int main(void) { return 0; }
3727 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3728 done
3730 if test "$_soundcard_h" = yes ; then
3731 if test $_soundcard_header = "sys/soundcard.h"; then
3732 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3733 else
3734 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3737 echores "$_soundcard_h"
3740 echocheck "sys/dvdio.h"
3741 cat > $TMPC << EOF
3742 #include <unistd.h>
3743 #include <sys/dvdio.h>
3744 int main(void) { return 0; }
3746 _dvdio=no
3747 cc_check && _dvdio=yes
3748 if test "$_dvdio" = yes ; then
3749 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3750 else
3751 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3753 echores "$_dvdio"
3756 echocheck "sys/cdio.h"
3757 cat > $TMPC << EOF
3758 #include <unistd.h>
3759 #include <sys/cdio.h>
3760 int main(void) { return 0; }
3762 _cdio=no
3763 cc_check && _cdio=yes
3764 if test "$_cdio" = yes ; then
3765 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3766 else
3767 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3769 echores "$_cdio"
3772 echocheck "linux/cdrom.h"
3773 cat > $TMPC << EOF
3774 #include <sys/types.h>
3775 #include <linux/cdrom.h>
3776 int main(void) { return 0; }
3778 _cdrom=no
3779 cc_check && _cdrom=yes
3780 if test "$_cdrom" = yes ; then
3781 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3782 else
3783 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3785 echores "$_cdrom"
3788 echocheck "dvd.h"
3789 cat > $TMPC << EOF
3790 #include <dvd.h>
3791 int main(void) { return 0; }
3793 _dvd=no
3794 cc_check && _dvd=yes
3795 if test "$_dvd" = yes ; then
3796 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3797 else
3798 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3800 echores "$_dvd"
3803 if bsdos; then
3804 echocheck "BSDI dvd.h"
3805 cat > $TMPC << EOF
3806 #include <dvd.h>
3807 int main(void) { return 0; }
3809 _bsdi_dvd=no
3810 cc_check && _bsdi_dvd=yes
3811 if test "$_bsdi_dvd" = yes ; then
3812 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3813 else
3814 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3816 echores "$_bsdi_dvd"
3817 fi #if bsdos
3820 if hpux; then
3821 # also used by AIX, but AIX does not support VCD and/or libdvdread
3822 echocheck "HP-UX SCSI header"
3823 cat > $TMPC << EOF
3824 #include <sys/scsi.h>
3825 int main(void) { return 0; }
3827 _hpux_scsi_h=no
3828 cc_check && _hpux_scsi_h=yes
3829 if test "$_hpux_scsi_h" = yes ; then
3830 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3831 else
3832 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3834 echores "$_hpux_scsi_h"
3835 fi #if hpux
3838 if sunos; then
3839 echocheck "userspace SCSI headers (Solaris)"
3840 cat > $TMPC << EOF
3841 #include <unistd.h>
3842 #include <stropts.h>
3843 #include <sys/scsi/scsi_types.h>
3844 #include <sys/scsi/impl/uscsi.h>
3845 int main(void) { return 0; }
3847 _sol_scsi_h=no
3848 cc_check && _sol_scsi_h=yes
3849 if test "$_sol_scsi_h" = yes ; then
3850 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3851 else
3852 def_sol_scsi_h='#undef SOLARIS_USCSI'
3854 echores "$_sol_scsi_h"
3855 fi #if sunos
3858 echocheck "termcap"
3859 if test "$_termcap" = auto ; then
3860 cat > $TMPC <<EOF
3861 #include <stddef.h>
3862 #include <term.h>
3863 int main(void) { tgetent(NULL, NULL); return 0; }
3865 _termcap=no
3866 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3867 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3868 && _termcap=yes && break
3869 done
3871 if test "$_termcap" = yes ; then
3872 def_termcap='#define HAVE_TERMCAP 1'
3873 test $_ld_tmp && _res_comment="using $_ld_tmp"
3874 else
3875 def_termcap='#undef HAVE_TERMCAP'
3877 echores "$_termcap"
3880 echocheck "termios"
3881 def_termios='#undef HAVE_TERMIOS'
3882 def_termios_h='#undef HAVE_TERMIOS_H'
3883 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3884 if test "$_termios" = auto ; then
3885 _termios=no
3886 for _termios_header in "sys/termios.h" "termios.h"; do
3887 cat > $TMPC <<EOF
3888 #include <$_termios_header>
3889 int main(void) { return 0; }
3891 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3892 done
3895 if test "$_termios" = yes ; then
3896 def_termios='#define HAVE_TERMIOS 1'
3897 if test "$_termios_header" = "termios.h" ; then
3898 def_termios_h='#define HAVE_TERMIOS_H 1'
3899 else
3900 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3903 echores "$_termios"
3906 echocheck "shm"
3907 if test "$_shm" = auto ; then
3908 cat > $TMPC << EOF
3909 #include <sys/types.h>
3910 #include <sys/shm.h>
3911 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3913 _shm=no
3914 cc_check && _shm=yes
3916 if test "$_shm" = yes ; then
3917 def_shm='#define HAVE_SHM 1'
3918 else
3919 def_shm='#undef HAVE_SHM'
3921 echores "$_shm"
3924 echocheck "strsep()"
3925 cat > $TMPC << EOF
3926 #include <string.h>
3927 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3929 _strsep=no
3930 cc_check && _strsep=yes
3931 if test "$_strsep" = yes ; then
3932 def_strsep='#define HAVE_STRSEP 1'
3933 _need_strsep=no
3934 else
3935 def_strsep='#undef HAVE_STRSEP'
3936 _need_strsep=yes
3938 echores "$_strsep"
3941 echocheck "vsscanf()"
3942 cat > $TMPC << EOF
3943 #define _ISOC99_SOURCE
3944 #include <stdarg.h>
3945 #include <stdio.h>
3946 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3948 _vsscanf=no
3949 cc_check && _vsscanf=yes
3950 if test "$_vsscanf" = yes ; then
3951 def_vsscanf='#define HAVE_VSSCANF 1'
3952 _need_vsscanf=no
3953 else
3954 def_vsscanf='#undef HAVE_VSSCANF'
3955 _need_vsscanf=yes
3957 echores "$_vsscanf"
3960 echocheck "swab()"
3961 cat > $TMPC << EOF
3962 #define _XOPEN_SOURCE 600
3963 #include <unistd.h>
3964 int main(void) { swab(0, 0, 0); return 0; }
3966 _swab=no
3967 cc_check && _swab=yes
3968 if test "$_swab" = yes ; then
3969 def_swab='#define HAVE_SWAB 1'
3970 _need_swab=no
3971 else
3972 def_swab='#undef HAVE_SWAB'
3973 _need_swab=yes
3975 echores "$_swab"
3977 echocheck "POSIX select()"
3978 cat > $TMPC << EOF
3979 #include <stdio.h>
3980 #include <stdlib.h>
3981 #include <sys/types.h>
3982 #include <string.h>
3983 #include <sys/time.h>
3984 #include <unistd.h>
3985 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3987 _posix_select=no
3988 def_posix_select='#undef HAVE_POSIX_SELECT'
3989 #select() of kLIBC (OS/2) supports socket only
3990 ! os2 && cc_check && _posix_select=yes \
3991 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3992 echores "$_posix_select"
3995 echocheck "audio select()"
3996 if test "$_select" = no ; then
3997 def_select='#undef HAVE_AUDIO_SELECT'
3998 elif test "$_select" = yes ; then
3999 def_select='#define HAVE_AUDIO_SELECT 1'
4001 echores "$_select"
4004 echocheck "gettimeofday()"
4005 cat > $TMPC << EOF
4006 #include <stdio.h>
4007 #include <sys/time.h>
4008 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
4010 _gettimeofday=no
4011 cc_check && _gettimeofday=yes
4012 if test "$_gettimeofday" = yes ; then
4013 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
4014 _need_gettimeofday=no
4015 else
4016 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
4017 _need_gettimeofday=yes
4019 echores "$_gettimeofday"
4022 echocheck "glob()"
4023 cat > $TMPC << EOF
4024 #include <stdio.h>
4025 #include <glob.h>
4026 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4028 _glob=no
4029 cc_check && _glob=yes
4030 if test "$_glob" = yes ; then
4031 def_glob='#define HAVE_GLOB 1'
4032 _need_glob=no
4033 else
4034 def_glob='#undef HAVE_GLOB'
4035 _need_glob=yes
4037 echores "$_glob"
4040 echocheck "setenv()"
4041 cat > $TMPC << EOF
4042 #include <stdlib.h>
4043 int main(void) { setenv("","",0); return 0; }
4045 _setenv=no
4046 cc_check && _setenv=yes
4047 if test "$_setenv" = yes ; then
4048 def_setenv='#define HAVE_SETENV 1'
4049 _need_setenv=no
4050 else
4051 def_setenv='#undef HAVE_SETENV'
4052 _need_setenv=yes
4054 echores "$_setenv"
4057 if sunos; then
4058 echocheck "sysi86()"
4059 cat > $TMPC << EOF
4060 #include <sys/sysi86.h>
4061 int main(void) { sysi86(0); return 0; }
4063 _sysi86=no
4064 cc_check && _sysi86=yes
4065 if test "$_sysi86" = yes ; then
4066 def_sysi86='#define HAVE_SYSI86 1'
4067 cat > $TMPC << EOF
4068 #include <sys/sysi86.h>
4069 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4071 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4072 else
4073 def_sysi86='#undef HAVE_SYSI86'
4075 echores "$_sysi86"
4076 fi #if sunos
4079 echocheck "sys/sysinfo.h"
4080 cat > $TMPC << EOF
4081 #include <sys/sysinfo.h>
4082 int main(void) {
4083 struct sysinfo s_info;
4084 sysinfo(&s_info);
4085 return 0;
4088 _sys_sysinfo=no
4089 cc_check && _sys_sysinfo=yes
4090 if test "$_sys_sysinfo" = yes ; then
4091 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4092 else
4093 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4095 echores "$_sys_sysinfo"
4098 if darwin; then
4100 echocheck "Mac OS X Finder Support"
4101 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4102 if test "$_macosx_finder" = yes ; then
4103 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4104 extra_ldflags="$extra_ldflags -framework Carbon"
4106 echores "$_macosx_finder"
4108 echocheck "Mac OS X Bundle file locations"
4109 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4110 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4111 if test "$_macosx_bundle" = yes ; then
4112 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4113 extra_ldflags="$extra_ldflags -framework Carbon"
4115 echores "$_macosx_bundle"
4117 echocheck "Apple Remote"
4118 if test "$_apple_remote" = auto ; then
4119 _apple_remote=no
4120 cat > $TMPC <<EOF
4121 #include <stdio.h>
4122 #include <IOKit/IOCFPlugIn.h>
4123 int main(void) {
4124 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4125 CFMutableDictionaryRef hidMatchDictionary;
4126 IOReturn ioReturnValue;
4128 // Set up a matching dictionary to search the I/O Registry by class.
4129 // name for all HID class devices
4130 hidMatchDictionary = IOServiceMatching("AppleIRController");
4132 // Now search I/O Registry for matching devices.
4133 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4134 hidMatchDictionary, &hidObjectIterator);
4136 // If search is unsuccessful, return nonzero.
4137 if (ioReturnValue != kIOReturnSuccess ||
4138 !IOIteratorIsValid(hidObjectIterator)) {
4139 return 1;
4141 return 0;
4144 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4146 if test "$_apple_remote" = yes ; then
4147 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4148 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4149 else
4150 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4152 echores "$_apple_remote"
4154 fi #if darwin
4156 if linux; then
4158 echocheck "Apple IR"
4159 if test "$_apple_ir" = auto ; then
4160 _apple_ir=no
4161 cat > $TMPC <<EOF
4162 #include <linux/types.h>
4163 #include <linux/input.h>
4164 int main(void) {
4165 struct input_event ev;
4166 struct input_id id;
4167 return 0;
4170 cc_check && _apple_ir=yes
4172 if test "$_apple_ir" = yes ; then
4173 def_apple_ir='#define CONFIG_APPLE_IR 1'
4174 else
4175 def_apple_ir='#undef CONFIG_APPLE_IR'
4177 echores "$_apple_ir"
4178 fi #if linux
4180 echocheck "pkg-config"
4181 _pkg_config=pkg-config
4182 if $($_pkg_config --version > /dev/null 2>&1); then
4183 if test "$_ld_static"; then
4184 _pkg_config="$_pkg_config --static"
4186 echores "yes"
4187 else
4188 _pkg_config=false
4189 echores "no"
4193 echocheck "Samba support (libsmbclient)"
4194 if test "$_smb" = yes; then
4195 extra_ldflags="$extra_ldflags -lsmbclient"
4197 if test "$_smb" = auto; then
4198 _smb=no
4199 cat > $TMPC << EOF
4200 #include <libsmbclient.h>
4201 int main(void) { smbc_opendir("smb://"); return 0; }
4203 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4204 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4205 _smb=yes && break
4206 done
4209 if test "$_smb" = yes; then
4210 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4211 _inputmodules="smb $_inputmodules"
4212 else
4213 def_smb="#undef CONFIG_LIBSMBCLIENT"
4214 _noinputmodules="smb $_noinputmodules"
4216 echores "$_smb"
4219 #########
4220 # VIDEO #
4221 #########
4224 echocheck "tdfxfb"
4225 if test "$_tdfxfb" = yes ; then
4226 def_tdfxfb='#define CONFIG_TDFXFB 1'
4227 _vomodules="tdfxfb $_vomodules"
4228 else
4229 def_tdfxfb='#undef CONFIG_TDFXFB'
4230 _novomodules="tdfxfb $_novomodules"
4232 echores "$_tdfxfb"
4234 echocheck "s3fb"
4235 if test "$_s3fb" = yes ; then
4236 def_s3fb='#define CONFIG_S3FB 1'
4237 _vomodules="s3fb $_vomodules"
4238 else
4239 def_s3fb='#undef CONFIG_S3FB'
4240 _novomodules="s3fb $_novomodules"
4242 echores "$_s3fb"
4244 echocheck "wii"
4245 if test "$_wii" = yes ; then
4246 def_wii='#define CONFIG_WII 1'
4247 _vomodules="wii $_vomodules"
4248 else
4249 def_wii='#undef CONFIG_WII'
4250 _novomodules="wii $_novomodules"
4252 echores "$_wii"
4254 echocheck "tdfxvid"
4255 if test "$_tdfxvid" = yes ; then
4256 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4257 _vomodules="tdfx_vid $_vomodules"
4258 else
4259 def_tdfxvid='#undef CONFIG_TDFX_VID'
4260 _novomodules="tdfx_vid $_novomodules"
4262 echores "$_tdfxvid"
4264 echocheck "xvr100"
4265 if test "$_xvr100" = auto ; then
4266 cat > $TMPC << EOF
4267 #include <unistd.h>
4268 #include <sys/fbio.h>
4269 #include <sys/visual_io.h>
4270 int main(void) {
4271 struct vis_identifier ident;
4272 struct fbgattr attr;
4273 ioctl(0, VIS_GETIDENTIFIER, &ident);
4274 ioctl(0, FBIOGATTR, &attr);
4275 return 0;
4278 _xvr100=no
4279 cc_check && _xvr100=yes
4281 if test "$_xvr100" = yes ; then
4282 def_xvr100='#define CONFIG_XVR100 1'
4283 _vomodules="xvr100 $_vomodules"
4284 else
4285 def_tdfxvid='#undef CONFIG_XVR100'
4286 _novomodules="xvr100 $_novomodules"
4288 echores "$_xvr100"
4290 echocheck "tga"
4291 if test "$_tga" = yes ; then
4292 def_tga='#define CONFIG_TGA 1'
4293 _vomodules="tga $_vomodules"
4294 else
4295 def_tga='#undef CONFIG_TGA'
4296 _novomodules="tga $_novomodules"
4298 echores "$_tga"
4301 echocheck "md5sum support"
4302 if test "$_md5sum" = yes; then
4303 def_md5sum="#define CONFIG_MD5SUM 1"
4304 _vomodules="md5sum $_vomodules"
4305 else
4306 def_md5sum="#undef CONFIG_MD5SUM"
4307 _novomodules="md5sum $_novomodules"
4309 echores "$_md5sum"
4312 echocheck "yuv4mpeg support"
4313 if test "$_yuv4mpeg" = yes; then
4314 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4315 _vomodules="yuv4mpeg $_vomodules"
4316 else
4317 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4318 _novomodules="yuv4mpeg $_novomodules"
4320 echores "$_yuv4mpeg"
4323 echocheck "bl"
4324 if test "$_bl" = yes ; then
4325 def_bl='#define CONFIG_BL 1'
4326 _vomodules="bl $_vomodules"
4327 else
4328 def_bl='#undef CONFIG_BL'
4329 _novomodules="bl $_novomodules"
4331 echores "$_bl"
4334 echocheck "DirectFB"
4335 if test "$_directfb" = auto ; then
4336 _directfb=no
4337 cat > $TMPC <<EOF
4338 #include <directfb.h>
4339 int main(void) { DirectFBInit(0, 0); return 0; }
4341 for _inc_tmp in "" -I/usr/local/include/directfb \
4342 -I/usr/include/directfb -I/usr/local/include; do
4343 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4344 extra_cflags="$extra_cflags $_inc_tmp" && break
4345 done
4348 dfb_version() {
4349 expr $1 \* 65536 + $2 \* 256 + $3
4352 if test "$_directfb" = yes; then
4353 cat > $TMPC << EOF
4354 #include <directfb_version.h>
4356 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4359 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4360 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4361 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4362 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4363 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4364 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4365 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4366 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4367 _res_comment="$_directfb_version"
4368 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4369 else
4370 def_directfb_version='#undef DIRECTFBVERSION'
4371 _directfb=no
4372 _res_comment="version >=0.9.13 required"
4374 else
4375 _directfb=no
4376 _res_comment="failed to get version"
4379 echores "$_directfb"
4381 if test "$_directfb" = yes ; then
4382 def_directfb='#define CONFIG_DIRECTFB 1'
4383 _vomodules="directfb $_vomodules"
4384 libs_mplayer="$libs_mplayer -ldirectfb"
4385 else
4386 def_directfb='#undef CONFIG_DIRECTFB'
4387 _novomodules="directfb $_novomodules"
4389 if test "$_dfbmga" = yes; then
4390 _vomodules="dfbmga $_vomodules"
4391 def_dfbmga='#define CONFIG_DFBMGA 1'
4392 else
4393 _novomodules="dfbmga $_novomodules"
4394 def_dfbmga='#undef CONFIG_DFBMGA'
4398 echocheck "X11 headers presence"
4399 _x11_headers="no"
4400 _res_comment="check if the dev(el) packages are installed"
4401 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4402 if test -f "$I/X11/Xlib.h" ; then
4403 _x11_headers="yes"
4404 _res_comment=""
4405 break
4407 done
4408 if test $_cross_compile = no; then
4409 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4410 /usr/include/X11R6 /usr/openwin/include ; do
4411 if test -f "$I/X11/Xlib.h" ; then
4412 extra_cflags="$extra_cflags -I$I"
4413 _x11_headers="yes"
4414 _res_comment="using $I"
4415 break
4417 done
4419 echores "$_x11_headers"
4422 echocheck "X11"
4423 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4424 cat > $TMPC <<EOF
4425 #include <X11/Xlib.h>
4426 #include <X11/Xutil.h>
4427 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4429 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4430 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4431 -L/usr/lib ; do
4432 if netbsd; then
4433 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4434 else
4435 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4437 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4438 && _x11=yes && break
4439 done
4441 if test "$_x11" = yes ; then
4442 def_x11='#define CONFIG_X11 1'
4443 _vomodules="x11 xover $_vomodules"
4444 else
4445 _x11=no
4446 def_x11='#undef CONFIG_X11'
4447 _novomodules="x11 $_novomodules"
4448 _res_comment="check if the dev(el) packages are installed"
4449 # disable stuff that depends on X
4450 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4452 echores "$_x11"
4454 echocheck "Xss screensaver extensions"
4455 if test "$_xss" = auto ; then
4456 cat > $TMPC << EOF
4457 #include <X11/Xlib.h>
4458 #include <X11/extensions/scrnsaver.h>
4459 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4461 _xss=no
4462 cc_check -lXss && _xss=yes
4464 if test "$_xss" = yes ; then
4465 def_xss='#define CONFIG_XSS 1'
4466 libs_mplayer="$libs_mplayer -lXss"
4467 else
4468 def_xss='#undef CONFIG_XSS'
4470 echores "$_xss"
4472 echocheck "DPMS"
4473 _xdpms3=no
4474 _xdpms4=no
4475 if test "$_x11" = yes ; then
4476 cat > $TMPC <<EOF
4477 #include <X11/Xmd.h>
4478 #include <X11/Xlib.h>
4479 #include <X11/Xutil.h>
4480 #include <X11/Xatom.h>
4481 #include <X11/extensions/dpms.h>
4482 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4484 cc_check -lXdpms && _xdpms3=yes
4485 cat > $TMPC <<EOF
4486 #include <X11/Xlib.h>
4487 #include <X11/extensions/dpms.h>
4488 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4490 cc_check -lXext && _xdpms4=yes
4492 if test "$_xdpms4" = yes ; then
4493 def_xdpms='#define CONFIG_XDPMS 1'
4494 _res_comment="using Xdpms 4"
4495 echores "yes"
4496 elif test "$_xdpms3" = yes ; then
4497 def_xdpms='#define CONFIG_XDPMS 1'
4498 libs_mplayer="$libs_mplayer -lXdpms"
4499 _res_comment="using Xdpms 3"
4500 echores "yes"
4501 else
4502 def_xdpms='#undef CONFIG_XDPMS'
4503 echores "no"
4507 echocheck "Xv"
4508 if test "$_xv" = auto ; then
4509 cat > $TMPC <<EOF
4510 #include <X11/Xlib.h>
4511 #include <X11/extensions/Xvlib.h>
4512 int main(void) {
4513 (void) XvGetPortAttribute(0, 0, 0, 0);
4514 (void) XvQueryPortAttributes(0, 0, 0);
4515 return 0; }
4517 _xv=no
4518 cc_check -lXv && _xv=yes
4521 if test "$_xv" = yes ; then
4522 def_xv='#define CONFIG_XV 1'
4523 libs_mplayer="$libs_mplayer -lXv"
4524 _vomodules="xv $_vomodules"
4525 else
4526 def_xv='#undef CONFIG_XV'
4527 _novomodules="xv $_novomodules"
4529 echores "$_xv"
4532 echocheck "XvMC"
4533 if test "$_xv" = yes && test "$_xvmc" != no ; then
4534 _xvmc=no
4535 cat > $TMPC <<EOF
4536 #include <X11/Xlib.h>
4537 #include <X11/extensions/Xvlib.h>
4538 #include <X11/extensions/XvMClib.h>
4539 int main(void) {
4540 (void) XvMCQueryExtension(0,0,0);
4541 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4542 return 0; }
4544 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4545 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4546 done
4548 if test "$_xvmc" = yes ; then
4549 def_xvmc='#define CONFIG_XVMC 1'
4550 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4551 _vomodules="xvmc $_vomodules"
4552 _res_comment="using $_xvmclib"
4553 else
4554 def_xvmc='#define CONFIG_XVMC 0'
4555 _novomodules="xvmc $_novomodules"
4556 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4558 echores "$_xvmc"
4561 echocheck "VDPAU"
4562 if test "$_vdpau" = auto ; then
4563 _vdpau=no
4564 if test "$_dl" = yes ; then
4565 cat > $TMPC <<EOF
4566 #include <vdpau/vdpau_x11.h>
4567 int main(void) {
4568 (void) vdp_device_create_x11(0, 0, 0, 0);
4569 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4571 cc_check -lvdpau && _vdpau=yes
4574 if test "$_vdpau" = yes ; then
4575 def_vdpau='#define CONFIG_VDPAU 1'
4576 libs_mplayer="$libs_mplayer -lvdpau"
4577 _vomodules="vdpau $_vomodules"
4578 else
4579 def_vdpau='#define CONFIG_VDPAU 0'
4580 _novomodules="vdpau $_novomodules"
4581 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4583 echores "$_vdpau"
4586 echocheck "Xinerama"
4587 if test "$_xinerama" = auto ; then
4588 cat > $TMPC <<EOF
4589 #include <X11/Xlib.h>
4590 #include <X11/extensions/Xinerama.h>
4591 int main(void) { (void) XineramaIsActive(0); return 0; }
4593 _xinerama=no
4594 cc_check -lXinerama && _xinerama=yes
4597 if test "$_xinerama" = yes ; then
4598 def_xinerama='#define CONFIG_XINERAMA 1'
4599 libs_mplayer="$libs_mplayer -lXinerama"
4600 else
4601 def_xinerama='#undef CONFIG_XINERAMA'
4603 echores "$_xinerama"
4606 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4607 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4608 # named 'X extensions' or something similar.
4609 # This check may be useful for future mplayer versions (to change resolution)
4610 # If you run into problems, remove '-lXxf86vm'.
4611 echocheck "Xxf86vm"
4612 if test "$_vm" = auto ; then
4613 cat > $TMPC <<EOF
4614 #include <X11/Xlib.h>
4615 #include <X11/extensions/xf86vmode.h>
4616 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4618 _vm=no
4619 cc_check -lXxf86vm && _vm=yes
4621 if test "$_vm" = yes ; then
4622 def_vm='#define CONFIG_XF86VM 1'
4623 libs_mplayer="$libs_mplayer -lXxf86vm"
4624 else
4625 def_vm='#undef CONFIG_XF86VM'
4627 echores "$_vm"
4629 # Check for the presence of special keycodes, like audio control buttons
4630 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4631 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4632 # have these new keycodes.
4633 echocheck "XF86keysym"
4634 if test "$_xf86keysym" = auto; then
4635 _xf86keysym=no
4636 cat > $TMPC <<EOF
4637 #include <X11/Xlib.h>
4638 #include <X11/XF86keysym.h>
4639 int main(void) { return XF86XK_AudioPause; }
4641 cc_check && _xf86keysym=yes
4643 if test "$_xf86keysym" = yes ; then
4644 def_xf86keysym='#define CONFIG_XF86XK 1'
4645 else
4646 def_xf86keysym='#undef CONFIG_XF86XK'
4648 echores "$_xf86keysym"
4650 echocheck "DGA"
4651 if test "$_dga2" = auto && test "$_x11" = yes ; then
4652 cat > $TMPC << EOF
4653 #include <X11/Xlib.h>
4654 #include <X11/extensions/xf86dga.h>
4655 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4657 _dga2=no
4658 cc_check -lXxf86dga && _dga2=yes
4660 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4661 cat > $TMPC << EOF
4662 #include <X11/Xlib.h>
4663 #include <X11/extensions/xf86dga.h>
4664 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4666 _dga1=no
4667 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4670 _dga=no
4671 def_dga='#undef CONFIG_DGA'
4672 def_dga1='#undef CONFIG_DGA1'
4673 def_dga2='#undef CONFIG_DGA2'
4674 if test "$_dga1" = yes ; then
4675 _dga=yes
4676 def_dga1='#define CONFIG_DGA1 1'
4677 _res_comment="using DGA 1.0"
4678 elif test "$_dga2" = yes ; then
4679 _dga=yes
4680 def_dga2='#define CONFIG_DGA2 1'
4681 _res_comment="using DGA 2.0"
4683 if test "$_dga" = yes ; then
4684 def_dga='#define CONFIG_DGA 1'
4685 libs_mplayer="$libs_mplayer -lXxf86dga"
4686 _vomodules="dga $_vomodules"
4687 else
4688 _novomodules="dga $_novomodules"
4690 echores "$_dga"
4693 echocheck "3dfx"
4694 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4695 def_3dfx='#define CONFIG_3DFX 1'
4696 _vomodules="3dfx $_vomodules"
4697 else
4698 def_3dfx='#undef CONFIG_3DFX'
4699 _novomodules="3dfx $_novomodules"
4701 echores "$_3dfx"
4704 echocheck "VIDIX"
4705 def_vidix='#undef CONFIG_VIDIX'
4706 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4707 _vidix_drv_cyberblade=no
4708 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4709 _vidix_drv_ivtv=no
4710 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4711 _vidix_drv_mach64=no
4712 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4713 _vidix_drv_mga=no
4714 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4715 _vidix_drv_mga_crtc2=no
4716 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4717 _vidix_drv_nvidia=no
4718 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4719 _vidix_drv_pm2=no
4720 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4721 _vidix_drv_pm3=no
4722 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4723 _vidix_drv_radeon=no
4724 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4725 _vidix_drv_rage128=no
4726 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4727 _vidix_drv_s3=no
4728 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4729 _vidix_drv_sh_veu=no
4730 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4731 _vidix_drv_sis=no
4732 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4733 _vidix_drv_unichrome=no
4734 if test "$_vidix" = auto ; then
4735 _vidix=no
4736 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4737 && _vidix=yes
4738 x86_64 && win32 && _vidix=no
4739 (ppc || alpha) && linux && _vidix=yes
4741 echores "$_vidix"
4743 if test "$_vidix" = yes ; then
4744 def_vidix='#define CONFIG_VIDIX 1'
4745 _vomodules="cvidix $_vomodules"
4746 # FIXME: ivtv driver temporarily disabled until we have a proper test
4747 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4748 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4750 # some vidix drivers are architecture and os specific, discard them elsewhere
4751 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4752 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4754 for driver in $_vidix_drivers ; do
4755 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4756 eval _vidix_drv_${driver}=yes
4757 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4758 done
4760 echocheck "VIDIX PCI device name database"
4761 echores "$_vidix_pcidb"
4762 if test "$_vidix_pcidb" = yes ; then
4763 _vidix_pcidb_val=1
4764 else
4765 _vidix_pcidb_val=0
4768 echocheck "VIDIX dhahelper support"
4769 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4770 echores "$_dhahelper"
4772 echocheck "VIDIX svgalib_helper support"
4773 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4774 echores "$_svgalib_helper"
4776 else
4777 _novomodules="cvidix $_novomodules"
4780 if test "$_vidix" = yes && win32; then
4781 winvidix=yes
4782 _vomodules="winvidix $_vomodules"
4783 libs_mplayer="$libs_mplayer -lgdi32"
4784 else
4785 _novomodules="winvidix $_novomodules"
4787 if test "$_vidix" = yes && test "$_x11" = yes; then
4788 xvidix=yes
4789 _vomodules="xvidix $_vomodules"
4790 else
4791 _novomodules="xvidix $_novomodules"
4794 echocheck "/dev/mga_vid"
4795 if test "$_mga" = auto ; then
4796 _mga=no
4797 test -c /dev/mga_vid && _mga=yes
4799 if test "$_mga" = yes ; then
4800 def_mga='#define CONFIG_MGA 1'
4801 _vomodules="mga $_vomodules"
4802 else
4803 def_mga='#undef CONFIG_MGA'
4804 _novomodules="mga $_novomodules"
4806 echores "$_mga"
4808 echocheck "xmga"
4809 if test "$_xmga" = auto ; then
4810 _xmga=no
4811 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4813 if test "$_xmga" = yes ; then
4814 def_xmga='#define CONFIG_XMGA 1'
4815 _vomodules="xmga $_vomodules"
4816 else
4817 def_xmga='#undef CONFIG_XMGA'
4818 _novomodules="xmga $_novomodules"
4820 echores "$_xmga"
4823 echocheck "GGI"
4824 if test "$_ggi" = auto ; then
4825 cat > $TMPC << EOF
4826 #include <ggi/ggi.h>
4827 int main(void) { ggiInit(); return 0; }
4829 _ggi=no
4830 cc_check -lggi && _ggi=yes
4832 if test "$_ggi" = yes ; then
4833 def_ggi='#define CONFIG_GGI 1'
4834 libs_mplayer="$libs_mplayer -lggi"
4835 _vomodules="ggi $_vomodules"
4836 else
4837 def_ggi='#undef CONFIG_GGI'
4838 _novomodules="ggi $_novomodules"
4840 echores "$_ggi"
4842 echocheck "GGI extension: libggiwmh"
4843 if test "$_ggiwmh" = auto ; then
4844 _ggiwmh=no
4845 cat > $TMPC << EOF
4846 #include <ggi/ggi.h>
4847 #include <ggi/wmh.h>
4848 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4850 cc_check -lggi -lggiwmh && _ggiwmh=yes
4852 # needed to get right output on obscure combination
4853 # like --disable-ggi --enable-ggiwmh
4854 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4855 def_ggiwmh='#define CONFIG_GGIWMH 1'
4856 libs_mplayer="$libs_mplayer -lggiwmh"
4857 else
4858 _ggiwmh=no
4859 def_ggiwmh='#undef CONFIG_GGIWMH'
4861 echores "$_ggiwmh"
4864 echocheck "AA"
4865 if test "$_aa" = auto ; then
4866 cat > $TMPC << EOF
4867 #include <aalib.h>
4868 extern struct aa_hardware_params aa_defparams;
4869 extern struct aa_renderparams aa_defrenderparams;
4870 int main(void) {
4871 aa_context *c;
4872 aa_renderparams *p;
4873 (void) aa_init(0, 0, 0);
4874 c = aa_autoinit(&aa_defparams);
4875 p = aa_getrenderparams();
4876 aa_autoinitkbd(c,0);
4877 return 0; }
4879 _aa=no
4880 for _ld_tmp in "-laa" ; do
4881 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4882 done
4884 if test "$_aa" = yes ; then
4885 def_aa='#define CONFIG_AA 1'
4886 if cygwin ; then
4887 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4889 _vomodules="aa $_vomodules"
4890 else
4891 def_aa='#undef CONFIG_AA'
4892 _novomodules="aa $_novomodules"
4894 echores "$_aa"
4897 echocheck "CACA"
4898 if test "$_caca" = auto ; then
4899 _caca=no
4900 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4901 cat > $TMPC << EOF
4902 #include <caca.h>
4903 #ifdef CACA_API_VERSION_1
4904 #include <caca0.h>
4905 #endif
4906 int main(void) { (void) caca_init(); return 0; }
4908 cc_check $(caca-config --libs) && _caca=yes
4911 if test "$_caca" = yes ; then
4912 def_caca='#define CONFIG_CACA 1'
4913 extra_cflags="$extra_cflags $(caca-config --cflags)"
4914 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4915 _vomodules="caca $_vomodules"
4916 else
4917 def_caca='#undef CONFIG_CACA'
4918 _novomodules="caca $_novomodules"
4920 echores "$_caca"
4923 echocheck "SVGAlib"
4924 if test "$_svga" = auto ; then
4925 cat > $TMPC << EOF
4926 #include <vga.h>
4927 int main(void) { return 0; }
4929 _svga=no
4930 cc_check -lvga $_ld_lm && _svga=yes
4932 if test "$_svga" = yes ; then
4933 def_svga='#define CONFIG_SVGALIB 1'
4934 libs_mplayer="$libs_mplayer -lvga"
4935 _vomodules="svga $_vomodules"
4936 else
4937 def_svga='#undef CONFIG_SVGALIB'
4938 _novomodules="svga $_novomodules"
4940 echores "$_svga"
4943 echocheck "FBDev"
4944 if test "$_fbdev" = auto ; then
4945 _fbdev=no
4946 linux && _fbdev=yes
4948 if test "$_fbdev" = yes ; then
4949 def_fbdev='#define CONFIG_FBDEV 1'
4950 _vomodules="fbdev $_vomodules"
4951 else
4952 def_fbdev='#undef CONFIG_FBDEV'
4953 _novomodules="fbdev $_novomodules"
4955 echores "$_fbdev"
4959 echocheck "DVB"
4960 if test "$_dvb" = auto ; then
4961 _dvb=no
4962 cat >$TMPC << EOF
4963 #include <poll.h>
4964 #include <sys/ioctl.h>
4965 #include <stdio.h>
4966 #include <time.h>
4967 #include <unistd.h>
4968 #include <ost/dmx.h>
4969 #include <ost/frontend.h>
4970 #include <ost/sec.h>
4971 #include <ost/video.h>
4972 #include <ost/audio.h>
4973 int main(void) {return 0;}
4975 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4976 cc_check $_inc_tmp && _dvb=yes && \
4977 extra_cflags="$extra_cflags $_inc_tmp" && break
4978 done
4980 echores "$_dvb"
4981 if test "$_dvb" = yes ; then
4982 def_dvb='#define CONFIG_DVB 1'
4983 def_dvbin='#define CONFIG_DVBIN 1'
4984 _aomodules="mpegpes(dvb) $_aomodules"
4985 _vomodules="mpegpes(dvb) $_vomodules"
4988 echocheck "DVB HEAD"
4989 if test "$_dvbhead" = auto ; then
4990 _dvbhead=no
4992 cat >$TMPC << EOF
4993 #include <poll.h>
4994 #include <sys/ioctl.h>
4995 #include <stdio.h>
4996 #include <time.h>
4997 #include <unistd.h>
4998 #include <linux/dvb/dmx.h>
4999 #include <linux/dvb/frontend.h>
5000 #include <linux/dvb/video.h>
5001 #include <linux/dvb/audio.h>
5002 int main(void) {return 0;}
5004 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
5005 cc_check $_inc_tmp && _dvbhead=yes && \
5006 extra_cflags="$extra_cflags $_inc_tmp" && break
5007 done
5009 echores "$_dvbhead"
5010 if test "$_dvbhead" = yes ; then
5011 def_dvb='#define CONFIG_DVB 1'
5012 def_dvb_head='#define CONFIG_DVB_HEAD 1'
5013 def_dvbin='#define CONFIG_DVBIN 1'
5014 _aomodules="mpegpes(dvb) $_aomodules"
5015 _vomodules="mpegpes(dvb) $_vomodules"
5018 if test "$_dvbhead" = no && test "$_dvb" = no ; then
5019 def_dvb='#undef CONFIG_DVB'
5020 def_dvb_head='#undef CONFIG_DVB_HEAD'
5021 def_dvbin='#undef CONFIG_DVBIN '
5022 _aomodules="mpegpes(file) $_aomodules"
5023 _vomodules="mpegpes(file) $_vomodules"
5026 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
5027 _dvbin=yes
5028 _inputmodules="dvb $_inputmodules"
5029 else
5030 _dvbin=no
5031 _noinputmodules="dvb $_noinputmodules"
5035 if darwin; then
5037 echocheck "QuickTime"
5038 if test "$quicktime" = auto ; then
5039 cat > $TMPC <<EOF
5040 #include <QuickTime/QuickTime.h>
5041 int main(void) {
5042 ImageDescription *desc;
5043 EnterMovies();
5044 ExitMovies();
5045 return 0;
5048 quicktime=no
5049 cc_check -framework QuickTime && quicktime=yes
5051 if test "$quicktime" = yes ; then
5052 extra_ldflags="$extra_ldflags -framework QuickTime"
5053 def_quicktime='#define CONFIG_QUICKTIME 1'
5054 else
5055 def_quicktime='#undef CONFIG_QUICKTIME'
5056 _quartz=no
5058 echores $quicktime
5060 echocheck "Quartz"
5061 if test "$_quartz" = auto ; then
5062 cat > $TMPC <<EOF
5063 #include <Carbon/Carbon.h>
5064 int main(void) {
5065 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5066 return 0;
5069 _quartz=no
5070 cc_check -framework Carbon && _quartz=yes
5072 if test "$_quartz" = yes ; then
5073 libs_mplayer="$libs_mplayer -framework Carbon"
5074 def_quartz='#define CONFIG_QUARTZ 1'
5075 _vomodules="quartz $_vomodules"
5076 else
5077 def_quartz='#undef CONFIG_QUARTZ'
5078 _novomodules="quartz $_novomodules"
5080 echores $_quartz
5082 echocheck "CoreVideo"
5083 if test "$_corevideo" = auto ; then
5084 cat > $TMPC <<EOF
5085 #include <Carbon/Carbon.h>
5086 #include <CoreServices/CoreServices.h>
5087 #include <OpenGL/OpenGL.h>
5088 #include <QuartzCore/CoreVideo.h>
5089 int main(void) { return 0; }
5091 _corevideo=no
5092 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5094 if test "$_corevideo" = yes ; then
5095 _vomodules="corevideo $_vomodules"
5096 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5097 def_corevideo='#define CONFIG_COREVIDEO 1'
5098 else
5099 _novomodules="corevideo $_novomodules"
5100 def_corevideo='#undef CONFIG_COREVIDEO'
5102 echores "$_corevideo"
5104 fi #if darwin
5107 # make sure this stays below CoreVideo to avoid issues due to namespace
5108 # conflicts between -lGL and -framework OpenGL
5109 echocheck "OpenGL"
5110 #Note: this test is run even with --enable-gl since we autodetect linker flags
5111 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
5112 cat > $TMPC << EOF
5113 #ifdef GL_WIN32
5114 #include <windows.h>
5115 #include <GL/gl.h>
5116 #else
5117 #include <GL/gl.h>
5118 #include <X11/Xlib.h>
5119 #include <GL/glx.h>
5120 #endif
5121 int main(void) {
5122 #ifdef GL_WIN32
5123 HDC dc;
5124 wglCreateContext(dc);
5125 #else
5126 glXCreateContext(NULL, NULL, NULL, True);
5127 #endif
5128 glFinish();
5129 return 0;
5132 _gl=no
5133 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5134 if cc_check $_ld_tmp $_ld_lm ; then
5135 _gl=yes
5136 _gl_x11=yes
5137 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5138 break
5140 done
5141 if cc_check -DGL_WIN32 -lopengl32 ; then
5142 _gl=yes
5143 _gl_win32=yes
5144 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5146 else
5147 _gl=no
5149 if test "$_gl" = yes ; then
5150 def_gl='#define CONFIG_GL 1'
5151 _res_comment="backends:"
5152 if test "$_gl_win32" = yes ; then
5153 def_gl_win32='#define CONFIG_GL_WIN32 1'
5154 _res_comment="$_res_comment win32"
5156 if test "$_gl_x11" = yes ; then
5157 def_gl_x11='#define CONFIG_GL_X11 1'
5158 _res_comment="$_res_comment x11"
5160 _vomodules="opengl $_vomodules"
5161 else
5162 def_gl='#undef CONFIG_GL'
5163 def_gl_win32='#undef CONFIG_GL_WIN32'
5164 def_gl_x11='#undef CONFIG_GL_X11'
5165 _novomodules="opengl $_novomodules"
5167 echores "$_gl"
5170 echocheck "MatrixView"
5171 if test "$_gl" = no ; then
5172 matrixview=no
5174 if test "$matrixview" = yes ; then
5175 _vomodules="matrixview $_vomodules"
5176 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5177 else
5178 _novomodules="matrixview $_novomodules"
5179 def_matrixview='#undef CONFIG_MATRIXVIEW'
5181 echores "$matrixview"
5184 echocheck "PNG support"
5185 if test "$_png" = auto ; then
5186 _png=no
5187 if irix ; then
5188 # Don't check for -lpng on irix since it has its own libpng
5189 # incompatible with the GNU libpng
5190 _res_comment="disabled on irix (not GNU libpng)"
5191 else
5192 cat > $TMPC << EOF
5193 #include <png.h>
5194 #include <string.h>
5195 int main(void) {
5196 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5197 printf("libpng: %s\n", png_libpng_ver);
5198 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5201 cc_check -lpng -lz $_ld_lm && _png=yes
5204 echores "$_png"
5205 if test "$_png" = yes ; then
5206 def_png='#define CONFIG_PNG 1'
5207 extra_ldflags="$extra_ldflags -lpng -lz"
5208 else
5209 def_png='#undef CONFIG_PNG'
5212 echocheck "MNG support"
5213 if test "$_mng" = auto ; then
5214 _mng=no
5215 cat > $TMPC << EOF
5216 #include <libmng.h>
5217 int main(void) {
5218 const char * p_ver = mng_version_text();
5219 return !p_ver || p_ver[0] == 0;
5222 if cc_check -lmng -lz $_ld_lm ; then
5223 _mng=yes
5226 echores "$_mng"
5227 if test "$_mng" = yes ; then
5228 def_mng='#define CONFIG_MNG 1'
5229 extra_ldflags="$extra_ldflags -lmng -lz"
5230 else
5231 def_mng='#undef CONFIG_MNG'
5234 echocheck "JPEG support"
5235 if test "$_jpeg" = auto ; then
5236 _jpeg=no
5237 cat > $TMPC << EOF
5238 #include <stdio.h>
5239 #include <stdlib.h>
5240 #include <setjmp.h>
5241 #include <string.h>
5242 #include <jpeglib.h>
5243 int main(void) { return 0; }
5245 cc_check -ljpeg $_ld_lm && _jpeg=yes
5247 echores "$_jpeg"
5249 if test "$_jpeg" = yes ; then
5250 def_jpeg='#define CONFIG_JPEG 1'
5251 _vomodules="jpeg $_vomodules"
5252 extra_ldflags="$extra_ldflags -ljpeg"
5253 else
5254 def_jpeg='#undef CONFIG_JPEG'
5255 _novomodules="jpeg $_novomodules"
5259 echocheck "OpenJPEG (JPEG2000) support"
5260 if test "$libopenjpeg" = auto ; then
5261 libopenjpeg=no
5262 cat > $TMPC << EOF
5263 #define OPJ_STATIC
5264 #include <openjpeg.h>
5265 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5267 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5269 echores "$libopenjpeg"
5270 if test "$libopenjpeg" = yes ; then
5271 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5272 extra_ldflags="$extra_ldflags -lopenjpeg"
5273 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5274 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5275 _codecmodules="OpenJPEG $_codecmodules"
5276 else
5277 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5278 _nocodecmodules="OpenJPEG $_nocodecmodules"
5282 echocheck "PNM support"
5283 if test "$_pnm" = yes; then
5284 def_pnm="#define CONFIG_PNM 1"
5285 _vomodules="pnm $_vomodules"
5286 else
5287 def_pnm="#undef CONFIG_PNM"
5288 _novomodules="pnm $_novomodules"
5290 echores "$_pnm"
5294 echocheck "GIF support"
5295 # This is to appease people who want to force gif support.
5296 # If it is forced to yes, then we still do checks to determine
5297 # which gif library to use.
5298 if test "$_gif" = yes ; then
5299 _force_gif=yes
5300 _gif=auto
5303 if test "$_gif" = auto ; then
5304 _gif=no
5305 cat > $TMPC << EOF
5306 #include <gif_lib.h>
5307 int main(void) { return 0; }
5309 for _ld_gif in "-lungif" "-lgif" ; do
5310 cc_check $_ld_gif && _gif=yes && break
5311 done
5314 # If no library was found, and the user wants support forced,
5315 # then we force it on with libgif, as this is the safest
5316 # assumption IMHO. (libungif & libregif both create symbolic
5317 # links to libgif. We also assume that no x11 support is needed,
5318 # because if you are forcing this, then you _should_ know what
5319 # you are doing. [ Besides, package maintainers should never
5320 # have compiled x11 deps into libungif in the first place. ] )
5321 # </rant>
5322 # --Joey
5323 if test "$_force_gif" = yes && test "$_gif" = no ; then
5324 _gif=yes
5325 _ld_gif="-lgif"
5328 if test "$_gif" = yes ; then
5329 def_gif='#define CONFIG_GIF 1'
5330 _codecmodules="gif $_codecmodules"
5331 _vomodules="gif89a $_vomodules"
5332 _res_comment="old version, some encoding functions disabled"
5333 def_gif_4='#undef CONFIG_GIF_4'
5334 extra_ldflags="$extra_ldflags $_ld_gif"
5336 cat > $TMPC << EOF
5337 #include <signal.h>
5338 #include <gif_lib.h>
5339 void catch() { exit(1); }
5340 int main(void) {
5341 signal(SIGSEGV, catch); // catch segfault
5342 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5343 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5344 return 0;
5347 if cc_check "$_ld_gif" ; then
5348 def_gif_4='#define CONFIG_GIF_4 1'
5349 _res_comment=""
5351 else
5352 def_gif='#undef CONFIG_GIF'
5353 def_gif_4='#undef CONFIG_GIF_4'
5354 _novomodules="gif89a $_novomodules"
5355 _nocodecmodules="gif $_nocodecmodules"
5357 echores "$_gif"
5360 case "$_gif" in yes*)
5361 echocheck "broken giflib workaround"
5362 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5364 cat > $TMPC << EOF
5365 #include <gif_lib.h>
5366 int main(void) {
5367 GifFileType gif;
5368 printf("UserData is at address %p\n", gif.UserData);
5369 return 0;
5372 if cc_check "$_ld_gif" ; then
5373 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5374 echores "disabled"
5375 else
5376 echores "enabled"
5379 esac
5382 echocheck "VESA support"
5383 if test "$_vesa" = auto ; then
5384 cat > $TMPC << EOF
5385 #include <vbe.h>
5386 int main(void) { vbeVersion(); return 0; }
5388 _vesa=no
5389 cc_check -lvbe -llrmi && _vesa=yes
5391 if test "$_vesa" = yes ; then
5392 def_vesa='#define CONFIG_VESA 1'
5393 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5394 _vomodules="vesa $_vomodules"
5395 else
5396 def_vesa='#undef CONFIG_VESA'
5397 _novomodules="vesa $_novomodules"
5399 echores "$_vesa"
5401 #################
5402 # VIDEO + AUDIO #
5403 #################
5406 echocheck "SDL"
5407 _inc_tmp=""
5408 _ld_tmp=""
5409 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5410 if test -z "$_sdlconfig" ; then
5411 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5412 _sdlconfig="sdl-config"
5413 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5414 _sdlconfig="sdl11-config"
5415 else
5416 _sdlconfig=false
5419 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5420 cat > $TMPC << EOF
5421 #ifdef CONFIG_SDL_SDL_H
5422 #include <SDL/SDL.h>
5423 #else
5424 #include <SDL.h>
5425 #endif
5426 #ifndef __APPLE__
5427 // we allow SDL hacking our main() only on OSX
5428 #undef main
5429 #endif
5430 int main(int argc, char *argv[]) {
5431 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5432 return 0;
5435 _sdl=no
5436 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5437 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5438 _sdl=yes
5439 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5440 break
5442 done
5443 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5444 _res_comment="using $_sdlconfig"
5445 if cygwin ; then
5446 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5447 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5448 elif mingw32 ; then
5449 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5450 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5451 else
5452 _inc_tmp="$($_sdlconfig --cflags)"
5453 _ld_tmp="$($_sdlconfig --libs)"
5455 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5456 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5457 if test "$_sdlversion" -gt 116 ; then
5458 if test "$_sdlversion" -lt 121 ; then
5459 def_sdlbuggy='#define BUGGY_SDL'
5460 else
5461 def_sdlbuggy='#undef BUGGY_SDL'
5463 _sdl=yes
5468 if test "$_sdl" = yes ; then
5469 def_sdl='#define CONFIG_SDL 1'
5470 extra_cflags="$extra_cflags $_inc_tmp"
5471 libs_mplayer="$libs_mplayer $_ld_tmp"
5472 _vomodules="sdl $_vomodules"
5473 _aomodules="sdl $_aomodules"
5474 else
5475 def_sdl='#undef CONFIG_SDL'
5476 _novomodules="sdl $_novomodules"
5477 _noaomodules="sdl $_noaomodules"
5479 echores "$_sdl"
5482 if os2 ; then
5483 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5484 if test "$_kva" = auto; then
5485 cat > $TMPC << EOF
5486 #include <os2.h>
5487 #include <kva.h>
5488 int main( void ) { return 0; }
5490 _kva=no;
5491 cc_check -lkva && _kva=yes
5493 if test "$_kva" = yes ; then
5494 def_kva='#define CONFIG_KVA 1'
5495 libs_mplayer="$libs_mplayer -lkva"
5496 _vomodules="kva $_vomodules"
5497 else
5498 def_kva='#undef CONFIG_KVA'
5499 _novomodules="kva $_novomodules"
5501 echores "$_kva"
5502 fi #if os2
5505 if win32; then
5507 echocheck "Windows waveout"
5508 if test "$_win32waveout" = auto ; then
5509 cat > $TMPC << EOF
5510 #include <windows.h>
5511 #include <mmsystem.h>
5512 int main(void) { return 0; }
5514 _win32waveout=no
5515 cc_check -lwinmm && _win32waveout=yes
5517 if test "$_win32waveout" = yes ; then
5518 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5519 libs_mplayer="$libs_mplayer -lwinmm"
5520 _aomodules="win32 $_aomodules"
5521 else
5522 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5523 _noaomodules="win32 $_noaomodules"
5525 echores "$_win32waveout"
5527 echocheck "Direct3D"
5528 if test "$_direct3d" = auto ; then
5529 cat > $TMPC << EOF
5530 #include <windows.h>
5531 #include <d3d9.h>
5532 int main(void) { return 0; }
5534 _direct3d=no
5535 cc_check && _direct3d=yes
5537 if test "$_direct3d" = yes ; then
5538 def_direct3d='#define CONFIG_DIRECT3D 1'
5539 _vomodules="direct3d $_vomodules"
5540 else
5541 def_direct3d='#undef CONFIG_DIRECT3D'
5542 _novomodules="direct3d $_novomodules"
5544 echores "$_direct3d"
5546 echocheck "Directx"
5547 if test "$_directx" = auto ; then
5548 cat > $TMPC << EOF
5549 #include <windows.h>
5550 #include <ddraw.h>
5551 #include <dsound.h>
5552 int main(void) { return 0; }
5554 _directx=no
5555 cc_check -lgdi32 && _directx=yes
5557 if test "$_directx" = yes ; then
5558 def_directx='#define CONFIG_DIRECTX 1'
5559 libs_mplayer="$libs_mplayer -lgdi32"
5560 _vomodules="directx $_vomodules"
5561 _aomodules="dsound $_aomodules"
5562 else
5563 def_directx='#undef CONFIG_DIRECTX'
5564 _novomodules="directx $_novomodules"
5565 _noaomodules="dsound $_noaomodules"
5567 echores "$_directx"
5569 fi #if win32; then
5572 echocheck "DXR2"
5573 if test "$_dxr2" = auto; then
5574 _dxr2=no
5575 cat > $TMPC << EOF
5576 #include <dxr2ioctl.h>
5577 int main(void) { return 0; }
5579 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5580 cc_check $_inc_tmp && _dxr2=yes && \
5581 extra_cflags="$extra_cflags $_inc_tmp" && break
5582 done
5584 if test "$_dxr2" = yes; then
5585 def_dxr2='#define CONFIG_DXR2 1'
5586 _aomodules="dxr2 $_aomodules"
5587 _vomodules="dxr2 $_vomodules"
5588 else
5589 def_dxr2='#undef CONFIG_DXR2'
5590 _noaomodules="dxr2 $_noaomodules"
5591 _novomodules="dxr2 $_novomodules"
5593 echores "$_dxr2"
5595 echocheck "DXR3/H+"
5596 if test "$_dxr3" = auto ; then
5597 cat > $TMPC << EOF
5598 #include <linux/em8300.h>
5599 int main(void) { return 0; }
5601 _dxr3=no
5602 cc_check && _dxr3=yes
5604 if test "$_dxr3" = yes ; then
5605 def_dxr3='#define CONFIG_DXR3 1'
5606 _vomodules="dxr3 $_vomodules"
5607 else
5608 def_dxr3='#undef CONFIG_DXR3'
5609 _novomodules="dxr3 $_novomodules"
5611 echores "$_dxr3"
5614 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5615 if test "$_ivtv" = auto ; then
5616 cat > $TMPC << EOF
5617 #include <stdlib.h>
5618 #include <inttypes.h>
5619 #include <linux/types.h>
5620 #include <linux/videodev2.h>
5621 #include <linux/ivtv.h>
5622 #include <sys/ioctl.h>
5623 int main(void) {
5624 struct ivtv_cfg_stop_decode sd;
5625 struct ivtv_cfg_start_decode sd1;
5626 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5627 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5628 return 0; }
5630 _ivtv=no
5631 cc_check && _ivtv=yes
5633 if test "$_ivtv" = yes ; then
5634 def_ivtv='#define CONFIG_IVTV 1'
5635 _vomodules="ivtv $_vomodules"
5636 _aomodules="ivtv $_aomodules"
5637 else
5638 def_ivtv='#undef CONFIG_IVTV'
5639 _novomodules="ivtv $_novomodules"
5640 _noaomodules="ivtv $_noaomodules"
5642 echores "$_ivtv"
5645 echocheck "V4L2 MPEG Decoder"
5646 if test "$_v4l2" = auto ; then
5647 cat > $TMPC << EOF
5648 #include <stdlib.h>
5649 #include <inttypes.h>
5650 #include <linux/types.h>
5651 #include <linux/videodev2.h>
5652 #include <linux/version.h>
5653 int main(void) {
5654 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5655 #error kernel headers too old, need 2.6.22
5656 #endif
5657 struct v4l2_ext_controls ctrls;
5658 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5659 return 0;
5662 _v4l2=no
5663 cc_check && _v4l2=yes
5665 if test "$_v4l2" = yes ; then
5666 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5667 _vomodules="v4l2 $_vomodules"
5668 _aomodules="v4l2 $_aomodules"
5669 else
5670 def_v4l2='#undef CONFIG_V4L2_DECODER'
5671 _novomodules="v4l2 $_novomodules"
5672 _noaomodules="v4l2 $_noaomodules"
5674 echores "$_v4l2"
5678 #########
5679 # AUDIO #
5680 #########
5683 echocheck "OSS Audio"
5684 if test "$_ossaudio" = auto ; then
5685 cat > $TMPC << EOF
5686 #include <sys/ioctl.h>
5687 #include <$_soundcard_header>
5688 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5690 _ossaudio=no
5691 cc_check && _ossaudio=yes
5693 if test "$_ossaudio" = yes ; then
5694 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5695 _aomodules="oss $_aomodules"
5696 if test "$_linux_devfs" = yes; then
5697 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5698 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5699 else
5700 cat > $TMPC << EOF
5701 #include <sys/ioctl.h>
5702 #include <$_soundcard_header>
5703 #ifdef OPEN_SOUND_SYSTEM
5704 int main(void) { return 0; }
5705 #else
5706 #error Not the real thing
5707 #endif
5709 _real_ossaudio=no
5710 cc_check && _real_ossaudio=yes
5711 if test "$_real_ossaudio" = yes; then
5712 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5713 elif netbsd || openbsd ; then
5714 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5715 extra_ldflags="$extra_ldflags -lossaudio"
5716 else
5717 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5719 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5721 else
5722 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5723 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5724 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5725 _noaomodules="oss $_noaomodules"
5727 echores "$_ossaudio"
5730 echocheck "aRts"
5731 if test "$_arts" = auto ; then
5732 _arts=no
5733 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5735 cat > $TMPC << EOF
5736 #include <artsc.h>
5737 int main(void) { return 0; }
5739 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5744 if test "$_arts" = yes ; then
5745 def_arts='#define CONFIG_ARTS 1'
5746 _aomodules="arts $_aomodules"
5747 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5748 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5749 else
5750 _noaomodules="arts $_noaomodules"
5752 echores "$_arts"
5755 echocheck "EsounD"
5756 if test "$_esd" = auto ; then
5757 _esd=no
5758 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5760 cat > $TMPC << EOF
5761 #include <esd.h>
5762 int main(void) { int fd = esd_open_sound("test"); return fd; }
5764 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5768 echores "$_esd"
5770 if test "$_esd" = yes ; then
5771 def_esd='#define CONFIG_ESD 1'
5772 _aomodules="esd $_aomodules"
5773 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5774 extra_cflags="$extra_cflags $(esd-config --cflags)"
5776 echocheck "esd_get_latency()"
5777 cat > $TMPC << EOF
5778 #include <esd.h>
5779 int main(void) { return esd_get_latency(0); }
5781 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5782 echores "$_esd_latency"
5783 else
5784 def_esd='#undef CONFIG_ESD'
5785 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5786 _noaomodules="esd $_noaomodules"
5790 echocheck "NAS"
5791 if test "$_nas" = auto ; then
5792 cat > $TMPC << EOF
5793 #include <audio/audiolib.h>
5794 int main(void) { return 0; }
5796 _nas=no
5797 cc_check $_ld_lm -laudio -lXt && _nas=yes
5799 if test "$_nas" = yes ; then
5800 def_nas='#define CONFIG_NAS 1'
5801 libs_mplayer="$libs_mplayer -laudio -lXt"
5802 _aomodules="nas $_aomodules"
5803 else
5804 _noaomodules="nas $_noaomodules"
5805 def_nas='#undef CONFIG_NAS'
5807 echores "$_nas"
5810 echocheck "pulse"
5811 if test "$_pulse" = auto ; then
5812 _pulse=no
5813 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5815 cat > $TMPC << EOF
5816 #include <pulse/pulseaudio.h>
5817 int main(void) { return 0; }
5819 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5823 echores "$_pulse"
5825 if test "$_pulse" = yes ; then
5826 def_pulse='#define CONFIG_PULSE 1'
5827 _aomodules="pulse $_aomodules"
5828 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5829 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5830 else
5831 def_pulse='#undef CONFIG_PULSE'
5832 _noaomodules="pulse $_noaomodules"
5836 echocheck "JACK"
5837 if test "$_jack" = auto ; then
5838 _jack=yes
5840 cat > $TMPC << EOF
5841 #include <jack/jack.h>
5842 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5844 if cc_check -ljack ; then
5845 libs_mplayer="$libs_mplayer -ljack"
5846 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5847 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5848 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5849 else
5850 _jack=no
5854 if test "$_jack" = yes ; then
5855 def_jack='#define CONFIG_JACK 1'
5856 _aomodules="jack $_aomodules"
5857 else
5858 _noaomodules="jack $_noaomodules"
5860 echores "$_jack"
5862 echocheck "OpenAL"
5863 if test "$_openal" = auto ; then
5864 _openal=no
5865 cat > $TMPC << EOF
5866 #ifdef OPENAL_AL_H
5867 #include <OpenAL/al.h>
5868 #else
5869 #include <AL/al.h>
5870 #endif
5871 int main(void) {
5872 alSourceQueueBuffers(0, 0, 0);
5873 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5874 return 0;
5877 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5878 cc_check $I && _openal=yes && break
5879 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5880 done
5881 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5883 if test "$_openal" = yes ; then
5884 def_openal='#define CONFIG_OPENAL 1'
5885 _aomodules="openal $_aomodules"
5886 else
5887 _noaomodules="openal $_noaomodules"
5889 echores "$_openal"
5891 echocheck "ALSA audio"
5892 if test "$_alloca" != yes ; then
5893 _alsa=no
5894 _res_comment="alloca missing"
5896 if test "$_alsa" != no ; then
5897 _alsa=no
5898 cat > $TMPC << EOF
5899 #include <sys/time.h>
5900 #include <sys/asoundlib.h>
5901 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5902 #error "alsa version != 0.5.x"
5903 #endif
5904 int main(void) { return 0; }
5906 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5908 cat > $TMPC << EOF
5909 #include <sys/time.h>
5910 #include <sys/asoundlib.h>
5911 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5912 #error "alsa version != 0.9.x"
5913 #endif
5914 int main(void) { return 0; }
5916 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5917 cat > $TMPC << EOF
5918 #include <sys/time.h>
5919 #include <alsa/asoundlib.h>
5920 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5921 #error "alsa version != 0.9.x"
5922 #endif
5923 int main(void) { return 0; }
5925 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5927 cat > $TMPC << EOF
5928 #include <sys/time.h>
5929 #include <sys/asoundlib.h>
5930 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5931 #error "alsa version != 1.0.x"
5932 #endif
5933 int main(void) { return 0; }
5935 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5936 cat > $TMPC << EOF
5937 #include <sys/time.h>
5938 #include <alsa/asoundlib.h>
5939 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5940 #error "alsa version != 1.0.x"
5941 #endif
5942 int main(void) { return 0; }
5944 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5946 def_alsa='#undef CONFIG_ALSA'
5947 def_alsa5='#undef CONFIG_ALSA5'
5948 def_alsa9='#undef CONFIG_ALSA9'
5949 def_alsa1x='#undef CONFIG_ALSA1X'
5950 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5951 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5952 if test "$_alsaver" ; then
5953 _alsa=yes
5954 if test "$_alsaver" = '0.5.x' ; then
5955 _alsa5=yes
5956 _aomodules="alsa5 $_aomodules"
5957 def_alsa5='#define CONFIG_ALSA5 1'
5958 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5959 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5960 elif test "$_alsaver" = '0.9.x-sys' ; then
5961 _alsa9=yes
5962 _aomodules="alsa $_aomodules"
5963 def_alsa='#define CONFIG_ALSA 1'
5964 def_alsa9='#define CONFIG_ALSA9 1'
5965 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5966 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5967 elif test "$_alsaver" = '0.9.x-alsa' ; then
5968 _alsa9=yes
5969 _aomodules="alsa $_aomodules"
5970 def_alsa='#define CONFIG_ALSA 1'
5971 def_alsa9='#define CONFIG_ALSA9 1'
5972 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5973 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5974 elif test "$_alsaver" = '1.0.x-sys' ; then
5975 _alsa1x=yes
5976 _aomodules="alsa $_aomodules"
5977 def_alsa='#define CONFIG_ALSA 1'
5978 def_alsa1x="#define CONFIG_ALSA1X 1"
5979 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5980 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5981 elif test "$_alsaver" = '1.0.x-alsa' ; then
5982 _alsa1x=yes
5983 _aomodules="alsa $_aomodules"
5984 def_alsa='#define CONFIG_ALSA 1'
5985 def_alsa1x="#define CONFIG_ALSA1X 1"
5986 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5987 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5988 else
5989 _alsa=no
5990 _res_comment="unknown version"
5992 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5993 else
5994 _noaomodules="alsa $_noaomodules"
5996 echores "$_alsa"
5999 echocheck "Sun audio"
6000 if test "$_sunaudio" = auto ; then
6001 cat > $TMPC << EOF
6002 #include <sys/types.h>
6003 #include <sys/audioio.h>
6004 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
6006 _sunaudio=no
6007 cc_check && _sunaudio=yes
6009 if test "$_sunaudio" = yes ; then
6010 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
6011 _aomodules="sun $_aomodules"
6012 else
6013 def_sunaudio='#undef CONFIG_SUN_AUDIO'
6014 _noaomodules="sun $_noaomodules"
6016 echores "$_sunaudio"
6019 def_mlib='#define CONFIG_MLIB 0'
6020 if sunos; then
6021 echocheck "Sun mediaLib"
6022 if test "$_mlib" = auto ; then
6023 _mlib=no
6024 cat > $TMPC << EOF
6025 #include <mlib.h>
6026 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
6028 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
6030 echores "$_mlib"
6031 fi #if sunos
6034 if darwin; then
6035 echocheck "CoreAudio"
6036 if test "$_coreaudio" = auto ; then
6037 cat > $TMPC <<EOF
6038 #include <CoreAudio/CoreAudio.h>
6039 #include <AudioToolbox/AudioToolbox.h>
6040 #include <AudioUnit/AudioUnit.h>
6041 int main(void) { return 0; }
6043 _coreaudio=no
6044 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6046 if test "$_coreaudio" = yes ; then
6047 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6048 def_coreaudio='#define CONFIG_COREAUDIO 1'
6049 _aomodules="coreaudio $_aomodules"
6050 else
6051 def_coreaudio='#undef CONFIG_COREAUDIO'
6052 _noaomodules="coreaudio $_noaomodules"
6054 echores $_coreaudio
6055 fi #if darwin
6058 if irix; then
6059 echocheck "SGI audio"
6060 if test "$_sgiaudio" = auto ; then
6061 # check for SGI audio
6062 cat > $TMPC << EOF
6063 #include <dmedia/audio.h>
6064 int main(void) { return 0; }
6066 _sgiaudio=no
6067 cc_check && _sgiaudio=yes
6069 if test "$_sgiaudio" = "yes" ; then
6070 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6071 libs_mplayer="$libs_mplayer -laudio"
6072 _aomodules="sgi $_aomodules"
6073 else
6074 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6075 _noaomodules="sgi $_noaomodules"
6077 echores "$_sgiaudio"
6078 fi #if irix
6081 if os2 ; then
6082 echocheck "KAI (UNIAUD/DART)"
6083 if test "$_kai" = auto; then
6084 cat > $TMPC << EOF
6085 #include <os2.h>
6086 #include <kai.h>
6087 int main(void) { return 0; }
6089 _kai=no;
6090 cc_check -lkai && _kai=yes
6092 if test "$_kai" = yes ; then
6093 def_kai='#define CONFIG_KAI 1'
6094 libs_mplayer="$libs_mplayer -lkai"
6095 _aomodules="kai $_aomodules"
6096 else
6097 def_kai='#undef CONFIG_KAI'
6098 _noaomodules="kai $_noaomodules"
6100 echores "$_kai"
6102 echocheck "DART"
6103 if test "$_dart" = auto; then
6104 cat > $TMPC << EOF
6105 #include <os2.h>
6106 #include <dart.h>
6107 int main( void ) { return 0; }
6109 _dart=no;
6110 cc_check -ldart && _dart=yes
6112 if test "$_dart" = yes ; then
6113 def_dart='#define CONFIG_DART 1'
6114 libs_mplayer="$libs_mplayer -ldart"
6115 _aomodules="dart $_aomodules"
6116 else
6117 def_dart='#undef CONFIG_DART'
6118 _noaomodules="dart $_noaomodules"
6120 echores "$_dart"
6121 fi #if os2
6124 # set default CD/DVD devices
6125 if win32 || os2 ; then
6126 default_cdrom_device="D:"
6127 elif darwin ; then
6128 default_cdrom_device="/dev/disk1"
6129 elif dragonfly ; then
6130 default_cdrom_device="/dev/cd0"
6131 elif freebsd ; then
6132 default_cdrom_device="/dev/acd0"
6133 elif openbsd ; then
6134 default_cdrom_device="/dev/rcd0a"
6135 elif sunos ; then
6136 default_cdrom_device="/vol/dev/aliases/cdrom0"
6137 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6138 # file system and the volfs service.
6139 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6140 elif amigaos ; then
6141 default_cdrom_device="a1ide.device:2"
6142 else
6143 default_cdrom_device="/dev/cdrom"
6146 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6147 default_dvd_device=$default_cdrom_device
6148 elif darwin ; then
6149 default_dvd_device="/dev/rdiskN"
6150 else
6151 default_dvd_device="/dev/dvd"
6155 echocheck "VCD support"
6156 if test "$_vcd" = auto; then
6157 _vcd=no
6158 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
6159 _vcd=yes
6160 elif mingw32; then
6161 cat > $TMPC << EOF
6162 #include <ddk/ntddcdrm.h>
6163 int main(void) { return 0; }
6165 cc_check && _vcd=yes
6168 if test "$_vcd" = yes; then
6169 _inputmodules="vcd $_inputmodules"
6170 def_vcd='#define CONFIG_VCD 1'
6171 else
6172 def_vcd='#undef CONFIG_VCD'
6173 _noinputmodules="vcd $_noinputmodules"
6174 _res_comment="not supported on this OS"
6176 echores "$_vcd"
6180 echocheck "dvdread"
6181 if test "$_dvdread_internal" = auto ; then
6182 _dvdread_internal=no
6183 _dvdread=no
6184 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6185 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6186 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6187 || darwin || win32 || os2; then
6188 _dvdread_internal=yes
6189 _dvdread=yes
6190 extra_cflags="-Ilibdvdread4 $extra_cflags"
6192 elif test "$_dvdread" = auto ; then
6193 _dvdread=no
6194 if test "$_dl" = yes; then
6195 cat > $TMPC << EOF
6196 #include <inttypes.h>
6197 #include <dvdread/dvd_reader.h>
6198 #include <dvdread/ifo_types.h>
6199 #include <dvdread/ifo_read.h>
6200 #include <dvdread/nav_read.h>
6201 int main(void) { return 0; }
6203 _dvdreadcflags=$($_dvdreadconfig --cflags)
6204 _dvdreadlibs=$($_dvdreadconfig --libs)
6205 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6206 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6207 _dvdread=yes
6208 extra_cflags="$extra_cflags $_dvdreadcflags"
6209 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6210 _res_comment="external"
6215 if test "$_dvdread_internal" = yes; then
6216 def_dvdread='#define CONFIG_DVDREAD 1'
6217 _inputmodules="dvdread(internal) $_inputmodules"
6218 _largefiles=yes
6219 _res_comment="internal"
6220 elif test "$_dvdread" = yes; then
6221 def_dvdread='#define CONFIG_DVDREAD 1'
6222 _largefiles=yes
6223 extra_ldflags="$extra_ldflags -ldvdread"
6224 _inputmodules="dvdread(external) $_inputmodules"
6225 _res_comment="external"
6226 else
6227 def_dvdread='#undef CONFIG_DVDREAD'
6228 _noinputmodules="dvdread $_noinputmodules"
6230 echores "$_dvdread"
6233 echocheck "internal libdvdcss"
6234 if test "$_libdvdcss_internal" = auto ; then
6235 _libdvdcss_internal=no
6236 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6237 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6239 if test "$_libdvdcss_internal" = yes ; then
6240 if linux || netbsd || openbsd || bsdos ; then
6241 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6242 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6243 elif freebsd || dragonfly ; then
6244 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6245 elif darwin ; then
6246 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6247 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6248 elif cygwin ; then
6249 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6250 elif beos ; then
6251 cflags_libdvdcss="-DSYS_BEOS"
6252 elif os2 ; then
6253 cflags_libdvdcss="-DSYS_OS2"
6255 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6256 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6257 _inputmodules="libdvdcss(internal) $_inputmodules"
6258 _largefiles=yes
6259 else
6260 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6262 echores "$_libdvdcss_internal"
6265 echocheck "cdparanoia"
6266 if test "$_cdparanoia" = auto ; then
6267 cat > $TMPC <<EOF
6268 #include <cdda_interface.h>
6269 #include <cdda_paranoia.h>
6270 // This need a better test. How ?
6271 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6273 _cdparanoia=no
6274 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6275 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6276 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6277 done
6279 if test "$_cdparanoia" = yes ; then
6280 _cdda='yes'
6281 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6282 openbsd && extra_ldflags="$extra_ldflags -lutil"
6284 echores "$_cdparanoia"
6287 echocheck "libcdio"
6288 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6289 cat > $TMPC << EOF
6290 #include <stdio.h>
6291 #include <cdio/version.h>
6292 #include <cdio/cdda.h>
6293 #include <cdio/paranoia.h>
6294 int main(void) {
6295 void *test = cdda_verbose_set;
6296 printf("%s\n", CDIO_VERSION);
6297 return test == (void *)1;
6300 _libcdio=no
6301 for _ld_tmp in "" "-lwinmm" ; do
6302 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6303 cc_check $_ld_tmp $_ld_lm \
6304 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6305 done
6306 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6307 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6308 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6309 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6310 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6313 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6314 _cdda='yes'
6315 def_libcdio='#define CONFIG_LIBCDIO 1'
6316 def_havelibcdio='yes'
6317 else
6318 if test "$_cdparanoia" = yes ; then
6319 _res_comment="using cdparanoia"
6321 def_libcdio='#undef CONFIG_LIBCDIO'
6322 def_havelibcdio='no'
6324 echores "$_libcdio"
6326 if test "$_cdda" = yes ; then
6327 test $_cddb = auto && test $_network = yes && _cddb=yes
6328 def_cdparanoia='#define CONFIG_CDDA 1'
6329 _inputmodules="cdda $_inputmodules"
6330 else
6331 def_cdparanoia='#undef CONFIG_CDDA'
6332 _noinputmodules="cdda $_noinputmodules"
6335 if test "$_cddb" = yes ; then
6336 def_cddb='#define CONFIG_CDDB 1'
6337 _inputmodules="cddb $_inputmodules"
6338 else
6339 _cddb=no
6340 def_cddb='#undef CONFIG_CDDB'
6341 _noinputmodules="cddb $_noinputmodules"
6344 echocheck "bitmap font support"
6345 if test "$_bitmap_font" = yes ; then
6346 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6347 else
6348 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6350 echores "$_bitmap_font"
6353 echocheck "freetype >= 2.0.9"
6355 # freetype depends on iconv
6356 if test "$_iconv" = no ; then
6357 _freetype=no
6358 _res_comment="iconv support needed"
6361 if test "$_freetype" = auto ; then
6362 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6363 cat > $TMPC << EOF
6364 #include <stdio.h>
6365 #include <ft2build.h>
6366 #include FT_FREETYPE_H
6367 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6368 #error "Need FreeType 2.0.9 or newer"
6369 #endif
6370 int main(void) {
6371 FT_Library library;
6372 FT_Int major=-1,minor=-1,patch=-1;
6373 int err=FT_Init_FreeType(&library);
6374 return 0;
6377 _freetype=no
6378 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6379 else
6380 _freetype=no
6383 if test "$_freetype" = yes ; then
6384 def_freetype='#define CONFIG_FREETYPE 1'
6385 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6386 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6387 else
6388 def_freetype='#undef CONFIG_FREETYPE'
6390 echores "$_freetype"
6392 if test "$_freetype" = no ; then
6393 _fontconfig=no
6394 _res_comment="FreeType support needed"
6396 echocheck "fontconfig"
6397 if test "$_fontconfig" = auto ; then
6398 cat > $TMPC << EOF
6399 #include <stdio.h>
6400 #include <stdlib.h>
6401 #include <fontconfig/fontconfig.h>
6402 #if FC_VERSION < 20402
6403 #error At least version 2.4.2 of fontconfig required
6404 #endif
6405 int main(void) {
6406 int err = FcInit();
6407 if (err == FcFalse) {
6408 printf("Couldn't initialize fontconfig lib\n");
6409 exit(err);
6411 return 0;
6414 _fontconfig=no
6415 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6416 _ld_tmp="-lfontconfig $_ld_tmp"
6417 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6418 done
6419 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6420 _inc_tmp=$($_pkg_config --cflags fontconfig)
6421 _ld_tmp=$($_pkg_config --libs fontconfig)
6422 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6423 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6426 if test "$_fontconfig" = yes ; then
6427 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6428 else
6429 def_fontconfig='#undef CONFIG_FONTCONFIG'
6431 echores "$_fontconfig"
6434 echocheck "SSA/ASS support"
6435 # libass depends on FreeType
6436 if test "$_freetype" = no ; then
6437 _ass=no
6438 ass_internal=no
6439 _res_comment="FreeType support needed"
6442 if test "$_ass" = auto ; then
6443 cat > $TMPC << EOF
6444 #include <ft2build.h>
6445 #include FT_FREETYPE_H
6446 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6447 #error "Need FreeType 2.2.1 or newer"
6448 #endif
6449 int main(void) { return 0; }
6451 _ass=no
6452 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6453 if test "$_ass" = no ; then
6454 ass_internal=no
6455 _res_comment="FreeType >= 2.2.1 needed"
6456 elif test "$ass_internal" = no ; then
6457 _res_comment="external"
6458 extra_ldflags="$extra_ldflags -lass"
6461 if test "$_ass" = yes ; then
6462 def_ass='#define CONFIG_ASS 1'
6463 else
6464 def_ass='#undef CONFIG_ASS'
6466 if test "$ass_internal" = yes ; then
6467 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6468 else
6469 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6471 echores "$_ass"
6474 echocheck "fribidi with charsets"
6475 _inc_tmp=""
6476 _ld_tmp=""
6477 if test "$_fribidi" = auto ; then
6478 cat > $TMPC << EOF
6479 #include <stdio.h>
6480 #include <stdlib.h>
6481 /* workaround for fribidi 0.10.4 and below */
6482 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6483 #include <fribidi/fribidi.h>
6484 int main(void) {
6485 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6486 printf("Fribidi headers are not consistents with the library!\n");
6487 exit(1);
6489 return 0;
6492 _fribidi=no
6493 _inc_tmp=""
6494 _ld_tmp="-lfribidi"
6495 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6496 if $_fribidiconfig --version > /dev/null 2>&1 &&
6497 test "$_fribidi" = no ; then
6498 _inc_tmp="$($_fribidiconfig --cflags)"
6499 _ld_tmp="$($_fribidiconfig --libs)"
6500 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6503 if test "$_fribidi" = yes ; then
6504 def_fribidi='#define CONFIG_FRIBIDI 1'
6505 extra_cflags="$extra_cflags $_inc_tmp"
6506 extra_ldflags="$extra_ldflags $_ld_tmp"
6507 else
6508 def_fribidi='#undef CONFIG_FRIBIDI'
6510 echores "$_fribidi"
6513 echocheck "ENCA"
6514 if test "$_enca" = auto ; then
6515 cat > $TMPC << EOF
6516 #include <sys/types.h>
6517 #include <enca.h>
6518 int main(void) {
6519 const char **langs;
6520 size_t langcnt;
6521 langs = enca_get_languages(&langcnt);
6522 return 0;
6525 _enca=no
6526 cc_check -lenca $_ld_lm && _enca=yes
6528 if test "$_enca" = yes ; then
6529 def_enca='#define CONFIG_ENCA 1'
6530 extra_ldflags="$extra_ldflags -lenca"
6531 else
6532 def_enca='#undef CONFIG_ENCA'
6534 echores "$_enca"
6537 echocheck "zlib"
6538 cat > $TMPC << EOF
6539 #include <zlib.h>
6540 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6542 _zlib=no
6543 cc_check -lz && _zlib=yes
6544 if test "$_zlib" = yes ; then
6545 def_zlib='#define CONFIG_ZLIB 1'
6546 extra_ldflags="$extra_ldflags -lz"
6547 else
6548 def_zlib='#define CONFIG_ZLIB 0'
6549 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6550 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6552 echores "$_zlib"
6555 echocheck "bzlib"
6556 bzlib=no
6557 def_bzlib='#define CONFIG_BZLIB 0'
6558 cat > $TMPC << EOF
6559 #include <bzlib.h>
6560 int main(void) { BZ2_bzlibVersion(); return 0; }
6562 cc_check -lbz2 && bzlib=yes
6563 if test "$bzlib" = yes ; then
6564 def_bzlib='#define CONFIG_BZLIB 1'
6565 extra_ldflags="$extra_ldflags -lbz2"
6567 echores "$bzlib"
6570 echocheck "RTC"
6571 if test "$_rtc" = auto ; then
6572 cat > $TMPC << EOF
6573 #include <sys/ioctl.h>
6574 #ifdef __linux__
6575 #include <linux/rtc.h>
6576 #else
6577 #include <rtc.h>
6578 #define RTC_PIE_ON RTCIO_PIE_ON
6579 #endif
6580 int main(void) { return RTC_PIE_ON; }
6582 _rtc=no
6583 cc_check && _rtc=yes
6584 ppc && _rtc=no
6586 if test "$_rtc" = yes ; then
6587 def_rtc='#define HAVE_RTC 1'
6588 else
6589 def_rtc='#undef HAVE_RTC'
6591 echores "$_rtc"
6594 echocheck "liblzo2 support"
6595 if test "$_liblzo" = auto ; then
6596 _liblzo=no
6597 cat > $TMPC << EOF
6598 #include <lzo/lzo1x.h>
6599 int main(void) { lzo_init();return 0; }
6601 cc_check -llzo2 && _liblzo=yes
6603 if test "$_liblzo" = yes ; then
6604 def_liblzo='#define CONFIG_LIBLZO 1'
6605 extra_ldflags="$extra_ldflags -llzo2"
6606 _codecmodules="liblzo $_codecmodules"
6607 else
6608 def_liblzo='#undef CONFIG_LIBLZO'
6609 _nocodecmodules="liblzo $_nocodecmodules"
6611 echores "$_liblzo"
6614 echocheck "mad support"
6615 if test "$_mad" = auto ; then
6616 _mad=no
6617 cat > $TMPC << EOF
6618 #include <mad.h>
6619 int main(void) { return 0; }
6621 cc_check -lmad && _mad=yes
6623 if test "$_mad" = yes ; then
6624 def_mad='#define CONFIG_LIBMAD 1'
6625 extra_ldflags="$extra_ldflags -lmad"
6626 _codecmodules="libmad $_codecmodules"
6627 else
6628 def_mad='#undef CONFIG_LIBMAD'
6629 _nocodecmodules="libmad $_nocodecmodules"
6631 echores "$_mad"
6633 echocheck "Twolame"
6634 if test "$_twolame" = auto ; then
6635 cat > $TMPC <<EOF
6636 #include <twolame.h>
6637 int main(void) { twolame_init(); return 0; }
6639 _twolame=no
6640 cc_check -ltwolame $_ld_lm && _twolame=yes
6642 if test "$_twolame" = yes ; then
6643 def_twolame='#define CONFIG_TWOLAME 1'
6644 libs_mencoder="$libs_mencoder -ltwolame"
6645 _codecmodules="twolame $_codecmodules"
6646 else
6647 def_twolame='#undef CONFIG_TWOLAME'
6648 _nocodecmodules="twolame $_nocodecmodules"
6650 echores "$_twolame"
6652 echocheck "Toolame"
6653 if test "$_toolame" = auto ; then
6654 _toolame=no
6655 if test "$_twolame" = yes ; then
6656 _res_comment="disabled by twolame"
6657 else
6658 cat > $TMPC <<EOF
6659 #include <toolame.h>
6660 int main(void) { toolame_init(); return 0; }
6662 cc_check -ltoolame $_ld_lm && _toolame=yes
6665 if test "$_toolame" = yes ; then
6666 def_toolame='#define CONFIG_TOOLAME 1'
6667 libs_mencoder="$libs_mencoder -ltoolame"
6668 _codecmodules="toolame $_codecmodules"
6669 else
6670 def_toolame='#undef CONFIG_TOOLAME'
6671 _nocodecmodules="toolame $_nocodecmodules"
6673 if test "$_toolamedir" ; then
6674 _res_comment="using $_toolamedir"
6676 echores "$_toolame"
6678 echocheck "OggVorbis support"
6679 if test "$_tremor_internal" = yes; then
6680 _libvorbis=no
6681 elif test "$_tremor" = auto; then
6682 _tremor=no
6683 cat > $TMPC << EOF
6684 #include <tremor/ivorbiscodec.h>
6685 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6687 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6689 if test "$_libvorbis" = auto; then
6690 _libvorbis=no
6691 cat > $TMPC << EOF
6692 #include <vorbis/codec.h>
6693 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6695 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6697 if test "$_tremor_internal" = yes ; then
6698 _vorbis=yes
6699 def_vorbis='#define CONFIG_OGGVORBIS 1'
6700 def_tremor='#define CONFIG_TREMOR 1'
6701 _codecmodules="tremor(internal) $_codecmodules"
6702 _res_comment="internal Tremor"
6703 if test "$_tremor_low" = yes ; then
6704 cflags_tremor_low="-D_LOW_ACCURACY_"
6705 _res_comment="internal low accuracy Tremor"
6707 elif test "$_tremor" = yes ; then
6708 _vorbis=yes
6709 def_vorbis='#define CONFIG_OGGVORBIS 1'
6710 def_tremor='#define CONFIG_TREMOR 1'
6711 _codecmodules="tremor(external) $_codecmodules"
6712 _res_comment="external Tremor"
6713 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6714 elif test "$_libvorbis" = yes ; then
6715 _vorbis=yes
6716 def_vorbis='#define CONFIG_OGGVORBIS 1'
6717 _codecmodules="libvorbis $_codecmodules"
6718 _res_comment="libvorbis"
6719 extra_ldflags="$extra_ldflags -lvorbis -logg"
6720 else
6721 _vorbis=no
6722 _nocodecmodules="libvorbis $_nocodecmodules"
6724 echores "$_vorbis"
6726 echocheck "libspeex (version >= 1.1 required)"
6727 if test "$_speex" = auto ; then
6728 _speex=no
6729 cat > $TMPC << EOF
6730 #include <speex/speex.h>
6731 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6733 cc_check -lspeex $_ld_lm && _speex=yes
6735 if test "$_speex" = yes ; then
6736 def_speex='#define CONFIG_SPEEX 1'
6737 extra_ldflags="$extra_ldflags -lspeex"
6738 _codecmodules="speex $_codecmodules"
6739 else
6740 def_speex='#undef CONFIG_SPEEX'
6741 _nocodecmodules="speex $_nocodecmodules"
6743 echores "$_speex"
6745 echocheck "OggTheora support"
6746 if test "$_theora" = auto ; then
6747 _theora=no
6748 cat > $TMPC << EOF
6749 #include <theora/theora.h>
6750 #include <string.h>
6751 int main(void) {
6752 /* Theora is in flux, make sure that all interface routines and datatypes
6753 * exist and work the way we expect it, so we don't break MPlayer. */
6754 ogg_packet op;
6755 theora_comment tc;
6756 theora_info inf;
6757 theora_state st;
6758 yuv_buffer yuv;
6759 int r;
6760 double t;
6762 theora_info_init(&inf);
6763 theora_comment_init(&tc);
6765 return 0;
6767 /* we don't want to execute this kind of nonsense; just for making sure
6768 * that compilation works... */
6769 memset(&op, 0, sizeof(op));
6770 r = theora_decode_header(&inf, &tc, &op);
6771 r = theora_decode_init(&st, &inf);
6772 t = theora_granule_time(&st, op.granulepos);
6773 r = theora_decode_packetin(&st, &op);
6774 r = theora_decode_YUVout(&st, &yuv);
6775 theora_clear(&st);
6777 return 0;
6780 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6781 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6782 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6783 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6784 if test _theora = no; then
6785 _ld_theora="-ltheora -logg"
6786 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6788 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6789 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6790 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6791 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6792 extra_ldflags="$extra_ldflags $_ld_theora" &&
6793 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6794 if test _theora = no; then
6795 _ld_theora="-ltheora -logg"
6796 cc_check tremor/bitwise.c $_ld_theora &&
6797 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6801 if test "$_theora" = yes ; then
6802 def_theora='#define CONFIG_OGGTHEORA 1'
6803 _codecmodules="libtheora $_codecmodules"
6804 # when --enable-theora is forced, we'd better provide a probably sane
6805 # $_ld_theora than nothing
6806 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6807 else
6808 def_theora='#undef CONFIG_OGGTHEORA'
6809 _nocodecmodules="libtheora $_nocodecmodules"
6811 echores "$_theora"
6813 echocheck "internal mp3lib support"
6814 if test "$_mp3lib" = auto ; then
6815 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6817 if test "$_mp3lib" = yes ; then
6818 def_mp3lib='#define CONFIG_MP3LIB 1'
6819 _codecmodules="mp3lib(internal) $_codecmodules"
6820 else
6821 def_mp3lib='#undef CONFIG_MP3LIB'
6822 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6824 echores "$_mp3lib"
6826 echocheck "liba52 support"
6827 if test "$_liba52_internal" = auto ; then
6828 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6830 def_liba52='#undef CONFIG_LIBA52'
6831 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6832 if test "$_liba52_internal" = yes ; then
6833 _liba52=yes
6834 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6835 _res_comment="internal"
6836 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6837 _liba52=no
6838 cat > $TMPC << EOF
6839 #include <inttypes.h>
6840 #include <a52dec/a52.h>
6841 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6843 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6845 if test "$_liba52" = yes ; then
6846 def_liba52='#define CONFIG_LIBA52 1'
6847 _codecmodules="liba52($_res_comment) $_codecmodules"
6848 else
6849 _nocodecmodules="liba52 $_nocodecmodules"
6851 echores "$_liba52"
6853 echocheck "internal libmpeg2 support"
6854 if test "$_libmpeg2" = auto ; then
6855 _libmpeg2=yes
6856 if alpha && test cc_vendor=gnu; then
6857 case $cc_version in
6858 2*|3.0*|3.1*) # cannot compile MVI instructions
6859 _libmpeg2=no
6860 _res_comment="broken gcc"
6862 esac
6865 if test "$_libmpeg2" = yes ; then
6866 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6867 _codecmodules="libmpeg2(internal) $_codecmodules"
6868 else
6869 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6870 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6872 echores "$_libmpeg2"
6874 echocheck "libdca support"
6875 if test "$_libdca" = auto ; then
6876 _libdca=no
6877 cat > $TMPC << EOF
6878 #include <inttypes.h>
6879 #include <dts.h>
6880 int main(void) { dts_init(0); return 0; }
6882 for _ld_dca in -ldca -ldts ; do
6883 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6884 && _libdca=yes && break
6885 done
6887 if test "$_libdca" = yes ; then
6888 def_libdca='#define CONFIG_LIBDCA 1'
6889 _codecmodules="libdca $_codecmodules"
6890 else
6891 def_libdca='#undef CONFIG_LIBDCA'
6892 _nocodecmodules="libdca $_nocodecmodules"
6894 echores "$_libdca"
6896 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6897 if test "$_musepack" = auto ; then
6898 _musepack=no
6899 cat > $TMPC << EOF
6900 #include <stddef.h>
6901 #include <mpcdec/mpcdec.h>
6902 int main(void) {
6903 mpc_streaminfo info;
6904 mpc_decoder decoder;
6905 mpc_decoder_set_streaminfo(&decoder, &info);
6906 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6907 return 0;
6910 cc_check -lmpcdec $_ld_lm && _musepack=yes
6912 if test "$_musepack" = yes ; then
6913 def_musepack='#define CONFIG_MUSEPACK 1'
6914 extra_ldflags="$extra_ldflags -lmpcdec"
6915 _codecmodules="musepack $_codecmodules"
6916 else
6917 def_musepack='#undef CONFIG_MUSEPACK'
6918 _nocodecmodules="musepack $_nocodecmodules"
6920 echores "$_musepack"
6923 echocheck "FAAC support"
6924 if test "$_faac" = auto ; then
6925 cat > $TMPC <<EOF
6926 #include <inttypes.h>
6927 #include <faac.h>
6928 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6930 _faac=no
6931 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6932 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6933 done
6935 if test "$_faac" = yes ; then
6936 def_faac="#define CONFIG_FAAC 1"
6937 test "$_faac_lavc" = auto && _faac_lavc=yes
6938 if test "$_faac_lavc" = yes ; then
6939 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6940 libs_mplayer="$libs_mplayer $_ld_faac"
6941 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6943 _codecmodules="faac $_codecmodules"
6944 else
6945 _faac_lavc=no
6946 def_faac="#undef CONFIG_FAAC"
6947 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6948 _nocodecmodules="faac $_nocodecmodules"
6950 _res_comment="in libavcodec: $_faac_lavc"
6951 echores "$_faac"
6954 echocheck "FAAD2 support"
6955 if test "$_faad_internal" = auto ; then
6956 if x86_32 && test cc_vendor=gnu; then
6957 case $cc_version in
6958 3.1*|3.2) # ICE/insn with these versions
6959 _faad_internal=no
6960 _res_comment="broken gcc"
6963 _faad=yes
6964 _faad_internal=yes
6966 esac
6967 else
6968 _faad=yes
6969 _faad_internal=yes
6972 if test "$_faad" = auto ; then
6973 cat > $TMPC << EOF
6974 #include <faad.h>
6975 #ifndef FAAD_MIN_STREAMSIZE
6976 #error Too old version
6977 #endif
6978 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6979 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6981 cc_check -lfaad $_ld_lm && _faad=yes
6984 def_faad='#undef CONFIG_FAAD'
6985 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6986 if test "$_faad_internal" = yes ; then
6987 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6988 _res_comment="internal floating-point"
6989 if test "$_faad_fixed" = yes ; then
6990 # The FIXED_POINT implementation of FAAD2 improves performance
6991 # on some platforms, especially for SBR files.
6992 cflags_faad_fixed="-DFIXED_POINT"
6993 _res_comment="internal fixed-point"
6995 elif test "$_faad" = yes ; then
6996 extra_ldflags="$extra_ldflags -lfaad"
6999 if test "$_faad" = yes ; then
7000 def_faad='#define CONFIG_FAAD 1'
7001 if test "$_faad_internal" = yes ; then
7002 _codecmodules="faad2(internal) $_codecmodules"
7003 else
7004 _codecmodules="faad2 $_codecmodules"
7006 else
7007 _faad=no
7008 _nocodecmodules="faad2 $_nocodecmodules"
7010 echores "$_faad"
7013 echocheck "LADSPA plugin support"
7014 if test "$_ladspa" = auto ; then
7015 cat > $TMPC <<EOF
7016 #include <stdio.h>
7017 #include <ladspa.h>
7018 int main(void) {
7019 const LADSPA_Descriptor *ld = NULL;
7020 return 0;
7023 _ladspa=no
7024 cc_check && _ladspa=yes
7026 if test "$_ladspa" = yes; then
7027 def_ladspa="#define CONFIG_LADSPA 1"
7028 else
7029 def_ladspa="#undef CONFIG_LADSPA"
7031 echores "$_ladspa"
7034 echocheck "libbs2b audio filter support"
7035 if test "$_libbs2b" = auto ; then
7036 cat > $TMPC <<EOF
7037 #include <bs2b.h>
7038 #if BS2B_VERSION_MAJOR < 3
7039 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7040 #endif
7041 int main(void) {
7042 t_bs2bdp filter;
7043 filter=bs2b_open();
7044 bs2b_close(filter);
7045 return 0;
7048 _libbs2b=no
7049 if $_pkg_config --exists libbs2b ; then
7050 _inc_tmp=$($_pkg_config --cflags libbs2b)
7051 _ld_tmp=$($_pkg_config --libs libbs2b)
7052 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7053 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7054 else
7055 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7056 -I/usr/local/include/bs2b ; do
7057 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7058 extra_ldflags="$extra_ldflags -lbs2b"
7059 extra_cflags="$extra_cflags $_inc_tmp"
7060 _libbs2b=yes
7061 break
7063 done
7066 def_libbs2b="#undef CONFIG_LIBBS2B"
7067 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7068 echores "$_libbs2b"
7071 if test -z "$_codecsdir" ; then
7072 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7073 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7074 if test -d "$dir" ; then
7075 _codecsdir="$dir"
7076 break;
7078 done
7080 # Fall back on default directory.
7081 if test -z "$_codecsdir" ; then
7082 _codecsdir="$_libdir/codecs"
7083 mingw32 && _codecsdir="codecs"
7084 os2 && _codecsdir="codecs"
7088 echocheck "Win32 codecs"
7089 if test "$_win32dll" = auto ; then
7090 _win32dll=no
7091 if x86_32 && ! qnx; then
7092 _win32dll=yes
7095 if test "$_win32dll" = yes ; then
7096 def_win32dll='#define CONFIG_WIN32DLL 1'
7097 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
7098 _res_comment="using $_win32codecsdir"
7099 if ! win32 ; then
7100 def_win32_loader='#define WIN32_LOADER 1'
7101 _win32_emulation=yes
7102 else
7103 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7104 _res_comment="using native windows"
7106 _codecmodules="win32 $_codecmodules"
7107 else
7108 def_win32dll='#undef CONFIG_WIN32DLL'
7109 def_win32_loader='#undef WIN32_LOADER'
7110 _nocodecmodules="win32 $_nocodecmodules"
7112 echores "$_win32dll"
7115 echocheck "XAnim codecs"
7116 if test "$_xanim" = auto ; then
7117 _xanim=no
7118 _res_comment="dynamic loader support needed"
7119 if test "$_dl" = yes ; then
7120 _xanim=yes
7123 if test "$_xanim" = yes ; then
7124 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
7125 def_xanim='#define CONFIG_XANIM 1'
7126 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
7127 _codecmodules="xanim $_codecmodules"
7128 _res_comment="using $_xanimcodecsdir"
7129 else
7130 def_xanim='#undef CONFIG_XANIM'
7131 def_xanim_path='#undef XACODEC_PATH'
7132 _nocodecmodules="xanim $_nocodecmodules"
7134 echores "$_xanim"
7137 echocheck "RealPlayer codecs"
7138 if test "$_real" = auto ; then
7139 _real=no
7140 _res_comment="dynamic loader support needed"
7141 if test "$_dl" = yes || test "$_win32dll" = yes &&
7142 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7143 _real=yes
7146 if test "$_real" = yes ; then
7147 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
7148 def_real='#define CONFIG_REALCODECS 1'
7149 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
7150 _codecmodules="real $_codecmodules"
7151 _res_comment="using $_realcodecsdir"
7152 else
7153 def_real='#undef CONFIG_REALCODECS'
7154 def_real_path="#undef REALCODEC_PATH"
7155 _nocodecmodules="real $_nocodecmodules"
7157 echores "$_real"
7160 echocheck "QuickTime codecs"
7161 _qtx_emulation=no
7162 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7163 if test "$_qtx" = auto ; then
7164 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7166 if test "$_qtx" = yes ; then
7167 def_qtx='#define CONFIG_QTX_CODECS 1'
7168 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7169 _codecmodules="qtx $_codecmodules"
7170 darwin || win32 || _qtx_emulation=yes
7171 else
7172 def_qtx='#undef CONFIG_QTX_CODECS'
7173 _nocodecmodules="qtx $_nocodecmodules"
7175 echores "$_qtx"
7177 echocheck "Nemesi Streaming Media libraries"
7178 if test "$_nemesi" = auto && test "$_network" = yes ; then
7179 _nemesi=no
7180 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7181 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7182 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7183 _nemesi=yes
7186 if test "$_nemesi" = yes; then
7187 _native_rtsp=no
7188 def_nemesi='#define CONFIG_LIBNEMESI 1'
7189 _inputmodules="nemesi $_inputmodules"
7190 else
7191 _native_rtsp="$_network"
7192 _nemesi=no
7193 def_nemesi='#undef CONFIG_LIBNEMESI'
7194 _noinputmodules="nemesi $_noinputmodules"
7196 echores "$_nemesi"
7198 echocheck "LIVE555 Streaming Media libraries"
7199 if test "$_live" = auto && test "$_network" = yes ; then
7200 cat > $TMPCPP << EOF
7201 #include <liveMedia.hh>
7202 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7203 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7204 #endif
7205 int main(void) { return 0; }
7208 _live=no
7209 for I in $extra_cflags "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/lib64/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
7210 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7211 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7212 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7213 $_livelibdir/groupsock/libgroupsock.a \
7214 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7215 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7216 $extra_ldflags -lstdc++" \
7217 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7218 -I$_livelibdir/UsageEnvironment/include \
7219 -I$_livelibdir/BasicUsageEnvironment/include \
7220 -I$_livelibdir/groupsock/include" && \
7221 _live=yes && break
7222 done
7223 if test "$_live" != yes ; then
7224 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7225 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7226 _live_dist=yes
7230 if test "$_live" = yes && test "$_network" = yes; then
7231 test $_livelibdir && _res_comment="using $_livelibdir"
7232 def_live='#define CONFIG_LIVE555 1'
7233 _inputmodules="live555 $_inputmodules"
7234 elif test "$_live_dist" = yes && test "$_network" = yes; then
7235 _res_comment="using distribution version"
7236 _live="yes"
7237 def_live='#define CONFIG_LIVE555 1'
7238 extra_ldflags="$extra_ldflags $ld_tmp"
7239 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7240 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7241 _inputmodules="live555 $_inputmodules"
7242 else
7243 _live=no
7244 def_live='#undef CONFIG_LIVE555'
7245 _noinputmodules="live555 $_noinputmodules"
7247 echores "$_live"
7250 echocheck "FFmpeg libavutil"
7251 if test "$_libavutil_a" = auto ; then
7252 if test -d libavutil ; then
7253 _libavutil_a=yes
7254 _res_comment="static"
7255 else
7256 die "MPlayer will not compile without libavutil in the source tree."
7258 elif test "$_libavutil_so" = auto ; then
7259 _libavutil_so=no
7260 cat > $TMPC << EOF
7261 #include <libavutil/common.h>
7262 int main(void) { av_clip(1, 1, 1); return 0; }
7264 if $_pkg_config --exists libavutil ; then
7265 _inc_libavutil=$($_pkg_config --cflags libavutil)
7266 _ld_tmp=$($_pkg_config --libs libavutil)
7267 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7268 && _libavutil_so=yes
7269 elif cc_check -lavutil $_ld_lm ; then
7270 extra_ldflags="$extra_ldflags -lavutil"
7271 _libavutil_so=yes
7272 _res_comment="using libavutil.so, but static libavutil is recommended"
7275 _libavutil=no
7276 def_libavutil='#undef CONFIG_LIBAVUTIL'
7277 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7278 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7279 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7280 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7281 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7282 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7283 # neither static nor shared libavutil is available, but it is mandatory ...
7284 if test "$_libavutil" = no ; then
7285 die "You need static or shared libavutil, MPlayer will not compile without!"
7287 echores "$_libavutil"
7289 echocheck "FFmpeg libavcodec"
7290 if test "$_libavcodec_a" = auto ; then
7291 _libavcodec_a=no
7292 if test -d libavcodec && test -f libavcodec/utils.c ; then
7293 _libavcodec_a="yes"
7294 _res_comment="static"
7296 elif test "$_libavcodec_so" = auto ; then
7297 _libavcodec_so=no
7298 _res_comment="libavcodec.so is discouraged over static libavcodec"
7299 cat > $TMPC << EOF
7300 #include <libavcodec/avcodec.h>
7301 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7303 if $_pkg_config --exists libavcodec ; then
7304 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7305 _ld_tmp=$($_pkg_config --libs libavcodec)
7306 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7307 && _libavcodec_so=yes
7308 elif cc_check -lavcodec $_ld_lm ; then
7309 extra_ldflags="$extra_ldflags -lavcodec"
7310 _libavcodec_so=yes
7311 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7314 _libavcodec=no
7315 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7316 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7317 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7318 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7319 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7320 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7321 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7322 test "$_libavcodec_mpegaudio_hp" = yes \
7323 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7324 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7325 if test "$_libavcodec_a" = yes ; then
7326 _codecmodules="libavcodec(internal) $_codecmodules"
7327 elif test "$_libavcodec_so" = yes ; then
7328 _codecmodules="libavcodec.so $_codecmodules"
7329 else
7330 _nocodecmodules="libavcodec $_nocodecmodules"
7332 echores "$_libavcodec"
7334 echocheck "FFmpeg libavformat"
7335 if test "$_libavformat_a" = auto ; then
7336 _libavformat_a=no
7337 if test -d libavformat && test -f libavformat/utils.c ; then
7338 _libavformat_a=yes
7339 _res_comment="static"
7341 elif test "$_libavformat_so" = auto ; then
7342 _libavformat_so=no
7343 cat > $TMPC <<EOF
7344 #include <libavformat/avformat.h>
7345 #include <libavcodec/opt.h>
7346 int main(void) { av_alloc_format_context(); return 0; }
7348 if $_pkg_config --exists libavformat ; then
7349 _inc_libavformat=$($_pkg_config --cflags libavformat)
7350 _ld_tmp=$($_pkg_config --libs libavformat)
7351 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7352 && _libavformat_so=yes
7353 elif cc_check $_ld_lm -lavformat ; then
7354 extra_ldflags="$extra_ldflags -lavformat"
7355 _libavformat_so=yes
7356 _res_comment="using libavformat.so, but static libavformat is recommended"
7359 _libavformat=no
7360 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7361 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7362 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7363 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7364 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7365 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7366 test "$_libavformat_so" = yes \
7367 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7368 echores "$_libavformat"
7370 echocheck "FFmpeg libpostproc"
7371 if test "$_libpostproc_a" = auto ; then
7372 _libpostproc_a=no
7373 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7374 _libpostproc_a='yes'
7375 _res_comment="static"
7377 elif test "$_libpostproc_so" = auto ; then
7378 _libpostproc_so=no
7379 cat > $TMPC << EOF
7380 #include <inttypes.h>
7381 #include <libpostproc/postprocess.h>
7382 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7384 if cc_check -lpostproc $_ld_lm ; then
7385 extra_ldflags="$extra_ldflags -lpostproc"
7386 _libpostproc_so=yes
7387 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7390 _libpostproc=no
7391 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7392 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7393 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7394 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7395 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7396 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7397 test "$_libpostproc_so" = yes \
7398 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7399 echores "$_libpostproc"
7401 echocheck "FFmpeg libswscale"
7402 if test "$_libswscale_a" = auto ; then
7403 _libswscale_a=no
7404 if test -d libswscale && test -f libswscale/swscale.h ; then
7405 _libswscale_a='yes'
7406 _res_comment="static"
7408 elif test "$_libswscale_so" = auto ; then
7409 _libswscale_so=no
7410 _res_comment="using libswscale.so, but static libswscale is recommended"
7411 cat > $TMPC << EOF
7412 #include <libswscale/swscale.h>
7413 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7415 if $_pkg_config --exists libswscale ; then
7416 _inc_libswscale=$($_pkg_config --cflags libswscale)
7417 _ld_tmp=$($_pkg_config --libs libswscale)
7418 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7419 && _libswscale_so=yes
7420 elif cc_check -lswscale ; then
7421 extra_ldflags="$extra_ldflags -lswscale"
7422 _libswscale_so=yes
7425 _libswscale=no
7426 def_libswscale='#undef CONFIG_LIBSWSCALE'
7427 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7428 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7429 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7430 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7431 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7432 test "$_libswscale_so" = yes \
7433 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7434 echores "$_libswscale"
7436 echocheck "libopencore_amr narrowband"
7437 if test "$_libopencore_amrnb" = auto ; then
7438 _libopencore_amrnb=no
7439 cat > $TMPC << EOF
7440 #include <opencore-amrnb/interf_dec.h>
7441 int main(void) { Decoder_Interface_init(); return 0; }
7443 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7444 if test "$_libavcodec_a" != yes ; then
7445 _libopencore_amrnb=no
7446 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7449 if test "$_libopencore_amrnb" = yes ; then
7450 _libopencore_amr=yes
7451 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7452 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7453 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7454 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7455 _codecmodules="libopencore_amrnb $_codecmodules"
7456 else
7457 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7458 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7460 echores "$_libopencore_amrnb"
7463 echocheck "libopencore_amr wideband"
7464 if test "$_libopencore_amrwb" = auto ; then
7465 _libopencore_amrwb=no
7466 cat > $TMPC << EOF
7467 #include <opencore-amrwb/dec_if.h>
7468 int main(void) { D_IF_init(); return 0; }
7470 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7471 if test "$_libavcodec_a" != yes ; then
7472 _libopencore_amrwb=no
7473 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7476 if test "$_libopencore_amrwb" = yes ; then
7477 _libopencore_amr=yes
7478 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7479 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7480 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7481 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7482 _codecmodules="libopencore_amrwb $_codecmodules"
7483 else
7484 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7485 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7487 echores "$_libopencore_amrwb"
7489 echocheck "libdv-0.9.5+"
7490 if test "$_libdv" = auto ; then
7491 _libdv=no
7492 cat > $TMPC <<EOF
7493 #include <libdv/dv.h>
7494 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7496 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7498 if test "$_libdv" = yes ; then
7499 def_libdv='#define CONFIG_LIBDV095 1'
7500 extra_ldflags="$extra_ldflags -ldv"
7501 _codecmodules="libdv $_codecmodules"
7502 else
7503 def_libdv='#undef CONFIG_LIBDV095'
7504 _nocodecmodules="libdv $_nocodecmodules"
7506 echores "$_libdv"
7509 echocheck "Xvid"
7510 if test "$_xvid" = auto ; then
7511 _xvid=no
7512 cat > $TMPC << EOF
7513 #include <xvid.h>
7514 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7516 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7517 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7518 done
7521 if test "$_xvid" = yes ; then
7522 def_xvid='#define CONFIG_XVID4 1'
7523 _codecmodules="xvid $_codecmodules"
7524 else
7525 def_xvid='#undef CONFIG_XVID4'
7526 _nocodecmodules="xvid $_nocodecmodules"
7528 echores "$_xvid"
7530 echocheck "Xvid two pass plugin"
7531 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7532 cat > $TMPC << EOF
7533 #include <xvid.h>
7534 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7536 cc_check && _xvid_lavc=yes
7538 if test "$_xvid_lavc" = yes ; then
7539 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7540 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7541 else
7542 _xvid_lavc=no
7543 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7545 echores "$_xvid_lavc"
7548 echocheck "x264"
7549 if test "$_x264" = auto ; then
7550 cat > $TMPC << EOF
7551 #include <inttypes.h>
7552 #include <x264.h>
7553 #if X264_BUILD < 83
7554 #error We do not support old versions of x264. Get the latest from git.
7555 #endif
7556 int main(void) { x264_encoder_open((void*)0); return 0; }
7558 _x264=no
7559 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7560 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7561 done
7564 if test "$_x264" = yes ; then
7565 def_x264='#define CONFIG_X264 1'
7566 _codecmodules="x264 $_codecmodules"
7567 test "$_x264_lavc" = auto && _x264_lavc=yes
7568 if test "$_x264_lavc" = yes ; then
7569 def_x264_lavc='#define CONFIG_LIBX264 1'
7570 libs_mplayer="$libs_mplayer $_ld_x264"
7571 _libavencoders="$_libavencoders LIBX264_ENCODER"
7573 else
7574 _x264_lavc=no
7575 def_x264='#undef CONFIG_X264'
7576 def_x264_lavc='#define CONFIG_LIBX264 0'
7577 _nocodecmodules="x264 $_nocodecmodules"
7579 _res_comment="in libavcodec: $_x264_lavc"
7580 echores "$_x264"
7583 echocheck "libdirac"
7584 if test "$_libdirac_lavc" = auto; then
7585 _libdirac_lavc=no
7586 if test "$_libavcodec_a" != yes; then
7587 _res_comment="libavcodec (static) is required by libdirac, sorry"
7588 else
7589 cat > $TMPC << EOF
7590 #include <libdirac_encoder/dirac_encoder.h>
7591 #include <libdirac_decoder/dirac_parser.h>
7592 int main(void)
7594 dirac_encoder_context_t enc_ctx;
7595 dirac_decoder_t *dec_handle;
7596 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7597 dec_handle = dirac_decoder_init(0);
7598 if (dec_handle)
7599 dirac_decoder_close(dec_handle);
7600 return 0;
7603 if $_pkg_config --exists dirac ; then
7604 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7605 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7606 cc_check $_inc_dirac $_ld_dirac &&
7607 _libdirac_lavc=yes &&
7608 extra_cflags="$extra_cflags $_inc_dirac" &&
7609 extra_ldflags="$extra_ldflags $_ld_dirac"
7613 if test "$_libdirac_lavc" = yes ; then
7614 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7615 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7616 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7617 _codecmodules="libdirac $_codecmodules"
7618 else
7619 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7620 _nocodecmodules="libdirac $_nocodecmodules"
7622 echores "$_libdirac_lavc"
7625 echocheck "libschroedinger"
7626 if test "$_libschroedinger_lavc" = auto ; then
7627 _libschroedinger_lavc=no
7628 if test "$_libavcodec_a" != yes; then
7629 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7630 else
7631 cat > $TMPC << EOF
7632 #include <schroedinger/schro.h>
7633 int main(void) { schro_init(); return 0; }
7635 if $_pkg_config --exists schroedinger-1.0 ; then
7636 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7637 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7638 cc_check $_inc_schroedinger $_ld_schroedinger &&
7639 _libschroedinger_lavc=yes &&
7640 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7641 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7645 if test "$_libschroedinger_lavc" = yes ; then
7646 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7647 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7648 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7649 _codecmodules="libschroedinger $_codecmodules"
7650 else
7651 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7652 _nocodecmodules="libschroedinger $_nocodecmodules"
7654 echores "$_libschroedinger_lavc"
7656 echocheck "libnut"
7657 if test "$_libnut" = auto ; then
7658 cat > $TMPC << EOF
7659 #include <stdio.h>
7660 #include <stdlib.h>
7661 #include <inttypes.h>
7662 #include <libnut.h>
7663 nut_context_tt * nut;
7664 int main(void) { (void)nut_error(0); return 0; }
7666 _libnut=no
7667 cc_check -lnut && _libnut=yes
7670 if test "$_libnut" = yes ; then
7671 def_libnut='#define CONFIG_LIBNUT 1'
7672 extra_ldflags="$extra_ldflags -lnut"
7673 else
7674 def_libnut='#undef CONFIG_LIBNUT'
7676 echores "$_libnut"
7678 #check must be done after libavcodec one
7679 echocheck "zr"
7680 if test "$_zr" = auto ; then
7681 #36067's seem to identify themselves as 36057PQC's, so the line
7682 #below should work for 36067's and 36057's.
7683 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7684 _zr=yes
7685 else
7686 _zr=no
7689 if test "$_zr" = yes ; then
7690 if test "$_libavcodec_a" = yes ; then
7691 def_zr='#define CONFIG_ZR 1'
7692 _vomodules="zr zr2 $_vomodules"
7693 else
7694 _res_comment="libavcodec (static) is required by zr, sorry"
7695 _novomodules="zr $_novomodules"
7696 def_zr='#undef CONFIG_ZR'
7698 else
7699 def_zr='#undef CONFIG_ZR'
7700 _novomodules="zr zr2 $_novomodules"
7702 echores "$_zr"
7704 # mencoder requires (optional) those libs: libmp3lame
7705 if test "$_mencoder" != no ; then
7707 echocheck "libmp3lame"
7708 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7709 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7710 if test "$_mp3lame" = auto ; then
7711 _mp3lame=no
7712 cat > $TMPC <<EOF
7713 #include <lame/lame.h>
7714 int main(void) { lame_version_t lv; (void) lame_init();
7715 get_lame_version_numerical(&lv);
7716 return 0; }
7718 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7720 if test "$_mp3lame" = yes ; then
7721 def_mp3lame="#define CONFIG_MP3LAME 1"
7722 _ld_mp3lame=-lmp3lame
7723 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7724 cat > $TMPC << EOF
7725 #include <lame/lame.h>
7726 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7728 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7729 cat > $TMPC << EOF
7730 #include <lame/lame.h>
7731 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7733 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7734 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7735 if test "$_mp3lame_lavc" = yes ; then
7736 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7737 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7738 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7740 else
7741 _mp3lame_lavc=no
7742 def_mp3lame='#undef CONFIG_MP3LAME'
7743 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7745 _res_comment="in libavcodec: $_mp3lame_lavc"
7746 echores "$_mp3lame"
7748 fi # test "$_mencoder" != no
7750 echocheck "mencoder"
7751 if test "$_mencoder" = yes ; then
7752 def_muxers='#define CONFIG_MUXERS 1'
7753 else
7754 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7755 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7756 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7757 _libavmuxers=""
7758 def_muxers='#define CONFIG_MUXERS 0'
7760 echores "$_mencoder"
7763 echocheck "UnRAR executable"
7764 if test "$_unrar_exec" = auto ; then
7765 _unrar_exec="yes"
7766 mingw32 && _unrar_exec="no"
7768 if test "$_unrar_exec" = yes ; then
7769 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7770 else
7771 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7773 echores "$_unrar_exec"
7775 echocheck "TV interface"
7776 if test "$_tv" = yes ; then
7777 def_tv='#define CONFIG_TV 1'
7778 _inputmodules="tv $_inputmodules"
7779 else
7780 _noinputmodules="tv $_noinputmodules"
7781 def_tv='#undef CONFIG_TV'
7783 echores "$_tv"
7786 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7787 echocheck "*BSD BT848 bt8xx header"
7788 _ioctl_bt848_h=no
7789 for file in "machine/ioctl_bt848.h" \
7790 "dev/bktr/ioctl_bt848.h" \
7791 "dev/video/bktr/ioctl_bt848.h" \
7792 "dev/ic/bt8xx.h" ; do
7793 cat > $TMPC <<EOF
7794 #include <sys/types.h>
7795 #include <sys/ioctl.h>
7796 #include <$file>
7797 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7799 if cc_check ; then
7800 _ioctl_bt848_h=yes
7801 _ioctl_bt848_h_name="$file"
7802 break;
7804 done
7805 if test "$_ioctl_bt848_h" = yes ; then
7806 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7807 _res_comment="using $_ioctl_bt848_h_name"
7808 else
7809 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7811 echores "$_ioctl_bt848_h"
7813 echocheck "*BSD ioctl_meteor.h"
7814 _ioctl_meteor_h=no
7815 for file in "machine/ioctl_meteor.h" \
7816 "dev/bktr/ioctl_meteor.h" \
7817 "dev/video/bktr/ioctl_meteor.h" ; do
7818 cat > $TMPC <<EOF
7819 #include <sys/types.h>
7820 #include <$file>
7821 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7823 if cc_check ; then
7824 _ioctl_meteor_h=yes
7825 _ioctl_meteor_h_name="$file"
7826 break;
7828 done
7829 if test "$_ioctl_meteor_h" = yes ; then
7830 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7831 _res_comment="using $_ioctl_meteor_h_name"
7832 else
7833 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7835 echores "$_ioctl_meteor_h"
7837 echocheck "*BSD BrookTree 848 TV interface"
7838 if test "$_tv_bsdbt848" = auto ; then
7839 _tv_bsdbt848=no
7840 if test "$_tv" = yes ; then
7841 cat > $TMPC <<EOF
7842 #include <sys/types.h>
7843 $def_ioctl_meteor_h_name
7844 $def_ioctl_bt848_h_name
7845 #ifdef IOCTL_METEOR_H_NAME
7846 #include IOCTL_METEOR_H_NAME
7847 #endif
7848 #ifdef IOCTL_BT848_H_NAME
7849 #include IOCTL_BT848_H_NAME
7850 #endif
7851 int main(void) {
7852 ioctl(0, METEORSINPUT, 0);
7853 ioctl(0, TVTUNER_GETFREQ, 0);
7854 return 0;
7857 cc_check && _tv_bsdbt848=yes
7860 if test "$_tv_bsdbt848" = yes ; then
7861 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7862 _inputmodules="tv-bsdbt848 $_inputmodules"
7863 else
7864 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7865 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7867 echores "$_tv_bsdbt848"
7868 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7871 echocheck "DirectShow TV interface"
7872 if test "$_tv_dshow" = auto ; then
7873 _tv_dshow=no
7874 if test "$_tv" = yes && win32 ; then
7875 cat > $TMPC <<EOF
7876 #include <ole2.h>
7877 int main(void) {
7878 void* p;
7879 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7880 return 0;
7883 cc_check -lole32 -luuid && _tv_dshow=yes
7886 if test "$_tv_dshow" = yes ; then
7887 _inputmodules="tv-dshow $_inputmodules"
7888 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7889 extra_ldflags="$extra_ldflags -lole32 -luuid"
7890 else
7891 _noinputmodules="tv-dshow $_noinputmodules"
7892 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7894 echores "$_tv_dshow"
7897 echocheck "Video 4 Linux TV interface"
7898 if test "$_tv_v4l1" = auto ; then
7899 _tv_v4l1=no
7900 if test "$_tv" = yes && linux ; then
7901 cat > $TMPC <<EOF
7902 #include <stdlib.h>
7903 #include <linux/videodev.h>
7904 int main(void) { return 0; }
7906 cc_check && _tv_v4l1=yes
7909 if test "$_tv_v4l1" = yes ; then
7910 _audio_input=yes
7911 _tv_v4l=yes
7912 def_tv_v4l='#define CONFIG_TV_V4L 1'
7913 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7914 _inputmodules="tv-v4l $_inputmodules"
7915 else
7916 _noinputmodules="tv-v4l1 $_noinputmodules"
7917 def_tv_v4l='#undef CONFIG_TV_V4L'
7919 echores "$_tv_v4l1"
7922 echocheck "Video 4 Linux 2 TV interface"
7923 if test "$_tv_v4l2" = auto ; then
7924 _tv_v4l2=no
7925 if test "$_tv" = yes && linux ; then
7926 cat > $TMPC <<EOF
7927 #include <stdlib.h>
7928 #include <linux/types.h>
7929 #include <linux/videodev2.h>
7930 int main(void) { return 0; }
7932 cc_check && _tv_v4l2=yes
7935 if test "$_tv_v4l2" = yes ; then
7936 _audio_input=yes
7937 _tv_v4l=yes
7938 def_tv_v4l='#define CONFIG_TV_V4L 1'
7939 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7940 _inputmodules="tv-v4l2 $_inputmodules"
7941 else
7942 _noinputmodules="tv-v4l2 $_noinputmodules"
7943 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7945 echores "$_tv_v4l2"
7948 echocheck "Radio interface"
7949 if test "$_radio" = yes ; then
7950 def_radio='#define CONFIG_RADIO 1'
7951 _inputmodules="radio $_inputmodules"
7952 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7953 _radio_capture=no
7955 if test "$_radio_capture" = yes ; then
7956 _audio_input=yes
7957 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7958 else
7959 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7961 else
7962 _noinputmodules="radio $_noinputmodules"
7963 def_radio='#undef CONFIG_RADIO'
7964 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7965 _radio_capture=no
7967 echores "$_radio"
7968 echocheck "Capture for Radio interface"
7969 echores "$_radio_capture"
7971 echocheck "Video 4 Linux 2 Radio interface"
7972 if test "$_radio_v4l2" = auto ; then
7973 _radio_v4l2=no
7974 if test "$_radio" = yes && linux ; then
7975 cat > $TMPC <<EOF
7976 #include <stdlib.h>
7977 #include <linux/types.h>
7978 #include <linux/videodev2.h>
7979 int main(void) { return 0; }
7981 cc_check && _radio_v4l2=yes
7984 if test "$_radio_v4l2" = yes ; then
7985 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7986 else
7987 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7989 echores "$_radio_v4l2"
7991 echocheck "Video 4 Linux Radio interface"
7992 if test "$_radio_v4l" = auto ; then
7993 _radio_v4l=no
7994 if test "$_radio" = yes && linux ; then
7995 cat > $TMPC <<EOF
7996 #include <stdlib.h>
7997 #include <linux/videodev.h>
7998 int main(void) { return 0; }
8000 cc_check && _radio_v4l=yes
8003 if test "$_radio_v4l" = yes ; then
8004 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
8005 else
8006 def_radio_v4l='#undef CONFIG_RADIO_V4L'
8008 echores "$_radio_v4l"
8010 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8011 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8012 echocheck "*BSD BrookTree 848 Radio interface"
8013 _radio_bsdbt848=no
8014 cat > $TMPC <<EOF
8015 #include <sys/types.h>
8016 $def_ioctl_bt848_h_name
8017 #ifdef IOCTL_BT848_H_NAME
8018 #include IOCTL_BT848_H_NAME
8019 #endif
8020 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8022 cc_check && _radio_bsdbt848=yes
8023 echores "$_radio_bsdbt848"
8024 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8026 if test "$_radio_bsdbt848" = yes ; then
8027 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8028 else
8029 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8032 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8033 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8034 die "Radio driver requires BSD BT848, V4L or V4L2!"
8037 echocheck "Video 4 Linux 2 MPEG PVR interface"
8038 if test "$_pvr" = auto ; then
8039 _pvr=no
8040 if test "$_tv_v4l2" = yes && linux ; then
8041 cat > $TMPC <<EOF
8042 #include <stdlib.h>
8043 #include <inttypes.h>
8044 #include <linux/types.h>
8045 #include <linux/videodev2.h>
8046 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8048 cc_check && _pvr=yes
8051 if test "$_pvr" = yes ; then
8052 def_pvr='#define CONFIG_PVR 1'
8053 _inputmodules="pvr $_inputmodules"
8054 else
8055 _noinputmodules="pvr $_noinputmodules"
8056 def_pvr='#undef CONFIG_PVR'
8058 echores "$_pvr"
8061 echocheck "ftp"
8062 if ! beos && test "$_ftp" = yes ; then
8063 def_ftp='#define CONFIG_FTP 1'
8064 _inputmodules="ftp $_inputmodules"
8065 else
8066 _noinputmodules="ftp $_noinputmodules"
8067 def_ftp='#undef CONFIG_FTP'
8069 echores "$_ftp"
8071 echocheck "vstream client"
8072 if test "$_vstream" = auto ; then
8073 _vstream=no
8074 cat > $TMPC <<EOF
8075 #include <vstream-client.h>
8076 void vstream_error(const char *format, ... ) {}
8077 int main(void) { vstream_start(); return 0; }
8079 cc_check -lvstream-client && _vstream=yes
8081 if test "$_vstream" = yes ; then
8082 def_vstream='#define CONFIG_VSTREAM 1'
8083 _inputmodules="vstream $_inputmodules"
8084 extra_ldflags="$extra_ldflags -lvstream-client"
8085 else
8086 _noinputmodules="vstream $_noinputmodules"
8087 def_vstream='#undef CONFIG_VSTREAM'
8089 echores "$_vstream"
8092 echocheck "OSD menu"
8093 if test "$_menu" = yes ; then
8094 def_menu='#define CONFIG_MENU 1'
8095 test $_dvbin = "yes" && _menu_dvbin=yes
8096 else
8097 def_menu='#undef CONFIG_MENU'
8098 _menu_dvbin=no
8100 echores "$_menu"
8103 echocheck "Subtitles sorting"
8104 if test "$_sortsub" = yes ; then
8105 def_sortsub='#define CONFIG_SORTSUB 1'
8106 else
8107 def_sortsub='#undef CONFIG_SORTSUB'
8109 echores "$_sortsub"
8112 echocheck "XMMS inputplugin support"
8113 if test "$_xmms" = yes ; then
8114 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8115 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8116 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8117 else
8118 _xmmsplugindir=/usr/lib/xmms/Input
8119 _xmmslibdir=/usr/lib
8122 def_xmms='#define CONFIG_XMMS 1'
8123 if darwin ; then
8124 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8125 else
8126 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8128 else
8129 def_xmms='#undef CONFIG_XMMS'
8131 echores "$_xmms"
8134 # --------------- GUI specific tests begin -------------------
8135 echocheck "GUI"
8136 echo "$_gui"
8137 if test "$_gui" = yes ; then
8139 # Required libraries
8140 if test "$_libavcodec" != yes ||
8141 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8142 die "The GUI requires libavcodec with PNG support (needs zlib)."
8144 test "$_freetype" = no && test "$_bitmap_font" = no && \
8145 die "The GUI requires either FreeType or bitmap font support."
8146 if ! win32 ; then
8147 _gui_gtk=yes
8148 test "$_x11" != yes && die "X11 support required for GUI compilation."
8150 echocheck "XShape extension"
8151 if test "$_xshape" = auto ; then
8152 _xshape=no
8153 cat > $TMPC << EOF
8154 #include <X11/Xlib.h>
8155 #include <X11/Xproto.h>
8156 #include <X11/Xutil.h>
8157 #include <X11/extensions/shape.h>
8158 #include <stdlib.h>
8159 int main(void) {
8160 char *name = ":0.0";
8161 Display *wsDisplay;
8162 int exitvar = 0;
8163 int eventbase, errorbase;
8164 if (getenv("DISPLAY"))
8165 name=getenv("DISPLAY");
8166 wsDisplay=XOpenDisplay(name);
8167 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8168 exitvar=1;
8169 XCloseDisplay(wsDisplay);
8170 return exitvar;
8173 cc_check -lXext && _xshape=yes
8175 if test "$_xshape" = yes ; then
8176 def_xshape='#define CONFIG_XSHAPE 1'
8177 else
8178 die "The GUI requires the X11 extension XShape (which was not found)."
8180 echores "$_xshape"
8182 #Check for GTK
8183 if test "$_gtk1" = no ; then
8184 #Check for GTK2 :
8185 echocheck "GTK+ version"
8187 if $_pkg_config gtk+-2.0 --exists ; then
8188 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8189 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8190 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8191 echores "$_gtk"
8193 # Check for GLIB2
8194 if $_pkg_config glib-2.0 --exists ; then
8195 echocheck "glib version"
8196 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8197 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8198 echores "$_glib"
8200 def_gui='#define CONFIG_GUI 1'
8201 def_gtk2='#define CONFIG_GTK2 1'
8202 else
8203 _gtk1=yes
8204 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8206 else
8207 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8208 _gtk1=yes
8212 if test "$_gtk1" = yes ; then
8213 # Check for old GTK (1.2.x)
8214 echocheck "GTK version"
8215 if test -z "$_gtkconfig" ; then
8216 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8217 _gtkconfig="gtk-config"
8218 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8219 _gtkconfig="gtk12-config"
8220 else
8221 die "The GUI requires GTK devel packages (which were not found)."
8224 _gtk=$($_gtkconfig --version 2>&1)
8225 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8226 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8227 echores "$_gtk (using $_gtkconfig)"
8229 # Check for GLIB
8230 echocheck "glib version"
8231 if test -z "$_glibconfig" ; then
8232 if ( glib-config --version ) >/dev/null 2>&1 ; then
8233 _glibconfig="glib-config"
8234 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8235 _glibconfig="glib12-config"
8236 else
8237 die "The GUI requires GLIB devel packages (which were not found)"
8240 _glib=$($_glibconfig --version 2>&1)
8241 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8242 echores "$_glib (using $_glibconfig)"
8244 def_gui='#define CONFIG_GUI 1'
8245 def_gtk2='#undef CONFIG_GTK2'
8248 else #if ! win32
8249 _gui_win32=yes
8250 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8251 def_gui='#define CONFIG_GUI 1'
8252 def_gtk2='#undef CONFIG_GTK2'
8253 fi #if ! win32
8255 else #if test "$_gui"
8256 def_gui='#undef CONFIG_GUI'
8257 def_gtk2='#undef CONFIG_GTK2'
8258 fi #if test "$_gui"
8259 # --------------- GUI specific tests end -------------------
8262 if test "$_charset" != "noconv" ; then
8263 def_charset="#define MSG_CHARSET \"$_charset\""
8264 else
8265 def_charset="#undef MSG_CHARSET"
8266 _charset="UTF-8"
8269 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8270 echocheck "iconv program"
8271 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8272 if test "$?" -ne 0 ; then
8273 echores "no"
8274 echo "No working iconv program found, use "
8275 echo "--charset=UTF-8 to continue anyway."
8276 echo "If you also have problems with iconv library functions use --charset=noconv."
8277 echo "Messages in the GTK-2 interface will be broken then."
8278 exit 1
8279 else
8280 echores "yes"
8284 #############################################################################
8286 echocheck "automatic gdb attach"
8287 if test "$_crash_debug" = yes ; then
8288 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8289 else
8290 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8291 _crash_debug=no
8293 echores "$_crash_debug"
8295 echocheck "compiler support for noexecstack"
8296 cat > $TMPC <<EOF
8297 int main(void) { return 0; }
8299 if cc_check -Wl,-z,noexecstack ; then
8300 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8301 echores "yes"
8302 else
8303 echores "no"
8306 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8307 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8308 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8309 echores "yes"
8310 else
8311 echores "no"
8315 # Dynamic linking flags
8316 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8317 _ld_dl_dynamic=''
8318 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8319 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8320 _ld_dl_dynamic='-rdynamic'
8323 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8324 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8325 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8327 def_debug='#undef MP_DEBUG'
8328 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8331 echocheck "joystick"
8332 def_joystick='#undef CONFIG_JOYSTICK'
8333 if test "$_joystick" = yes ; then
8334 if linux ; then
8335 # TODO add some check
8336 def_joystick='#define CONFIG_JOYSTICK 1'
8337 else
8338 _joystick="no"
8339 _res_comment="unsupported under $system_name"
8342 echores "$_joystick"
8344 echocheck "lirc"
8345 if test "$_lirc" = auto ; then
8346 _lirc=no
8347 cat > $TMPC <<EOF
8348 #include <lirc/lirc_client.h>
8349 int main(void) { return 0; }
8351 cc_check -llirc_client && _lirc=yes
8353 if test "$_lirc" = yes ; then
8354 def_lirc='#define CONFIG_LIRC 1'
8355 libs_mplayer="$libs_mplayer -llirc_client"
8356 else
8357 def_lirc='#undef CONFIG_LIRC'
8359 echores "$_lirc"
8361 echocheck "lircc"
8362 if test "$_lircc" = auto ; then
8363 _lircc=no
8364 cat > $TMPC <<EOF
8365 #include <lirc/lircc.h>
8366 int main(void) { return 0; }
8368 cc_check -llircc && _lircc=yes
8370 if test "$_lircc" = yes ; then
8371 def_lircc='#define CONFIG_LIRCC 1'
8372 libs_mplayer="$libs_mplayer -llircc"
8373 else
8374 def_lircc='#undef CONFIG_LIRCC'
8376 echores "$_lircc"
8378 if arm; then
8379 # Detect maemo development platform libraries availability (http://www.maemo.org),
8380 # they are used when run on Nokia 770|8x0
8381 echocheck "maemo (Nokia 770|8x0)"
8382 if test "$_maemo" = auto ; then
8383 _maemo=no
8384 cat > $TMPC << EOF
8385 #include <libosso.h>
8386 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8388 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8390 if test "$_maemo" = yes ; then
8391 def_maemo='#define CONFIG_MAEMO 1'
8392 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8393 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8394 else
8395 def_maemo='#undef CONFIG_MAEMO'
8397 echores "$_maemo"
8400 #############################################################################
8402 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8403 # the OMF format needs to come after the 'extern symbol prefix' check, which
8404 # uses nm.
8405 if os2 ; then
8406 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8409 # linker paths should be the same for mencoder and mplayer
8410 _ld_tmp=""
8411 for I in $libs_mplayer ; do
8412 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8413 if test -z "$_tmp" ; then
8414 extra_ldflags="$extra_ldflags $I"
8415 else
8416 _ld_tmp="$_ld_tmp $I"
8418 done
8419 libs_mplayer=$_ld_tmp
8422 #############################################################################
8423 # 64 bit file offsets?
8424 if test "$_largefiles" = yes || freebsd ; then
8425 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8426 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8427 # dvdread support requires this (for off64_t)
8428 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8432 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8434 # This must be the last test to be performed. Any other tests following it
8435 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8436 # against libdvdread (to permit MPlayer to use its own copy of the library).
8437 # So any compilation using the flags added here but not linking against
8438 # libdvdread can fail.
8439 echocheck "DVD support (libdvdnav)"
8440 dvdnav_internal=no
8441 if test "$_dvdnav" = auto ; then
8442 if test "$_dvdread_internal" = yes ; then
8443 _dvdnav=yes
8444 dvdnav_internal=yes
8445 _res_comment="internal"
8446 else
8447 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8450 if test "$_dvdnav" = auto ; then
8451 cat > $TMPC <<EOF
8452 #include <inttypes.h>
8453 #include <dvdnav/dvdnav.h>
8454 int main(void) { dvdnav_t *dvd=0; return 0; }
8456 _dvdnav=no
8457 _dvdnavdir=$($_dvdnavconfig --cflags)
8458 _dvdnavlibs=$($_dvdnavconfig --libs)
8459 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8461 if test "$_dvdnav" = yes ; then
8462 _largefiles=yes
8463 def_dvdnav='#define CONFIG_DVDNAV 1'
8464 if test "$dvdnav_internal" = yes ; then
8465 cflags_libdvdnav="-Ilibdvdnav"
8466 _inputmodules="dvdnav(internal) $_inputmodules"
8467 else
8468 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8469 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8470 _inputmodules="dvdnav $_inputmodules"
8472 else
8473 def_dvdnav='#undef CONFIG_DVDNAV'
8474 _noinputmodules="dvdnav $_noinputmodules"
8476 echores "$_dvdnav"
8478 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8479 # Read dvdnav comment above.
8481 #############################################################################
8482 echo "Creating config.mak"
8483 cat > config.mak << EOF
8484 # -------- Generated by configure -----------
8486 # Ensure that locale settings do not interfere with shell commands.
8487 export LC_ALL = C
8489 CONFIGURATION = $_configuration
8491 CHARSET = $_charset
8492 DOC_LANGS = $language_doc
8493 DOC_LANG_ALL = $doc_lang_all
8494 MAN_LANGS = $language_man
8495 MAN_LANG_ALL = $man_lang_all
8497 prefix = \$(DESTDIR)$_prefix
8498 BINDIR = \$(DESTDIR)$_bindir
8499 DATADIR = \$(DESTDIR)$_datadir
8500 LIBDIR = \$(DESTDIR)$_libdir
8501 MANDIR = \$(DESTDIR)$_mandir
8502 CONFDIR = \$(DESTDIR)$_confdir
8504 AR = $_ar
8505 AS = $_cc
8506 CC = $_cc
8507 CXX = $_cc
8508 HOST_CC = $_host_cc
8509 YASM = $_yasm
8510 INSTALL = $_install
8511 INSTALLSTRIP = $_install_strip
8512 RANLIB = $_ranlib
8513 WINDRES = $_windres
8515 CFLAGS = $CFLAGS $extra_cflags
8516 ASFLAGS = $CFLAGS $extra_cflags
8517 OPTFLAGS = $CFLAGS $extra_cflags
8518 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8519 CFLAGS_DHAHELPER = $cflags_dhahelper
8520 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8521 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8522 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8523 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8524 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8525 CFLAGS_STACKREALIGN = $cflags_stackrealign
8526 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8527 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8528 YASMFLAGS = $YASMFLAGS
8530 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8531 EXTRALIBS_MPLAYER = $libs_mplayer
8532 EXTRALIBS_MENCODER = $libs_mencoder
8534 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8536 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8537 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8539 GETCH = $_getch
8540 HELP_FILE = $_mp_help
8541 TIMER = $_timer
8543 EXESUF = $_exesuf
8544 EXESUFS_ALL = .exe
8546 $_target_arch
8547 $_target_subarch
8548 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8550 MENCODER = $_mencoder
8551 MPLAYER = $_mplayer
8553 NEED_GETTIMEOFDAY = $_need_gettimeofday
8554 NEED_GLOB = $_need_glob
8555 NEED_MMAP = $_need_mmap
8556 NEED_SETENV = $_need_setenv
8557 NEED_SHMEM = $_need_shmem
8558 NEED_STRSEP = $_need_strsep
8559 NEED_SWAB = $_need_swab
8560 NEED_VSSCANF = $_need_vsscanf
8562 # features
8563 3DFX = $_3dfx
8564 AA = $_aa
8565 ALSA1X = $_alsa1x
8566 ALSA9 = $_alsa9
8567 ALSA5 = $_alsa5
8568 APPLE_IR = $_apple_ir
8569 APPLE_REMOTE = $_apple_remote
8570 ARTS = $_arts
8571 AUDIO_INPUT = $_audio_input
8572 BITMAP_FONT = $_bitmap_font
8573 BL = $_bl
8574 CACA = $_caca
8575 CDDA = $_cdda
8576 CDDB = $_cddb
8577 COREAUDIO = $_coreaudio
8578 COREVIDEO = $_corevideo
8579 DART = $_dart
8580 DFBMGA = $_dfbmga
8581 DGA = $_dga
8582 DIRECT3D = $_direct3d
8583 DIRECTFB = $_directfb
8584 DIRECTX = $_directx
8585 DVBIN = $_dvbin
8586 DVDNAV = $_dvdnav
8587 DVDNAV_INTERNAL = $dvdnav_internal
8588 DVDREAD = $_dvdread
8589 DVDREAD_INTERNAL = $_dvdread_internal
8590 DXR2 = $_dxr2
8591 DXR3 = $_dxr3
8592 ESD = $_esd
8593 FAAC=$_faac
8594 FAAD = $_faad
8595 FAAD_INTERNAL = $_faad_internal
8596 FASTMEMCPY = $_fastmemcpy
8597 $mak_hardcoded_tables
8598 $mak_libavcodec_mpegaudio_hp
8599 FBDEV = $_fbdev
8600 FREETYPE = $_freetype
8601 FTP = $_ftp
8602 GIF = $_gif
8603 GGI = $_ggi
8604 GL = $_gl
8605 GL_WIN32 = $_gl_win32
8606 GL_X11 = $_gl_x11
8607 MATRIXVIEW = $matrixview
8608 GUI = $_gui
8609 GUI_GTK = $_gui_gtk
8610 GUI_WIN32 = $_gui_win32
8611 HAVE_POSIX_SELECT = $_posix_select
8612 HAVE_SYS_MMAN_H = $_mman
8613 IVTV = $_ivtv
8614 JACK = $_jack
8615 JOYSTICK = $_joystick
8616 JPEG = $_jpeg
8617 KAI = $_kai
8618 KVA = $_kva
8619 LADSPA = $_ladspa
8620 LIBA52 = $_liba52
8621 LIBA52_INTERNAL = $_liba52_internal
8622 LIBASS = $_ass
8623 LIBASS_INTERNAL = $ass_internal
8624 LIBBS2B = $_libbs2b
8625 LIBDCA = $_libdca
8626 LIBDV = $_libdv
8627 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8628 LIBLZO = $_liblzo
8629 LIBMAD = $_mad
8630 LIBMENU = $_menu
8631 LIBMENU_DVBIN = $_menu_dvbin
8632 LIBMPEG2 = $_libmpeg2
8633 LIBNEMESI = $_nemesi
8634 LIBNUT = $_libnut
8635 LIBSMBCLIENT = $_smb
8636 LIBTHEORA = $_theora
8637 LIRC = $_lirc
8638 LIVE555 = $_live
8639 MACOSX_BUNDLE = $_macosx_bundle
8640 MACOSX_FINDER = $_macosx_finder
8641 MD5SUM = $_md5sum
8642 MGA = $_mga
8643 MNG = $_mng
8644 MP3LAME = $_mp3lame
8645 MP3LIB = $_mp3lib
8646 MUSEPACK = $_musepack
8647 NAS = $_nas
8648 NATIVE_RTSP = $_native_rtsp
8649 NETWORK = $_network
8650 OPENAL = $_openal
8651 OSS = $_ossaudio
8652 PE_EXECUTABLE = $_pe_executable
8653 PNG = $_png
8654 PNM = $_pnm
8655 PRIORITY = $_priority
8656 PULSE = $_pulse
8657 PVR = $_pvr
8658 QTX_CODECS = $_qtx
8659 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8660 QTX_EMULATION = $_qtx_emulation
8661 QUARTZ = $_quartz
8662 RADIO=$_radio
8663 RADIO_CAPTURE=$_radio_capture
8664 REAL_CODECS = $_real
8665 S3FB = $_s3fb
8666 SDL = $_sdl
8667 SPEEX = $_speex
8668 STREAM_CACHE = $_stream_cache
8669 SGIAUDIO = $_sgiaudio
8670 SUNAUDIO = $_sunaudio
8671 SVGA = $_svga
8672 TDFXFB = $_tdfxfb
8673 TDFXVID = $_tdfxvid
8674 TGA = $_tga
8675 TOOLAME=$_toolame
8676 TREMOR_INTERNAL = $_tremor_internal
8677 TV = $_tv
8678 TV_BSDBT848 = $_tv_bsdbt848
8679 TV_DSHOW = $_tv_dshow
8680 TV_V4L = $_tv_v4l
8681 TV_V4L1 = $_tv_v4l1
8682 TV_V4L2 = $_tv_v4l2
8683 TWOLAME=$_twolame
8684 UNRAR_EXEC = $_unrar_exec
8685 V4L2 = $_v4l2
8686 VCD = $_vcd
8687 VDPAU = $_vdpau
8688 VESA = $_vesa
8689 VIDIX = $_vidix
8690 VIDIX_PCIDB = $_vidix_pcidb_val
8691 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8692 VIDIX_IVTV=$_vidix_drv_ivtv
8693 VIDIX_MACH64=$_vidix_drv_mach64
8694 VIDIX_MGA=$_vidix_drv_mga
8695 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8696 VIDIX_NVIDIA=$_vidix_drv_nvidia
8697 VIDIX_PM2=$_vidix_drv_pm2
8698 VIDIX_PM3=$_vidix_drv_pm3
8699 VIDIX_RADEON=$_vidix_drv_radeon
8700 VIDIX_RAGE128=$_vidix_drv_rage128
8701 VIDIX_S3=$_vidix_drv_s3
8702 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8703 VIDIX_SIS=$_vidix_drv_sis
8704 VIDIX_UNICHROME=$_vidix_drv_unichrome
8705 VORBIS = $_vorbis
8706 VSTREAM = $_vstream
8707 WII = $_wii
8708 WIN32DLL = $_win32dll
8709 WIN32WAVEOUT = $_win32waveout
8710 WIN32_EMULATION = $_win32_emulation
8711 WINVIDIX = $winvidix
8712 X11 = $_x11
8713 X264 = $_x264
8714 XANIM_CODECS = $_xanim
8715 XMGA = $_xmga
8716 XMMS_PLUGINS = $_xmms
8717 XV = $_xv
8718 XVID4 = $_xvid
8719 XVIDIX = $xvidix
8720 XVMC = $_xvmc
8721 XVR100 = $_xvr100
8722 YUV4MPEG = $_yuv4mpeg
8723 ZR = $_zr
8725 # FFmpeg
8726 LIBAVUTIL = $_libavutil
8727 LIBAVUTIL_A = $_libavutil_a
8728 LIBAVUTIL_SO = $_libavutil_so
8729 LIBAVCODEC = $_libavcodec
8730 LIBAVCODEC_A = $_libavcodec_a
8731 LIBAVCODEC_SO = $_libavcodec_so
8732 LIBAVFORMAT = $_libavformat
8733 LIBAVFORMAT_A = $_libavformat_a
8734 LIBAVFORMAT_SO = $_libavformat_so
8735 LIBPOSTPROC = $_libpostproc
8736 LIBPOSTPROC_A = $_libpostproc_a
8737 LIBPOSTPROC_SO = $_libpostproc_so
8738 LIBSWSCALE = $_libswscale
8739 LIBSWSCALE_A = $_libswscale_a
8740 LIBSWSCALE_SO = $_libswscale_so
8742 HOSTCC=\$(HOST_CC)
8743 HOSTCFLAGS=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8744 HOSTLIBS=-lm
8745 CC_O=-o \$@
8746 LD=gcc
8747 CONFIG_STATIC=yes
8748 SRC_PATH=..
8749 BUILD_ROOT=..
8750 LIBPREF=lib
8751 LIBSUF=.a
8752 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8753 FULLNAME=\$(NAME)\$(BUILDSUF)
8755 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8756 CONFIG_AANDCT=yes
8757 CONFIG_DCT=yes
8758 CONFIG_FFT=yes
8759 CONFIG_FFT_MMX=$fft_mmx
8760 CONFIG_GOLOMB=yes
8761 CONFIG_LPC=yes
8762 CONFIG_MDCT=yes
8763 CONFIG_RDFT=yes
8765 CONFIG_BZLIB=$bzlib
8766 CONFIG_ENCODERS=yes
8767 CONFIG_GPL=yes
8768 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8769 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8770 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8771 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8772 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8773 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8774 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8775 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8776 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8777 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8778 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8779 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8780 CONFIG_LIBX264_ENCODER=$_x264_lavc
8781 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8782 CONFIG_MLIB = $_mlib
8783 CONFIG_MUXERS=$_mencoder
8784 CONFIG_POSTPROC = yes
8785 # Prevent building libavcodec/imgresample.c with conflicting symbols
8786 CONFIG_SWSCALE=yes
8787 CONFIG_VDPAU=$_vdpau
8788 CONFIG_XVMC=$_xvmc
8789 CONFIG_ZLIB=$_zlib
8791 HAVE_PTHREADS = $_pthreads
8792 HAVE_SHM = $_shm
8793 HAVE_W32THREADS = $_w32threads
8794 HAVE_YASM = $_have_yasm
8796 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8797 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8798 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8799 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8800 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8801 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8802 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8803 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8806 #############################################################################
8808 ff_config_enable () {
8809 _nprefix=$3;
8810 test -z "$_nprefix" && _nprefix='CONFIG'
8811 for part in $1; do
8812 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8813 echo "#define ${_nprefix}_$part 1"
8814 else
8815 echo "#define ${_nprefix}_$part 0"
8817 done
8820 echo "Creating config.h"
8821 cat > $TMPH << EOF
8822 /*----------------------------------------------------------------------------
8823 ** This file has been automatically generated by configure any changes in it
8824 ** will be lost when you run configure again.
8825 ** Instead of modifying definitions here, use the --enable/--disable options
8826 ** of the configure script! See ./configure --help for details.
8827 *---------------------------------------------------------------------------*/
8829 #ifndef MPLAYER_CONFIG_H
8830 #define MPLAYER_CONFIG_H
8832 /* Undefine this if you do not want to select mono audio (left or right)
8833 with a stereo MPEG layer 2/3 audio stream. The command line option
8834 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8835 right-only), with 0 being the default.
8837 #define CONFIG_FAKE_MONO 1
8839 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8840 #define MAX_OUTBURST 65536
8842 /* set up audio OUTBURST. Do not change this! */
8843 #define OUTBURST 512
8845 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8846 #undef FAST_OSD
8847 #undef FAST_OSD_TABLE
8849 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8850 #define MPEG12_POSTPROC 1
8851 #define ATTRIBUTE_ALIGNED_MAX 16
8855 #define CONFIGURATION "$_configuration"
8857 #define MPLAYER_DATADIR "$_datadir"
8858 #define MPLAYER_CONFDIR "$_confdir"
8859 #define MPLAYER_LIBDIR "$_libdir"
8861 /* definitions needed by included libraries */
8862 #define HAVE_INTTYPES_H 1
8863 /* libmpeg2 + FFmpeg */
8864 $def_fast_inttypes
8865 /* libdvdcss */
8866 #define HAVE_ERRNO_H 1
8867 /* libdvdcss + libdvdread */
8868 #define HAVE_LIMITS_H 1
8869 /* libdvdcss + libfaad2 */
8870 #define HAVE_UNISTD_H 1
8871 /* libfaad2 + libdvdread */
8872 #define STDC_HEADERS 1
8873 #define HAVE_MEMCPY 1
8874 /* libfaad2 */
8875 #define HAVE_STRING_H 1
8876 #define HAVE_STRINGS_H 1
8877 #define HAVE_SYS_STAT_H 1
8878 #define HAVE_SYS_TYPES_H 1
8879 /* libdvdnav */
8880 #define READ_CACHE_TRACE 0
8881 /* libdvdread */
8882 #define HAVE_DLFCN_H 1
8883 $def_dvdcss
8886 /* system headers */
8887 $def_alloca_h
8888 $def_alsa_asoundlib_h
8889 $def_altivec_h
8890 $def_malloc_h
8891 $def_mman_h
8892 $def_mman_has_map_failed
8893 $def_soundcard_h
8894 $def_sys_asoundlib_h
8895 $def_sys_soundcard_h
8896 $def_sys_sysinfo_h
8897 $def_termios_h
8898 $def_termios_sys_h
8899 $def_winsock2_h
8902 /* system functions */
8903 $def_gethostbyname2
8904 $def_gettimeofday
8905 $def_glob
8906 $def_langinfo
8907 $def_lrintf
8908 $def_map_memalign
8909 $def_memalign
8910 $def_nanosleep
8911 $def_posix_select
8912 $def_select
8913 $def_setenv
8914 $def_shm
8915 $def_strsep
8916 $def_swab
8917 $def_sysi86
8918 $def_sysi86_iv
8919 $def_termcap
8920 $def_termios
8921 $def_vsscanf
8924 /* system-specific features */
8925 $def_asmalign_pot
8926 $def_builtin_expect
8927 $def_dl
8928 $def_dos_paths
8929 $def_extern_asm
8930 $def_extern_prefix
8931 $def_iconv
8932 $def_kstat
8933 $def_macosx_bundle
8934 $def_macosx_finder
8935 $def_maemo
8936 $def_named_asm_args
8937 $def_priority
8938 $def_quicktime
8939 $def_restrict_keyword
8940 $def_rtc
8941 $def_unrar_exec
8944 /* configurable options */
8945 $def_charset
8946 $def_crash_debug
8947 $def_debug
8948 $def_dynamic_plugins
8949 $def_fastmemcpy
8950 $def_menu
8951 $def_runtime_cpudetection
8952 $def_sighandler
8953 $def_sortsub
8954 $def_stream_cache
8955 $def_pthread_cache
8958 /* CPU stuff */
8959 #define __CPU__ $iproc
8960 $def_words_endian
8961 $def_bigendian
8962 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8963 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8966 /* DVD/VCD/CD */
8967 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8968 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8969 $def_bsdi_dvd
8970 $def_cddb
8971 $def_cdio
8972 $def_cdparanoia
8973 $def_cdrom
8974 $def_dvd
8975 $def_dvd_bsd
8976 $def_dvd_darwin
8977 $def_dvd_linux
8978 $def_dvd_openbsd
8979 $def_dvdio
8980 $def_dvdnav
8981 $def_dvdread
8982 $def_hpux_scsi_h
8983 $def_libcdio
8984 $def_sol_scsi_h
8985 $def_vcd
8988 /* codec libraries */
8989 $def_faac
8990 $def_faad
8991 $def_faad_internal
8992 $def_liba52
8993 $def_liba52_internal
8994 $def_libdca
8995 $def_libdv
8996 $def_liblzo
8997 $def_libmpeg2
8998 $def_mad
8999 $def_mp3lame
9000 $def_mp3lame_preset
9001 $def_mp3lame_preset_medium
9002 $def_mp3lib
9003 $def_musepack
9004 $def_speex
9005 $def_theora
9006 $def_toolame
9007 $def_tremor
9008 $def_twolame
9009 $def_vorbis
9010 $def_x264
9011 $def_xvid
9012 $def_zlib
9014 $def_libnut
9017 /* binary codecs */
9018 $def_qtx
9019 $def_qtx_win32
9020 $def_real
9021 $def_real_path
9022 $def_win32_loader
9023 $def_win32dll
9024 #define WIN32_PATH "$_win32codecsdir"
9025 $def_xanim
9026 $def_xanim_path
9027 $def_xmms
9028 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9031 /* GUI */
9032 $def_gtk2
9033 $def_gui
9034 $def_xshape
9037 /* Audio output drivers */
9038 $def_alsa
9039 $def_alsa1x
9040 $def_alsa5
9041 $def_alsa9
9042 $def_arts
9043 $def_coreaudio
9044 $def_dart
9045 $def_esd
9046 $def_esd_latency
9047 $def_jack
9048 $def_kai
9049 $def_nas
9050 $def_openal
9051 $def_openal_h
9052 $def_ossaudio
9053 $def_ossaudio_devdsp
9054 $def_ossaudio_devmixer
9055 $def_pulse
9056 $def_sgiaudio
9057 $def_sunaudio
9058 $def_win32waveout
9060 $def_ladspa
9061 $def_libbs2b
9064 /* input */
9065 $def_apple_ir
9066 $def_apple_remote
9067 $def_ioctl_bt848_h_name
9068 $def_ioctl_meteor_h_name
9069 $def_joystick
9070 $def_lirc
9071 $def_lircc
9072 $def_pvr
9073 $def_radio
9074 $def_radio_bsdbt848
9075 $def_radio_capture
9076 $def_radio_v4l
9077 $def_radio_v4l2
9078 $def_tv
9079 $def_tv_bsdbt848
9080 $def_tv_dshow
9081 $def_tv_v4l
9082 $def_tv_v4l1
9083 $def_tv_v4l2
9086 /* font stuff */
9087 $def_ass
9088 $def_ass_internal
9089 $def_bitmap_font
9090 $def_enca
9091 $def_fontconfig
9092 $def_freetype
9093 $def_fribidi
9096 /* networking */
9097 $def_closesocket
9098 $def_ftp
9099 $def_inet6
9100 $def_inet_aton
9101 $def_inet_pton
9102 $def_live
9103 $def_nemesi
9104 $def_network
9105 $def_smb
9106 $def_socklen_t
9107 $def_struct_ipv6_mreq
9108 $def_struct_sockaddr_in6
9109 $def_struct_sockaddr_sa_len
9110 $def_vstream
9111 $def_addrinfo
9112 $def_getaddrinfo
9113 $def_sockaddr_storage
9116 /* libvo options */
9117 $def_3dfx
9118 $def_aa
9119 $def_bl
9120 $def_caca
9121 $def_corevideo
9122 $def_dfbmga
9123 $def_dga
9124 $def_dga1
9125 $def_dga2
9126 $def_direct3d
9127 $def_directfb
9128 $def_directfb_version
9129 $def_directx
9130 $def_dvb
9131 $def_dvb_head
9132 $def_dvbin
9133 $def_dxr2
9134 $def_dxr3
9135 $def_fbdev
9136 $def_ggi
9137 $def_ggiwmh
9138 $def_gif
9139 $def_gif_4
9140 $def_gif_tvt_hack
9141 $def_gl
9142 $def_gl_win32
9143 $def_gl_x11
9144 $def_matrixview
9145 $def_ivtv
9146 $def_jpeg
9147 $def_kva
9148 $def_md5sum
9149 $def_mga
9150 $def_mng
9151 $def_png
9152 $def_pnm
9153 $def_quartz
9154 $def_s3fb
9155 $def_sdl
9156 $def_sdl_sdl_h
9157 $def_sdlbuggy
9158 $def_svga
9159 $def_tdfxfb
9160 $def_tdfxvid
9161 $def_tga
9162 $def_v4l2
9163 $def_vdpau
9164 $def_vesa
9165 $def_vidix
9166 $def_vidix_drv_cyberblade
9167 $def_vidix_drv_ivtv
9168 $def_vidix_drv_mach64
9169 $def_vidix_drv_mga
9170 $def_vidix_drv_mga_crtc2
9171 $def_vidix_drv_nvidia
9172 $def_vidix_drv_pm3
9173 $def_vidix_drv_radeon
9174 $def_vidix_drv_rage128
9175 $def_vidix_drv_s3
9176 $def_vidix_drv_sh_veu
9177 $def_vidix_drv_sis
9178 $def_vidix_drv_unichrome
9179 $def_vidix_pfx
9180 $def_vm
9181 $def_wii
9182 $def_x11
9183 $def_xdpms
9184 $def_xf86keysym
9185 $def_xinerama
9186 $def_xmga
9187 $def_xss
9188 $def_xv
9189 $def_xvmc
9190 $def_xvr100
9191 $def_yuv4mpeg
9192 $def_zr
9195 /* FFmpeg */
9196 $def_libavcodec
9197 $def_libavcodec_a
9198 $def_libavcodec_so
9199 $def_libavformat
9200 $def_libavformat_a
9201 $def_libavformat_so
9202 $def_libavutil
9203 $def_libavutil_a
9204 $def_libavutil_so
9205 $def_libpostproc
9206 $def_libpostproc_a
9207 $def_libpostproc_so
9208 $def_libswscale
9209 $def_libswscale_a
9210 $def_libswscale_so
9212 #define CONFIG_DECODERS 1
9213 #define CONFIG_ENCODERS 1
9214 #define CONFIG_DEMUXERS 1
9215 $def_muxers
9217 $def_arpa_inet_h
9218 $def_bswap
9219 $def_bzlib
9220 $def_dcbzl
9221 $def_exp2
9222 $def_exp2f
9223 $def_fast_64bit
9224 $def_fast_unaligned
9225 $def_hardcoded_tables
9226 $def_libavcodec_mpegaudio_hp
9227 $def_llrint
9228 $def_local_aligned_8
9229 $def_local_aligned_16
9230 $def_log2
9231 $def_log2f
9232 $def_lrint
9233 $def_memalign_hack
9234 $def_mlib
9235 $def_mkstemp
9236 $def_posix_memalign
9237 $def_pthreads
9238 $def_round
9239 $def_roundf
9240 $def_ten_operands
9241 $def_threads
9242 $def_truncf
9243 $def_xform_asm
9244 $def_yasm
9246 #define CONFIG_FASTDIV 0
9247 #define CONFIG_FFSERVER 0
9248 #define CONFIG_GPL 1
9249 #define CONFIG_GRAY 0
9250 #define CONFIG_LIBVORBIS 0
9251 #define CONFIG_POWERPC_PERF 0
9252 #define CONFIG_SMALL 0
9253 #define CONFIG_SWSCALE 1
9254 #define CONFIG_SWSCALE_ALPHA 1
9256 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9257 #define CONFIG_IPV6 1
9258 #else
9259 #define CONFIG_IPV6 0
9260 #endif
9262 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9263 #define av_alias __attribute__((may_alias))
9264 #define HAVE_ATTRIBUTE_PACKED 1
9265 #define HAVE_GETHRTIME 0
9266 #define HAVE_INLINE_ASM 1
9267 #define HAVE_LDBRX 0
9268 #define HAVE_POLL_H 1
9269 #define HAVE_PPC4XX 0
9270 #define HAVE_SETMODE 0
9271 #define HAVE_SYS_SELECT_H 0
9272 #define HAVE_VFP_ARGS 1
9273 #define HAVE_VIRTUALALLOC 0
9275 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9276 #define CONFIG_AANDCT 1
9277 #define CONFIG_FFT 1
9278 #define CONFIG_GOLOMB 1
9279 #define CONFIG_LPC 1
9280 #define CONFIG_MDCT 1
9281 #define CONFIG_RDFT 1
9283 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9284 $def_ebx_available
9285 #ifndef MP_DEBUG
9286 #define HAVE_EBP_AVAILABLE 1
9287 #else
9288 #define HAVE_EBP_AVAILABLE 0
9289 #endif
9291 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9292 #define FFMPEG_LICENSE "GPL version 2 or later"
9294 /* External libraries used through libavcodec. */
9295 $def_faac_lavc
9296 $def_libdirac_lavc
9297 $def_libopencore_amrnb
9298 $def_libopencore_amrwb
9299 $def_libopenjpeg
9300 $def_libschroedinger_lavc
9301 $def_mp3lame_lavc
9302 $def_x264_lavc
9303 $def_xvid_lavc
9305 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9306 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9307 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9308 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9309 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9310 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9311 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9312 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9314 #endif /* MPLAYER_CONFIG_H */
9317 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9318 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9320 ############################################################################
9322 # Create avconfig.h for FFmpeg.
9323 cat > "$TMPH" << EOF
9324 /* Generated by mpconfigure */
9325 #ifndef AVUTIL_AVCONFIG_H
9326 #define AVUTIL_AVCONFIG_H
9327 $def_av_bigendian
9328 #endif /* AVUTIL_AVCONFIG_H */
9331 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9332 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9334 #############################################################################
9336 cat << EOF
9338 Config files successfully generated by ./configure $_configuration !
9340 Install prefix: $_prefix
9341 Data directory: $_datadir
9342 Config direct.: $_confdir
9344 Byte order: $_byte_order
9345 Optimizing for: $_optimizing
9347 Languages:
9348 Messages/GUI: $language_msg
9349 Manual pages: $language_man
9350 Documentation: $language_doc
9352 Enabled optional drivers:
9353 Input: $_inputmodules
9354 Codecs: $_codecmodules
9355 Audio output: $_aomodules
9356 Video output: $_vomodules
9358 Disabled optional drivers:
9359 Input: $_noinputmodules
9360 Codecs: $_nocodecmodules
9361 Audio output: $_noaomodules
9362 Video output: $_novomodules
9364 'config.h' and 'config.mak' contain your configuration options.
9365 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9366 compile *** DO NOT REPORT BUGS if you tweak these files ***
9368 'make' will now compile MPlayer and 'make install' will install it.
9369 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9374 if test "$_mtrr" = yes ; then
9375 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9376 echo
9379 if ! x86_32; then
9380 cat <<EOF
9381 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9382 operating system ($system_name). You may encounter a few files that cannot
9383 be played due to missing open source video/audio codec support.
9389 cat <<EOF
9390 Check $TMPLOG if you wonder why an autodetection failed (make sure
9391 development headers/packages are installed).
9393 NOTE: The --enable-* parameters unconditionally force options on, completely
9394 skipping autodetection. This behavior is unlike what you may be used to from
9395 autoconf-based configure scripts that can decide to override you. This greater
9396 level of control comes at a price. You may have to provide the correct compiler
9397 and linker flags yourself.
9398 If you used one of these options (except --enable-gui and similar ones that
9399 turn on internal features) and experience a compilation or linking failure,
9400 make sure you have passed the necessary compiler/linker flags to configure.
9402 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9406 if test "$_warn_CFLAGS" = yes; then
9407 cat <<EOF
9409 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9410 but:
9412 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9414 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9415 To do so, execute 'CFLAGS= ./configure <options>'
9420 # Last move:
9421 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"