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, look at the existing checks
23 # and try to use helper functions where you can.
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
32 # _feature : should have a value of yes/no/auto
33 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
34 # _ld_feature : '-L/path/dir -lfeature' GCC options
36 #############################################################################
38 # Prevent locale nonsense from breaking basic text processing utils
41 # Store the configure line that was used
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
50 cat "$source" >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
62 compile_check
$TMPC $@
66 compile_check
$TMPCPP $@
-lstdc++
71 int main(void) { return 0; }
73 compile_check
$TMPC $@
79 int main(void) { return 0; }
82 compile_check
$TMPC $@
88 int main(void) { return $2; }
91 compile_check
$TMPC $@
97 int main(void) { $2; return 0; }
101 compile_check
$TMPC $@
104 define_statement_check
() {
108 int main(void) { $3; return 0; }
111 compile_check
$TMPC $@
114 return_statement_check
() {
117 int main(void) { $2; return $3; }
120 compile_check
$TMPC $@
125 int main(void) { __asm__ volatile ($1); return 0; }
128 compile_check
$TMPC $@
131 # The following checks are special and should only be used with broken and
132 # non-selfsufficient headers that do not include all of their dependencies.
134 header_check_broken
() {
138 int main(void) { return 0; }
142 compile_check
$TMPC $@
145 statement_check_broken
() {
149 int main(void) { $3; return 0; }
152 compile_check
$TMPC $@
157 cat "$TMPS" >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
182 # OS test booleans functions
184 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
186 aix
() { issystem
"AIX"; }
187 amigaos
() { issystem
"AmigaOS"; }
188 beos
() { issystem
"BEOS"; }
189 bsdos
() { issystem
"BSD/OS"; }
190 cygwin
() { issystem
"CYGWIN"; }
191 darwin
() { issystem
"Darwin"; }
192 dragonfly
() { issystem
"DragonFly"; }
193 freebsd
() { issystem
"FreeBSD" || issystem
"GNU/kFreeBSD"; }
194 gnu
() { issystem
"GNU"; }
195 hpux
() { issystem
"HP-UX"; }
196 irix
() { issystem
"IRIX"; }
197 linux
() { issystem
"Linux"; }
198 mingw32
() { issystem
"MINGW32"; }
199 morphos
() { issystem
"MorphOS"; }
200 netbsd
() { issystem
"NetBSD"; }
201 openbsd
() { issystem
"OpenBSD"; }
202 os2
() { issystem
"OS/2"; }
203 qnx
() { issystem
"QNX"; }
204 sunos
() { issystem
"SunOS"; }
205 win32
() { cygwin || mingw32
; }
207 # arch test boolean functions
208 # x86/x86pc is used by QNX
211 i
[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium
*|athlon
*|i586-i686
) return 0 ;;
218 x86_64|amd64
) return 0 ;;
229 ppc|ppc64|powerpc|powerpc64
) return 0;;
248 # Use this before starting a check
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
256 if test "$res_comment" ; then
257 res_comment
="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
262 echo "$@ $res_comment"
265 #############################################################################
267 # Check how echo works in this /bin/sh
269 -n) _echo_n
= _echo_c
='\c' ;; # SysV echo
270 *) _echo_n
='-n ' _echo_c
= ;; # BSD echo
274 ls po
/*.po
>/dev
/null
2>&1 && msg_lang_all
=$
(echo po
/*.po |
sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
275 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")
276 doc_lang_all
=$
(echo DOCS
/xml
/??
/ DOCS
/xml
/??_??
/ |
sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
280 Usage: $0 [OPTIONS]...
283 -h, --help display this help and exit
285 Installation directories:
286 --prefix=DIR prefix directory for installation [/usr/local]
287 --bindir=DIR directory for installing binaries [PREFIX/bin]
288 --datadir=DIR directory for installing machine independent
289 data files (skins, etc) [PREFIX/share/mplayer]
290 --mandir=DIR directory for installing man pages [PREFIX/share/man]
291 --confdir=DIR directory for installing configuration files
293 --localedir=DIR directory for locale tree [PREFIX/share/locale]
294 --libdir=DIR directory for object code libraries [PREFIX/lib]
295 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
298 --disable-mplayer disable MPlayer compilation [enable]
299 --enable-termcap use termcap database for key codes [autodetect]
300 --enable-termios use termios database for key codes [autodetect]
301 --disable-iconv disable iconv for encoding conversion [autodetect]
302 --disable-langinfo do not use langinfo [autodetect]
303 --enable-lirc enable LIRC (remote control) support [autodetect]
304 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
305 --enable-joystick enable joystick support [disable]
306 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
307 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
308 --disable-vm disable X video mode extensions [autodetect]
309 --disable-xf86keysym disable support for multimedia keys [autodetect]
310 --enable-radio enable radio interface [disable]
311 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
312 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
313 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
314 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
315 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
316 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
317 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
318 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
319 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
320 --disable-networking disable networking [enable]
321 --enable-winsock2_h enable winsock2_h [autodetect]
322 --enable-smb enable Samba (SMB) input [autodetect]
323 --enable-live enable LIVE555 Streaming Media [autodetect]
324 --enable-nemesi enable Nemesi Streaming Media [autodetect]
325 --disable-vcd disable VCD support [autodetect]
326 --disable-bluray disable Blu-ray support [autodetect]
327 --disable-dvdnav disable libdvdnav [autodetect]
328 --disable-dvdread disable libdvdread [autodetect]
329 --disable-dvdread-internal disable internal libdvdread [autodetect]
330 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
331 --disable-cdparanoia disable cdparanoia [autodetect]
332 --disable-cddb disable cddb [autodetect]
333 --disable-bitmap-font disable bitmap font support [enable]
334 --disable-freetype disable FreeType 2 font rendering [autodetect]
335 --disable-fontconfig disable fontconfig font lookup [autodetect]
336 --disable-unrarexec disable using of UnRAR executable [enabled]
337 --enable-menu enable OSD menu (not DVD menu) [disabled]
338 --disable-sortsub disable subtitle sorting [enabled]
339 --enable-fribidi enable the FriBiDi libs [autodetect]
340 --disable-enca disable ENCA charset oracle library [autodetect]
341 --enable-macosx-finder enable Mac OS X Finder invocation parameter
343 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
344 --disable-inet6 disable IPv6 support [autodetect]
345 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
346 --disable-ftp disable FTP support [enabled]
347 --disable-vstream disable TiVo vstream client support [autodetect]
348 --disable-pthreads disable Posix threads support [autodetect]
349 --disable-w32threads disable Win32 threads support [autodetect]
350 --disable-libass disable subtitle rendering with libass [autodetect]
351 --enable-rpath enable runtime linker path for extra libs [disabled]
354 --enable-gif enable GIF support [autodetect]
355 --enable-png enable PNG input/output support [autodetect]
356 --enable-mng enable MNG input support [autodetect]
357 --enable-jpeg enable JPEG input/output support [autodetect]
358 --enable-libcdio enable libcdio support [autodetect]
359 --disable-win32dll disable Win32 DLL support [autodetect]
360 --disable-qtx disable QuickTime codecs support [enabled]
361 --disable-xanim disable XAnim codecs support [enabled]
362 --disable-real disable RealPlayer codecs support [enabled]
363 --disable-xvid disable Xvid [autodetect]
364 --disable-libnut disable libnut [autodetect]
365 --disable-libav disable Libav [autodetect]
366 --disable-libvorbis disable libvorbis support [autodetect]
367 --disable-tremor disable Tremor [autodetect if no libvorbis]
368 --disable-speex disable Speex support [autodetect]
369 --enable-theora enable OggTheora libraries [autodetect]
370 --enable-faad enable FAAD2 (AAC) [autodetect]
371 --disable-ladspa disable LADSPA plugin support [autodetect]
372 --disable-libbs2b disable libbs2b audio filter support [autodetect]
373 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
374 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
375 --disable-mad disable libmad (MPEG audio) support [autodetect]
376 --enable-xmms enable XMMS input plugin support [disabled]
377 --enable-libdca enable libdca support [autodetect]
378 --disable-liba52 disable liba52 [autodetect]
379 --enable-musepack enable libmpcdec support (deprecated, libavcodec
380 Musepack decoder is preferred) [disabled]
383 --enable-gl enable OpenGL video output [autodetect]
384 --enable-dga2 enable DGA 2 support [autodetect]
385 --enable-dga1 enable DGA 1 support [autodetect]
386 --enable-vesa enable VESA video output [autodetect]
387 --enable-svga enable SVGAlib video output [autodetect]
388 --enable-sdl enable SDL video output [autodetect]
389 --enable-kva enable KVA video output [autodetect]
390 --enable-aa enable AAlib video output [autodetect]
391 --enable-caca enable CACA video output [autodetect]
392 --enable-ggi enable GGI video output [autodetect]
393 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
394 --enable-direct3d enable Direct3D video output [autodetect]
395 --enable-directx enable DirectX video output [autodetect]
396 --enable-dxr3 enable DXR3/H+ video output [autodetect]
397 --enable-ivtv enable IVTV TV-Out video output [autodetect]
398 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
399 --enable-dvb enable DVB video output [autodetect]
400 --enable-mga enable mga_vid video output [autodetect]
401 --enable-xmga enable mga_vid X11 video output [autodetect]
402 --enable-xv enable Xv video output [autodetect]
403 --enable-vdpau enable VDPAU acceleration [autodetect]
404 --enable-vm enable XF86VidMode support [autodetect]
405 --enable-xinerama enable Xinerama support [autodetect]
406 --enable-x11 enable X11 video output [autodetect]
407 --enable-xshape enable XShape support [autodetect]
408 --disable-xss disable screensaver support via xss [autodetect]
409 --enable-fbdev enable FBDev video output [autodetect]
410 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
411 --enable-tdfxfb enable tdfxfb video output [disable]
412 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
413 --enable-wii enable Nintendo Wii/GameCube video output [disable]
414 --enable-directfb enable DirectFB video output [autodetect]
415 --enable-bl enable Blinkenlights video output [disable]
416 --enable-tdfxvid enable tdfx_vid video output [disable]
417 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
418 --disable-tga disable Targa video output [enable]
419 --disable-pnm disable PNM video output [enable]
420 --disable-md5sum disable md5sum video output [enable]
421 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
422 --disable-corevideo disable CoreVideo video output [autodetect]
423 --disable-quartz disable Quartz video output [autodetect]
426 --disable-alsa disable ALSA audio output [autodetect]
427 --disable-ossaudio disable OSS audio output [autodetect]
428 --disable-arts disable aRts audio output [autodetect]
429 --disable-esd disable esd audio output [autodetect]
430 --disable-rsound disable RSound audio output [autodetect]
431 --disable-pulse disable Pulseaudio audio output [autodetect]
432 --disable-jack disable JACK audio output [autodetect]
433 --enable-openal enable OpenAL audio output [disable]
434 --disable-nas disable NAS audio output [autodetect]
435 --disable-sgiaudio disable SGI audio output [autodetect]
436 --disable-sunaudio disable Sun audio output [autodetect]
437 --disable-kai disable KAI audio output [autodetect]
438 --disable-dart disable DART audio output [autodetect]
439 --disable-win32waveout disable Windows waveout audio output [autodetect]
440 --disable-coreaudio disable CoreAudio audio output [autodetect]
441 --disable-select disable using select() on the audio device [enable]
444 --enable-translation enable support for translated output [disable]
445 --charset=charset convert the console messages to this character set
446 --language-doc=lang language to use for the documentation [en]
447 --language-man=lang language to use for the man pages [en]
448 --language-msg=lang extra languages for program messages [all]
449 --language=lang default language to use [en]
450 Specific options override --language. You can pass a list of languages separated
451 by whitespace or commas instead of a single language. Nonexisting translations
452 will be dropped from each list. All translations available in the list will be
453 installed. The value "all" will activate all translations. The LINGUAS
454 environment variable is honored. In all cases the fallback is English.
455 The program always supports English-language output; additional message
456 languages are only installed if --enable-translation is also specified.
457 Available values for --language-doc are: all $doc_lang_all
458 Available values for --language-man are: all $man_lang_all
459 Available values for --language-msg are: all $msg_lang_all
461 Miscellaneous options:
462 --enable-runtime-cpudetection enable runtime CPU detection [disable]
463 --enable-cross-compile enable cross-compilation [autodetect]
464 --cc=COMPILER C compiler to build MPlayer [gcc]
465 --host-cc=COMPILER C compiler for tools needed while building [gcc]
466 --as=ASSEMBLER assembler to build MPlayer [as]
467 --nm=NM nm tool to build MPlayer [nm]
468 --yasm=YASM Yasm assembler to build MPlayer [yasm]
469 --ar=AR librarian to build MPlayer [ar]
470 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
471 --windres=WINDRES windres to build MPlayer [windres]
472 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
473 --enable-static build a statically linked binary
474 --with-install=PATH path to a custom install program
477 --enable-mmx enable MMX [autodetect]
478 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
479 --enable-3dnow enable 3DNow! [autodetect]
480 --enable-3dnowext enable extended 3DNow! [autodetect]
481 --enable-sse enable SSE [autodetect]
482 --enable-sse2 enable SSE2 [autodetect]
483 --enable-ssse3 enable SSSE3 [autodetect]
484 --enable-shm enable shm [autodetect]
485 --enable-altivec enable AltiVec (PowerPC) [autodetect]
486 --enable-armv5te enable DSP extensions (ARM) [autodetect]
487 --enable-armv6 enable ARMv6 (ARM) [autodetect]
488 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
489 --enable-armvfp enable ARM VFP (ARM) [autodetect]
490 --enable-neon enable NEON (ARM) [autodetect]
491 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
492 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
493 --enable-big-endian force byte order to big-endian [autodetect]
494 --enable-debug[=1-3] compile-in debugging information [disable]
495 --enable-profile compile-in profiling information [disable]
496 --disable-sighandler disable sighandler for crashes [enable]
497 --enable-crash-debug enable automatic gdb attach on crash [disable]
499 Use these options if autodetection fails:
500 --extra-cflags=FLAGS extra CFLAGS
501 --extra-ldflags=FLAGS extra LDFLAGS
502 --extra-libs=FLAGS extra linker flags
503 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
505 --with-freetype-config=PATH path to freetype-config
506 --with-sdl-config=PATH path to sdl*-config
507 --with-dvdnav-config=PATH path to dvdnav-config
508 --with-dvdread-config=PATH path to dvdread-config
510 This configure script is NOT autoconf-based, even though its output is similar.
511 It will try to autodetect all configuration options. If you --enable an option
512 it will be forcefully turned on, skipping autodetection. This can break
513 compilation, so you need to know what you are doing.
518 # GOTCHA: the variables below defines the default behavior for autodetection
519 # and have - unless stated otherwise - at least 2 states : yes no
520 # If autodetection is available then the third state is: auto
544 test "$CC" && _cc
="$CC"
548 _runtime_cpudetection
=no
614 _dvdnavconfig
=dvdnav-config
615 _dvdreadconfig
=dvdread-config
617 _dvdread_internal
=auto
618 _libdvdcss_internal
=auto
690 _freetypeconfig
='freetype-config'
705 def_dos_paths
="#define HAVE_DOS_PATHS 0"
706 def_stream_cache
="#define CONFIG_STREAM_CACHE 1"
707 def_priority
="#undef CONFIG_PRIORITY"
708 def_pthread_cache
="#undef PTHREAD_CACHE"
716 _prefix
=$
(echo $ac_option | cut
-d '=' -f 2)
719 _bindir
=$
(echo $ac_option | cut
-d '=' -f 2)
722 _datadir
=$
(echo $ac_option | cut
-d '=' -f 2)
725 _mandir
=$
(echo $ac_option | cut
-d '=' -f 2)
728 _confdir
=$
(echo $ac_option | cut
-d '=' -f 2)
731 _libdir
=$
(echo $ac_option | cut
-d '=' -f 2)
734 _codecsdir
=$
(echo $ac_option | cut
-d '=' -f 2)
737 _localedir
=$
(echo $ac_option | cut
-d '=' -f 2)
741 _install
=$
(echo $ac_option | cut
-d '=' -f 2 )
745 _sdlconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
747 --with-freetype-config=*)
748 _freetypeconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
750 --with-dvdnav-config=*)
751 _dvdnavconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
753 --with-dvdread-config=*)
754 _dvdreadconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
758 extra_cflags
="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
761 extra_ldflags
="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
764 extra_libs
=$
(echo $ac_option | cut
-d '=' -f 2)
766 --extra-libs-mplayer=*)
767 libs_mplayer
=$
(echo $ac_option | cut
-d '=' -f 2)
771 _target
=$
(echo $ac_option | cut
-d '=' -f 2)
774 _cc
=$
(echo $ac_option | cut
-d '=' -f 2)
777 _host_cc
=$
(echo $ac_option | cut
-d '=' -f 2)
780 _as
=$
(echo $ac_option | cut
-d '=' -f 2)
783 _nm
=$
(echo $ac_option | cut
-d '=' -f 2)
786 _yasm
=$
(echo $ac_option | cut
-d '=' -f 2)
789 _ar
=$
(echo $ac_option | cut
-d '=' -f 2)
792 _ranlib
=$
(echo $ac_option | cut
-d '=' -f 2)
795 _windres
=$
(echo $ac_option | cut
-d '=' -f 2)
798 _charset
=$
(echo $ac_option | cut
-d '=' -f 2)
801 language_doc
=$
(echo $ac_option | cut
-d '=' -f 2)
804 language_man
=$
(echo $ac_option | cut
-d '=' -f 2)
807 language_msg
=$
(echo $ac_option | cut
-d '=' -f 2)
810 language
=$
(echo $ac_option | cut
-d '=' -f 2)
829 _debug
=$
(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut
-d '=' -f 2)
834 --enable-translation) _translation
=yes ;;
835 --disable-translation) _translation
=no
;;
836 --enable-runtime-cpudetection) _runtime_cpudetection
=yes ;;
837 --disable-runtime-cpudetection) _runtime_cpudetection
=no
;;
838 --enable-cross-compile) _cross_compile
=yes ;;
839 --disable-cross-compile) _cross_compile
=no
;;
840 --enable-mplayer) _mplayer
=yes ;;
841 --disable-mplayer) _mplayer
=no
;;
842 --enable-x11) _x11
=yes ;;
843 --disable-x11) _x11
=no
;;
844 --enable-xshape) _xshape
=yes ;;
845 --disable-xshape) _xshape
=no
;;
846 --enable-xss) _xss
=yes ;;
847 --disable-xss) _xss
=no
;;
848 --enable-xv) _xv
=yes ;;
849 --disable-xv) _xv
=no
;;
850 --enable-vdpau) _vdpau
=yes ;;
851 --disable-vdpau) _vdpau
=no
;;
852 --enable-sdl) _sdl
=yes ;;
853 --disable-sdl) _sdl
=no
;;
854 --enable-kva) _kva
=yes ;;
855 --disable-kva) _kva
=no
;;
856 --enable-direct3d) _direct3d
=yes ;;
857 --disable-direct3d) _direct3d
=no
;;
858 --enable-directx) _directx
=yes ;;
859 --disable-directx) _directx
=no
;;
860 --enable-win32waveout) _win32waveout
=yes ;;
861 --disable-win32waveout) _win32waveout
=no
;;
862 --enable-nas) _nas
=yes ;;
863 --disable-nas) _nas
=no
;;
864 --enable-png) _png
=yes ;;
865 --disable-png) _png
=no
;;
866 --enable-mng) _mng
=yes ;;
867 --disable-mng) _mng
=no
;;
868 --enable-jpeg) _jpeg
=yes ;;
869 --disable-jpeg) _jpeg
=no
;;
870 --enable-pnm) _pnm
=yes ;;
871 --disable-pnm) _pnm
=no
;;
872 --enable-md5sum) _md5sum
=yes ;;
873 --disable-md5sum) _md5sum
=no
;;
874 --enable-yuv4mpeg) _yuv4mpeg
=yes ;;
875 --disable-yuv4mpeg) _yuv4mpeg
=no
;;
876 --enable-gif) _gif
=yes ;;
877 --disable-gif) _gif
=no
;;
878 --enable-gl) _gl
=yes ;;
879 --disable-gl) _gl
=no
;;
880 --enable-ggi) _ggi
=yes ;;
881 --disable-ggi) _ggi
=no
;;
882 --enable-ggiwmh) _ggiwmh
=yes ;;
883 --disable-ggiwmh) _ggiwmh
=no
;;
884 --enable-aa) _aa
=yes ;;
885 --disable-aa) _aa
=no
;;
886 --enable-caca) _caca
=yes ;;
887 --disable-caca) _caca
=no
;;
888 --enable-svga) _svga
=yes ;;
889 --disable-svga) _svga
=no
;;
890 --enable-vesa) _vesa
=yes ;;
891 --disable-vesa) _vesa
=no
;;
892 --enable-fbdev) _fbdev
=yes ;;
893 --disable-fbdev) _fbdev
=no
;;
894 --enable-dvb) _dvb
=yes ;;
895 --disable-dvb) _dvb
=no
;;
896 --enable-dxr3) _dxr3
=yes ;;
897 --disable-dxr3) _dxr3
=no
;;
898 --enable-ivtv) _ivtv
=yes ;;
899 --disable-ivtv) _ivtv
=no
;;
900 --enable-v4l2) _v4l2
=yes ;;
901 --disable-v4l2) _v4l2
=no
;;
902 --enable-iconv) _iconv
=yes ;;
903 --disable-iconv) _iconv
=no
;;
904 --enable-langinfo) _langinfo
=yes ;;
905 --disable-langinfo) _langinfo
=no
;;
906 --enable-rtc) _rtc
=yes ;;
907 --disable-rtc) _rtc
=no
;;
908 --enable-libdv) _libdv
=yes ;;
909 --disable-libdv) _libdv
=no
;;
910 --enable-ossaudio) _ossaudio
=yes ;;
911 --disable-ossaudio) _ossaudio
=no
;;
912 --enable-arts) _arts
=yes ;;
913 --disable-arts) _arts
=no
;;
914 --enable-esd) _esd
=yes ;;
915 --disable-esd) _esd
=no
;;
916 --enable-rsound) _rsound
=yes ;;
917 --disable-rsound) _rsound
=no
;;
918 --enable-pulse) _pulse
=yes ;;
919 --disable-pulse) _pulse
=no
;;
920 --enable-jack) _jack
=yes ;;
921 --disable-jack) _jack
=no
;;
922 --enable-openal) _openal
=yes ;;
923 --disable-openal) _openal
=no
;;
924 --enable-kai) _kai
=yes ;;
925 --disable-kai) _kai
=no
;;
926 --enable-dart) _dart
=yes ;;
927 --disable-dart) _dart
=no
;;
928 --enable-mad) _mad
=yes ;;
929 --disable-mad) _mad
=no
;;
930 --enable-libcdio) _libcdio
=yes ;;
931 --disable-libcdio) _libcdio
=no
;;
932 --enable-libvorbis) _libvorbis
=yes ;;
933 --disable-libvorbis) _libvorbis
=no
;;
934 --enable-speex) _speex
=yes ;;
935 --disable-speex) _speex
=no
;;
936 --enable-tremor) _tremor
=yes ;;
937 --disable-tremor) _tremor
=no
;;
938 --enable-theora) _theora
=yes ;;
939 --disable-theora) _theora
=no
;;
940 --enable-mpg123) _mpg123
=yes ;;
941 --disable-mpg123) _mpg123
=no
;;
942 --enable-liba52) _liba52
=yes ;;
943 --disable-liba52) _liba52
=no
;;
944 --enable-libdca) _libdca
=yes ;;
945 --disable-libdca) _libdca
=no
;;
946 --enable-musepack) _musepack
=yes ;;
947 --disable-musepack) _musepack
=no
;;
948 --enable-faad) _faad
=yes ;;
949 --disable-faad) _faad
=no
;;
950 --enable-ladspa) _ladspa
=yes ;;
951 --disable-ladspa) _ladspa
=no
;;
952 --enable-libbs2b) _libbs2b
=yes ;;
953 --disable-libbs2b) _libbs2b
=no
;;
954 --enable-xmms) _xmms
=yes ;;
955 --disable-xmms) _xmms
=no
;;
956 --enable-vcd) _vcd
=yes ;;
957 --disable-vcd) _vcd
=no
;;
958 --enable-bluray) _bluray
=yes ;;
959 --disable-bluray) _bluray
=no
;;
960 --enable-dvdread) _dvdread
=yes ;;
961 --disable-dvdread) _dvdread
=no
;;
962 --enable-dvdread-internal) _dvdread_internal
=yes ;;
963 --disable-dvdread-internal) _dvdread_internal
=no
;;
964 --enable-libdvdcss-internal) _libdvdcss_internal
=yes ;;
965 --disable-libdvdcss-internal) _libdvdcss_internal
=no
;;
966 --enable-dvdnav) _dvdnav
=yes ;;
967 --disable-dvdnav) _dvdnav
=no
;;
968 --enable-xanim) _xanim
=yes ;;
969 --disable-xanim) _xanim
=no
;;
970 --enable-real) _real
=yes ;;
971 --disable-real) _real
=no
;;
972 --enable-live) _live
=yes ;;
973 --disable-live) _live
=no
;;
974 --enable-nemesi) _nemesi
=yes ;;
975 --disable-nemesi) _nemesi
=no
;;
976 --enable-xinerama) _xinerama
=yes ;;
977 --disable-xinerama) _xinerama
=no
;;
978 --enable-mga) _mga
=yes ;;
979 --disable-mga) _mga
=no
;;
980 --enable-xmga) _xmga
=yes ;;
981 --disable-xmga) _xmga
=no
;;
982 --enable-vm) _vm
=yes ;;
983 --disable-vm) _vm
=no
;;
984 --enable-xf86keysym) _xf86keysym
=yes ;;
985 --disable-xf86keysym) _xf86keysym
=no
;;
986 --enable-sunaudio) _sunaudio
=yes ;;
987 --disable-sunaudio) _sunaudio
=no
;;
988 --enable-sgiaudio) _sgiaudio
=yes ;;
989 --disable-sgiaudio) _sgiaudio
=no
;;
990 --enable-alsa) _alsa
=yes ;;
991 --disable-alsa) _alsa
=no
;;
992 --enable-tv) _tv
=yes ;;
993 --disable-tv) _tv
=no
;;
994 --enable-tv-bsdbt848) _tv_bsdbt848
=yes ;;
995 --disable-tv-bsdbt848) _tv_bsdbt848
=no
;;
996 --enable-tv-v4l1) _tv_v4l1
=yes ;;
997 --disable-tv-v4l1) _tv_v4l1
=no
;;
998 --enable-tv-v4l2) _tv_v4l2
=yes ;;
999 --disable-tv-v4l2) _tv_v4l2
=no
;;
1000 --enable-tv-dshow) _tv_dshow
=yes ;;
1001 --disable-tv-dshow) _tv_dshow
=no
;;
1002 --enable-radio) _radio
=yes ;;
1003 --enable-radio-capture) _radio_capture
=yes ;;
1004 --disable-radio-capture) _radio_capture
=no
;;
1005 --disable-radio) _radio
=no
;;
1006 --enable-radio-v4l) _radio_v4l
=yes ;;
1007 --disable-radio-v4l) _radio_v4l
=no
;;
1008 --enable-radio-v4l2) _radio_v4l2
=yes ;;
1009 --disable-radio-v4l2) _radio_v4l2
=no
;;
1010 --enable-radio-bsdbt848) _radio_bsdbt848
=yes ;;
1011 --disable-radio-bsdbt848) _radio_bsdbt848
=no
;;
1012 --enable-pvr) _pvr
=yes ;;
1013 --disable-pvr) _pvr
=no
;;
1014 --enable-fastmemcpy) _fastmemcpy
=yes ;;
1015 --disable-fastmemcpy) _fastmemcpy
=no
;;
1016 --enable-networking) networking
=yes ;;
1017 --disable-networking) networking
=no
;;
1018 --enable-winsock2_h) _winsock2_h
=yes ;;
1019 --disable-winsock2_h) _winsock2_h
=no
;;
1020 --enable-smb) _smb
=yes ;;
1021 --disable-smb) _smb
=no
;;
1022 --enable-joystick) _joystick
=yes ;;
1023 --disable-joystick) _joystick
=no
;;
1024 --enable-xvid) _xvid
=yes ;;
1025 --disable-xvid) _xvid
=no
;;
1026 --enable-libnut) _libnut
=yes ;;
1027 --disable-libnut) _libnut
=no
;;
1028 --enable-libav) ffmpeg
=yes ;;
1029 --disable-libav) ffmpeg
=no
;;
1030 --ffmpeg-source-dir=*)
1031 _ffmpeg_source
=$
(echo $ac_option | cut
-d '=' -f 2 ) ;;
1033 --enable-lirc) _lirc
=yes ;;
1034 --disable-lirc) _lirc
=no
;;
1035 --enable-lircc) _lircc
=yes ;;
1036 --disable-lircc) _lircc
=no
;;
1037 --enable-apple-remote) _apple_remote
=yes ;;
1038 --disable-apple-remote) _apple_remote
=no
;;
1039 --enable-apple-ir) _apple_ir
=yes ;;
1040 --disable-apple-ir) _apple_ir
=no
;;
1041 --enable-termcap) _termcap
=yes ;;
1042 --disable-termcap) _termcap
=no
;;
1043 --enable-termios) _termios
=yes ;;
1044 --disable-termios) _termios
=no
;;
1045 --enable-3dfx) _3dfx
=yes ;;
1046 --disable-3dfx) _3dfx
=no
;;
1047 --enable-s3fb) _s3fb
=yes ;;
1048 --disable-s3fb) _s3fb
=no
;;
1049 --enable-wii) _wii
=yes ;;
1050 --disable-wii) _wii
=no
;;
1051 --enable-tdfxfb) _tdfxfb
=yes ;;
1052 --disable-tdfxfb) _tdfxfb
=no
;;
1053 --disable-tdfxvid) _tdfxvid
=no
;;
1054 --enable-tdfxvid) _tdfxvid
=yes ;;
1055 --disable-xvr100) _xvr100
=no
;;
1056 --enable-xvr100) _xvr100
=yes ;;
1057 --disable-tga) _tga
=no
;;
1058 --enable-tga) _tga
=yes ;;
1059 --enable-directfb) _directfb
=yes ;;
1060 --disable-directfb) _directfb
=no
;;
1061 --enable-bl) _bl
=yes ;;
1062 --disable-bl) _bl
=no
;;
1063 --enable-mtrr) _mtrr
=yes ;;
1064 --disable-mtrr) _mtrr
=no
;;
1065 --enable-shm) _shm
=yes ;;
1066 --disable-shm) _shm
=no
;;
1067 --enable-select) _select
=yes ;;
1068 --disable-select) _select
=no
;;
1069 --enable-cdparanoia) _cdparanoia
=yes ;;
1070 --disable-cdparanoia) _cdparanoia
=no
;;
1071 --enable-cddb) _cddb
=yes ;;
1072 --disable-cddb) _cddb
=no
;;
1073 --enable-big-endian) _big_endian
=yes ;;
1074 --disable-big-endian) _big_endian
=no
;;
1075 --enable-bitmap-font) _bitmap_font
=yes ;;
1076 --disable-bitmap-font) _bitmap_font
=no
;;
1077 --enable-freetype) _freetype
=yes ;;
1078 --disable-freetype) _freetype
=no
;;
1079 --enable-fontconfig) _fontconfig
=yes ;;
1080 --disable-fontconfig) _fontconfig
=no
;;
1081 --enable-unrarexec) _unrar_exec
=yes ;;
1082 --disable-unrarexec) _unrar_exec
=no
;;
1083 --enable-ftp) _ftp
=yes ;;
1084 --disable-ftp) _ftp
=no
;;
1085 --enable-vstream) _vstream
=yes ;;
1086 --disable-vstream) _vstream
=no
;;
1087 --enable-pthreads) _pthreads
=yes ;;
1088 --disable-pthreads) _pthreads
=no
;;
1089 --enable-w32threads) _w32threads
=yes ;;
1090 --disable-w32threads) _w32threads
=no
;;
1091 --enable-libass) _ass
=yes ;;
1092 --disable-libass) _ass
=no
;;
1093 --enable-rpath) _rpath
=yes ;;
1094 --disable-rpath) _rpath
=no
;;
1096 --enable-fribidi) _fribidi
=yes ;;
1097 --disable-fribidi) _fribidi
=no
;;
1099 --enable-enca) _enca
=yes ;;
1100 --disable-enca) _enca
=no
;;
1102 --enable-inet6) _inet6
=yes ;;
1103 --disable-inet6) _inet6
=no
;;
1105 --enable-gethostbyname2) _gethostbyname2
=yes ;;
1106 --disable-gethostbyname2) _gethostbyname2
=no
;;
1108 --enable-dga1) _dga1
=yes ;;
1109 --disable-dga1) _dga1
=no
;;
1110 --enable-dga2) _dga2
=yes ;;
1111 --disable-dga2) _dga2
=no
;;
1113 --enable-menu) _menu
=yes ;;
1114 --disable-menu) _menu
=no
;;
1116 --enable-qtx) _qtx
=yes ;;
1117 --disable-qtx) _qtx
=no
;;
1119 --enable-coreaudio) _coreaudio
=yes ;;
1120 --disable-coreaudio) _coreaudio
=no
;;
1121 --enable-corevideo) _corevideo
=yes ;;
1122 --disable-corevideo) _corevideo
=no
;;
1123 --enable-quartz) _quartz
=yes ;;
1124 --disable-quartz) _quartz
=no
;;
1125 --enable-macosx-finder) _macosx_finder
=yes ;;
1126 --disable-macosx-finder) _macosx_finder
=no
;;
1127 --enable-macosx-bundle) _macosx_bundle
=yes ;;
1128 --disable-macosx-bundle) _macosx_bundle
=no
;;
1130 --enable-sortsub) _sortsub
=yes ;;
1131 --disable-sortsub) _sortsub
=no
;;
1133 --enable-crash-debug) _crash_debug
=yes ;;
1134 --disable-crash-debug) _crash_debug
=no
;;
1135 --enable-sighandler) _sighandler
=yes ;;
1136 --disable-sighandler) _sighandler
=no
;;
1137 --enable-win32dll) _win32dll
=yes ;;
1138 --disable-win32dll) _win32dll
=no
;;
1140 --enable-sse) _sse
=yes ;;
1141 --disable-sse) _sse
=no
;;
1142 --enable-sse2) _sse2
=yes ;;
1143 --disable-sse2) _sse2
=no
;;
1144 --enable-ssse3) _ssse3
=yes ;;
1145 --disable-ssse3) _ssse3
=no
;;
1146 --enable-mmxext) _mmxext
=yes ;;
1147 --disable-mmxext) _mmxext
=no
;;
1148 --enable-3dnow) _3dnow
=yes ;;
1149 --disable-3dnow) _3dnow
=no _3dnowext
=no
;;
1150 --enable-3dnowext) _3dnow
=yes _3dnowext
=yes ;;
1151 --disable-3dnowext) _3dnowext
=no
;;
1152 --enable-cmov) _cmov
=yes ;;
1153 --disable-cmov) _cmov
=no
;;
1154 --enable-fast-cmov) _fast_cmov
=yes ;;
1155 --disable-fast-cmov) _fast_cmov
=no
;;
1156 --enable-fast-clz) _fast_clz
=yes ;;
1157 --disable-fast-clz) _fast_clz
=no
;;
1158 --enable-altivec) _altivec
=yes ;;
1159 --disable-altivec) _altivec
=no
;;
1160 --enable-armv5te) _armv5te
=yes ;;
1161 --disable-armv5te) _armv5te
=no
;;
1162 --enable-armv6) _armv6
=yes ;;
1163 --disable-armv6) _armv6
=no
;;
1164 --enable-armv6t2) _armv6t2
=yes ;;
1165 --disable-armv6t2) _armv6t2
=no
;;
1166 --enable-armvfp) _armvfp
=yes ;;
1167 --disable-armvfp) _armvfp
=no
;;
1168 --enable-neon) neon
=yes ;;
1169 --disable-neon) neon
=no
;;
1170 --enable-iwmmxt) _iwmmxt
=yes ;;
1171 --disable-iwmmxt) _iwmmxt
=no
;;
1172 --enable-mmx) _mmx
=yes ;;
1173 --disable-mmx) # 3Dnow! and MMX2 require MMX
1174 _3dnow
=no _3dnowext
=no _mmx
=no _mmxext
=no
;;
1177 echo "Unknown parameter: $ac_option" >&2
1184 # Atmos: moved this here, to be correct, if --prefix is specified
1185 test -z "$_bindir" && _bindir
="$_prefix/bin"
1186 test -z "$_datadir" && _datadir
="$_prefix/share/mplayer"
1187 test -z "$_mandir" && _mandir
="$_prefix/share/man"
1188 test -z "$_confdir" && _confdir
="$_prefix/etc/mplayer"
1189 test -z "$_libdir" && _libdir
="$_prefix/lib"
1190 test -z "$_localedir" && _localedir
="$_prefix/share/locale"
1192 # Determine our OS name and CPU architecture
1193 if test -z "$_target" ; then
1195 system_name
=$
(uname
-s 2>&1)
1196 case "$system_name" in
1197 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD
/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS
)
1211 [cC
][yY
][gG
][wW
][iI
][nN
]*)
1221 system_name
="$system_name-UNKNOWN"
1226 # host's CPU/instruction set
1227 host_arch
=$
(uname
-p 2>&1)
1228 case "$host_arch" in
1229 i386|sparc|ppc|alpha|arm|mips|vax
)
1231 powerpc
) # Darwin returns 'powerpc'
1234 *) # uname -p on Linux returns 'unknown' for the processor type,
1235 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1237 # Maybe uname -m (machine hardware name) returns something we
1240 # x86/x86pc is used by QNX
1241 case "$(uname -m 2>&1)" in
1242 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
;;
1243 ia64
) host_arch
=ia64
;;
1244 macppc|ppc
) host_arch
=ppc
;;
1245 ppc64
) host_arch
=ppc64
;;
1246 alpha
) host_arch
=alpha
;;
1247 sparc
) host_arch
=sparc
;;
1248 sparc64
) host_arch
=sparc64
;;
1249 parisc
*|hppa
*|
9000*) host_arch
=hppa
;;
1250 arm
*|zaurus|cats
) host_arch
=arm
;;
1251 sh3|sh4|sh4a
) host_arch
=sh
;;
1252 s390
) host_arch
=s390
;;
1253 s390x
) host_arch
=s390x
;;
1254 *mips
*) host_arch
=mips
;;
1255 vax
) host_arch
=vax
;;
1256 xtensa
*) host_arch
=xtensa
;;
1257 *) host_arch
=UNKNOWN
;;
1261 else # if test -z "$_target"
1262 system_name
=$
(echo $_target | cut
-d '-' -f 2)
1263 case "$(echo $system_name | tr A-Z a-z)" in
1264 linux
) system_name
=Linux
;;
1265 freebsd
) system_name
=FreeBSD
;;
1266 gnu
/kfreebsd
) system_name
=FreeBSD
;;
1267 netbsd
) system_name
=NetBSD
;;
1268 bsd
/os
) system_name
=BSD
/OS
;;
1269 openbsd
) system_name
=OpenBSD
;;
1270 dragonfly
) system_name
=DragonFly
;;
1271 sunos
) system_name
=SunOS
;;
1272 qnx
) system_name
=QNX
;;
1273 morphos
) system_name
=MorphOS
;;
1274 amigaos
) system_name
=AmigaOS
;;
1275 mingw32
*) system_name
=MINGW32
;;
1277 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1278 host_arch
=$
(echo $_target | cut
-d '-' -f 1)
1279 if test $
(echo $host_arch) != "x86_64" ; then
1280 host_arch
=$
(echo $host_arch |
tr '_' '-')
1284 extra_cflags
="-I. $extra_cflags"
1285 _timer
=timer-linux.c
1288 extra_ldflags
="$extra_ldflags -L/usr/local/lib"
1289 extra_cflags
="$extra_cflags -I/usr/local/include"
1292 if netbsd || dragonfly
; then
1293 extra_ldflags
="$extra_ldflags -L/usr/pkg/lib"
1294 extra_cflags
="$extra_cflags -I/usr/pkg/include"
1298 extra_cflags
="-mdynamic-no-pic $extra_cflags"
1299 if test "$(basename $_cc)" != "clang" ; then
1300 extra_cflags
="-falign-loops=16 -shared-libgcc $extra_cflags"
1302 _timer
=timer-darwin.c
1306 extra_ldflags
="$extra_ldflags -lC"
1317 extra_cflags
="$extra_cflags -fno-common"
1318 # -lwinmm is always needed for osdep/timer-win2.c
1319 extra_ldflags
="$extra_ldflags -lwinmm"
1323 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1324 def_priority
="#define CONFIG_PRIORITY 1"
1336 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
1337 extra_cflags
="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1341 extra_ldflags
="$extra_ldflags -lph"
1349 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1350 def_priority
="#define CONFIG_PRIORITY 1"
1353 for tmpdir
in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1354 test "$tmpdir" && break
1357 mplayer_tmpdir
="$tmpdir/mplayer-configure-$RANDOM-$$"
1358 mkdir
$mplayer_tmpdir || die
"Unable to create tmpdir."
1361 TMPC
="$mplayer_tmpdir/tmp.c"
1362 TMPCPP
="$mplayer_tmpdir/tmp.cpp"
1363 TMPEXE
="$mplayer_tmpdir/tmp$_exesuf"
1364 TMPH
="$mplayer_tmpdir/tmp.h"
1365 TMPS
="$mplayer_tmpdir/tmp.S"
1368 echo configuration
: $configuration > "$TMPLOG"
1372 if test "$_runtime_cpudetection" = yes && ! x86
&& ! ppc
; then
1373 die
"Runtime CPU detection only works for x86, x86-64 and PPC!"
1377 # Checking CC version...
1378 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1379 if test "$(basename $_cc)" = "icc" ||
test "$(basename $_cc)" = "ecc"; then
1380 echocheck
"$_cc version"
1382 cc_name
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 1)
1383 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 2 | cut
-d ' ' -f 3)
1384 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1385 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1386 # TODO verify older icc/ecc compatibility
1389 cc_version
="v. ?.??, bad"
1393 cc_version
="$cc_version, ok"
1396 cc_version
="$cc_version, bad"
1400 echores
"$cc_version"
1402 for _cc
in "$_cc" gcc cc
; do
1403 cc_name_tmp
=$
($_cc -v 2>&1 |
tail -n 1 | cut
-d ' ' -f 1)
1404 if test "$cc_name_tmp" = "gcc"; then
1405 cc_name
=$cc_name_tmp
1406 echocheck
"$_cc version"
1408 cc_version
=$
($_cc -dumpversion 2>&1)
1414 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1415 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1416 _cc_mini
=$
(echo $cc_version | cut
-d '.' -f 3)
1419 echores
"$cc_version"
1422 if $_cc -v 2>&1 |
grep -q "clang"; then
1423 echocheck
"$_cc version"
1425 cc_version
=$
($_cc -dumpversion 2>&1)
1426 res_comment
="experimental support only"
1427 echores
"clang $cc_version"
1430 cc_name_tmp
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 2,3)
1431 if test "$cc_name_tmp" = "Sun C"; then
1432 echocheck
"$_cc version"
1434 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 4)
1435 res_comment
="experimental support only"
1436 echores
"Sun C $cc_version"
1441 test "$cc_fail" = yes && die
"unsupported compiler version"
1443 echocheck
"working compiler"
1444 cflag_check
"" || die
"Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1447 if test -z "$_target" && x86
; then
1450 int test[(int)sizeof(char *)-7];
1454 cc_check
&& host_arch
=x86_64 || host_arch
=i386
1457 echo "Detected operating system: $system_name"
1458 echo "Detected host architecture: $host_arch"
1460 echocheck
"cross compilation"
1461 if test $_cross_compile = auto
; then
1463 cflag_check
"" && "$TMPEXE" && _cross_compile
=no
1465 echores
$_cross_compile
1467 if test $_cross_compile = yes; then
1471 test "$_host_cc" || _host_cc
=cc
1475 test "$_host_cc" || _host_cc
=$_cc
1480 # now that we know what compiler should be used for compilation, try to find
1481 # out which assembler is used by the $_cc compiler
1482 if test "$_as" = auto
; then
1483 _as
=$
($_cc -print-prog-name=as
)
1484 test -z "$_as" && _as
=as
1487 if test "$_nm" = auto
; then
1488 _nm
=$
($_cc -print-prog-name=nm
)
1489 test -z "$_nm" && _nm
=nm
1492 # XXX: this should be ok..
1495 if test "$_runtime_cpudetection" = no
; then
1497 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1498 # FIXME: Remove the cygwin check once AMD CPUs are supported
1499 if test -r /proc
/cpuinfo
&& ! cygwin
; then
1500 # Linux with /proc mounted, extract CPU information from it
1501 _cpuinfo
="cat /proc/cpuinfo"
1502 elif test -r /compat
/linux
/proc
/cpuinfo
&& ! x86
; then
1503 # FreeBSD with Linux emulation /proc mounted,
1504 # extract CPU information from it
1505 # Don't use it on x86 though, it never reports 3Dnow
1506 _cpuinfo
="cat /compat/linux/proc/cpuinfo"
1507 elif darwin
&& ! x86
; then
1508 # use hostinfo on Darwin
1511 # use 'lsattr' on AIX
1512 _cpuinfo
="lsattr -E -l proc0 -a type"
1514 # all other OSes try to extract CPU information from a small helper
1515 # program cpuinfo instead
1516 $_cc -o cpuinfo
$_exesuf cpuinfo.c
1517 _cpuinfo
="./cpuinfo$_exesuf"
1521 # gather more CPU information
1522 pname
=$
($_cpuinfo |
grep 'model name' | cut
-d ':' -f 2 |
head -n 1)
1523 pvendor
=$
($_cpuinfo |
grep 'vendor_id' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1524 pfamily
=$
($_cpuinfo |
grep 'cpu family' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1525 pmodel
=$
($_cpuinfo |
grep -v 'model name' |
grep 'model' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1526 pstepping
=$
($_cpuinfo |
grep 'stepping' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1528 exts
=$
($_cpuinfo |
egrep 'features|flags' | cut
-d ':' -f 2 |
head -n 1)
1530 pparam
=$
(echo $exts |
sed -e s
/k6_mtrr
/mtrr
/ -e s
/cyrix_arr
/mtrr
/ -e s
/centaur_mcr
/mtrr
/ \
1531 -e s
/xmm
/sse
/ -e s
/kni
/sse
/)
1532 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1533 pparam
=$
(echo $pparam |
sed -e 's/sse/sse mmxext/')
1535 for ext
in $pparam ; do
1536 eval test \"\
$_$ext\" = auto
2>/dev
/null
&& eval _
$ext=kernel_check
1539 echocheck
"CPU vendor"
1540 echores
"$pvendor ($pfamily:$pmodel:$pstepping)"
1542 echocheck
"CPU type"
1546 fi # test "$_runtime_cpudetection" = no
1548 if x86
&& test "$_runtime_cpudetection" = no
; then
1550 if test "$1" = kernel_check
; then
1551 echocheck
"kernel support of $2"
1555 static void catch(int sig) { exit(1); }
1557 signal(SIGILL, catch);
1558 __asm__ volatile ("$3":::"memory"); return 0;
1562 if cc_check
&& tmp_run
; then
1565 _optimizing
="$_optimizing $2"
1570 echo "It seems that your kernel does not correctly support $2."
1571 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1578 extcheck
$_mmx "mmx" "emms"
1579 extcheck
$_mmxext "mmxext" "sfence"
1580 extcheck
$_3dnow "3dnow" "femms"
1581 extcheck
$_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1582 extcheck
$_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse"
1583 extcheck
$_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse2"
1584 extcheck
$_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1585 extcheck
$_cmov "cmov" "cmovb %%eax, %%ebx"
1587 echocheck
"mtrr support"
1588 if test "$_mtrr" = kernel_check
; then
1590 _optimizing
="$_optimizing mtrr"
1594 if test "$_gcc3_ext" != ""; then
1595 # if we had to disable sse/sse2 because the active kernel does not
1596 # support this instruction set extension, we also have to tell
1597 # gcc3 to not generate sse/sse2 instructions for normal C code
1598 cflag_check
$_march $_gcc3_ext && _march
="$_march $_gcc3_ext"
1604 def_fast_64bit
='#define HAVE_FAST_64BIT 0'
1605 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 0'
1606 arch_all
='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1607 subarch_all
='X86_32 X86_64 PPC64'
1608 case "$host_arch" in
1609 i
[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium
*|athlon
*|i586-i686
)
1612 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1617 if test "$_runtime_cpudetection" = no
; then
1621 3) proc
=i386 iproc
=386 ;;
1622 4) proc
=i486 iproc
=486 ;;
1623 5) iproc
=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1624 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1625 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1627 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1629 elif test "$pmodel" -ge 8; then
1631 elif test "$pmodel" -ge 6; then
1638 # It's a bit difficult to determine the correct type of Family 6
1639 # AMD CPUs just from their signature. Instead, we check directly
1640 # whether it supports SSE.
1641 if test "$_sse" = yes; then
1642 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1645 # Again, gcc treats athlon and athlon-tbird similarly.
1650 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1651 # caught and remedied in the optimization tests below.
1655 *) proc
=amdfam10 iproc
=686
1656 test $_fast_clz = "auto" && _fast_clz
=yes
1662 3) proc
=i386 iproc
=386 ;;
1663 4) proc
=i486 iproc
=486 ;;
1665 if test "$pmodel" -eq 4 ||
test "$pmodel" -eq 8; then
1666 proc
=pentium-mmx
# 4 is desktop, 8 is mobile
1672 if test "$pmodel" -ge 15; then
1674 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1676 elif test "$pmodel" -ge 7; then
1678 elif test "$pmodel" -ge 3; then
1683 test $_fast_clz = "auto" && _fast_clz
=yes
1686 # A nocona in 32-bit mode has no more capabilities than a prescott.
1687 if test "$pmodel" -ge 3; then
1691 test $_fast_clz = "auto" && _fast_clz
=yes
1693 test $_fast_cmov = "auto" && _fast_cmov
=no
1695 *) proc
=prescott iproc
=686 ;;
1701 if test "$pmodel" -ge 8; then
1703 elif test "$pmodel" -ge 4; then
1710 if test "$pmodel" -ge 9; then
1717 *) proc
=i686 iproc
=i686
;;
1722 3) proc
=i386 iproc
=386 ;;
1723 4) proc
=i486 iproc
=486 ;;
1724 *) proc
=i586 iproc
=586 ;;
1728 proc
=i586 iproc
=586 ;;
1730 test $_fast_clz = "auto" && _fast_clz
=no
1731 fi # test "$_runtime_cpudetection" = no
1734 # check that gcc supports our CPU, if not, fall back to earlier ones
1735 # LGB: check -mcpu and -march swithing step by step with enabling
1736 # to fall back till 386.
1738 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1740 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] ||
( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1746 echocheck
"GCC & CPU optimization abilities"
1747 if test "$_runtime_cpudetection" = no
; then
1748 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1749 cflag_check
-march=native
&& proc
=native
1751 if test "$proc" = "amdfam10"; then
1752 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1754 if test "$proc" = "k8"; then
1755 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1757 if test "$proc" = "athlon-xp"; then
1758 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon
1760 if test "$proc" = "k6-3" ||
test "$proc" = "k6-2"; then
1761 cflag_check
-march=$proc $cpuopt=$proc || proc
=k6
1763 if test "$proc" = "k6" ||
test "$proc" = "c3"; then
1764 if ! cflag_check
-march=$proc $cpuopt=$proc; then
1765 if cflag_check
-march=i586
$cpuopt=i686
; then
1772 if test "$proc" = "prescott" ; then
1773 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1775 if test "$proc" = "core2" ; then
1776 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium-m
1778 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
1779 cflag_check
-march=$proc $cpuopt=$proc || proc
=i686
1781 if test "$proc" = "i686" ||
test "$proc" = "pentium-mmx" ||
test "$proc" = "winchip-c6" ||
test "$proc" = "winchip2"; then
1782 cflag_check
-march=$proc $cpuopt=$proc || proc
=i586
1784 if test "$proc" = "i586"; then
1785 cflag_check
-march=$proc $cpuopt=$proc || proc
=i486
1787 if test "$proc" = "i486" ; then
1788 cflag_check
-march=$proc $cpuopt=$proc || proc
=i386
1790 if test "$proc" = "i386" ; then
1791 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1793 if test "$proc" = "error" ; then
1794 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1798 elif test "$proc" = "i586-i686"; then
1799 _march
="-march=i586"
1800 _mcpu
="$cpuopt=i686"
1803 _march
="-march=$proc"
1804 _mcpu
="$cpuopt=$proc"
1807 else # if test "$_runtime_cpudetection" = no
1808 _mcpu
="$cpuopt=generic"
1809 # at least i486 required, for bswap instruction
1810 _march
="-march=i486"
1811 cflag_check
$_mcpu || _mcpu
="$cpuopt=i686"
1812 cflag_check
$_mcpu || _mcpu
=""
1813 cflag_check
$_march $_mcpu || _march
=""
1816 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1817 ## autodetected mcpu/march parameters
1818 if test "$_target" ; then
1819 # TODO: it may be a good idea to check GCC and fall back in all cases
1820 if test "$host_arch" = "i586-i686"; then
1821 _march
="-march=i586"
1822 _mcpu
="$cpuopt=i686"
1824 _march
="-march=$host_arch"
1825 _mcpu
="$cpuopt=$host_arch"
1833 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx
) iproc
=586 ;;
1834 i686|athlon
*|pentium
*) iproc
=686 ;;
1839 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1844 test $_fast_clz = "auto" && _fast_clz
=yes
1851 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1858 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1859 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1862 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1863 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1868 if test "$_runtime_cpudetection" = no
; then
1873 test $_fast_clz = "auto" && _fast_clz
=no
1882 # 64-bit prescotts exist, but as far as GCC is concerned they
1883 # have the same capabilities as a nocona.
1885 test $_fast_cmov = "auto" && _fast_cmov
=no
1886 test $_fast_clz = "auto" && _fast_clz
=no
1893 fi # test "$_runtime_cpudetection" = no
1895 echocheck
"GCC & CPU optimization abilities"
1896 # This is a stripped-down version of the i386 fallback.
1897 if test "$_runtime_cpudetection" = no
; then
1898 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1899 cflag_check
-march=native
&& proc
=native
1901 # --- AMD processors ---
1902 if test "$proc" = "amdfam10"; then
1903 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1905 if test "$proc" = "k8"; then
1906 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1908 # This will fail if gcc version < 3.3, which is ok because earlier
1909 # versions don't really support 64-bit on amd64.
1910 # Is this a valid assumption? -Corey
1911 if test "$proc" = "athlon-xp"; then
1912 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1914 # --- Intel processors ---
1915 if test "$proc" = "core2"; then
1916 cflag_check
-march=$proc $cpuopt=$proc || proc
=x86-64
1918 if test "$proc" = "x86-64"; then
1919 cflag_check
-march=$proc $cpuopt=$proc || proc
=nocona
1921 if test "$proc" = "nocona"; then
1922 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1924 if test "$proc" = "pentium4"; then
1925 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1928 _march
="-march=$proc"
1929 _mcpu
="$cpuopt=$proc"
1930 if test "$proc" = "error" ; then
1931 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1935 else # if test "$_runtime_cpudetection" = no
1936 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1937 _march
="-march=x86-64"
1938 _mcpu
="$cpuopt=generic"
1939 cflag_check
$_mcpu || _mcpu
="x86-64"
1940 cflag_check
$_mcpu || _mcpu
=""
1941 cflag_check
$_march $_mcpu || _march
=""
1945 test $_fast_cmov = "auto" && _fast_cmov
=yes
1946 test $_fast_clz = "auto" && _fast_clz
=yes
1954 if test "$host_arch" = "sparc64" ; then
1957 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1959 echocheck
"CPU type"
1961 case "$(echo $karch)" in
1966 sun4u
) proc
=ultrasparc _vis
='yes' ;;
1985 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1987 test $_fast_clz = "auto" && _fast_clz
=yes
1995 ppc|ppc64|powerpc|powerpc64
)
1997 def_dcbzl
='#define HAVE_DCBZL 0'
1998 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
2001 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2003 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2005 echocheck
"CPU type"
2006 case $system_name in
2008 proc
=$
($_cpuinfo |
grep 'cpu' | cut
-d ':' -f 2 | cut
-d ',' -f 1 | cut
-b 2- |
head -n 1)
2009 if test -n "$($_cpuinfo | grep altivec)"; then
2010 test $_altivec = auto
&& _altivec
=yes
2014 proc
=$
($_cpuinfo |
grep "Processor type" | cut
-f 3 -d ' ' |
sed 's/ppc//')
2015 if [ $
(sysctl
-n hw.vectorunit
) -eq 1 -o \
2016 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2017 test $_altivec = auto
&& _altivec
=yes
2021 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2023 2*|
3.0*|
3.1*|
3.2*|
3.3*)
2026 if [ $
(sysctl
-n machdep.altivec
) -eq 1 ]; then
2027 test $_altivec = auto
&& _altivec
=yes
2033 proc
=$
($_cpuinfo |
grep 'type' | cut
-f 2 -d ' ' |
sed 's/PowerPC_//')
2036 if test "$_altivec" = yes; then
2037 echores
"$proc altivec"
2043 echocheck
"GCC & CPU optimization abilities"
2045 if test -n "$proc"; then
2047 601) _march
='-mcpu=601' _mcpu
='-mtune=601' ;;
2048 603) _march
='-mcpu=603' _mcpu
='-mtune=603' ;;
2049 603e|
603ev
) _march
='-mcpu=603e' _mcpu
='-mtune=603e' ;;
2050 604|
604e|
604r|
604ev
) _march
='-mcpu=604' _mcpu
='-mtune=604' ;;
2051 740|
740/750|
745/755) _march
='-mcpu=740' _mcpu
='-mtune=740' ;;
2052 750|
750CX
) _march
='-mcpu=750' _mcpu
='-mtune=750' ;;
2053 POWER
) _march
='-mcpu=power' _mcpu
='-mtune=power' ;;
2054 POWER2
) _march
='-mcpu=power2' _mcpu
='-mtune=power2' ;;
2055 POWER3
) _march
='-mcpu=power3' _mcpu
='-mtune=power3' ;;
2058 # gcc 3.1(.1) and up supports 7400 and 7450
2059 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" ||
test "$_cc_major" -ge "4"; then
2061 7400*|
7410*) _march
='-mcpu=7400' _mcpu
='-mtune=7400' ;;
2062 7447*|
7450*|
7455*) _march
='-mcpu=7450' _mcpu
='-mtune=7450' ;;
2066 # gcc 3.2 and up supports 970
2067 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2069 970*|PPC970
*) _march
='-mcpu=970' _mcpu
='-mtune=970'
2070 def_dcbzl
='#define HAVE_DCBZL 1' ;;
2074 # gcc 3.3 and up supports POWER4
2075 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2077 POWER4
) _march
='-mcpu=power4' _mcpu
='-mtune=power4' ;;
2081 # gcc 3.4 and up supports 440*
2082 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" ||
test "$_cc_major" -ge "4"; then
2084 440EP
*) _march
='-mcpu=440fp' _mcpu
='-mtune=440fp' ;;
2085 440G
* ) _march
='-mcpu=440' _mcpu
='-mtune=440' ;;
2089 # gcc 4.0 and up supports POWER5
2090 if test "$_cc_major" -ge "4"; then
2092 POWER5
*) _march
='-mcpu=power5' _mcpu
='-mtune=power5' ;;
2098 if test -n "$_mcpu"; then
2099 _optimizing
=$
(echo $_mcpu | cut
-c 8-)
2100 echores
"$_optimizing"
2105 test $_fast_clz = "auto" && _fast_clz
=yes
2112 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2114 echocheck
"CPU type"
2117 unsigned long ver, mask;
2118 __asm__ ("implver %0" : "=r" (ver));
2119 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2120 printf("%ld-%x\n", ver, ~mask);
2124 $_cc -o "$TMPEXE" "$TMPC"
2125 case $
("$TMPEXE") in
2127 0-0) proc
="ev4"; _mvi
="0";;
2128 1-0) proc
="ev5"; _mvi
="0";;
2129 1-1) proc
="ev56"; _mvi
="0";;
2130 1-101) proc
="pca56"; _mvi
="1";;
2131 2-303) proc
="ev6"; _mvi
="1";;
2132 2-307) proc
="ev67"; _mvi
="1";;
2133 2-1307) proc
="ev68"; _mvi
="1";;
2137 echocheck
"GCC & CPU optimization abilities"
2138 if test "$proc" = "ev68" ; then
2139 cc_check
-mcpu=$proc || proc
=ev67
2141 if test "$proc" = "ev67" ; then
2142 cc_check
-mcpu=$proc || proc
=ev6
2147 test $_fast_clz = "auto" && _fast_clz
=yes
2157 echocheck
"CPU type"
2158 proc
=$
(hinv
-c processor |
grep CPU | cut
-d " " -f3)
2159 case "$(echo $proc)" in
2160 R3000
) _march
='-mips1' _mcpu
='-mtune=r2000' ;;
2161 R4000
) _march
='-mips3' _mcpu
='-mtune=r4000' ;;
2162 R4400
) _march
='-mips3' _mcpu
='-mtune=r4400' ;;
2163 R4600
) _march
='-mips3' _mcpu
='-mtune=r4600' ;;
2164 R5000
) _march
='-mips4' _mcpu
='-mtune=r5000' ;;
2165 R8000|R10000|R12000|R14000|R16000
) _march
='-mips4' _mcpu
='-mtune=r8000' ;;
2167 # gcc < 3.x does not support -mtune.
2168 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2174 test $_fast_clz = "auto" && _fast_clz
=yes
2208 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2209 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2210 die
"unsupported architecture $host_arch"
2212 esac # case "$host_arch" in
2214 if test "$_runtime_cpudetection" = yes ; then
2216 test "$_cmov" != no
&& _cmov
=yes
2218 test "$_mmx" != no
&& _mmx
=yes
2219 test "$_3dnow" != no
&& _3dnow
=yes
2220 test "$_3dnowext" != no
&& _3dnowext
=yes
2221 test "$_mmxext" != no
&& _mmxext
=yes
2222 test "$_sse" != no
&& _sse
=yes
2223 test "$_sse2" != no
&& _sse2
=yes
2224 test "$_ssse3" != no
&& _ssse3
=yes
2225 test "$_mtrr" != no
&& _mtrr
=yes
2234 echocheck
"byte order"
2235 if test "$_big_endian" = auto
; then
2237 short ascii_name[] = {
2238 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2239 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2240 int main(void) { return (long)ascii_name; }
2243 if strings $TMPEXE |
grep -q -l MPlayerBigEndian
; then
2249 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2252 if test "$_big_endian" = yes ; then
2253 _byte_order
='big-endian'
2254 def_words_endian
='#define WORDS_BIGENDIAN 1'
2255 def_bigendian
='#define HAVE_BIGENDIAN 1'
2257 _byte_order
='little-endian'
2258 def_words_endian
='#undef WORDS_BIGENDIAN'
2259 def_bigendian
='#define HAVE_BIGENDIAN 0'
2261 echores
"$_byte_order"
2264 echocheck
"extern symbol prefix"
2268 cc_check
-c || die
"Symbol mangling check failed."
2269 sym
=$
($_nm -P -g $TMPEXE)
2270 extern_prefix
=${sym%%ff_extern*}
2271 def_extern_asm
="#define EXTERN_ASM $extern_prefix"
2272 def_extern_prefix
="#define EXTERN_PREFIX \"$extern_prefix\""
2273 echores
$extern_prefix
2276 echocheck
"assembler support of -pipe option"
2277 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2278 cflag_check
-pipe -I.
&& _pipe
="-pipe" && echores
"yes" || echores
"no"
2281 if darwin
&& test "$cc_vendor" = "gnu" ; then
2282 echocheck
"GCC support of -mstackrealign"
2283 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2284 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2285 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2286 # wrong code with this flag, but this can be worked around by adding
2287 # -fno-unit-at-a-time as described in the blog post at
2288 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2290 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2291 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2293 cc_check
-O2 -mstackrealign && tmp_run
&& cflags_stackrealign
=-mstackrealign
2294 test -z "$cflags_stackrealign" && cc_check
-O2 -mstackrealign -fno-unit-at-a-time &&
2295 tmp_run
&& cflags_stackrealign
="-mstackrealign -fno-unit-at-a-time"
2296 test -n "$cflags_stackrealign" && echores
"yes" || echores
"no"
2297 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2300 # Checking for CFLAGS
2302 if test "$_profile" != "" ||
test "$_debug" != "" ; then
2303 CFLAGS
="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2304 WARNFLAGS
="-W -Wall"
2306 elif test -z "$CFLAGS" ; then
2307 if test "$cc_vendor" = "intel" ; then
2308 CFLAGS
="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2309 WARNFLAGS
="-wd167 -wd556 -wd144"
2310 elif test "$cc_vendor" = "sun" ; then
2311 CFLAGS
="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2312 elif test "$cc_vendor" = "clang"; then
2313 CFLAGS
="-O2 $_march $_pipe"
2314 WARNFLAGS
="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2315 ERRORFLAGS
="-Werror=implicit-function-declaration"
2316 elif test "$cc_vendor" != "gnu" ; then
2317 CFLAGS
="-O2 $_march $_mcpu $_pipe"
2319 CFLAGS
="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2320 WARNFLAGS
="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2321 ERRORFLAGS
="-Werror-implicit-function-declaration"
2322 extra_ldflags
="$extra_ldflags -ffast-math"
2328 if test "$cc_vendor" = "gnu" ; then
2329 cflag_check
-Wundef && WARNFLAGS
="-Wundef $WARNFLAGS"
2330 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2331 # that's the only variable specific to C now, and this option is not valid
2333 cflag_check
-std=gnu99
&& WARN_CFLAGS
="-std=gnu99 $WARN_CFLAGS"
2334 cflag_check
-Wno-pointer-sign && WARN_CFLAGS
="-Wno-pointer-sign $WARN_CFLAGS"
2335 cflag_check
-Wdisabled-optimization && WARN_CFLAGS
="-Wdisabled-optimization $WARN_CFLAGS"
2336 cflag_check
-Wmissing-prototypes && WARN_CFLAGS
="-Wmissing-prototypes $WARN_CFLAGS"
2337 cflag_check
-Wstrict-prototypes && WARN_CFLAGS
="-Wstrict-prototypes $WARN_CFLAGS"
2339 CFLAGS
="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2342 cflag_check
-mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer
="-mno-omit-leaf-frame-pointer"
2343 cflag_check
-MD -MP && DEPFLAGS
="-MD -MP"
2346 if test -n "$LDFLAGS" ; then
2347 extra_ldflags
="$extra_ldflags $LDFLAGS"
2349 elif test "$cc_vendor" = "intel" ; then
2350 extra_ldflags
="$extra_ldflags -i-static"
2352 if test -n "$CPPFLAGS" ; then
2353 extra_cflags
="$extra_cflags $CPPFLAGS"
2360 # Checking assembler (_as) compatibility...
2361 # Added workaround for older as that reads from stdin by default - atmos
2362 as_version
=$
(echo '' |
$_as -version 2>&1 |
sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2363 echocheck
"assembler ($_as $as_version)"
2365 _pref_as_version
='2.9.1'
2367 if test "$_mmx" = yes ; then
2368 echo 'emms' >> $TMPS
2370 if test "$_3dnow" = yes ; then
2371 _pref_as_version
='2.10.1'
2372 echo 'femms' >> $TMPS
2374 if test "$_3dnowext" = yes ; then
2375 _pref_as_version
='2.10.1'
2376 echo 'pswapd %mm0, %mm0' >> $TMPS
2378 if test "$_mmxext" = yes ; then
2379 _pref_as_version
='2.10.1'
2380 echo 'movntq %mm0, (%eax)' >> $TMPS
2382 if test "$_sse" = yes ; then
2383 _pref_as_version
='2.10.1'
2384 echo 'xorps %xmm0, %xmm0' >> $TMPS
2386 #if test "$_sse2" = yes ; then
2387 # _pref_as_version='2.11'
2388 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2390 if test "$_cmov" = yes ; then
2391 _pref_as_version
='2.10.1'
2392 echo 'cmovb %eax, %ebx' >> $TMPS
2394 if test "$_ssse3" = yes ; then
2395 _pref_as_version
='2.16.92'
2396 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2398 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 || as_verc_fail
=yes
2400 if test "$as_verc_fail" != yes ; then
2403 res_comment
="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2405 die
"obsolete binutils version"
2415 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2416 #error PIC not enabled
2421 cc_check
&& pic
=yes && extra_cflags
="$extra_cflags -DPIC"
2427 echocheck
".align is a power of two"
2428 if test "$_asmalign_pot" = auto
; then
2430 inline_asm_check
'".align 3"' && _asmalign_pot
=yes
2432 if test "$_asmalign_pot" = "yes" ; then
2433 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2435 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2437 echores
$_asmalign_pot
2440 echocheck
"ebx availability"
2442 def_ebx_available
='#define HAVE_EBX_AVAILABLE 0'
2449 // just adding ebx to clobber list seems unreliable with some
2450 // compilers, e.g. Haiku's gcc 2.95
2452 // and the above check does not work for OSX 64 bit...
2453 __asm__ volatile("":::"%ebx");
2457 cc_check
&& ebx_available
=yes && def_ebx_available
='#define HAVE_EBX_AVAILABLE 1'
2458 echores
$ebx_available
2462 if test -z "$YASMFLAGS" ; then
2464 x86_64
&& objformat
="macho64" || objformat
="macho"
2470 # currently tested for Linux x86, x86_64
2471 YASMFLAGS
="-f $objformat"
2472 x86_64
&& YASMFLAGS
="$YASMFLAGS -DARCH_X86_64 -m amd64"
2473 test "$pic" = "yes" && YASMFLAGS
="$YASMFLAGS -DPIC"
2474 case "$objformat" in
2475 elf
) test $_debug && YASMFLAGS
="$YASMFLAGS -g dwarf2" ;;
2476 *) YASMFLAGS
="$YASMFLAGS -DPREFIX" ;;
2482 echo "pabsw xmm0, xmm0" > $TMPS
2483 yasm_check || _yasm
=""
2484 if test $_yasm ; then
2485 def_yasm
='#define HAVE_YASM 1'
2489 def_yasm
='#define HAVE_YASM 0'
2495 def_bswap
='#define HAVE_BSWAP 0'
2496 echo 'bswap %eax' > $TMPS
2497 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 && def_bswap
='#define HAVE_BSWAP 1' && bswap
=yes || bswap
=no
2502 #FIXME: This should happen before the check for CFLAGS..
2503 def_altivec_h
='#define HAVE_ALTIVEC_H 0'
2504 if ppc
&& ( test "$_altivec" = yes ||
test "$_runtime_cpudetection" = yes ) ; then
2506 # check if AltiVec is supported by the compiler, and how to enable it
2507 echocheck
"GCC AltiVec flags"
2508 if $
(cflag_check
-maltivec -mabi=altivec
) ; then
2509 _altivec_gcc_flags
="-maltivec -mabi=altivec"
2510 # check if <altivec.h> should be included
2511 if $
(header_check altivec.h
$_altivec_gcc_flags) ; then
2512 def_altivec_h
='#define HAVE_ALTIVEC_H 1'
2513 inc_altivec_h
='#include <altivec.h>'
2515 if $
(cflag_check
-faltivec) ; then
2516 _altivec_gcc_flags
="-faltivec"
2519 _altivec_gcc_flags
="none, AltiVec disabled"
2523 echores
"$_altivec_gcc_flags"
2525 # check if the compiler supports braces for vector declarations
2528 int main(void) { (vector int) {1}; return 0; }
2530 cc_check
$_altivec_gcc_flags || die
"You need a compiler that supports {} in AltiVec vector declarations."
2532 # Disable runtime cpudetection if we cannot generate AltiVec code or
2533 # AltiVec is disabled by the user.
2534 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2535 && _runtime_cpudetection
=no
2537 # Show that we are optimizing for AltiVec (if enabled and supported).
2538 test "$_runtime_cpudetection" = no
&& test "$_altivec" = yes \
2539 && _optimizing
="$_optimizing altivec"
2541 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2542 test "$_altivec" = yes && CFLAGS
="$CFLAGS $_altivec_gcc_flags"
2546 def_xform_asm
='#define HAVE_XFORM_ASM 0'
2548 echocheck
"XFORM ASM support"
2549 inline_asm_check
'"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2550 xform_asm
=yes && def_xform_asm
='#define HAVE_XFORM_ASM 1'
2551 echores
"$xform_asm"
2555 echocheck
"ARMv5TE (Enhanced DSP Extensions)"
2556 if test $_armv5te = "auto" ; then
2558 inline_asm_check
'"qadd r0, r0, r0"' && _armv5te
=yes
2562 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz
=yes
2564 echocheck
"ARMv6 (SIMD instructions)"
2565 if test $_armv6 = "auto" ; then
2567 inline_asm_check
'"sadd16 r0, r0, r0"' && _armv6
=yes
2571 echocheck
"ARMv6t2 (SIMD instructions)"
2572 if test $_armv6t2 = "auto" ; then
2574 inline_asm_check
'"movt r0, #0"' && _armv6t2
=yes
2579 if test $_armvfp = "auto" ; then
2581 inline_asm_check
'"fadds s0, s0, s0"' && _armvfp
=yes
2585 echocheck
"ARM NEON"
2586 if test $neon = "auto" ; then
2588 inline_asm_check
'"vadd.i16 q0, q0, q0"' && neon
=yes
2592 echocheck
"iWMMXt (Intel XScale SIMD instructions)"
2593 if test $_iwmmxt = "auto" ; then
2595 inline_asm_check
'"wunpckelub wr6, wr4"' && _iwmmxt
=yes
2600 cpuexts_all
='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2601 test "$_altivec" = yes && cpuexts
="ALTIVEC $cpuexts"
2602 test "$_mmx" = yes && cpuexts
="MMX $cpuexts"
2603 test "$_mmxext" = yes && cpuexts
="MMX2 $cpuexts"
2604 test "$_3dnow" = yes && cpuexts
="AMD3DNOW $cpuexts"
2605 test "$_3dnowext" = yes && cpuexts
="AMD3DNOWEXT $cpuexts"
2606 test "$_sse" = yes && cpuexts
="SSE $cpuexts"
2607 test "$_sse2" = yes && cpuexts
="SSE2 $cpuexts"
2608 test "$_ssse3" = yes && cpuexts
="SSSE3 $cpuexts"
2609 test "$_cmov" = yes && cpuexts
="CMOV $cpuexts"
2610 test "$_fast_cmov" = yes && cpuexts
="FAST_CMOV $cpuexts"
2611 test "$_fast_clz" = yes && cpuexts
="FAST_CLZ $cpuexts"
2612 test "$_armv5te" = yes && cpuexts
="ARMV5TE $cpuexts"
2613 test "$_armv6" = yes && cpuexts
="ARMV6 $cpuexts"
2614 test "$_armv6t2" = yes && cpuexts
="ARMV6T2 $cpuexts"
2615 test "$_armvfp" = yes && cpuexts
="ARMVFP $cpuexts"
2616 test "$neon" = yes && cpuexts
="NEON $cpuexts"
2617 test "$_iwmmxt" = yes && cpuexts
="IWMMXT $cpuexts"
2618 test "$_vis" = yes && cpuexts
="VIS $cpuexts"
2619 test "$_mvi" = yes && cpuexts
="MVI $cpuexts"
2621 # Checking kernel version...
2622 if x86_32
&& linux
; then
2624 kernel_version
=$
(uname
-r 2>&1)
2625 echocheck
"$system_name kernel version"
2626 case "$kernel_version" in
2627 '') kernel_version
="?.??"; _k_verc_fail
=yes;;
2628 [0-1].
[0-9].
[0-9]*|
2.
[0-3].
[0-9]*)
2629 _k_verc_problem
=yes;;
2631 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2634 if test "$_k_verc_fail" ; then
2635 echores
"$kernel_version, fail"
2636 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2637 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2638 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2639 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2640 echo "2.2.x you must upgrade it to get SSE support!"
2641 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2643 echores
"$kernel_version, ok"
2647 ######################
2648 # MAIN TESTS GO HERE #
2649 ######################
2653 if cflag_check
-lposix ; then
2654 extra_ldflags
="$extra_ldflags -lposix"
2661 if cflag_check
-lm ; then
2670 echocheck
"langinfo"
2671 if test "$_langinfo" = auto
; then
2673 statement_check langinfo.h
'nl_langinfo(CODESET)' && _langinfo
=yes
2675 if test "$_langinfo" = yes ; then
2676 def_langinfo
='#define HAVE_LANGINFO 1'
2678 def_langinfo
='#undef HAVE_LANGINFO'
2680 echores
"$_langinfo"
2683 echocheck
"translation support"
2684 if test "$_translation" = yes; then
2685 def_translation
="#define CONFIG_TRANSLATION 1"
2687 def_translation
="#undef CONFIG_TRANSLATION"
2689 echores
"$_translation"
2691 echocheck
"language"
2692 # Set preferred languages, "all" uses English as main language.
2693 test -z "$language" && language
=$LINGUAS
2694 test -z "$language_doc" && language_doc
=$language
2695 test -z "$language_man" && language_man
=$language
2696 test -z "$language_msg" && language_msg
=$language
2697 test -z "$language_msg" && language_msg
="all"
2698 language_doc
=$
(echo $language_doc |
tr , " ")
2699 language_man
=$
(echo $language_man |
tr , " ")
2700 language_msg
=$
(echo $language_msg |
tr , " ")
2702 test "$language_doc" = "all" && language_doc
=$doc_lang_all
2703 test "$language_man" = "all" && language_man
=$man_lang_all
2704 test "$language_msg" = "all" && language_msg
=$msg_lang_all
2706 if test "$_translation" != yes ; then
2710 # Prune non-existing translations from language lists.
2711 # Set message translation to the first available language.
2712 # Fall back on English.
2713 for lang
in $language_doc ; do
2714 test -d DOCS
/xml
/$lang && tmp_language_doc
="$tmp_language_doc $lang"
2716 language_doc
=$tmp_language_doc
2717 test -z "$language_doc" && language_doc
=en
2719 for lang
in $language_man ; do
2720 test -d DOCS
/man
/$lang && tmp_language_man
="$tmp_language_man $lang"
2722 language_man
=$tmp_language_man
2723 test -z "$language_man" && language_man
=en
2725 for lang
in $language_msg ; do
2726 test -f po
/$lang.po
&& tmp_language_msg
="$tmp_language_msg $lang"
2728 language_msg
=$tmp_language_msg
2730 echores
"messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2733 echocheck
"enable sighandler"
2734 if test "$_sighandler" = yes ; then
2735 def_sighandler
='#define CONFIG_SIGHANDLER 1'
2737 def_sighandler
='#undef CONFIG_SIGHANDLER'
2739 echores
"$_sighandler"
2741 echocheck
"runtime cpudetection"
2742 if test "$_runtime_cpudetection" = yes ; then
2743 _optimizing
="Runtime CPU-Detection enabled"
2744 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 1'
2746 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 0'
2748 echores
"$_runtime_cpudetection"
2751 echocheck
"restrict keyword"
2752 for restrict_keyword
in restrict __restrict __restrict__
; do
2753 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2755 def_restrict_keyword
=$restrict_keyword
2759 if [ -n "$def_restrict_keyword" ]; then
2760 echores
"$def_restrict_keyword"
2764 # Avoid infinite recursion loop ("#define restrict restrict")
2765 if [ "$def_restrict_keyword" != "restrict" ]; then
2766 def_restrict_keyword
="#define restrict $def_restrict_keyword"
2768 def_restrict_keyword
=""
2772 echocheck
"__builtin_expect"
2773 # GCC branch prediction hint
2775 static int foo(int a) {
2776 a = __builtin_expect(a, 10);
2777 return a == 10 ? 0 : 1;
2779 int main(void) { return foo(10) && foo(0); }
2782 cc_check
&& _builtin_expect
=yes
2783 if test "$_builtin_expect" = yes ; then
2784 def_builtin_expect
='#define HAVE_BUILTIN_EXPECT 1'
2786 def_builtin_expect
='#undef HAVE_BUILTIN_EXPECT'
2788 echores
"$_builtin_expect"
2793 statement_check kstat.h
'kstat_open()' -lkstat && _kstat
=yes
2794 if test "$_kstat" = yes ; then
2795 def_kstat
="#define HAVE_LIBKSTAT 1"
2796 extra_ldflags
="$extra_ldflags -lkstat"
2798 def_kstat
="#undef HAVE_LIBKSTAT"
2804 # required for nanosleep on some systems
2806 statement_check
time.h
'nanosleep(0, 0)' -lposix4 && _posix4
=yes
2807 if test "$_posix4" = yes ; then
2808 extra_ldflags
="$extra_ldflags -lposix4"
2812 for func
in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf
; do
2815 statement_check math.h
"${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _
$func=yes
2816 if eval test "x\$_$func" = "xyes"; then
2817 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2820 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2828 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp
=yes
2829 if test "$_mkstemp" = yes ; then
2830 def_mkstemp
='#define HAVE_MKSTEMP 1'
2832 def_mkstemp
='#define HAVE_MKSTEMP 0'
2837 echocheck
"nanosleep"
2839 statement_check
time.h
'nanosleep(0, 0)' && _nanosleep
=yes
2840 if test "$_nanosleep" = yes ; then
2841 def_nanosleep
='#define HAVE_NANOSLEEP 1'
2843 def_nanosleep
='#undef HAVE_NANOSLEEP'
2845 echores
"$_nanosleep"
2849 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2850 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2853 #include <sys/socket.h>
2854 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2857 for _ld_tmp
in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2858 cc_check
$_ld_tmp && _ld_sock
="$_ld_tmp" && _socklib
=yes && break
2860 test $_socklib = yes && test $_winsock2_h = auto
&& _winsock2_h
=no
2861 if test $_winsock2_h = auto
; then
2863 statement_check winsock2.h
'gethostbyname(0)' -lws2_32 && _ld_sock
="-lws2_32" && _winsock2_h
=yes
2865 test "$_ld_sock" && res_comment
="using $_ld_sock"
2869 if test $_winsock2_h = yes ; then
2871 def_winsock2_h
='#define HAVE_WINSOCK2_H 1'
2873 def_winsock2_h
='#define HAVE_WINSOCK2_H 0'
2877 echocheck
"arpa/inet.h"
2879 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 0'
2880 header_check arpa
/inet.h
&& arpa_inet_h
=yes &&
2881 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 1'
2882 echores
"$arpa_inet_h"
2885 echocheck
"inet_pton()"
2886 def_inet_pton
='#define HAVE_INET_PTON 0'
2888 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2889 statement_check arpa
/inet.h
'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton
=yes && break
2891 if test $inet_pton = yes ; then
2892 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2893 def_inet_pton
='#define HAVE_INET_PTON 1'
2895 echores
"$inet_pton"
2898 echocheck
"inet_aton()"
2899 def_inet_aton
='#define HAVE_INET_ATON 0'
2901 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2902 statement_check arpa
/inet.h
'inet_aton(0, 0)' $_ld_tmp && inet_aton
=yes && break
2904 if test $inet_aton = yes ; then
2905 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2906 def_inet_aton
='#define HAVE_INET_ATON 1'
2908 echores
"$inet_aton"
2911 echocheck
"socklen_t"
2913 for header
in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2914 statement_check
$header 'socklen_t v = 0' && _socklen_t
=yes && break
2916 if test "$_socklen_t" = yes ; then
2917 def_socklen_t
='#define HAVE_SOCKLEN_T 1'
2919 def_socklen_t
='#define HAVE_SOCKLEN_T 0'
2921 echores
"$_socklen_t"
2924 echocheck
"closesocket()"
2926 statement_check winsock2.h
'closesocket(~0)' $_ld_sock && _closesocket
=yes
2927 if test "$_closesocket" = yes ; then
2928 def_closesocket
='#define HAVE_CLOSESOCKET 1'
2930 def_closesocket
='#define HAVE_CLOSESOCKET 0'
2932 echores
"$_closesocket"
2935 echocheck
"networking"
2936 test $_winsock2_h = no
&& test $inet_pton = no
&&
2937 test $inet_aton = no
&& networking
=no
2938 if test "$networking" = yes ; then
2939 def_network
='#define CONFIG_NETWORK 1'
2940 def_networking
='#define CONFIG_NETWORKING 1'
2941 extra_ldflags
="$extra_ldflags $_ld_sock"
2942 inputmodules
="networking $inputmodules"
2944 noinputmodules
="networking $noinputmodules"
2945 def_network
='#define CONFIG_NETWORK 0'
2946 def_networking
='#undef CONFIG_NETWORKING'
2948 echores
"$networking"
2952 if test "$_inet6" = auto
; then
2954 #include <sys/types.h>
2955 #if !defined(_WIN32)
2956 #include <sys/socket.h>
2957 #include <netinet/in.h>
2959 #include <ws2tcpip.h>
2961 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2964 if cc_check
$_ld_sock ; then
2968 if test "$_inet6" = yes ; then
2969 def_inet6
='#define HAVE_AF_INET6 1'
2971 def_inet6
='#undef HAVE_AF_INET6'
2976 echocheck
"gethostbyname2"
2977 if test "$_gethostbyname2" = auto
; then
2979 #include <sys/types.h>
2980 #include <sys/socket.h>
2982 int main(void) { gethostbyname2("", AF_INET); return 0; }
2989 if test "$_gethostbyname2" = yes ; then
2990 def_gethostbyname2
='#define HAVE_GETHOSTBYNAME2 1'
2992 def_gethostbyname2
='#undef HAVE_GETHOSTBYNAME2'
2994 echores
"$_gethostbyname2"
2997 echocheck
"inttypes.h (required)"
2999 header_check inttypes.h
&& _inttypes
=yes
3000 echores
"$_inttypes"
3002 if test "$_inttypes" = no
; then
3003 echocheck
"sys/bitypes.h (inttypes.h predecessor)"
3004 header_check sys
/bitypes.h
&& _inttypes
=yes
3005 if test "$_inttypes" = yes ; then
3006 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."
3008 die
"Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3013 echocheck
"malloc.h"
3015 header_check malloc.h
&& _malloc
=yes
3016 if test "$_malloc" = yes ; then
3017 def_malloc_h
='#define HAVE_MALLOC_H 1'
3019 def_malloc_h
='#define HAVE_MALLOC_H 0'
3024 echocheck
"memalign()"
3025 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3026 def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 0'
3028 statement_check malloc.h
'memalign(64, sizeof(char))' && _memalign
=yes
3029 if test "$_memalign" = yes ; then
3030 def_memalign
='#define HAVE_MEMALIGN 1'
3032 def_memalign
='#define HAVE_MEMALIGN 0'
3033 def_map_memalign
='#define memalign(a, b) malloc(b)'
3034 darwin || def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 1'
3036 echores
"$_memalign"
3039 echocheck
"posix_memalign()"
3041 def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 0'
3042 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3043 posix_memalign
=yes && def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 1'
3044 echores
"$posix_memalign"
3047 echocheck
"alloca.h"
3049 statement_check alloca.h
'alloca(0)' && _alloca
=yes
3051 def_alloca_h
='#define HAVE_ALLOCA_H 1'
3053 def_alloca_h
='#undef HAVE_ALLOCA_H'
3058 echocheck
"fastmemcpy"
3059 if test "$_fastmemcpy" = yes ; then
3060 def_fastmemcpy
='#define CONFIG_FASTMEMCPY 1'
3062 def_fastmemcpy
='#undef CONFIG_FASTMEMCPY'
3064 echores
"$_fastmemcpy"
3069 statement_check sys
/mman.h
'mmap(0, 0, 0, 0, 0, 0)' && _mman
=yes
3070 if test "$_mman" = yes ; then
3071 def_mman_h
='#define HAVE_SYS_MMAN_H 1'
3073 def_mman_h
='#undef HAVE_SYS_MMAN_H'
3074 os2
&& need_mmap
=yes
3078 _mman_has_map_failed
=no
3079 statement_check sys
/mman.h
'void *p = MAP_FAILED' && _mman_has_map_failed
=yes
3080 if test "$_mman_has_map_failed" = yes ; then
3081 def_mman_has_map_failed
=''
3083 def_mman_has_map_failed
='#define MAP_FAILED ((void *) -1)'
3086 echocheck
"dynamic loader"
3088 for _ld_tmp
in "" "-ldl"; do
3089 statement_check dlfcn.h
'dlopen("", 0)' $_ld_tmp && _ld_dl
="$_ld_tmp" && _dl
=yes && break
3091 if test "$_dl" = yes ; then
3092 def_dl
='#define HAVE_LIBDL 1'
3094 def_dl
='#undef HAVE_LIBDL'
3099 def_threads
='#define HAVE_THREADS 0'
3103 THREAD_CFLAGS
=-D_REENTRANT
3104 elif freebsd || netbsd || openbsd || bsdos
; then
3105 THREAD_CFLAGS
=-D_THREAD_SAFE
3107 if test "$_pthreads" = auto
; then
3109 #include <pthread.h>
3110 static void *func(void *arg) { return arg; }
3113 #ifdef PTW32_STATIC_LIB
3114 pthread_win32_process_attach_np();
3115 pthread_win32_thread_attach_np();
3117 return pthread_create (&tid, 0, func, 0) != 0;
3122 for _ld_tmp
in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3123 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3124 cc_check
$THREAD_CFLAGS $_ld_tmp && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && break
3126 if test "$_pthreads" = no
&& mingw32
; then
3127 _ld_tmp
="-lpthreadGC2 -lws2_32"
3128 cc_check
$_ld_tmp -DPTW32_STATIC_LIB && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && CFLAGS
="$CFLAGS -DPTW32_STATIC_LIB"
3132 if test "$_pthreads" = yes ; then
3133 test $_ld_pthread && res_comment
="using $_ld_pthread"
3134 def_pthreads
='#define HAVE_PTHREADS 1'
3135 def_threads
='#define HAVE_THREADS 1'
3136 extra_cflags
="$extra_cflags $THREAD_CFLAGS"
3138 res_comment
="v4l, v4l2, ao_nas, win32 loader disabled"
3139 def_pthreads
='#undef HAVE_PTHREADS'
3140 _nas
=no
; _tv_v4l1
=no
; _tv_v4l2
=no
3141 mingw32 || _win32dll
=no
3143 echores
"$_pthreads"
3146 if test "$_pthreads" = yes ; then
3147 def_pthread_cache
="#define PTHREAD_CACHE 1"
3150 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
3154 echocheck
"w32threads"
3155 if test "$_pthreads" = yes ; then
3156 res_comment
="using pthread instead"
3159 if test "$_w32threads" = auto
; then
3161 mingw32
&& _w32threads
=yes
3163 test "$_w32threads" = yes && def_threads
='#define HAVE_THREADS 1'
3164 echores
"$_w32threads"
3167 if test "$_rpath" = yes ; then
3168 for I
in $
(echo $extra_ldflags |
sed 's/-L//g') ; do
3169 tmp
="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3176 if test "$_iconv" = auto
; then
3181 #define INBUFSIZE 1024
3182 #define OUTBUFSIZE 4096
3184 char inbuffer[INBUFSIZE];
3185 char outbuffer[OUTBUFSIZE];
3190 char *tocode="UTF-8";
3191 char *fromcode="cp1250";
3192 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3193 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3194 char *iptr=inbuffer;
3195 char *optr=outbuffer;
3196 size_t inleft=numread;
3197 size_t outleft=OUTBUFSIZE;
3198 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3200 write(1, outbuffer, OUTBUFSIZE - outleft);
3203 if (iconv_close(icdsc) == -1)
3210 for _ld_tmp
in "" "-liconv" "-liconv $_ld_dl" ; do
3211 cc_check
$_ld_lm $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
3214 if test "$_iconv" != yes ; then
3215 die
"Unable to find iconv which should be part of standard compilation environment. Aborting. If you really mean to compile without iconv support use --disable-iconv."
3218 if test "$_iconv" = yes ; then
3219 def_iconv
='#define CONFIG_ICONV 1'
3221 def_iconv
='#undef CONFIG_ICONV'
3226 echocheck
"soundcard.h"
3228 def_soundcard_h
='#undef HAVE_SOUNDCARD_H'
3229 def_sys_soundcard_h
='#undef HAVE_SYS_SOUNDCARD_H'
3230 for _soundcard_header
in "sys/soundcard.h" "soundcard.h"; do
3231 header_check
$_soundcard_header && _soundcard_h
=yes &&
3232 res_comment
="$_soundcard_header" && break
3235 if test "$_soundcard_h" = yes ; then
3236 if test $_soundcard_header = "sys/soundcard.h"; then
3237 def_sys_soundcard_h
='#define HAVE_SYS_SOUNDCARD_H 1'
3239 def_soundcard_h
='#define HAVE_SOUNDCARD_H 1'
3242 echores
"$_soundcard_h"
3245 echocheck
"sys/videoio.h"
3247 def_sys_videoio_h
='#undef HAVE_SYS_VIDEOIO_H'
3248 header_check sys
/videoio.h
&& sys_videoio_h
=yes &&
3249 def_sys_videoio_h
='#define HAVE_SYS_VIDEOIO_H 1'
3250 echores
"$sys_videoio_h"
3253 echocheck
"sys/dvdio.h"
3255 # FreeBSD 8.1 has broken dvdio.h
3256 header_check_broken sys
/types.h sys
/dvdio.h
&& _dvdio
=yes
3257 if test "$_dvdio" = yes ; then
3258 def_dvdio
='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3260 def_dvdio
='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3265 echocheck
"sys/cdio.h"
3267 # at least OpenSolaris has a broken cdio.h
3268 header_check_broken sys
/types.h sys
/cdio.h
&& _cdio
=yes
3269 if test "$_cdio" = yes ; then
3270 def_cdio
='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3272 def_cdio
='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3277 echocheck
"linux/cdrom.h"
3279 header_check linux
/cdrom.h
&& _cdrom
=yes
3280 if test "$_cdrom" = yes ; then
3281 def_cdrom
='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3283 def_cdrom
='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3290 header_check dvd.h
&& _dvd
=yes
3291 if test "$_dvd" = yes ; then
3292 def_dvd
='#define DVD_STRUCT_IN_DVD_H 1'
3294 def_dvd
='#undef DVD_STRUCT_IN_DVD_H'
3300 echocheck
"BSDI dvd.h"
3302 header_check dvd.h
&& _bsdi_dvd
=yes
3303 if test "$_bsdi_dvd" = yes ; then
3304 def_bsdi_dvd
='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3306 def_bsdi_dvd
='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3308 echores
"$_bsdi_dvd"
3313 # also used by AIX, but AIX does not support VCD and/or libdvdread
3314 echocheck
"HP-UX SCSI header"
3316 header_check sys
/scsi.h
&& _hpux_scsi_h
=yes
3317 if test "$_hpux_scsi_h" = yes ; then
3318 def_hpux_scsi_h
='#define HPUX_SCTL_IO 1'
3320 def_hpux_scsi_h
='#undef HPUX_SCTL_IO'
3322 echores
"$_hpux_scsi_h"
3327 echocheck
"userspace SCSI headers (Solaris)"
3329 header_check sys
/scsi
/scsi_types.h
&&
3330 header_check_broken sys
/types.h sys
/scsi
/impl
/uscsi.h
&&
3332 if test "$_sol_scsi_h" = yes ; then
3333 def_sol_scsi_h
='#define SOLARIS_USCSI 1'
3335 def_sol_scsi_h
='#undef SOLARIS_USCSI'
3337 echores
"$_sol_scsi_h"
3342 if test "$_termcap" = auto
; then
3344 for _ld_tmp
in "-lncurses" "-ltinfo" "-ltermcap"; do
3345 statement_check term.h
'tgetent(0, 0)' $_ld_tmp &&
3346 extra_ldflags
="$extra_ldflags $_ld_tmp" && _termcap
=yes && break
3349 if test "$_termcap" = yes ; then
3350 def_termcap
='#define HAVE_TERMCAP 1'
3351 test $_ld_tmp && res_comment
="using $_ld_tmp"
3353 def_termcap
='#undef HAVE_TERMCAP'
3359 def_termios
='#undef HAVE_TERMIOS'
3360 def_termios_h
='#undef HAVE_TERMIOS_H'
3361 def_termios_sys_h
='#undef HAVE_SYS_TERMIOS_H'
3362 if test "$_termios" = auto
; then
3364 for _termios_header
in "termios.h" "sys/termios.h"; do
3365 header_check
$_termios_header && _termios
=yes &&
3366 res_comment
="using $_termios_header" && break
3370 if test "$_termios" = yes ; then
3371 def_termios
='#define HAVE_TERMIOS 1'
3372 if test "$_termios_header" = "termios.h" ; then
3373 def_termios_h
='#define HAVE_TERMIOS_H 1'
3375 def_termios_sys_h
='#define HAVE_SYS_TERMIOS_H 1'
3382 if test "$_shm" = auto
; then
3384 statement_check sys
/shm.h
'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm
=yes
3386 if test "$_shm" = yes ; then
3387 def_shm
='#define HAVE_SHM 1'
3389 def_shm
='#undef HAVE_SHM'
3394 echocheck
"strsep()"
3396 statement_check string.h
'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep
=yes
3397 if test "$_strsep" = yes ; then
3398 def_strsep
='#define HAVE_STRSEP 1'
3401 def_strsep
='#undef HAVE_STRSEP'
3407 echocheck
"vsscanf()"
3409 #define _ISOC99_SOURCE
3412 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3415 cc_check
&& _vsscanf
=yes
3416 if test "$_vsscanf" = yes ; then
3417 def_vsscanf
='#define HAVE_VSSCANF 1'
3420 def_vsscanf
='#undef HAVE_VSSCANF'
3428 define_statement_check
"_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3429 statement_check
"string.h" 'int a, b; swab(&a, &b, 0)' && _swab
=yes
3430 if test "$_swab" = yes ; then
3431 def_swab
='#define HAVE_SWAB 1'
3434 def_swab
='#undef HAVE_SWAB'
3439 echocheck
"POSIX select()"
3443 #include <sys/types.h>
3445 #include <sys/time.h>
3447 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3450 def_posix_select
='#undef HAVE_POSIX_SELECT'
3451 #select() of kLIBC (OS/2) supports socket only
3452 ! os2
&& cc_check
&& _posix_select
=yes &&
3453 def_posix_select
='#define HAVE_POSIX_SELECT 1'
3454 echores
"$_posix_select"
3457 echocheck
"audio select()"
3458 if test "$_select" = no
; then
3459 def_select
='#undef HAVE_AUDIO_SELECT'
3460 elif test "$_select" = yes ; then
3461 def_select
='#define HAVE_AUDIO_SELECT 1'
3466 echocheck
"gettimeofday()"
3468 statement_check sys
/time.h
'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday
=yes
3469 if test "$_gettimeofday" = yes ; then
3470 def_gettimeofday
='#define HAVE_GETTIMEOFDAY 1'
3471 need_gettimeofday
=no
3473 def_gettimeofday
='#undef HAVE_GETTIMEOFDAY'
3474 need_gettimeofday
=yes
3476 echores
"$_gettimeofday"
3481 statement_check glob.h
'glob("filename", 0, 0, 0)' && _glob
=yes
3483 if test "$_glob" = yes ; then
3484 def_glob
='#define HAVE_GLOB 1'
3486 def_glob
='#undef HAVE_GLOB'
3487 # HACK! need_glob currently enables compilation of a
3488 # win32-specific glob()-replacement.
3489 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3490 win32
&& need_glob
=yes
3495 echocheck
"setenv()"
3497 statement_check stdlib.h
'setenv("", "", 0)' && _setenv
=yes
3498 if test "$_setenv" = yes ; then
3499 def_setenv
='#define HAVE_SETENV 1'
3502 def_setenv
='#undef HAVE_SETENV'
3508 echocheck
"setmode()"
3510 def_setmode
='#define HAVE_SETMODE 0'
3511 statement_check io.h
'setmode(0, 0)' && _setmode
=yes && def_setmode
='#define HAVE_SETMODE 1'
3516 echocheck
"sysi86()"
3518 statement_check sys
/sysi86.h
'sysi86(0)' && _sysi86
=yes
3519 if test "$_sysi86" = yes ; then
3520 def_sysi86
='#define HAVE_SYSI86 1'
3521 statement_check sys
/sysi86.h
'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv
='#define HAVE_SYSI86_iv 1'
3523 def_sysi86
='#undef HAVE_SYSI86'
3529 echocheck
"sys/sysinfo.h"
3531 statement_check sys
/sysinfo.h
'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo
=yes
3532 if test "$_sys_sysinfo" = yes ; then
3533 def_sys_sysinfo_h
='#define HAVE_SYS_SYSINFO_H 1'
3535 def_sys_sysinfo_h
='#undef HAVE_SYS_SYSINFO_H'
3537 echores
"$_sys_sysinfo"
3542 echocheck
"Mac OS X Finder Support"
3543 def_macosx_finder
='#undef CONFIG_MACOSX_FINDER'
3544 if test "$_macosx_finder" = yes ; then
3545 def_macosx_finder
='#define CONFIG_MACOSX_FINDER 1'
3546 extra_ldflags
="$extra_ldflags -framework Carbon"
3548 echores
"$_macosx_finder"
3550 echocheck
"Mac OS X Bundle file locations"
3551 def_macosx_bundle
='#undef CONFIG_MACOSX_BUNDLE'
3552 test "$_macosx_bundle" = auto
&& _macosx_bundle
=$_macosx_finder
3553 if test "$_macosx_bundle" = yes ; then
3554 def_macosx_bundle
='#define CONFIG_MACOSX_BUNDLE 1'
3555 extra_ldflags
="$extra_ldflags -framework Carbon"
3557 echores
"$_macosx_bundle"
3559 echocheck
"Apple Remote"
3560 if test "$_apple_remote" = auto
; then
3564 #include <IOKit/IOCFPlugIn.h>
3566 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3567 CFMutableDictionaryRef hidMatchDictionary;
3568 IOReturn ioReturnValue;
3570 // Set up a matching dictionary to search the I/O Registry by class.
3571 // name for all HID class devices
3572 hidMatchDictionary = IOServiceMatching("AppleIRController");
3574 // Now search I/O Registry for matching devices.
3575 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3576 hidMatchDictionary, &hidObjectIterator);
3578 // If search is unsuccessful, return nonzero.
3579 if (ioReturnValue != kIOReturnSuccess ||
3580 !IOIteratorIsValid(hidObjectIterator)) {
3586 cc_check
-framework IOKit
&& _apple_remote
=yes
3588 if test "$_apple_remote" = yes ; then
3589 def_apple_remote
='#define CONFIG_APPLE_REMOTE 1'
3590 libs_mplayer
="$libs_mplayer -framework IOKit -framework Cocoa"
3592 def_apple_remote
='#undef CONFIG_APPLE_REMOTE'
3594 echores
"$_apple_remote"
3600 echocheck
"Apple IR"
3601 if test "$_apple_ir" = auto
; then
3603 statement_check linux
/input.h
'struct input_event ev; struct input_id id' && _apple_ir
=yes
3605 if test "$_apple_ir" = yes ; then
3606 def_apple_ir
='#define CONFIG_APPLE_IR 1'
3608 def_apple_ir
='#undef CONFIG_APPLE_IR'
3610 echores
"$_apple_ir"
3613 echocheck
"pkg-config"
3614 _pkg_config
=pkg-config
3615 if $
($_pkg_config --version > /dev
/null
2>&1); then
3616 if test "$_ld_static"; then
3617 _pkg_config
="$_pkg_config --static"
3626 echocheck
"Samba support (libsmbclient)"
3627 if test "$_smb" = yes; then
3628 extra_ldflags
="$extra_ldflags -lsmbclient"
3630 if test "$_smb" = auto
; then
3632 for _ld_tmp
in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3633 statement_check libsmbclient.h
'smbc_opendir("smb://")' $_ld_tmp &&
3634 extra_ldflags
="$extra_ldflags $_ld_tmp" && _smb
=yes && break
3638 if test "$_smb" = yes; then
3639 def_smb
="#define CONFIG_LIBSMBCLIENT 1"
3640 inputmodules
="smb $inputmodules"
3642 def_smb
="#undef CONFIG_LIBSMBCLIENT"
3643 noinputmodules
="smb $noinputmodules"
3654 if test "$_tdfxfb" = yes ; then
3655 def_tdfxfb
='#define CONFIG_TDFXFB 1'
3656 vomodules
="tdfxfb $vomodules"
3658 def_tdfxfb
='#undef CONFIG_TDFXFB'
3659 novomodules
="tdfxfb $novomodules"
3664 if test "$_s3fb" = yes ; then
3665 def_s3fb
='#define CONFIG_S3FB 1'
3666 vomodules
="s3fb $vomodules"
3668 def_s3fb
='#undef CONFIG_S3FB'
3669 novomodules
="s3fb $novomodules"
3674 if test "$_wii" = yes ; then
3675 def_wii
='#define CONFIG_WII 1'
3676 vomodules
="wii $vomodules"
3678 def_wii
='#undef CONFIG_WII'
3679 novomodules
="wii $novomodules"
3684 if test "$_tdfxvid" = yes ; then
3685 def_tdfxvid
='#define CONFIG_TDFX_VID 1'
3686 vomodules
="tdfx_vid $vomodules"
3688 def_tdfxvid
='#undef CONFIG_TDFX_VID'
3689 novomodules
="tdfx_vid $novomodules"
3694 if test "$_xvr100" = auto
; then
3697 #include <sys/fbio.h>
3698 #include <sys/visual_io.h>
3700 struct vis_identifier ident;
3701 struct fbgattr attr;
3702 ioctl(0, VIS_GETIDENTIFIER, &ident);
3703 ioctl(0, FBIOGATTR, &attr);
3708 cc_check
&& _xvr100
=yes
3710 if test "$_xvr100" = yes ; then
3711 def_xvr100
='#define CONFIG_XVR100 1'
3712 vomodules
="xvr100 $vomodules"
3714 def_tdfxvid
='#undef CONFIG_XVR100'
3715 novomodules
="xvr100 $novomodules"
3720 if test "$_tga" = yes ; then
3721 def_tga
='#define CONFIG_TGA 1'
3722 vomodules
="tga $vomodules"
3724 def_tga
='#undef CONFIG_TGA'
3725 novomodules
="tga $novomodules"
3730 echocheck
"md5sum support"
3731 if test "$_md5sum" = yes; then
3732 def_md5sum
="#define CONFIG_MD5SUM 1"
3733 vomodules
="md5sum $vomodules"
3735 def_md5sum
="#undef CONFIG_MD5SUM"
3736 novomodules
="md5sum $novomodules"
3741 echocheck
"yuv4mpeg support"
3742 if test "$_yuv4mpeg" = yes; then
3743 def_yuv4mpeg
="#define CONFIG_YUV4MPEG 1"
3744 vomodules
="yuv4mpeg $vomodules"
3746 def_yuv4mpeg
="#undef CONFIG_YUV4MPEG"
3747 novomodules
="yuv4mpeg $novomodules"
3749 echores
"$_yuv4mpeg"
3753 if test "$_bl" = yes ; then
3754 def_bl
='#define CONFIG_BL 1'
3755 vomodules
="bl $vomodules"
3757 def_bl
='#undef CONFIG_BL'
3758 novomodules
="bl $novomodules"
3763 echocheck
"DirectFB"
3764 if test "$_directfb" = auto
; then
3767 #include <directfb.h>
3768 #include <directfb_version.h>
3769 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3770 #error "DirectFB version too old."
3772 int main(void) { DirectFBInit(0, 0); return 0; }
3774 for _inc_tmp
in "" -I/usr
/local
/include
/directfb
-I/usr
/include
/directfb
-I/usr
/local
/include
; do
3775 cc_check
$_inc_tmp -ldirectfb &&
3776 _directfb
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
3779 if test "$_directfb" = yes ; then
3780 def_directfb
='#define CONFIG_DIRECTFB 1'
3781 vomodules
="directfb dfbmga $vomodules"
3782 libs_mplayer
="$libs_mplayer -ldirectfb"
3784 def_directfb
='#undef CONFIG_DIRECTFB'
3785 novomodules
="directfb dfbmga $novomodules"
3787 echores
"$_directfb"
3790 echocheck
"X11 headers presence"
3792 res_comment
="check if the dev(el) packages are installed"
3793 for I
in $
(echo $extra_cflags |
sed s
/-I//g
) /usr
/include
; do
3794 if test -f "$I/X11/Xlib.h" ; then
3800 if test $_cross_compile = no
; then
3801 for I
in /usr
/X11
/include
/usr
/X11R
7/include
/usr
/local
/include
/usr
/X11R
6/include \
3802 /usr
/include
/X11R6
/usr
/openwin
/include
; do
3803 if test -f "$I/X11/Xlib.h" ; then
3804 extra_cflags
="$extra_cflags -I$I"
3806 res_comment
="using $I"
3811 echores
"$_x11_headers"
3815 if test "$_x11" = auto
&& test "$_x11_headers" = yes ; then
3816 for I
in "" -L/usr
/X11R
7/lib
-L/usr
/local
/lib
-L/usr
/X11R
6/lib
-L/usr
/lib
/X11R6 \
3817 -L/usr
/X11
/lib
-L/usr
/lib32
-L/usr
/openwin
/lib
-L/usr
/local
/lib64
-L/usr
/X11R
6/lib64 \
3820 _ld_tmp
="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3822 _ld_tmp
="$I -lXext -lX11 $_ld_pthread"
3824 statement_check X11
/Xutil.h
'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3825 libs_mplayer
="$libs_mplayer $_ld_tmp" && _x11
=yes && break
3828 if test "$_x11" = yes ; then
3829 def_x11
='#define CONFIG_X11 1'
3830 vomodules
="x11 xover $vomodules"
3833 def_x11
='#undef CONFIG_X11'
3834 novomodules
="x11 $novomodules"
3835 res_comment
="check if the dev(el) packages are installed"
3839 echocheck
"Xss screensaver extensions"
3840 if test "$_xss" = auto
; then
3842 statement_check
"X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss
=yes
3844 if test "$_xss" = yes ; then
3845 def_xss
='#define CONFIG_XSS 1'
3846 libs_mplayer
="$libs_mplayer -lXss"
3848 def_xss
='#undef CONFIG_XSS'
3855 if test "$_x11" = yes ; then
3857 #include <X11/Xmd.h>
3858 #include <X11/Xlib.h>
3859 #include <X11/Xutil.h>
3860 #include <X11/Xatom.h>
3861 #include <X11/extensions/dpms.h>
3862 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3864 cc_check
-lXdpms && _xdpms3
=yes
3865 statement_check_broken X11
/Xlib.h X11
/extensions
/dpms.h
'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4
=yes
3867 if test "$_xdpms4" = yes ; then
3868 def_xdpms
='#define CONFIG_XDPMS 1'
3869 res_comment
="using Xdpms 4"
3871 elif test "$_xdpms3" = yes ; then
3872 def_xdpms
='#define CONFIG_XDPMS 1'
3873 libs_mplayer
="$libs_mplayer -lXdpms"
3874 res_comment
="using Xdpms 3"
3877 def_xdpms
='#undef CONFIG_XDPMS'
3883 if test "$_xv" = auto
&& test "$_x11" = yes ; then
3885 statement_check_broken X11
/Xlib.h X11
/extensions
/Xvlib.h
'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv
=yes
3888 if test "$_xv" = yes ; then
3889 def_xv
='#define CONFIG_XV 1'
3890 libs_mplayer
="$libs_mplayer -lXv"
3891 vomodules
="xv $vomodules"
3893 def_xv
='#undef CONFIG_XV'
3894 novomodules
="xv $novomodules"
3900 if test "$_vdpau" = auto
&& test "$_x11" = yes ; then
3902 if test "$_dl" = yes ; then
3903 return_statement_check vdpau
/vdpau_x11.h
'vdp_device_create_x11(0, 0, 0, 0)' VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1
-lvdpau && _vdpau
=yes
3906 if test "$_vdpau" = yes ; then
3907 def_vdpau
='#define CONFIG_VDPAU 1'
3908 libs_mplayer
="$libs_mplayer -lvdpau"
3909 vomodules
="vdpau $vomodules"
3911 def_vdpau
='#define CONFIG_VDPAU 0'
3912 novomodules
="vdpau $novomodules"
3917 echocheck
"Xinerama"
3918 if test "$_xinerama" = auto
&& test "$_x11" = yes ; then
3920 statement_check X11
/extensions
/Xinerama.h
'XineramaIsActive(0)' -lXinerama && _xinerama
=yes
3923 if test "$_xinerama" = yes ; then
3924 def_xinerama
='#define CONFIG_XINERAMA 1'
3925 libs_mplayer
="$libs_mplayer -lXinerama"
3927 def_xinerama
='#undef CONFIG_XINERAMA'
3929 echores
"$_xinerama"
3932 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3933 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3934 # named 'X extensions' or something similar.
3935 # This check may be useful for future mplayer versions (to change resolution)
3936 # If you run into problems, remove '-lXxf86vm'.
3938 if test "$_vm" = auto
&& test "$_x11" = yes ; then
3940 statement_check_broken X11
/Xlib.h X11
/extensions
/xf86vmode.h
'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm
=yes
3942 if test "$_vm" = yes ; then
3943 def_vm
='#define CONFIG_XF86VM 1'
3944 libs_mplayer
="$libs_mplayer -lXxf86vm"
3946 def_vm
='#undef CONFIG_XF86VM'
3950 # Check for the presence of special keycodes, like audio control buttons
3951 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3952 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3953 # have these new keycodes.
3954 echocheck
"XF86keysym"
3955 if test "$_xf86keysym" = auto
&& test "$_x11" = yes ; then
3957 return_check X11
/XF86keysym.h XF86XK_AudioPause
&& _xf86keysym
=yes
3959 if test "$_xf86keysym" = yes ; then
3960 def_xf86keysym
='#define CONFIG_XF86XK 1'
3962 def_xf86keysym
='#undef CONFIG_XF86XK'
3964 echores
"$_xf86keysym"
3967 if test "$_dga2" = auto
&& test "$_x11" = yes ; then
3969 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2
=yes
3971 if test "$_dga1" = auto
&& test "$_dga2" = no
&& test "$_vm" = yes ; then
3973 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1
=yes
3977 def_dga
='#undef CONFIG_DGA'
3978 def_dga1
='#undef CONFIG_DGA1'
3979 def_dga2
='#undef CONFIG_DGA2'
3980 if test "$_dga1" = yes ; then
3982 def_dga1
='#define CONFIG_DGA1 1'
3983 res_comment
="using DGA 1.0"
3984 elif test "$_dga2" = yes ; then
3986 def_dga2
='#define CONFIG_DGA2 1'
3987 res_comment
="using DGA 2.0"
3989 if test "$_dga" = yes ; then
3990 def_dga
='#define CONFIG_DGA 1'
3991 libs_mplayer
="$libs_mplayer -lXxf86dga"
3992 vomodules
="dga $vomodules"
3994 novomodules
="dga $novomodules"
4000 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4001 def_3dfx
='#define CONFIG_3DFX 1'
4002 vomodules
="3dfx $vomodules"
4005 def_3dfx
='#undef CONFIG_3DFX'
4006 novomodules
="3dfx $novomodules"
4012 if test "$_ggi" = auto
; then
4014 statement_check ggi
/ggi.h
'ggiInit()' -lggi && _ggi
=yes
4016 if test "$_ggi" = yes ; then
4017 def_ggi
='#define CONFIG_GGI 1'
4018 libs_mplayer
="$libs_mplayer -lggi"
4019 vomodules
="ggi $vomodules"
4021 def_ggi
='#undef CONFIG_GGI'
4022 novomodules
="ggi $novomodules"
4026 echocheck
"GGI extension: libggiwmh"
4027 if test "$_ggiwmh" = auto
; then
4029 statement_check ggi
/wmh.h
'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh
=yes
4031 # needed to get right output on obscure combination
4032 # like --disable-ggi --enable-ggiwmh
4033 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4034 def_ggiwmh
='#define CONFIG_GGIWMH 1'
4035 libs_mplayer
="$libs_mplayer -lggiwmh"
4038 def_ggiwmh
='#undef CONFIG_GGIWMH'
4044 if test "$_aa" = auto
; then
4051 c = aa_autoinit(&aa_defparams);
4052 p = aa_getrenderparams();
4053 aa_autoinitkbd(c, 0);
4057 for _ld_tmp
in "-laa" ; do
4058 cc_check
$_ld_tmp && libs_mplayer
="$libs_mplayer $_ld_tmp" && _aa
=yes && break
4061 if test "$_aa" = yes ; then
4062 def_aa
='#define CONFIG_AA 1'
4064 libs_mplayer
="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4066 vomodules
="aa $vomodules"
4068 def_aa
='#undef CONFIG_AA'
4069 novomodules
="aa $novomodules"
4075 if test "$_caca" = auto
; then
4077 if ( caca-config
--version ) >> "$TMPLOG" 2>&1 ; then
4080 #ifdef CACA_API_VERSION_1
4083 int main(void) { caca_init(); return 0; }
4085 cc_check $
(caca-config
--libs) && _caca
=yes
4088 if test "$_caca" = yes ; then
4089 def_caca
='#define CONFIG_CACA 1'
4090 extra_cflags
="$extra_cflags $(caca-config --cflags)"
4091 libs_mplayer
="$libs_mplayer $(caca-config --libs)"
4092 vomodules
="caca $vomodules"
4094 def_caca
='#undef CONFIG_CACA'
4095 novomodules
="caca $novomodules"
4101 if test "$_svga" = auto
; then
4103 header_check vga.h
-lvga $_ld_lm && _svga
=yes
4105 if test "$_svga" = yes ; then
4106 def_svga
='#define CONFIG_SVGALIB 1'
4107 libs_mplayer
="$libs_mplayer -lvga"
4108 vomodules
="svga $vomodules"
4110 def_svga
='#undef CONFIG_SVGALIB'
4111 novomodules
="svga $novomodules"
4117 if test "$_fbdev" = auto
; then
4121 if test "$_fbdev" = yes ; then
4122 def_fbdev
='#define CONFIG_FBDEV 1'
4123 vomodules
="fbdev $vomodules"
4125 def_fbdev
='#undef CONFIG_FBDEV'
4126 novomodules
="fbdev $novomodules"
4133 if test "$_dvb" = auto
; then
4137 #include <sys/ioctl.h>
4141 #include <linux/dvb/dmx.h>
4142 #include <linux/dvb/frontend.h>
4143 #include <linux/dvb/video.h>
4144 #include <linux/dvb/audio.h>
4145 int main(void) {return 0;}
4147 for _inc_tmp
in "" "-I/usr/src/DVB/include" ; do
4148 cc_check
$_inc_tmp && _dvb
=yes &&
4149 extra_cflags
="$extra_cflags $_inc_tmp" && break
4153 if test "$_dvb" = yes ; then
4155 inputmodules
="dvb $inputmodules"
4156 def_dvb
='#define CONFIG_DVB 1'
4157 def_dvbin
='#define CONFIG_DVBIN 1'
4158 aomodules
="mpegpes(dvb) $aomodules"
4159 vomodules
="mpegpes(dvb) $vomodules"
4162 noinputmodules
="dvb $noinputmodules"
4163 def_dvb
='#undef CONFIG_DVB'
4164 def_dvbin
='#undef CONFIG_DVBIN '
4165 aomodules
="mpegpes(file) $aomodules"
4166 vomodules
="mpegpes(file) $vomodules"
4172 echocheck
"QuickTime"
4173 if test "$quicktime" = auto
; then
4175 statement_check QuickTime
/QuickTime.h
'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime
&& quicktime
=yes
4177 if test "$quicktime" = yes ; then
4178 extra_ldflags
="$extra_ldflags -framework QuickTime"
4179 def_quicktime
='#define CONFIG_QUICKTIME 1'
4181 def_quicktime
='#undef CONFIG_QUICKTIME'
4187 if test "$_quartz" = auto
; then
4189 statement_check Carbon
/Carbon.h
'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon
&& _quartz
=yes
4191 if test "$_quartz" = yes ; then
4192 libs_mplayer
="$libs_mplayer -framework Carbon"
4193 def_quartz
='#define CONFIG_QUARTZ 1'
4194 vomodules
="quartz $vomodules"
4196 def_quartz
='#undef CONFIG_QUARTZ'
4197 novomodules
="quartz $novomodules"
4201 echocheck
"CoreVideo"
4202 if test "$_corevideo" = auto
; then
4204 #include <Carbon/Carbon.h>
4205 #include <CoreServices/CoreServices.h>
4206 #include <OpenGL/OpenGL.h>
4207 #include <QuartzCore/CoreVideo.h>
4208 int main(void) { return 0; }
4211 cc_check
-framework Carbon
-framework Cocoa
-framework QuartzCore
-framework OpenGL
&& _corevideo
=yes
4213 if test "$_corevideo" = yes ; then
4214 vomodules
="corevideo $vomodules"
4215 libs_mplayer
="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4216 def_corevideo
='#define CONFIG_COREVIDEO 1'
4218 novomodules
="corevideo $novomodules"
4219 def_corevideo
='#undef CONFIG_COREVIDEO'
4221 echores
"$_corevideo"
4226 echocheck
"PNG support"
4227 if test "$_png" = auto
; then
4230 # Don't check for -lpng on irix since it has its own libpng
4231 # incompatible with the GNU libpng
4232 res_comment
="disabled on irix (not GNU libpng)"
4239 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4240 printf("libpng: %s\n", png_libpng_ver);
4241 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4244 cc_check
-lpng -lz $_ld_lm && _png
=yes
4248 if test "$_png" = yes ; then
4249 def_png
='#define CONFIG_PNG 1'
4250 extra_ldflags
="$extra_ldflags -lpng -lz"
4252 def_png
='#undef CONFIG_PNG'
4255 echocheck
"MNG support"
4256 if test "$_mng" = auto
; then
4258 return_statement_check libmng.h
'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng
=yes
4261 if test "$_mng" = yes ; then
4262 def_mng
='#define CONFIG_MNG 1'
4263 extra_ldflags
="$extra_ldflags -lmng -lz"
4265 def_mng
='#undef CONFIG_MNG'
4268 echocheck
"JPEG support"
4269 if test "$_jpeg" = auto
; then
4271 header_check_broken stdio.h jpeglib.h
-ljpeg $_ld_lm && _jpeg
=yes
4275 if test "$_jpeg" = yes ; then
4276 def_jpeg
='#define CONFIG_JPEG 1'
4277 vomodules
="jpeg $vomodules"
4278 extra_ldflags
="$extra_ldflags -ljpeg"
4280 def_jpeg
='#undef CONFIG_JPEG'
4281 novomodules
="jpeg $novomodules"
4286 echocheck
"PNM support"
4287 if test "$_pnm" = yes; then
4288 def_pnm
="#define CONFIG_PNM 1"
4289 vomodules
="pnm $vomodules"
4291 def_pnm
="#undef CONFIG_PNM"
4292 novomodules
="pnm $novomodules"
4298 echocheck
"GIF support"
4299 # This is to appease people who want to force gif support.
4300 # If it is forced to yes, then we still do checks to determine
4301 # which gif library to use.
4302 if test "$_gif" = yes ; then
4307 if test "$_gif" = auto
; then
4309 for _ld_gif
in "-lungif" "-lgif" ; do
4310 statement_check gif_lib.h
'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif
=yes && break
4314 # If no library was found, and the user wants support forced,
4315 # then we force it on with libgif, as this is the safest
4316 # assumption IMHO. (libungif & libregif both create symbolic
4317 # links to libgif. We also assume that no x11 support is needed,
4318 # because if you are forcing this, then you _should_ know what
4319 # you are doing. [ Besides, package maintainers should never
4320 # have compiled x11 deps into libungif in the first place. ] )
4323 if test "$_force_gif" = yes && test "$_gif" = no
; then
4328 if test "$_gif" = yes ; then
4329 def_gif
='#define CONFIG_GIF 1'
4330 codecmodules
="gif $codecmodules"
4331 vomodules
="gif89a $vomodules"
4332 res_comment
="old version, some encoding functions disabled"
4333 def_gif_4
='#undef CONFIG_GIF_4'
4334 extra_ldflags
="$extra_ldflags $_ld_gif"
4340 #include <gif_lib.h>
4341 static void catch(int sig) { exit(1); }
4343 signal(SIGSEGV, catch); // catch segfault
4344 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4345 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4349 if cc_check
"$_ld_gif" ; then
4350 def_gif_4
='#define CONFIG_GIF_4 1'
4354 def_gif
='#undef CONFIG_GIF'
4355 def_gif_4
='#undef CONFIG_GIF_4'
4356 novomodules
="gif89a $novomodules"
4357 nocodecmodules
="gif $nocodecmodules"
4362 case "$_gif" in yes*)
4363 echocheck
"broken giflib workaround"
4364 def_gif_tvt_hack
='#define CONFIG_GIF_TVT_HACK 1'
4368 #include <gif_lib.h>
4370 GifFileType gif = {.UserData = NULL};
4371 printf("UserData is at address %p\n", gif.UserData);
4375 if cc_check
"$_ld_gif" ; then
4376 def_gif_tvt_hack
='#undef CONFIG_GIF_TVT_HACK'
4385 echocheck
"VESA support"
4386 if test "$_vesa" = auto
; then
4388 statement_check vbe.h
'vbeInit()' -lvbe -llrmi && _vesa
=yes
4390 if test "$_vesa" = yes ; then
4391 def_vesa
='#define CONFIG_VESA 1'
4392 libs_mplayer
="$libs_mplayer -lvbe -llrmi"
4393 vomodules
="vesa $vomodules"
4395 def_vesa
='#undef CONFIG_VESA'
4396 novomodules
="vesa $novomodules"
4408 def_sdl_sdl_h
="#undef CONFIG_SDL_SDL_H"
4409 if test -z "$_sdlconfig" ; then
4410 if ( sdl-config
--version ) >>"$TMPLOG" 2>&1 ; then
4411 _sdlconfig
="sdl-config"
4412 elif ( sdl11-config
--version ) >>"$TMPLOG" 2>&1 ; then
4413 _sdlconfig
="sdl11-config"
4418 if test "$_sdl" = auto ||
test "$_sdl" = yes ; then
4420 #ifdef CONFIG_SDL_SDL_H
4421 #include <SDL/SDL.h>
4426 // we allow SDL hacking our main() only on OSX
4429 int main(int argc, char *argv[]) {
4430 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4435 for _ld_tmp
in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4436 if cc_check
-DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4438 def_sdl_sdl_h
="#define CONFIG_SDL_SDL_H 1"
4442 if test "$_sdl" = no
&& "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4443 res_comment
="using $_sdlconfig"
4445 _inc_tmp
="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4446 _ld_tmp
="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4448 _inc_tmp
=$
($_sdlconfig --cflags |
sed s
/-Dmain=SDL_main
//)
4449 _ld_tmp
=$
($_sdlconfig --libs |
sed -e s
/-mwindows// -e s
/-lmingw32//)
4451 _inc_tmp
="$($_sdlconfig --cflags)"
4452 _ld_tmp
="$($_sdlconfig --libs)"
4454 if cc_check
$_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4456 elif cc_check
$_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4457 # HACK for BeOS/Haiku SDL
4458 _ld_tmp
="$_ld_tmp -lstdc++"
4463 if test "$_sdl" = yes ; then
4464 def_sdl
='#define CONFIG_SDL 1'
4465 extra_cflags
="$extra_cflags $_inc_tmp"
4466 libs_mplayer
="$libs_mplayer $_ld_tmp"
4467 vomodules
="sdl $vomodules"
4468 aomodules
="sdl $aomodules"
4470 def_sdl
='#undef CONFIG_SDL'
4471 novomodules
="sdl $novomodules"
4472 noaomodules
="sdl $noaomodules"
4477 # make sure this stays below CoreVideo to avoid issues due to namespace
4478 # conflicts between -lGL and -framework OpenGL
4480 #Note: this test is run even with --enable-gl since we autodetect linker flags
4481 if (test "$_x11" = yes ||
test "$_sdl" = yes || win32
) && test "$_gl" != no
; then
4484 #include <windows.h>
4486 #elif defined(GL_SDL)
4488 #ifdef CONFIG_SDL_SDL_H
4489 #include <SDL/SDL.h>
4494 // we allow SDL hacking our main() only on OSX
4499 #include <X11/Xlib.h>
4502 int main(int argc, char *argv[]) {
4505 wglCreateContext(dc);
4506 #elif defined(GL_SDL)
4507 SDL_GL_SwapBuffers();
4509 glXCreateContext(NULL, NULL, NULL, True);
4516 for _ld_tmp
in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4517 if cc_check
$_ld_tmp $_ld_lm ; then
4520 libs_mplayer
="$libs_mplayer $_ld_tmp $_ld_dl"
4524 if cc_check
-DGL_WIN32 -lopengl32 ; then
4527 libs_mplayer
="$libs_mplayer -lopengl32 -lgdi32"
4529 # last so it can reuse any linker etc. flags detected before
4530 if test "$_sdl" = yes ; then
4531 if cc_check
-DGL_SDL ||
4532 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL ; then
4535 elif cc_check
-DGL_SDL -lGL ||
4536 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4539 libs_mplayer
="$libs_mplayer -lGL"
4545 if test "$_gl" = yes ; then
4546 def_gl
='#define CONFIG_GL 1'
4547 res_comment
="backends:"
4548 if test "$_gl_win32" = yes ; then
4549 def_gl_win32
='#define CONFIG_GL_WIN32 1'
4550 res_comment
="$res_comment win32"
4552 if test "$_gl_x11" = yes ; then
4553 def_gl_x11
='#define CONFIG_GL_X11 1'
4554 res_comment
="$res_comment x11"
4556 if test "$_gl_sdl" = yes ; then
4557 def_gl_sdl
='#define CONFIG_GL_SDL 1'
4558 res_comment
="$res_comment sdl"
4560 vomodules
="opengl $vomodules"
4562 def_gl
='#undef CONFIG_GL'
4563 def_gl_win32
='#undef CONFIG_GL_WIN32'
4564 def_gl_x11
='#undef CONFIG_GL_X11'
4565 def_gl_sdl
='#undef CONFIG_GL_SDL'
4566 novomodules
="opengl $novomodules"
4572 echocheck
"KVA (SNAP/WarpOverlay!/DIVE)"
4573 if test "$_kva" = auto
; then
4575 header_check_broken os2.h kva.h
-lkva && _kva
=yes
4577 if test "$_kva" = yes ; then
4578 def_kva
='#define CONFIG_KVA 1'
4579 libs_mplayer
="$libs_mplayer -lkva"
4580 vomodules
="kva $vomodules"
4582 def_kva
='#undef CONFIG_KVA'
4583 novomodules
="kva $novomodules"
4591 echocheck
"Windows waveout"
4592 if test "$_win32waveout" = auto
; then
4594 header_check_broken windows.h mmsystem.h
-lwinmm && _win32waveout
=yes
4596 if test "$_win32waveout" = yes ; then
4597 def_win32waveout
='#define CONFIG_WIN32WAVEOUT 1'
4598 libs_mplayer
="$libs_mplayer -lwinmm"
4599 aomodules
="win32 $aomodules"
4601 def_win32waveout
='#undef CONFIG_WIN32WAVEOUT'
4602 noaomodules
="win32 $noaomodules"
4604 echores
"$_win32waveout"
4606 echocheck
"Direct3D"
4607 if test "$_direct3d" = auto
; then
4609 header_check d3d9.h
&& _direct3d
=yes
4611 if test "$_direct3d" = yes ; then
4612 def_direct3d
='#define CONFIG_DIRECT3D 1'
4613 vomodules
="direct3d $vomodules"
4615 def_direct3d
='#undef CONFIG_DIRECT3D'
4616 novomodules
="direct3d $novomodules"
4618 echores
"$_direct3d"
4621 if test "$_directx" = auto
; then
4625 int main(void) { return 0; }
4628 cc_check
-lgdi32 && _directx
=yes
4630 if test "$_directx" = yes ; then
4631 def_directx
='#define CONFIG_DIRECTX 1'
4632 libs_mplayer
="$libs_mplayer -lgdi32"
4633 vomodules
="directx $vomodules"
4634 aomodules
="dsound $aomodules"
4636 def_directx
='#undef CONFIG_DIRECTX'
4637 novomodules
="directx $novomodules"
4638 noaomodules
="dsound $noaomodules"
4646 if test "$_dxr3" = auto
; then
4648 header_check linux
/em8300.h
&& _dxr3
=yes
4650 if test "$_dxr3" = yes ; then
4651 def_dxr3
='#define CONFIG_DXR3 1'
4652 vomodules
="dxr3 $vomodules"
4654 def_dxr3
='#undef CONFIG_DXR3'
4655 novomodules
="dxr3 $novomodules"
4660 echocheck
"IVTV TV-Out (pre linux-2.6.24)"
4661 if test "$_ivtv" = auto
; then
4663 #include <sys/time.h>
4664 #include <linux/videodev2.h>
4665 #include <linux/ivtv.h>
4666 #include <sys/ioctl.h>
4668 struct ivtv_cfg_stop_decode sd;
4669 struct ivtv_cfg_start_decode sd1;
4670 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4671 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4675 cc_check
&& _ivtv
=yes
4677 if test "$_ivtv" = yes ; then
4678 def_ivtv
='#define CONFIG_IVTV 1'
4679 vomodules
="ivtv $vomodules"
4680 aomodules
="ivtv $aomodules"
4682 def_ivtv
='#undef CONFIG_IVTV'
4683 novomodules
="ivtv $novomodules"
4684 noaomodules
="ivtv $noaomodules"
4689 echocheck
"V4L2 MPEG Decoder"
4690 if test "$_v4l2" = auto
; then
4692 #include <sys/time.h>
4693 #include <linux/videodev2.h>
4694 #include <linux/version.h>
4696 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4697 #error kernel headers too old, need 2.6.22
4699 struct v4l2_ext_controls ctrls;
4700 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4705 cc_check
&& _v4l2
=yes
4707 if test "$_v4l2" = yes ; then
4708 def_v4l2
='#define CONFIG_V4L2_DECODER 1'
4709 vomodules
="v4l2 $vomodules"
4710 aomodules
="v4l2 $aomodules"
4712 def_v4l2
='#undef CONFIG_V4L2_DECODER'
4713 novomodules
="v4l2 $novomodules"
4714 noaomodules
="v4l2 $noaomodules"
4725 echocheck
"OSS Audio"
4726 if test "$_ossaudio" = auto
; then
4728 return_check
$_soundcard_header SNDCTL_DSP_SETFRAGMENT
&& _ossaudio
=yes
4730 if test "$_ossaudio" = yes ; then
4731 def_ossaudio
='#define CONFIG_OSS_AUDIO 1'
4732 aomodules
="oss $aomodules"
4734 #include <$_soundcard_header>
4735 #ifdef OPEN_SOUND_SYSTEM
4736 int main(void) { return 0; }
4738 #error Not the real thing
4742 cc_check
&& _real_ossaudio
=yes
4743 if test "$_real_ossaudio" = yes; then
4744 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4745 # Check for OSS4 headers (override default headers)
4746 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4747 if test -f /etc
/oss.conf
; then
4749 _ossinc
="$OSSLIBDIR/include"
4750 if test -f "$_ossinc/sys/soundcard.h"; then
4751 extra_cflags
="-I$_ossinc $extra_cflags"
4754 elif netbsd || openbsd
; then
4755 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/sound"'
4756 extra_ldflags
="$extra_ldflags -lossaudio"
4758 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4760 def_ossaudio_devmixer
='#define PATH_DEV_MIXER "/dev/mixer"'
4762 def_ossaudio
='#undef CONFIG_OSS_AUDIO'
4763 def_ossaudio_devdsp
='#define PATH_DEV_DSP ""'
4764 def_ossaudio_devmixer
='#define PATH_DEV_MIXER ""'
4765 noaomodules
="oss $noaomodules"
4767 echores
"$_ossaudio"
4771 if test "$_arts" = auto
; then
4773 if ( artsc-config
--version ) >> "$TMPLOG" 2>&1 ; then
4774 statement_check artsc.h
'arts_init()' $
(artsc-config
--libs) $
(artsc-config
--cflags) &&
4779 if test "$_arts" = yes ; then
4780 def_arts
='#define CONFIG_ARTS 1'
4781 aomodules
="arts $aomodules"
4782 libs_mplayer
="$libs_mplayer $(artsc-config --libs)"
4783 extra_cflags
="$extra_cflags $(artsc-config --cflags)"
4785 noaomodules
="arts $noaomodules"
4791 if test "$_esd" = auto
; then
4793 if ( esd-config
--version ) >> "$TMPLOG" 2>&1 ; then
4794 statement_check esd.h
'esd_open_sound("test")' $
(esd-config
--libs) $
(esd-config
--cflags) && _esd
=yes
4799 if test "$_esd" = yes ; then
4800 def_esd
='#define CONFIG_ESD 1'
4801 aomodules
="esd $aomodules"
4802 libs_mplayer
="$libs_mplayer $(esd-config --libs)"
4803 extra_cflags
="$extra_cflags $(esd-config --cflags)"
4805 echocheck
"esd_get_latency()"
4806 statement_check esd.h
'esd_get_latency(0)' $
(esd-config
--libs) $
(esd-config
--cflags) &&
4807 _esd_latency
=yes && def_esd_latency
='#define CONFIG_ESD_LATENCY 1'
4808 echores
"$_esd_latency"
4810 def_esd
='#undef CONFIG_ESD'
4811 def_esd_latency
='#undef CONFIG_ESD_LATENCY'
4812 noaomodules
="esd $noaomodules"
4816 if test "$_rsound" = auto
; then
4818 statement_check rsound.h
'rsd_init(NULL);' -lrsound && _rsound
=yes
4822 if test "$_rsound" = yes ; then
4823 def_rsound
='#define CONFIG_RSOUND 1'
4824 aomodules
="rsound $aomodules"
4825 libs_mplayer
="$libs_mplayer -lrsound"
4827 def_rsound
='#undef CONFIG_RSOUND'
4828 noaomodules
="rsound $noaomodules"
4833 if test "$_nas" = auto
; then
4835 header_check audio
/audiolib.h
$_ld_lm -laudio -lXt && _nas
=yes
4837 if test "$_nas" = yes ; then
4838 def_nas
='#define CONFIG_NAS 1'
4839 libs_mplayer
="$libs_mplayer -laudio -lXt"
4840 aomodules
="nas $aomodules"
4842 noaomodules
="nas $noaomodules"
4843 def_nas
='#undef CONFIG_NAS'
4849 if test "$_pulse" = auto
; then
4851 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4852 header_check pulse
/pulseaudio.h $
($_pkg_config --libs --cflags libpulse
) &&
4858 if test "$_pulse" = yes ; then
4859 def_pulse
='#define CONFIG_PULSE 1'
4860 aomodules
="pulse $aomodules"
4861 libs_mplayer
="$libs_mplayer $($_pkg_config --libs libpulse)"
4862 extra_cflags
="$extra_cflags $($_pkg_config --cflags libpulse)"
4864 def_pulse
='#undef CONFIG_PULSE'
4865 noaomodules
="pulse $noaomodules"
4870 if test "$_jack" = auto
; then
4872 if statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4873 libs_mplayer
="$libs_mplayer -ljack"
4874 elif statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' $
($_pkg_config --libs --cflags --silence-errors jack
) ; then
4875 libs_mplayer
="$libs_mplayer $($_pkg_config --libs jack)"
4876 extra_cflags
="$extra_cflags "$
($_pkg_config --cflags jack
)""
4882 if test "$_jack" = yes ; then
4883 def_jack
='#define CONFIG_JACK 1'
4884 aomodules
="jack $aomodules"
4886 noaomodules
="jack $noaomodules"
4891 if test "$_openal" = auto
; then
4895 #include <OpenAL/al.h>
4900 alSourceQueueBuffers(0, 0, 0);
4901 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4905 for I
in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4906 cc_check
$I && _openal
=yes && break
4907 cc_check
-DOPENAL_AL_H=1 $I && def_openal_h
='#define OPENAL_AL_H 1' && _openal
=yes && break
4909 test "$_openal" = yes && libs_mplayer
="$libs_mplayer $I"
4911 if test "$_openal" = yes ; then
4912 def_openal
='#define CONFIG_OPENAL 1'
4913 aomodules
="openal $aomodules"
4915 noaomodules
="openal $noaomodules"
4919 echocheck
"ALSA audio"
4920 if test "$_alloca" != yes ; then
4922 res_comment
="alloca missing"
4924 if test "$_alsa" != no
; then
4927 #include <sys/asoundlib.h>
4928 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4929 #error "alsa version != 0.5.x"
4931 int main(void) { return 0; }
4933 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.5.x'
4936 #include <sys/asoundlib.h>
4937 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4938 #error "alsa version != 0.9.x"
4940 int main(void) { return 0; }
4942 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-sys'
4944 #include <alsa/asoundlib.h>
4945 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4946 #error "alsa version != 0.9.x"
4948 int main(void) { return 0; }
4950 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-alsa'
4953 #include <sys/asoundlib.h>
4954 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4955 #error "alsa version != 1.0.x"
4957 int main(void) { return 0; }
4959 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-sys'
4961 #include <alsa/asoundlib.h>
4962 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4963 #error "alsa version != 1.0.x"
4965 int main(void) { return 0; }
4967 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-alsa'
4969 def_alsa
='#undef CONFIG_ALSA'
4970 def_alsa5
='#undef CONFIG_ALSA5'
4971 def_alsa9
='#undef CONFIG_ALSA9'
4972 def_alsa1x
='#undef CONFIG_ALSA1X'
4973 def_sys_asoundlib_h
='#undef HAVE_SYS_ASOUNDLIB_H'
4974 def_alsa_asoundlib_h
='#undef HAVE_ALSA_ASOUNDLIB_H'
4975 if test "$_alsaver" ; then
4977 if test "$_alsaver" = '0.5.x' ; then
4979 aomodules
="alsa5 $aomodules"
4980 def_alsa5
='#define CONFIG_ALSA5 1'
4981 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
4982 res_comment
="using alsa 0.5.x and sys/asoundlib.h"
4983 elif test "$_alsaver" = '0.9.x-sys' ; then
4985 aomodules
="alsa $aomodules"
4986 def_alsa
='#define CONFIG_ALSA 1'
4987 def_alsa9
='#define CONFIG_ALSA9 1'
4988 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
4989 res_comment
="using alsa 0.9.x and sys/asoundlib.h"
4990 elif test "$_alsaver" = '0.9.x-alsa' ; then
4992 aomodules
="alsa $aomodules"
4993 def_alsa
='#define CONFIG_ALSA 1'
4994 def_alsa9
='#define CONFIG_ALSA9 1'
4995 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
4996 res_comment
="using alsa 0.9.x and alsa/asoundlib.h"
4997 elif test "$_alsaver" = '1.0.x-sys' ; then
4999 aomodules
="alsa $aomodules"
5000 def_alsa
='#define CONFIG_ALSA 1'
5001 def_alsa1x
="#define CONFIG_ALSA1X 1"
5002 def_alsa_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
5003 res_comment
="using alsa 1.0.x and sys/asoundlib.h"
5004 elif test "$_alsaver" = '1.0.x-alsa' ; then
5006 aomodules
="alsa $aomodules"
5007 def_alsa
='#define CONFIG_ALSA 1'
5008 def_alsa1x
="#define CONFIG_ALSA1X 1"
5009 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
5010 res_comment
="using alsa 1.0.x and alsa/asoundlib.h"
5013 res_comment
="unknown version"
5015 extra_ldflags
="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5017 noaomodules
="alsa $noaomodules"
5022 echocheck
"Sun audio"
5023 if test "$_sunaudio" = auto
; then
5025 #include <sys/types.h>
5026 #include <sys/audioio.h>
5027 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5030 cc_check
&& _sunaudio
=yes
5032 if test "$_sunaudio" = yes ; then
5033 def_sunaudio
='#define CONFIG_SUN_AUDIO 1'
5034 aomodules
="sun $aomodules"
5036 def_sunaudio
='#undef CONFIG_SUN_AUDIO'
5037 noaomodules
="sun $noaomodules"
5039 echores
"$_sunaudio"
5043 echocheck
"CoreAudio"
5044 if test "$_coreaudio" = auto
; then
5046 #include <CoreAudio/CoreAudio.h>
5047 #include <AudioToolbox/AudioToolbox.h>
5048 #include <AudioUnit/AudioUnit.h>
5049 int main(void) { return 0; }
5052 cc_check
-framework CoreAudio
-framework AudioUnit
-framework AudioToolbox
&& _coreaudio
=yes
5054 if test "$_coreaudio" = yes ; then
5055 libs_mplayer
="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5056 def_coreaudio
='#define CONFIG_COREAUDIO 1'
5057 aomodules
="coreaudio $aomodules"
5059 def_coreaudio
='#undef CONFIG_COREAUDIO'
5060 noaomodules
="coreaudio $noaomodules"
5067 echocheck
"SGI audio"
5068 if test "$_sgiaudio" = auto
; then
5070 header_check dmedia
/audio.h
&& _sgiaudio
=yes
5072 if test "$_sgiaudio" = "yes" ; then
5073 def_sgiaudio
='#define CONFIG_SGI_AUDIO 1'
5074 libs_mplayer
="$libs_mplayer -laudio"
5075 aomodules
="sgi $aomodules"
5077 def_sgiaudio
='#undef CONFIG_SGI_AUDIO'
5078 noaomodules
="sgi $noaomodules"
5080 echores
"$_sgiaudio"
5085 echocheck
"KAI (UNIAUD/DART)"
5086 if test "$_kai" = auto
; then
5088 header_check_broken os2.h kai.h
-lkai && _kai
=yes
5090 if test "$_kai" = yes ; then
5091 def_kai
='#define CONFIG_KAI 1'
5092 libs_mplayer
="$libs_mplayer -lkai"
5093 aomodules
="kai $aomodules"
5095 def_kai
='#undef CONFIG_KAI'
5096 noaomodules
="kai $noaomodules"
5101 if test "$_dart" = auto
; then
5103 header_check_broken os2.h dart.h
-ldart && _dart
=yes
5105 if test "$_dart" = yes ; then
5106 def_dart
='#define CONFIG_DART 1'
5107 libs_mplayer
="$libs_mplayer -ldart"
5108 aomodules
="dart $aomodules"
5110 def_dart
='#undef CONFIG_DART'
5111 noaomodules
="dart $noaomodules"
5117 # set default CD/DVD devices
5118 if win32 || os2
; then
5119 default_cdrom_device
="D:"
5121 default_cdrom_device
="/dev/disk1"
5122 elif dragonfly
; then
5123 default_cdrom_device
="/dev/cd0"
5125 default_cdrom_device
="/dev/acd0"
5127 default_cdrom_device
="/dev/rcd0c"
5129 default_cdrom_device
="/vol/dev/aliases/cdrom0"
5130 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5131 # file system and the volfs service.
5132 test -r "/cdrom/cdrom0" && default_cdrom_device
="/cdrom/cdrom0"
5134 default_cdrom_device
="a1ide.device:2"
5136 default_cdrom_device
="/dev/cdrom"
5139 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos
; then
5140 default_dvd_device
=$default_cdrom_device
5142 default_dvd_device
="/dev/rdiskN"
5144 default_dvd_device
="/dev/dvd"
5148 echocheck
"VCD support"
5149 if test "$_vcd" = auto
; then
5151 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2
; then
5154 header_check
ddk
/ntddcdrm.h
&& _vcd
=yes
5157 if test "$_vcd" = yes; then
5158 inputmodules
="vcd $inputmodules"
5159 def_vcd
='#define CONFIG_VCD 1'
5161 def_vcd
='#undef CONFIG_VCD'
5162 noinputmodules
="vcd $noinputmodules"
5163 res_comment
="not supported on this OS"
5169 echocheck
"Blu-ray support"
5170 if test "$_bluray" = auto
; then
5172 statement_check libbluray
/bluray.h
'bd_get_title_info(0, 0, 0)' -lbluray && _bluray
=yes
5174 if test "$_bluray" = yes ; then
5175 def_bluray
='#define CONFIG_LIBBLURAY 1'
5176 extra_ldflags
="$extra_ldflags -lbluray"
5177 inputmodules
="bluray $inputmodules"
5179 def_bluray
='#undef CONFIG_LIBBLURAY'
5180 noinputmodules
="bluray $noinputmodules"
5185 if test "$_dvdread_internal" = auto
&& test ! -f "libdvdread4/dvd_reader.c" ; then
5186 _dvdread_internal
=no
5188 if test "$_dvdread_internal" = auto
; then
5189 _dvdread_internal
=no
5191 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux
) &&
5192 (test "$_dvd" = yes ||
test "$_cdrom" = yes ||
test "$_cdio" = yes ||
5193 test "$_dvdio" = yes ||
test "$_bsdi_dvd" = yes) ||
5194 darwin || win32 || os2
; then
5195 _dvdread_internal
=yes
5197 extra_cflags
="-Ilibdvdread4 $extra_cflags"
5199 elif test "$_dvdread" = auto
; then
5201 if test "$_dl" = yes; then
5202 _dvdreadcflags
=$
($_dvdreadconfig --cflags 2> /dev
/null
)
5203 _dvdreadlibs
=$
($_dvdreadconfig --libs 2> /dev
/null
)
5204 if header_check dvdread
/dvd_reader.h
$_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5206 extra_cflags
="$extra_cflags $_dvdreadcflags"
5207 extra_ldflags
="$extra_ldflags $_dvdreadlibs"
5208 res_comment
="external"
5213 if test "$_dvdread_internal" = yes; then
5214 def_dvdread
='#define CONFIG_DVDREAD 1'
5215 inputmodules
="dvdread(internal) $inputmodules"
5216 res_comment
="internal"
5217 elif test "$_dvdread" = yes; then
5218 def_dvdread
='#define CONFIG_DVDREAD 1'
5219 extra_ldflags
="$extra_ldflags -ldvdread"
5220 inputmodules
="dvdread(external) $inputmodules"
5221 res_comment
="external"
5223 def_dvdread
='#undef CONFIG_DVDREAD'
5224 noinputmodules
="dvdread $noinputmodules"
5229 echocheck
"internal libdvdcss"
5230 if test "$_libdvdcss_internal" = auto
; then
5231 _libdvdcss_internal
=no
5232 test "$_dvdread_internal" = yes && test -d libdvdcss
&& _libdvdcss_internal
=yes
5233 hpux
&& test "$_hpux_scsi_h" = no
&& _libdvdcss_internal
=no
5235 if test "$_libdvdcss_internal" = yes ; then
5236 if linux || netbsd || openbsd || bsdos
; then
5237 def_dvd_linux
='#define HAVE_LINUX_DVD_STRUCT 1'
5238 openbsd
&& def_dvd_openbsd
='#define HAVE_OPENBSD_DVD_STRUCT 1'
5239 elif freebsd || dragonfly
; then
5240 def_dvd_bsd
='#define HAVE_BSD_DVD_STRUCT 1'
5242 def_dvd_darwin
='#define DARWIN_DVD_IOCTL'
5243 extra_ldflags
="$extra_ldflags -framework IOKit -framework Carbon"
5245 cflags_libdvdcss
="-DSYS_CYGWIN -DWIN32"
5247 cflags_libdvdcss
="-DSYS_BEOS"
5249 cflags_libdvdcss
="-DSYS_OS2"
5251 cflags_libdvdcss_dvdread
="-Ilibdvdcss"
5252 def_dvdcss
="#define HAVE_DVDCSS_DVDCSS_H 1"
5253 inputmodules
="libdvdcss(internal) $inputmodules"
5255 noinputmodules
="libdvdcss(internal) $noinputmodules"
5257 echores
"$_libdvdcss_internal"
5260 echocheck
"cdparanoia"
5261 if test "$_cdparanoia" = auto
; then
5263 #include <cdda_interface.h>
5264 #include <cdda_paranoia.h>
5265 // This need a better test. How ?
5266 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5269 for _inc_tmp
in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5270 cc_check
$_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5271 _cdparanoia
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
5274 if test "$_cdparanoia" = yes ; then
5276 extra_ldflags
="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5277 openbsd
&& extra_ldflags
="$extra_ldflags -lutil"
5279 echores
"$_cdparanoia"
5283 if test "$_libcdio" = auto
&& test "$_cdparanoia" = no
; then
5286 #include <cdio/version.h>
5287 #include <cdio/cdda.h>
5288 #include <cdio/paranoia.h>
5290 void *test = cdda_verbose_set;
5291 printf("%s\n", CDIO_VERSION);
5292 return test == (void *)1;
5296 for _ld_tmp
in "" "-lwinmm" ; do
5297 _ld_tmp
="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5298 cc_check
$_ld_tmp $_ld_lm && _libcdio
=yes &&
5299 extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5301 if test "$_libcdio" = no
&& $_pkg_config --exists libcdio_paranoia
; then
5302 _inc_tmp
=$
($_pkg_config --cflags libcdio_paranoia
)
5303 _ld_tmp
=$
($_pkg_config --libs libcdio_paranoia
)
5304 cc_check
$_inc_tmp $_ld_tmp $_ld_lm && _libcdio
=yes &&
5305 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5308 if test "$_libcdio" = yes && test "$_cdparanoia" = no
; then
5310 def_libcdio
='#define CONFIG_LIBCDIO 1'
5311 def_havelibcdio
='yes'
5314 if test "$_cdparanoia" = yes ; then
5315 res_comment
="using cdparanoia"
5317 def_libcdio
='#undef CONFIG_LIBCDIO'
5318 def_havelibcdio
='no'
5322 if test "$_cdda" = yes ; then
5323 test $_cddb = auto
&& test $networking = yes && _cddb
=yes
5324 def_cdparanoia
='#define CONFIG_CDDA 1'
5325 inputmodules
="cdda $inputmodules"
5327 def_cdparanoia
='#undef CONFIG_CDDA'
5328 noinputmodules
="cdda $noinputmodules"
5331 if test "$_cddb" = yes ; then
5332 def_cddb
='#define CONFIG_CDDB 1'
5333 inputmodules
="cddb $inputmodules"
5336 def_cddb
='#undef CONFIG_CDDB'
5337 noinputmodules
="cddb $noinputmodules"
5340 echocheck
"bitmap font support"
5341 if test "$_bitmap_font" = yes ; then
5342 def_bitmap_font
="#define CONFIG_BITMAP_FONT 1"
5344 def_bitmap_font
="#undef CONFIG_BITMAP_FONT"
5346 echores
"$_bitmap_font"
5349 echocheck
"freetype >= 2.0.9"
5351 # freetype depends on iconv
5352 if test "$_iconv" = no
; then
5354 res_comment
="iconv support needed"
5357 if test "$_freetype" = auto
; then
5358 if ( $_freetypeconfig --version ) >/dev
/null
2>&1 ; then
5361 #include <ft2build.h>
5362 #include FT_FREETYPE_H
5363 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5364 #error "Need FreeType 2.0.9 or newer"
5368 FT_Init_FreeType(&library);
5373 cc_check $
($_freetypeconfig --cflags) $
($_freetypeconfig --libs) && _freetype
=yes
5377 if test "$_freetype" != yes ; then
5378 die
"Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5381 if test "$_freetype" = yes ; then
5382 def_freetype
='#define CONFIG_FREETYPE 1'
5383 extra_cflags
="$extra_cflags $($_freetypeconfig --cflags)"
5384 extra_ldflags
="$extra_ldflags $($_freetypeconfig --libs)"
5386 def_freetype
='#undef CONFIG_FREETYPE'
5388 echores
"$_freetype"
5390 if test "$_freetype" = no
; then
5392 res_comment
="FreeType support needed"
5394 echocheck
"fontconfig"
5395 if test "$_fontconfig" = auto
; then
5399 #include <fontconfig/fontconfig.h>
5400 #if FC_VERSION < 20402
5401 #error At least version 2.4.2 of fontconfig required
5405 if (err == FcFalse) {
5406 printf("Couldn't initialize fontconfig lib\n");
5413 for _ld_tmp
in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5414 _ld_tmp
="-lfontconfig $_ld_tmp"
5415 cc_check
$_ld_tmp && _fontconfig
=yes && extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5417 if test "$_fontconfig" = no
&& $_pkg_config --exists fontconfig
; then
5418 _inc_tmp
=$
($_pkg_config --cflags fontconfig
)
5419 _ld_tmp
=$
($_pkg_config --libs fontconfig
)
5420 cc_check
$_inc_tmp $_ld_tmp && _fontconfig
=yes &&
5421 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5423 if test "$_fontconfig" != yes ; then
5424 die
"Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5427 if test "$_fontconfig" = yes ; then
5428 def_fontconfig
='#define CONFIG_FONTCONFIG 1'
5430 def_fontconfig
='#undef CONFIG_FONTCONFIG'
5432 echores
"$_fontconfig"
5435 echocheck
"SSA/ASS support"
5436 if test "$_ass" = auto
-o "$_ass" = yes ; then
5437 if $_pkg_config libass
; then
5439 def_ass
='#define CONFIG_ASS 1'
5440 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libass)"
5441 extra_cflags
="$extra_cflags $($_pkg_config --cflags libass)"
5443 die
"Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5446 def_ass
='#undef CONFIG_ASS'
5451 echocheck
"fribidi with charsets"
5454 if test "$_fribidi" = auto
; then
5457 /* workaround for fribidi 0.10.4 and below */
5458 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5459 #include <fribidi/fribidi.h>
5461 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5469 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5470 if $_pkg_config --exists fribidi
> /dev
/null
2>&1 &&
5471 test "$_fribidi" = no
; then
5472 _inc_tmp
="$($_pkg_config --cflags)"
5473 _ld_tmp
="$($_pkg_config --libs)"
5474 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5477 if test "$_fribidi" = yes ; then
5478 def_fribidi
='#define CONFIG_FRIBIDI 1'
5479 extra_cflags
="$extra_cflags $_inc_tmp"
5480 extra_ldflags
="$extra_ldflags $_ld_tmp"
5482 def_fribidi
='#undef CONFIG_FRIBIDI'
5488 if test "$_enca" = auto
; then
5490 statement_check enca.h
'enca_get_languages(NULL)' -lenca $_ld_lm && _enca
=yes
5492 if test "$_enca" = yes ; then
5493 def_enca
='#define CONFIG_ENCA 1'
5494 extra_ldflags
="$extra_ldflags -lenca"
5496 def_enca
='#undef CONFIG_ENCA'
5503 statement_check zlib.h
'inflate(0, Z_NO_FLUSH)' -lz && _zlib
=yes
5504 if test "$_zlib" = yes ; then
5505 def_zlib
='#define CONFIG_ZLIB 1'
5506 extra_ldflags
="$extra_ldflags -lz"
5508 def_zlib
='#define CONFIG_ZLIB 0'
5514 if test "$_rtc" = auto
; then
5516 #include <sys/ioctl.h>
5518 #include <linux/rtc.h>
5521 #define RTC_PIE_ON RTCIO_PIE_ON
5523 int main(void) { return RTC_PIE_ON; }
5526 cc_check
&& _rtc
=yes
5529 if test "$_rtc" = yes ; then
5530 def_rtc
='#define HAVE_RTC 1'
5532 def_rtc
='#undef HAVE_RTC'
5537 echocheck
"mad support"
5538 if test "$_mad" = auto
; then
5540 header_check mad.h
-lmad && _mad
=yes
5542 if test "$_mad" = yes ; then
5543 def_mad
='#define CONFIG_LIBMAD 1'
5544 extra_ldflags
="$extra_ldflags -lmad"
5545 codecmodules
="libmad $codecmodules"
5547 def_mad
='#undef CONFIG_LIBMAD'
5548 nocodecmodules
="libmad $nocodecmodules"
5552 echocheck
"OggVorbis support"
5553 if test "$_libvorbis" = auto
; then
5555 statement_check vorbis
/codec.h
'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis
=yes && _tremor
=no
5556 elif test "$_libvorbis" = yes ; then
5559 if test "$_tremor" = auto
; then
5561 statement_check tremor
/ivorbiscodec.h
'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor
=yes
5563 if test "$_tremor" = yes ; then
5565 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5566 def_tremor
='#define CONFIG_TREMOR 1'
5567 codecmodules
="tremor(external) $codecmodules"
5568 res_comment
="external Tremor"
5569 extra_ldflags
="$extra_ldflags -logg -lvorbisidec"
5570 elif test "$_libvorbis" = yes ; then
5572 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5573 codecmodules
="libvorbis $codecmodules"
5574 res_comment
="libvorbis"
5575 extra_ldflags
="$extra_ldflags -lvorbis -logg"
5578 nocodecmodules
="libvorbis $nocodecmodules"
5582 echocheck
"libspeex (version >= 1.1 required)"
5583 if test "$_speex" = auto
; then
5587 #include <speex/speex.h>
5588 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5590 cc_check
-lspeex $_ld_lm && _speex
=yes
5592 if test "$_speex" = yes ; then
5593 def_speex
='#define CONFIG_SPEEX 1'
5594 extra_ldflags
="$extra_ldflags -lspeex"
5595 codecmodules
="speex $codecmodules"
5597 def_speex
='#undef CONFIG_SPEEX'
5598 nocodecmodules
="speex $nocodecmodules"
5602 echocheck
"OggTheora support"
5603 if test "$_theora" = auto
; then
5606 #include <theora/theora.h>
5609 /* Theora is in flux, make sure that all interface routines and datatypes
5610 * exist and work the way we expect it, so we don't break MPlayer. */
5619 theora_info_init(&inf);
5620 theora_comment_init(&tc);
5624 /* we don't want to execute this kind of nonsense; just for making sure
5625 * that compilation works... */
5626 memset(&op, 0, sizeof(op));
5627 r = theora_decode_header(&inf, &tc, &op);
5628 r = theora_decode_init(&st, &inf);
5629 t = theora_granule_time(&st, op.granulepos);
5630 r = theora_decode_packetin(&st, &op);
5631 r = theora_decode_YUVout(&st, &yuv);
5637 _ld_theora
=$
($_pkg_config --silence-errors --libs theora
)
5638 _inc_theora
=$
($_pkg_config --silence-errors --cflags theora
)
5639 cc_check
$_inc_theora $_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" &&
5640 extra_cflags
="$extra_cflags $_inc_theora" && _theora
=yes
5641 if test _theora
= no
; then
5642 _ld_theora
="-ltheora -logg"
5643 cc_check
$_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" && _theora
=yes
5646 if test "$_theora" = yes ; then
5647 def_theora
='#define CONFIG_OGGTHEORA 1'
5648 codecmodules
="libtheora $codecmodules"
5649 # when --enable-theora is forced, we'd better provide a probably sane
5650 # $_ld_theora than nothing
5651 test -z "$_ld_theora" && extra_ldflags
="$extra_ldflags -ltheora -logg"
5653 def_theora
='#undef CONFIG_OGGTHEORA'
5654 nocodecmodules
="libtheora $nocodecmodules"
5658 # Any version of libmpg123 shall be fine.
5659 echocheck
"mpg123 support"
5660 def_mpg123
='#undef CONFIG_MPG123'
5661 if test "$_mpg123" = auto
; then
5663 statement_check mpg123.h
'mpg123_init()' -lmpg123 && _mpg123
=yes && extra_ldflags
="$extra_ldflags -lmpg123"
5665 if test "$_mpg123" = yes ; then
5666 def_mpg123
='#define CONFIG_MPG123 1'
5667 codecmodules
="mpg123 $codecmodules"
5669 nocodecmodules
="mpg123 $nocodecmodules"
5673 echocheck
"liba52 support"
5674 def_liba52
='#undef CONFIG_LIBA52'
5675 if test "$_liba52" = auto
; then
5678 #include <inttypes.h>
5679 #include <a52dec/a52.h>
5680 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5682 cc_check
-la52 && _liba52
=yes && extra_ldflags
="$extra_ldflags -la52"
5684 if test "$_liba52" = yes ; then
5685 def_liba52
='#define CONFIG_LIBA52 1'
5686 codecmodules
="liba52 $codecmodules"
5688 nocodecmodules
="liba52 $nocodecmodules"
5692 echocheck
"libdca support"
5693 if test "$_libdca" = auto
; then
5695 for _ld_dca
in -ldca -ldts ; do
5696 statement_check_broken stdint.h dts.h
'dts_init(0)' $_ld_dca $_ld_lm &&
5697 extra_ldflags
="$extra_ldflags $_ld_dca" && _libdca
=yes && break
5700 if test "$_libdca" = yes ; then
5701 def_libdca
='#define CONFIG_LIBDCA 1'
5702 codecmodules
="libdca $codecmodules"
5704 def_libdca
='#undef CONFIG_LIBDCA'
5705 nocodecmodules
="libdca $nocodecmodules"
5709 echocheck
"libmpcdec (musepack, version >= 1.2.1 required)"
5710 if test "$_musepack" = yes ; then
5714 #include <mpcdec/mpcdec.h>
5716 mpc_streaminfo info;
5717 mpc_decoder decoder;
5718 mpc_decoder_set_streaminfo(&decoder, &info);
5719 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5723 cc_check
-lmpcdec $_ld_lm && _musepack
=yes
5725 if test "$_musepack" = yes ; then
5726 def_musepack
='#define CONFIG_MUSEPACK 1'
5727 extra_ldflags
="$extra_ldflags -lmpcdec"
5728 codecmodules
="musepack $codecmodules"
5730 def_musepack
='#undef CONFIG_MUSEPACK'
5731 nocodecmodules
="musepack $nocodecmodules"
5733 echores
"$_musepack"
5736 echocheck
"FAAD2 support"
5737 if test "$_faad" = auto
; then
5741 #ifndef FAAD_MIN_STREAMSIZE
5742 #error Too old version
5744 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5745 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5747 cc_check
-lfaad $_ld_lm && _faad
=yes
5750 def_faad
='#undef CONFIG_FAAD'
5751 if test "$_faad" = yes ; then
5752 def_faad
='#define CONFIG_FAAD 1'
5753 extra_ldflags
="$extra_ldflags -lfaad"
5754 codecmodules
="faad2 $codecmodules"
5756 nocodecmodules
="faad2 $nocodecmodules"
5761 echocheck
"LADSPA plugin support"
5762 if test "$_ladspa" = auto
; then
5764 statement_check ladspa.h
'LADSPA_Descriptor ld = {0}' && _ladspa
=yes
5766 if test "$_ladspa" = yes; then
5767 def_ladspa
="#define CONFIG_LADSPA 1"
5769 def_ladspa
="#undef CONFIG_LADSPA"
5774 echocheck
"libbs2b audio filter support"
5775 if test "$_libbs2b" = auto
; then
5778 #if BS2B_VERSION_MAJOR < 3
5779 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5789 if $_pkg_config --exists libbs2b
; then
5790 _inc_tmp
=$
($_pkg_config --cflags libbs2b
)
5791 _ld_tmp
=$
($_pkg_config --libs libbs2b
)
5792 cc_check
$_inc_tmp $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
5793 extra_cflags
="$extra_cflags $_inc_tmp" && _libbs2b
=yes
5795 for _inc_tmp
in "" -I/usr
/include
/bs2b
-I/usr
/local
/include \
5796 -I/usr
/local
/include
/bs2b
; do
5797 if cc_check
$_inc_tmp $_ld_lm -lbs2b ; then
5798 extra_ldflags
="$extra_ldflags -lbs2b"
5799 extra_cflags
="$extra_cflags $_inc_tmp"
5806 def_libbs2b
="#undef CONFIG_LIBBS2B"
5807 test "$_libbs2b" = yes && def_libbs2b
="#define CONFIG_LIBBS2B 1"
5811 if test -z "$_codecsdir" ; then
5812 for dir
in "$_libdir/codecs" "$_libdir/win32" /usr
/local
/lib
/codecs \
5813 /usr
/lib
/codecs
/usr
/local
/lib
/win32
/usr
/lib
/win32
; do
5814 if test -d "$dir" ; then
5820 # Fall back on default directory.
5821 if test -z "$_codecsdir" ; then
5822 _codecsdir
="$_libdir/codecs"
5823 mingw32 || os2
&& _codecsdir
="codecs"
5827 echocheck
"Win32 codecs"
5828 if test "$_win32dll" = auto
; then
5830 if x86_32
&& ! qnx
; then
5834 if test "$_win32dll" = yes ; then
5835 def_win32dll
='#define CONFIG_WIN32DLL 1'
5837 def_win32_loader
='#define WIN32_LOADER 1'
5838 _win32_emulation
=yes
5840 extra_ldflags
="$extra_ldflags -ladvapi32 -lole32"
5841 res_comment
="using native windows"
5843 codecmodules
="win32 $codecmodules"
5845 def_win32dll
='#undef CONFIG_WIN32DLL'
5846 def_win32_loader
='#undef WIN32_LOADER'
5847 nocodecmodules
="win32 $nocodecmodules"
5849 echores
"$_win32dll"
5852 echocheck
"XAnim codecs"
5853 if test "$_xanim" = auto
; then
5855 res_comment
="dynamic loader support needed"
5856 if test "$_dl" = yes ; then
5860 if test "$_xanim" = yes ; then
5861 def_xanim
='#define CONFIG_XANIM 1'
5862 codecmodules
="xanim $codecmodules"
5864 def_xanim
='#undef CONFIG_XANIM'
5865 nocodecmodules
="xanim $nocodecmodules"
5870 echocheck
"RealPlayer codecs"
5871 if test "$_real" = auto
; then
5873 res_comment
="dynamic loader support needed"
5874 if test "$_dl" = yes ||
test "$_win32dll" = yes &&
5875 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2
) ; then
5879 if test "$_real" = yes ; then
5880 def_real
='#define CONFIG_REALCODECS 1'
5881 codecmodules
="real $codecmodules"
5883 def_real
='#undef CONFIG_REALCODECS'
5884 nocodecmodules
="real $nocodecmodules"
5889 echocheck
"QuickTime codecs"
5891 def_qtx_win32
='#undef CONFIG_QTX_CODECS_WIN32'
5892 if test "$_qtx" = auto
; then
5893 test "$_win32dll" = yes ||
test "$quicktime" = yes && _qtx
=yes
5895 if test "$_qtx" = yes ; then
5896 def_qtx
='#define CONFIG_QTX_CODECS 1'
5897 win32
&& _qtx_codecs_win32
=yes && def_qtx_win32
='#define CONFIG_QTX_CODECS_WIN32 1'
5898 codecmodules
="qtx $codecmodules"
5899 darwin || win32 || _qtx_emulation
=yes
5901 def_qtx
='#undef CONFIG_QTX_CODECS'
5902 nocodecmodules
="qtx $nocodecmodules"
5906 echocheck
"Nemesi Streaming Media libraries"
5907 if test "$_nemesi" = auto
&& test "$networking" = yes ; then
5909 if $_pkg_config libnemesi
--atleast-version=0.6.3 ; then
5910 extra_cflags
="$extra_cflags $($_pkg_config --cflags libnemesi)"
5911 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libnemesi)"
5915 if test "$_nemesi" = yes; then
5917 def_nemesi
='#define CONFIG_LIBNEMESI 1'
5918 inputmodules
="nemesi $inputmodules"
5920 _native_rtsp
="$networking"
5922 def_nemesi
='#undef CONFIG_LIBNEMESI'
5923 noinputmodules
="nemesi $noinputmodules"
5927 echocheck
"LIVE555 Streaming Media libraries"
5928 if test "$_live" = auto
&& test "$networking" = yes ; then
5929 cat > $TMPCPP << EOF
5930 #include <liveMedia.hh>
5931 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5932 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5934 int main(void) { return 0; }
5938 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
5939 cxx_check
$I/liveMedia
/include
$I/UsageEnvironment
/include
$I/groupsock
/include
&&
5940 _livelibdir
=$
(echo $I|
sed s
/-I//) &&
5941 extra_ldflags
="$_livelibdir/liveMedia/libliveMedia.a \
5942 $_livelibdir/groupsock/libgroupsock.a \
5943 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5944 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5945 $extra_ldflags -lstdc++" \
5946 extra_cxxflags
="-I$_livelibdir/liveMedia/include \
5947 -I$_livelibdir/UsageEnvironment/include \
5948 -I$_livelibdir/BasicUsageEnvironment/include \
5949 -I$_livelibdir/groupsock/include" &&
5952 if test "$_live" != yes ; then
5953 ld_tmp
="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5954 if cxx_check
-I/usr
/include
/liveMedia
-I/usr
/include
/UsageEnvironment
-I/usr
/include
/groupsock
$ld_tmp; then
5959 if test "$_live" = yes && test "$networking" = yes; then
5960 test $_livelibdir && res_comment
="using $_livelibdir"
5961 def_live
='#define CONFIG_LIVE555 1'
5962 inputmodules
="live555 $inputmodules"
5963 elif test "$_live_dist" = yes && test "$networking" = yes; then
5964 res_comment
="using distribution version"
5966 def_live
='#define CONFIG_LIVE555 1'
5967 extra_ldflags
="$extra_ldflags $ld_tmp"
5968 extra_cxxflags
="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5969 inputmodules
="live555 $inputmodules"
5972 def_live
='#undef CONFIG_LIVE555'
5973 noinputmodules
="live555 $noinputmodules"
5979 all_libav_libs
="libavutil libavcodec libavformat libswscale libpostproc"
5980 echocheck
"Libav ($all_libav_libs)"
5981 if test "$ffmpeg" = auto
; then
5983 if $_pkg_config --exists --print-errors $all_libav_libs ; then
5984 inc_ffmpeg
=$
($_pkg_config --cflags $all_libav_libs)
5985 _ld_tmp
=$
($_pkg_config --libs $all_libav_libs)
5986 extra_ldflags
="$extra_ldflags $_ld_tmp"
5987 extra_cflags
="$extra_cflags $inc_ffmpeg"
5989 elif header_check libavutil
/avutil.h
-lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
5990 extra_ldflags
="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
5993 die
"Unable to find development files for some of the Libav libraries above. Aborting. If you really mean to compile without Libav support use --disable-libav."
5998 def_ffmpeg_eval_api
="#undef CONFIG_FFMPEG_EVAL_API"
5999 if test "$ffmpeg" = yes; then
6000 def_ffmpeg
='#define CONFIG_FFMPEG 1'
6001 codecmodules
="ffmpeg $codecmodules"
6002 if $_pkg_config --atleast-version=50.33.0 libavutil
; then
6004 def_ffmpeg_eval_api
="#define CONFIG_FFMPEG_EVAL_API 1"
6007 def_ffmpeg
='#undef CONFIG_FFMPEG'
6008 nocodecmodules
="ffmpeg $nocodecmodules"
6012 def_ffmpeg_internals
="#undef CONFIG_FFMPEG_INTERNALS"
6013 if ! test -z "$_ffmpeg_source" ; then
6014 test "$ffmpeg" = yes && def_ffmpeg_internals
="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals
=yes
6019 echocheck
"libdv-0.9.5+"
6020 if test "$_libdv" = auto
; then
6022 statement_check libdv
/dv.h
'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv
=yes
6024 if test "$_libdv" = yes ; then
6025 def_libdv
='#define CONFIG_LIBDV095 1'
6026 extra_ldflags
="$extra_ldflags -ldv"
6027 codecmodules
="libdv $codecmodules"
6029 def_libdv
='#undef CONFIG_LIBDV095'
6030 nocodecmodules
="libdv $nocodecmodules"
6036 if test "$_xvid" = auto
; then
6038 for _ld_tmp
in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6039 statement_check xvid.h
'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6040 extra_ldflags
="$extra_ldflags $_ld_tmp" && _xvid
=yes && break
6044 if test "$_xvid" = yes ; then
6045 def_xvid
='#define CONFIG_XVID4 1'
6046 codecmodules
="xvid $codecmodules"
6048 def_xvid
='#undef CONFIG_XVID4'
6049 nocodecmodules
="xvid $nocodecmodules"
6055 if test "$_libnut" = auto
; then
6057 statement_check libnut.h
'nut_context_tt * nut; nut_error(0)' -lnut && _libnut
=yes
6060 if test "$_libnut" = yes ; then
6061 def_libnut
='#define CONFIG_LIBNUT 1'
6062 extra_ldflags
="$extra_ldflags -lnut"
6064 def_libnut
='#undef CONFIG_LIBNUT'
6068 # These VO checks must be done after the FFmpeg one
6069 echocheck
"/dev/mga_vid"
6070 if test "$_mga" = auto
; then
6072 test -c /dev
/mga_vid
&& _mga
=yes
6074 if test "$_mga" = yes ; then
6075 def_mga
='#define CONFIG_MGA 1'
6076 vomodules
="mga $vomodules"
6078 def_mga
='#undef CONFIG_MGA'
6079 novomodules
="mga $novomodules"
6085 if test "$_xmga" = auto
; then
6087 test "$_x11" = yes && test "$_mga" = yes && _xmga
=yes
6089 if test "$_xmga" = yes ; then
6090 def_xmga
='#define CONFIG_XMGA 1'
6091 vomodules
="xmga $vomodules"
6093 def_xmga
='#undef CONFIG_XMGA'
6094 novomodules
="xmga $novomodules"
6099 echocheck
"UnRAR executable"
6100 if test "$_unrar_exec" = auto
; then
6102 mingw32
&& _unrar_exec
="no"
6104 if test "$_unrar_exec" = yes ; then
6105 def_unrar_exec
='#define CONFIG_UNRAR_EXEC 1'
6107 def_unrar_exec
='#undef CONFIG_UNRAR_EXEC'
6109 echores
"$_unrar_exec"
6111 echocheck
"TV interface"
6112 if test "$_tv" = yes ; then
6113 def_tv
='#define CONFIG_TV 1'
6114 inputmodules
="tv $inputmodules"
6116 noinputmodules
="tv $noinputmodules"
6117 def_tv
='#undef CONFIG_TV'
6122 if freebsd || netbsd || openbsd || dragonfly || bsdos
; then
6123 echocheck
"*BSD BT848 bt8xx header"
6125 for file in "machine/ioctl_bt848.h" \
6126 "dev/bktr/ioctl_bt848.h" \
6127 "dev/video/bktr/ioctl_bt848.h" \
6128 "dev/ic/bt8xx.h" ; do
6130 #include <sys/types.h>
6131 #include <sys/ioctl.h>
6133 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6137 _ioctl_bt848_h_name
="$file"
6141 if test "$_ioctl_bt848_h" = yes ; then
6142 def_ioctl_bt848_h_name
="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6143 res_comment
="using $_ioctl_bt848_h_name"
6145 def_ioctl_bt848_h_name
="#undef IOCTL_BT848_H_NAME"
6147 echores
"$_ioctl_bt848_h"
6149 echocheck
"*BSD ioctl_meteor.h"
6151 for ioctl_meteor_h_path
in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6152 statement_check_broken
"sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6153 _ioctl_meteor_h
=yes && break
6155 if test "$_ioctl_meteor_h" = yes ; then
6156 def_ioctl_meteor_h_name
="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6157 res_comment
="using $ioctl_meteor_h_path"
6159 def_ioctl_meteor_h_name
="#undef IOCTL_METEOR_H_NAME"
6161 echores
"$_ioctl_meteor_h"
6163 echocheck
"*BSD BrookTree 848 TV interface"
6164 if test "$_tv_bsdbt848" = auto
; then
6166 if test "$_tv" = yes ; then
6168 #include <sys/types.h>
6169 $def_ioctl_meteor_h_name
6170 $def_ioctl_bt848_h_name
6171 #ifdef IOCTL_METEOR_H_NAME
6172 #include IOCTL_METEOR_H_NAME
6174 #ifdef IOCTL_BT848_H_NAME
6175 #include IOCTL_BT848_H_NAME
6178 ioctl(0, METEORSINPUT, 0);
6179 ioctl(0, TVTUNER_GETFREQ, 0);
6183 cc_check
&& _tv_bsdbt848
=yes
6186 if test "$_tv_bsdbt848" = yes ; then
6187 def_tv_bsdbt848
='#define CONFIG_TV_BSDBT848 1'
6188 inputmodules
="tv-bsdbt848 $inputmodules"
6190 def_tv_bsdbt848
='#undef CONFIG_TV_BSDBT848'
6191 noinputmodules
="tv-bsdbt848 $noinputmodules"
6193 echores
"$_tv_bsdbt848"
6194 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6197 echocheck
"DirectShow TV interface"
6198 if test "$_tv_dshow" = auto
; then
6200 if test "$_tv" = yes && win32
; then
6201 statement_check ole2.h
'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow
=yes
6204 if test "$_tv_dshow" = yes ; then
6205 inputmodules
="tv-dshow $inputmodules"
6206 def_tv_dshow
='#define CONFIG_TV_DSHOW 1'
6207 extra_ldflags
="$extra_ldflags -lole32 -luuid"
6209 noinputmodules
="tv-dshow $noinputmodules"
6210 def_tv_dshow
='#undef CONFIG_TV_DSHOW'
6212 echores
"$_tv_dshow"
6215 echocheck
"Video 4 Linux TV interface"
6216 if test "$_tv_v4l1" = auto
; then
6218 if test "$_tv" = yes && linux
; then
6219 header_check_broken sys
/time.h linux
/videodev.h
&& _tv_v4l1
=yes
6222 if test "$_tv_v4l1" = yes ; then
6225 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6226 def_tv_v4l1
='#define CONFIG_TV_V4L1 1'
6227 inputmodules
="tv-v4l $inputmodules"
6229 noinputmodules
="tv-v4l1 $noinputmodules"
6230 def_tv_v4l
='#undef CONFIG_TV_V4L'
6235 echocheck
"Video 4 Linux 2 TV interface"
6236 if test "$_tv_v4l2" = auto
; then
6238 if test "$_tv" = yes && linux
; then
6239 header_check_broken sys
/time.h linux
/videodev2.h
&& _tv_v4l2
=yes
6240 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
6244 if test "$_tv_v4l2" = yes ; then
6247 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6248 def_tv_v4l2
='#define CONFIG_TV_V4L2 1'
6249 inputmodules
="tv-v4l2 $inputmodules"
6251 noinputmodules
="tv-v4l2 $noinputmodules"
6252 def_tv_v4l2
='#undef CONFIG_TV_V4L2'
6257 echocheck
"Radio interface"
6258 if test "$_radio" = yes ; then
6259 def_radio
='#define CONFIG_RADIO 1'
6260 inputmodules
="radio $inputmodules"
6261 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6264 if test "$_radio_capture" = yes ; then
6266 def_radio_capture
="#define CONFIG_RADIO_CAPTURE 1"
6268 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6271 noinputmodules
="radio $noinputmodules"
6272 def_radio
='#undef CONFIG_RADIO'
6273 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6277 echocheck
"Capture for Radio interface"
6278 echores
"$_radio_capture"
6280 echocheck
"Video 4 Linux 2 Radio interface"
6281 if test "$_radio_v4l2" = auto
; then
6283 if test "$_radio" = yes && linux
; then
6284 header_check linux
/videodev2.h
&& _radio_v4l2
=yes
6287 if test "$_radio_v4l2" = yes ; then
6288 def_radio_v4l2
='#define CONFIG_RADIO_V4L2 1'
6290 def_radio_v4l2
='#undef CONFIG_RADIO_V4L2'
6292 echores
"$_radio_v4l2"
6294 echocheck
"Video 4 Linux Radio interface"
6295 if test "$_radio_v4l" = auto
; then
6297 if test "$_radio" = yes && linux
; then
6298 header_check linux
/videodev.h
&& _radio_v4l
=yes
6301 if test "$_radio_v4l" = yes ; then
6302 def_radio_v4l
='#define CONFIG_RADIO_V4L 1'
6304 def_radio_v4l
='#undef CONFIG_RADIO_V4L'
6306 echores
"$_radio_v4l"
6308 if freebsd || netbsd || openbsd || dragonfly || bsdos
&&
6309 test "$_radio" = yes && test "$_radio_bsdbt848" = auto
; then
6310 echocheck
"*BSD BrookTree 848 Radio interface"
6313 #include <sys/types.h>
6314 $def_ioctl_bt848_h_name
6315 #ifdef IOCTL_BT848_H_NAME
6316 #include IOCTL_BT848_H_NAME
6318 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6320 cc_check
&& _radio_bsdbt848
=yes
6321 echores
"$_radio_bsdbt848"
6322 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6324 if test "$_radio_bsdbt848" = yes ; then
6325 def_radio_bsdbt848
='#define CONFIG_RADIO_BSDBT848 1'
6327 def_radio_bsdbt848
='#undef CONFIG_RADIO_BSDBT848'
6330 if test "$_radio_v4l" = no
&& test "$_radio_v4l2" = no
&&
6331 test "$_radio_bsdbt848" = no
&& test "$_radio" = yes ; then
6332 die
"Radio driver requires BSD BT848, V4L or V4L2!"
6335 echocheck
"Video 4 Linux 2 MPEG PVR interface"
6336 if test "$_pvr" = auto
; then
6338 if test "$_tv_v4l2" = yes && linux
; then
6340 #include <sys/time.h>
6341 #include <linux/videodev2.h>
6342 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6344 cc_check
&& _pvr
=yes
6347 if test "$_pvr" = yes ; then
6348 def_pvr
='#define CONFIG_PVR 1'
6349 inputmodules
="pvr $inputmodules"
6351 noinputmodules
="pvr $noinputmodules"
6352 def_pvr
='#undef CONFIG_PVR'
6358 if test "$_ftp" = "auto" ; then
6359 test "$networking" = "yes" && ! beos
&& _ftp
=yes
6361 if test "$_ftp" = yes ; then
6362 def_ftp
='#define CONFIG_FTP 1'
6363 inputmodules
="ftp $inputmodules"
6365 noinputmodules
="ftp $noinputmodules"
6366 def_ftp
='#undef CONFIG_FTP'
6370 echocheck
"vstream client"
6371 if test "$_vstream" = auto
; then
6374 #include <vstream-client.h>
6375 void vstream_error(const char *format, ... ) {}
6376 int main(void) { vstream_start(); return 0; }
6378 cc_check
-lvstream-client && _vstream
=yes
6380 if test "$_vstream" = yes ; then
6381 def_vstream
='#define CONFIG_VSTREAM 1'
6382 inputmodules
="vstream $inputmodules"
6383 extra_ldflags
="$extra_ldflags -lvstream-client"
6385 noinputmodules
="vstream $noinputmodules"
6386 def_vstream
='#undef CONFIG_VSTREAM'
6391 echocheck
"OSD menu"
6392 if test "$_menu" = yes ; then
6393 def_menu
='#define CONFIG_MENU 1'
6394 test $_dvbin = "yes" && _menu_dvbin
=yes
6396 def_menu
='#undef CONFIG_MENU'
6402 echocheck
"Subtitles sorting"
6403 if test "$_sortsub" = yes ; then
6404 def_sortsub
='#define CONFIG_SORTSUB 1'
6406 def_sortsub
='#undef CONFIG_SORTSUB'
6411 echocheck
"XMMS inputplugin support"
6412 if test "$_xmms" = yes ; then
6413 if ( xmms-config
--version ) >/dev
/null
2>&1 ; then
6414 _xmmsplugindir
=$
(xmms-config
--input-plugin-dir)
6415 _xmmslibdir
=$
(xmms-config
--exec-prefix)/lib
6417 _xmmsplugindir
=/usr
/lib
/xmms
/Input
6418 _xmmslibdir
=/usr
/lib
6421 def_xmms
='#define CONFIG_XMMS 1'
6423 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6425 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6428 def_xmms
='#undef CONFIG_XMMS'
6432 if test "$_charset" != "noconv" ; then
6433 def_charset
="#define MSG_CHARSET \"$_charset\""
6435 def_charset
="#undef MSG_CHARSET"
6439 #############################################################################
6441 echocheck
"automatic gdb attach"
6442 if test "$_crash_debug" = yes ; then
6443 def_crash_debug
='#define CONFIG_CRASH_DEBUG 1'
6445 def_crash_debug
='#undef CONFIG_CRASH_DEBUG'
6448 echores
"$_crash_debug"
6450 echocheck
"compiler support for noexecstack"
6451 if cflag_check
-Wl,-z,noexecstack
; then
6452 extra_ldflags
="-Wl,-z,noexecstack $extra_ldflags"
6458 echocheck
"linker support for --nxcompat --no-seh --dynamicbase"
6459 if cflag_check
"-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6460 extra_ldflags
="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6467 # Dynamic linking flags
6468 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6470 freebsd || netbsd || openbsd || dragonfly || bsdos
&& _ld_dl_dynamic
='-rdynamic'
6471 if test "$_real" = yes ||
test "$_xanim" = yes && ! win32
&& ! qnx
&& ! darwin
&& ! os2
&& ! sunos
; then
6472 _ld_dl_dynamic
='-rdynamic'
6475 extra_ldflags
="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6476 bsdos
&& extra_ldflags
="$extra_ldflags -ldvd"
6477 (netbsd || openbsd
) && x86_32
&& extra_ldflags
="$extra_ldflags -li386"
6479 def_debug
='#undef MP_DEBUG'
6480 test "$_debug" != "" && def_debug
='#define MP_DEBUG 1'
6483 echocheck
"joystick"
6484 def_joystick
='#undef CONFIG_JOYSTICK'
6485 if test "$_joystick" = yes ; then
6486 if linux || freebsd
; then
6487 # TODO add some check
6488 def_joystick
='#define CONFIG_JOYSTICK 1'
6491 res_comment
="unsupported under $system_name"
6494 echores
"$_joystick"
6497 if test "$_lirc" = auto
; then
6499 header_check lirc
/lirc_client.h
-llirc_client && _lirc
=yes
6501 if test "$_lirc" = yes ; then
6502 def_lirc
='#define CONFIG_LIRC 1'
6503 libs_mplayer
="$libs_mplayer -llirc_client"
6505 def_lirc
='#undef CONFIG_LIRC'
6510 if test "$_lircc" = auto
; then
6512 header_check lirc
/lircc.h
-llircc && _lircc
=yes
6514 if test "$_lircc" = yes ; then
6515 def_lircc
='#define CONFIG_LIRCC 1'
6516 libs_mplayer
="$libs_mplayer -llircc"
6518 def_lircc
='#undef CONFIG_LIRCC'
6522 #############################################################################
6524 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6525 # the OMF format needs to come after the 'extern symbol prefix' check, which
6528 extra_ldflags
="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6531 #############################################################################
6533 CFLAGS
="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6535 CXXFLAGS
=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6537 # This must be the last test to be performed. Any other tests following it
6538 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6539 # against libdvdread (to permit MPlayer to use its own copy of the library).
6540 # So any compilation using the flags added here but not linking against
6541 # libdvdread can fail.
6542 echocheck
"DVD support (libdvdnav)"
6543 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6547 if test "$_dvdnav" = auto
; then
6548 if test "$_dvdread_internal" = yes ; then
6551 res_comment
="internal"
6553 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav
=no
6556 if test "$_dvdnav" = auto
; then
6558 _dvdnavdir
=$
($_dvdnavconfig --cflags)
6559 _dvdnavlibs
=$
($_dvdnavconfig --libs)
6560 statement_check_broken stdint.h dvdnav
/dvdnav.h
'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav
=yes
6562 if test "$_dvdnav" = yes ; then
6563 def_dvdnav
='#define CONFIG_DVDNAV 1'
6564 if test "$dvdnav_internal" = yes ; then
6565 cflags_libdvdnav
="-Ilibdvdnav"
6566 inputmodules
="dvdnav(internal) $inputmodules"
6568 extra_cflags
="$extra_cflags $($_dvdnavconfig --cflags)"
6569 extra_ldflags
="$extra_ldflags $($_dvdnavconfig --minilibs)"
6570 inputmodules
="dvdnav $inputmodules"
6573 def_dvdnav
='#undef CONFIG_DVDNAV'
6574 noinputmodules
="dvdnav $noinputmodules"
6578 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6579 # Read dvdnav comment above.
6582 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6583 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6585 for part
in $list; do
6586 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6587 echo "${nprefix}_$part = yes"
6592 #############################################################################
6593 echo "Creating config.mak"
6594 cat > config.mak
<< EOF
6595 # -------- Generated by configure -----------
6597 # Ensure that locale settings do not interfere with shell commands.
6600 CONFIGURATION = $configuration
6603 DOC_LANGS = $language_doc
6604 DOC_LANG_ALL = $doc_lang_all
6605 MAN_LANGS = $language_man
6606 MAN_LANG_ALL = $man_lang_all
6607 MSG_LANGS = $language_msg
6608 MSG_LANG_ALL = $msg_lang_all
6610 prefix = \$(DESTDIR)$_prefix
6611 BINDIR = \$(DESTDIR)$_bindir
6612 DATADIR = \$(DESTDIR)$_datadir
6613 LIBDIR = \$(DESTDIR)$_libdir
6614 MANDIR = \$(DESTDIR)$_mandir
6615 CONFDIR = \$(DESTDIR)$_confdir
6616 LOCALEDIR = \$(DESTDIR)$_localedir
6624 INSTALLSTRIP = $_install_strip
6627 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6628 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6629 DEPFLAGS = $DEPFLAGS
6631 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6632 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6633 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6634 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6635 CFLAGS_STACKREALIGN = $cflags_stackrealign
6637 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6638 EXTRALIBS_MPLAYER = $libs_mplayer
6647 $(mak_enable "$arch_all" "$arch" ARCH)
6648 $(mak_enable "$subarch_all" "$subarch" ARCH)
6649 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6653 NEED_GETTIMEOFDAY = $need_gettimeofday
6654 NEED_GLOB = $need_glob
6655 NEED_MMAP = $need_mmap
6656 NEED_SETENV = $need_setenv
6657 NEED_SHMEM = $need_shmem
6658 NEED_STRSEP = $need_strsep
6659 NEED_SWAB = $need_swab
6660 NEED_VSSCANF = $need_vsscanf
6668 APPLE_IR = $_apple_ir
6669 APPLE_REMOTE = $_apple_remote
6671 AUDIO_INPUT = $_audio_input
6672 BITMAP_FONT = $_bitmap_font
6677 COREAUDIO = $_coreaudio
6678 COREVIDEO = $_corevideo
6681 DIRECT3D = $_direct3d
6682 DIRECTFB = $_directfb
6686 DVDNAV_INTERNAL = $dvdnav_internal
6688 DVDREAD_INTERNAL = $_dvdread_internal
6692 FASTMEMCPY = $_fastmemcpy
6694 FREETYPE = $_freetype
6699 GL_WIN32 = $_gl_win32
6702 HAVE_POSIX_SELECT = $_posix_select
6703 HAVE_SYS_MMAN_H = $_mman
6706 JOYSTICK = $_joystick
6713 LIBBLURAY = $_bluray
6717 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6720 LIBMENU_DVBIN = $_menu_dvbin
6721 LIBNEMESI = $_nemesi
6723 LIBSMBCLIENT = $_smb
6724 LIBTHEORA = $_theora
6727 MACOSX_FINDER = $_macosx_finder
6732 MUSEPACK = $_musepack
6734 NATIVE_RTSP = $_native_rtsp
6735 NETWORKING = $networking
6738 PE_EXECUTABLE = $_pe_executable
6741 PRIORITY = $_priority
6745 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6746 QTX_EMULATION = $_qtx_emulation
6749 RADIO_CAPTURE=$_radio_capture
6750 REAL_CODECS = $_real
6755 STREAM_CACHE = $_stream_cache
6756 SGIAUDIO = $_sgiaudio
6757 SUNAUDIO = $_sunaudio
6763 TV_BSDBT848 = $_tv_bsdbt848
6764 TV_DSHOW = $_tv_dshow
6768 UNRAR_EXEC = $_unrar_exec
6776 WIN32DLL = $_win32dll
6777 WIN32WAVEOUT = $_win32waveout
6778 WIN32_EMULATION = $_win32_emulation
6780 XANIM_CODECS = $_xanim
6782 XMMS_PLUGINS = $_xmms
6786 YUV4MPEG = $_yuv4mpeg
6790 FFMPEG_EVAL_API = $ffmpeg_eval_api
6791 FFMPEG_INTERNALS = $ffmpeg_internals
6792 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6796 YASMFLAGS = $YASMFLAGS
6798 CONFIG_VDPAU = $_vdpau
6799 CONFIG_ZLIB = $_zlib
6801 HAVE_PTHREADS = $_pthreads
6803 HAVE_W32THREADS = $_w32threads
6804 HAVE_YASM = $have_yasm
6808 #############################################################################
6810 ff_config_enable
() {
6811 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6812 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6814 test -z "$_nprefix" && _nprefix
='CONFIG'
6815 for part
in $list; do
6816 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6817 echo "#define ${_nprefix}_$part 1"
6819 echo "#define ${_nprefix}_$part 0"
6824 echo "Creating config.h"
6826 /*----------------------------------------------------------------------------
6827 ** This file has been automatically generated by configure any changes in it
6828 ** will be lost when you run configure again.
6829 ** Instead of modifying definitions here, use the --enable/--disable options
6830 ** of the configure script! See ./configure --help for details.
6831 *---------------------------------------------------------------------------*/
6833 #ifndef MPLAYER_CONFIG_H
6834 #define MPLAYER_CONFIG_H
6836 /* Undefine this if you do not want to select mono audio (left or right)
6837 with a stereo MPEG layer 2/3 audio stream. The command line option
6838 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6839 right-only), with 0 being the default.
6841 #define CONFIG_FAKE_MONO 1
6843 /* set up audio OUTBURST. Do not change this! */
6844 #define OUTBURST 512
6846 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6848 #undef FAST_OSD_TABLE
6852 #define CONFIGURATION "$configuration"
6854 #define MPLAYER_DATADIR "$_datadir"
6855 #define MPLAYER_CONFDIR "$_confdir"
6856 #define MPLAYER_LOCALEDIR "$_localedir"
6860 /* definitions needed by included libraries */
6861 #define HAVE_INTTYPES_H 1
6863 #define HAVE_ERRNO_H 1
6864 /* libdvdcss + libdvdread */
6865 #define HAVE_LIMITS_H 1
6867 #define HAVE_UNISTD_H 1
6869 #define STDC_HEADERS 1
6870 #define HAVE_MEMCPY 1
6872 #define READ_CACHE_TRACE 0
6874 #define HAVE_DLFCN_H 1
6878 /* system headers */
6880 $def_alsa_asoundlib_h
6884 $def_mman_has_map_failed
6886 $def_sys_asoundlib_h
6887 $def_sys_soundcard_h
6895 /* system functions */
6918 /* system-specific features */
6931 $def_restrict_keyword
6936 /* configurable options */
6942 $def_runtime_cpudetection
6950 #define __CPU__ $iproc
6954 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6955 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6956 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6959 /* Blu-ray/DVD/VCD/CD */
6960 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6961 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6982 /* codec libraries */
7008 #define BINARY_CODECS_PATH "$_codecsdir"
7009 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7012 /* Audio output drivers */
7028 $def_ossaudio_devdsp
7029 $def_ossaudio_devmixer
7043 $def_ioctl_bt848_h_name
7044 $def_ioctl_meteor_h_name
7144 $def_ffmpeg_eval_api
7145 $def_ffmpeg_internals
7169 #define HAVE_INLINE_ASM 1
7171 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7173 #define HAVE_EBP_AVAILABLE 1
7175 #define HAVE_EBP_AVAILABLE 0
7178 #endif /* MPLAYER_CONFIG_H */
7181 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7182 cmp -s "$TMPH" config.h ||
mv -f "$TMPH" config.h
7184 #############################################################################
7188 Config files successfully generated by ./configure $configuration !
7190 Install prefix: $_prefix
7191 Data directory: $_datadir
7192 Config direct.: $_confdir
7194 Byte order: $_byte_order
7195 Optimizing for: $_optimizing
7198 Messages (in addition to English): $language_msg
7199 Manual pages: $language_man
7200 Documentation: $language_doc
7202 Enabled optional drivers:
7203 Input: $inputmodules
7204 Codecs: $codecmodules
7205 Audio output: $aomodules
7206 Video output: $vomodules
7208 Disabled optional drivers:
7209 Input: $noinputmodules
7210 Codecs: $nocodecmodules
7211 Audio output: $noaomodules
7212 Video output: $novomodules
7214 'config.h' and 'config.mak' contain your configuration options.
7215 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7216 compile *** DO NOT REPORT BUGS if you tweak these files ***
7218 'make' will now compile MPlayer and 'make install' will install it.
7219 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7224 if test "$_mtrr" = yes ; then
7225 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7231 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7232 operating system ($system_name). You may encounter a few files that cannot
7233 be played due to missing open source video/audio codec support.
7240 Check $TMPLOG if you wonder why an autodetection failed (make sure
7241 development headers/packages are installed).
7243 NOTE: The --enable-* parameters unconditionally force options on, completely
7244 skipping autodetection. This behavior is unlike what you may be used to from
7245 autoconf-based configure scripts that can decide to override you. This greater
7246 level of control comes at a price. You may have to provide the correct compiler
7247 and linker flags yourself.
7248 If you used one of these options (except --enable-menu and similar ones that
7249 turn on internal features) and experience a compilation or linking failure,
7250 make sure you have passed the necessary compiler/linker flags to configure.
7252 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7256 if test "$warn_cflags" = yes; then
7259 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7262 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7264 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7265 To do so, execute 'CFLAGS= ./configure <options>'
7271 rm -rf "$mplayer_tmpdir"