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 --disable-sortsub disable subtitle sorting [enabled]
338 --enable-fribidi enable the FriBiDi libs [autodetect]
339 --disable-enca disable ENCA charset oracle library [autodetect]
340 --enable-macosx-finder enable Mac OS X Finder invocation parameter
342 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
343 --disable-inet6 disable IPv6 support [autodetect]
344 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
345 --disable-ftp disable FTP support [enabled]
346 --disable-vstream disable TiVo vstream client support [autodetect]
347 --disable-pthreads disable Posix threads support [autodetect]
348 --disable-w32threads disable Win32 threads support [autodetect]
349 --disable-libass disable subtitle rendering with libass [autodetect]
350 --enable-rpath enable runtime linker path for extra libs [disabled]
353 --enable-gif enable GIF support [autodetect]
354 --enable-png enable PNG input/output support [autodetect]
355 --enable-mng enable MNG input support [autodetect]
356 --enable-jpeg enable JPEG input/output support [autodetect]
357 --enable-libcdio enable libcdio support [autodetect]
358 --disable-win32dll disable Win32 DLL support [autodetect]
359 --disable-qtx disable QuickTime codecs support [enabled]
360 --disable-xanim disable XAnim codecs support [enabled]
361 --disable-real disable RealPlayer codecs support [enabled]
362 --disable-xvid disable Xvid [autodetect]
363 --disable-libnut disable libnut [autodetect]
364 --enable-libav skip Libav autodetection [autodetect]
365 --disable-libvorbis disable libvorbis support [autodetect]
366 --disable-tremor disable Tremor [autodetect if no libvorbis]
367 --disable-speex disable Speex support [autodetect]
368 --enable-theora enable OggTheora libraries [autodetect]
369 --enable-faad enable FAAD2 (AAC) [autodetect]
370 --disable-ladspa disable LADSPA plugin support [autodetect]
371 --disable-libbs2b disable libbs2b audio filter support [autodetect]
372 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
373 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
374 --disable-mad disable libmad (MPEG audio) support [autodetect]
375 --enable-xmms enable XMMS input plugin support [disabled]
376 --enable-libdca enable libdca support [autodetect]
377 --disable-liba52 disable liba52 [autodetect]
378 --enable-musepack enable libmpcdec support (deprecated, libavcodec
379 Musepack decoder is preferred) [disabled]
382 --enable-gl enable OpenGL video output [autodetect]
383 --enable-dga2 enable DGA 2 support [autodetect]
384 --enable-dga1 enable DGA 1 support [autodetect]
385 --enable-vesa enable VESA video output [autodetect]
386 --enable-svga enable SVGAlib video output [autodetect]
387 --enable-sdl enable SDL video output [autodetect]
388 --enable-kva enable KVA video output [autodetect]
389 --enable-aa enable AAlib video output [autodetect]
390 --enable-caca enable CACA video output [autodetect]
391 --enable-ggi enable GGI video output [autodetect]
392 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
393 --enable-direct3d enable Direct3D video output [autodetect]
394 --enable-directx enable DirectX video output [autodetect]
395 --enable-dxr3 enable DXR3/H+ video output [autodetect]
396 --enable-ivtv enable IVTV TV-Out video output [autodetect]
397 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
398 --enable-dvb enable DVB video output [autodetect]
399 --enable-mga enable mga_vid video output [autodetect]
400 --enable-xmga enable mga_vid X11 video output [autodetect]
401 --enable-xv enable Xv video output [autodetect]
402 --enable-vdpau enable VDPAU acceleration [autodetect]
403 --enable-vm enable XF86VidMode support [autodetect]
404 --enable-xinerama enable Xinerama support [autodetect]
405 --enable-x11 enable X11 video output [autodetect]
406 --enable-xshape enable XShape support [autodetect]
407 --disable-xss disable screensaver support via xss [autodetect]
408 --enable-fbdev enable FBDev video output [autodetect]
409 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
410 --enable-tdfxfb enable tdfxfb video output [disable]
411 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
412 --enable-wii enable Nintendo Wii/GameCube video output [disable]
413 --enable-directfb enable DirectFB video output [autodetect]
414 --enable-bl enable Blinkenlights video output [disable]
415 --enable-tdfxvid enable tdfx_vid video output [disable]
416 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
417 --disable-tga disable Targa video output [enable]
418 --disable-pnm disable PNM video output [enable]
419 --disable-md5sum disable md5sum video output [enable]
420 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
421 --disable-corevideo disable CoreVideo video output [autodetect]
422 --disable-cocoa disable Cocoa OpenGL backend [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 --ffmpeg-source-dir=*)
1030 _ffmpeg_source
=$
(echo $ac_option | cut
-d '=' -f 2 ) ;;
1032 --enable-lirc) _lirc
=yes ;;
1033 --disable-lirc) _lirc
=no
;;
1034 --enable-lircc) _lircc
=yes ;;
1035 --disable-lircc) _lircc
=no
;;
1036 --enable-apple-remote) _apple_remote
=yes ;;
1037 --disable-apple-remote) _apple_remote
=no
;;
1038 --enable-apple-ir) _apple_ir
=yes ;;
1039 --disable-apple-ir) _apple_ir
=no
;;
1040 --enable-termcap) _termcap
=yes ;;
1041 --disable-termcap) _termcap
=no
;;
1042 --enable-termios) _termios
=yes ;;
1043 --disable-termios) _termios
=no
;;
1044 --enable-3dfx) _3dfx
=yes ;;
1045 --disable-3dfx) _3dfx
=no
;;
1046 --enable-s3fb) _s3fb
=yes ;;
1047 --disable-s3fb) _s3fb
=no
;;
1048 --enable-wii) _wii
=yes ;;
1049 --disable-wii) _wii
=no
;;
1050 --enable-tdfxfb) _tdfxfb
=yes ;;
1051 --disable-tdfxfb) _tdfxfb
=no
;;
1052 --disable-tdfxvid) _tdfxvid
=no
;;
1053 --enable-tdfxvid) _tdfxvid
=yes ;;
1054 --disable-xvr100) _xvr100
=no
;;
1055 --enable-xvr100) _xvr100
=yes ;;
1056 --disable-tga) _tga
=no
;;
1057 --enable-tga) _tga
=yes ;;
1058 --enable-directfb) _directfb
=yes ;;
1059 --disable-directfb) _directfb
=no
;;
1060 --enable-bl) _bl
=yes ;;
1061 --disable-bl) _bl
=no
;;
1062 --enable-mtrr) _mtrr
=yes ;;
1063 --disable-mtrr) _mtrr
=no
;;
1064 --enable-shm) _shm
=yes ;;
1065 --disable-shm) _shm
=no
;;
1066 --enable-select) _select
=yes ;;
1067 --disable-select) _select
=no
;;
1068 --enable-cdparanoia) _cdparanoia
=yes ;;
1069 --disable-cdparanoia) _cdparanoia
=no
;;
1070 --enable-cddb) _cddb
=yes ;;
1071 --disable-cddb) _cddb
=no
;;
1072 --enable-big-endian) _big_endian
=yes ;;
1073 --disable-big-endian) _big_endian
=no
;;
1074 --enable-bitmap-font) _bitmap_font
=yes ;;
1075 --disable-bitmap-font) _bitmap_font
=no
;;
1076 --enable-freetype) _freetype
=yes ;;
1077 --disable-freetype) _freetype
=no
;;
1078 --enable-fontconfig) _fontconfig
=yes ;;
1079 --disable-fontconfig) _fontconfig
=no
;;
1080 --enable-unrarexec) _unrar_exec
=yes ;;
1081 --disable-unrarexec) _unrar_exec
=no
;;
1082 --enable-ftp) _ftp
=yes ;;
1083 --disable-ftp) _ftp
=no
;;
1084 --enable-vstream) _vstream
=yes ;;
1085 --disable-vstream) _vstream
=no
;;
1086 --enable-pthreads) _pthreads
=yes ;;
1087 --disable-pthreads) _pthreads
=no
;;
1088 --enable-w32threads) _w32threads
=yes ;;
1089 --disable-w32threads) _w32threads
=no
;;
1090 --enable-libass) _ass
=yes ;;
1091 --disable-libass) _ass
=no
;;
1092 --enable-rpath) _rpath
=yes ;;
1093 --disable-rpath) _rpath
=no
;;
1095 --enable-fribidi) _fribidi
=yes ;;
1096 --disable-fribidi) _fribidi
=no
;;
1098 --enable-enca) _enca
=yes ;;
1099 --disable-enca) _enca
=no
;;
1101 --enable-inet6) _inet6
=yes ;;
1102 --disable-inet6) _inet6
=no
;;
1104 --enable-gethostbyname2) _gethostbyname2
=yes ;;
1105 --disable-gethostbyname2) _gethostbyname2
=no
;;
1107 --enable-dga1) _dga1
=yes ;;
1108 --disable-dga1) _dga1
=no
;;
1109 --enable-dga2) _dga2
=yes ;;
1110 --disable-dga2) _dga2
=no
;;
1112 --enable-qtx) _qtx
=yes ;;
1113 --disable-qtx) _qtx
=no
;;
1115 --enable-coreaudio) _coreaudio
=yes ;;
1116 --disable-coreaudio) _coreaudio
=no
;;
1117 --enable-corevideo) _corevideo
=yes ;;
1118 --disable-corevideo) _corevideo
=no
;;
1119 --enable-cocoa) _cocoa
=yes ;;
1120 --disable-cocoa) _cocoa
=no
;;
1121 --enable-quartz) _quartz
=yes ;;
1122 --disable-quartz) _quartz
=no
;;
1123 --enable-macosx-finder) _macosx_finder
=yes ;;
1124 --disable-macosx-finder) _macosx_finder
=no
;;
1125 --enable-macosx-bundle) _macosx_bundle
=yes ;;
1126 --disable-macosx-bundle) _macosx_bundle
=no
;;
1128 --enable-sortsub) _sortsub
=yes ;;
1129 --disable-sortsub) _sortsub
=no
;;
1131 --enable-crash-debug) _crash_debug
=yes ;;
1132 --disable-crash-debug) _crash_debug
=no
;;
1133 --enable-sighandler) _sighandler
=yes ;;
1134 --disable-sighandler) _sighandler
=no
;;
1135 --enable-win32dll) _win32dll
=yes ;;
1136 --disable-win32dll) _win32dll
=no
;;
1138 --enable-sse) _sse
=yes ;;
1139 --disable-sse) _sse
=no
;;
1140 --enable-sse2) _sse2
=yes ;;
1141 --disable-sse2) _sse2
=no
;;
1142 --enable-ssse3) _ssse3
=yes ;;
1143 --disable-ssse3) _ssse3
=no
;;
1144 --enable-mmxext) _mmxext
=yes ;;
1145 --disable-mmxext) _mmxext
=no
;;
1146 --enable-3dnow) _3dnow
=yes ;;
1147 --disable-3dnow) _3dnow
=no _3dnowext
=no
;;
1148 --enable-3dnowext) _3dnow
=yes _3dnowext
=yes ;;
1149 --disable-3dnowext) _3dnowext
=no
;;
1150 --enable-cmov) _cmov
=yes ;;
1151 --disable-cmov) _cmov
=no
;;
1152 --enable-fast-cmov) _fast_cmov
=yes ;;
1153 --disable-fast-cmov) _fast_cmov
=no
;;
1154 --enable-fast-clz) _fast_clz
=yes ;;
1155 --disable-fast-clz) _fast_clz
=no
;;
1156 --enable-altivec) _altivec
=yes ;;
1157 --disable-altivec) _altivec
=no
;;
1158 --enable-armv5te) _armv5te
=yes ;;
1159 --disable-armv5te) _armv5te
=no
;;
1160 --enable-armv6) _armv6
=yes ;;
1161 --disable-armv6) _armv6
=no
;;
1162 --enable-armv6t2) _armv6t2
=yes ;;
1163 --disable-armv6t2) _armv6t2
=no
;;
1164 --enable-armvfp) _armvfp
=yes ;;
1165 --disable-armvfp) _armvfp
=no
;;
1166 --enable-neon) neon
=yes ;;
1167 --disable-neon) neon
=no
;;
1168 --enable-iwmmxt) _iwmmxt
=yes ;;
1169 --disable-iwmmxt) _iwmmxt
=no
;;
1170 --enable-mmx) _mmx
=yes ;;
1171 --disable-mmx) # 3Dnow! and MMX2 require MMX
1172 _3dnow
=no _3dnowext
=no _mmx
=no _mmxext
=no
;;
1175 echo "Unknown parameter: $ac_option" >&2
1182 # Atmos: moved this here, to be correct, if --prefix is specified
1183 test -z "$_bindir" && _bindir
="$_prefix/bin"
1184 test -z "$_datadir" && _datadir
="$_prefix/share/mplayer"
1185 test -z "$_mandir" && _mandir
="$_prefix/share/man"
1186 test -z "$_confdir" && _confdir
="$_prefix/etc/mplayer"
1187 test -z "$_libdir" && _libdir
="$_prefix/lib"
1188 test -z "$_localedir" && _localedir
="$_prefix/share/locale"
1190 # Determine our OS name and CPU architecture
1191 if test -z "$_target" ; then
1193 system_name
=$
(uname
-s 2>&1)
1194 case "$system_name" in
1195 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD
/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS
)
1209 [cC
][yY
][gG
][wW
][iI
][nN
]*)
1219 system_name
="$system_name-UNKNOWN"
1224 # host's CPU/instruction set
1225 host_arch
=$
(uname
-p 2>&1)
1226 case "$host_arch" in
1227 i386|sparc|ppc|alpha|arm|mips|vax
)
1229 powerpc
) # Darwin returns 'powerpc'
1232 *) # uname -p on Linux returns 'unknown' for the processor type,
1233 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1235 # Maybe uname -m (machine hardware name) returns something we
1238 # x86/x86pc is used by QNX
1239 case "$(uname -m 2>&1)" in
1240 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
;;
1241 ia64
) host_arch
=ia64
;;
1242 macppc|ppc
) host_arch
=ppc
;;
1243 ppc64
) host_arch
=ppc64
;;
1244 alpha
) host_arch
=alpha
;;
1245 sparc
) host_arch
=sparc
;;
1246 sparc64
) host_arch
=sparc64
;;
1247 parisc
*|hppa
*|
9000*) host_arch
=hppa
;;
1248 arm
*|zaurus|cats
) host_arch
=arm
;;
1249 sh3|sh4|sh4a
) host_arch
=sh
;;
1250 s390
) host_arch
=s390
;;
1251 s390x
) host_arch
=s390x
;;
1252 *mips
*) host_arch
=mips
;;
1253 vax
) host_arch
=vax
;;
1254 xtensa
*) host_arch
=xtensa
;;
1255 *) host_arch
=UNKNOWN
;;
1259 else # if test -z "$_target"
1260 system_name
=$
(echo $_target | cut
-d '-' -f 2)
1261 case "$(echo $system_name | tr A-Z a-z)" in
1262 linux
) system_name
=Linux
;;
1263 freebsd
) system_name
=FreeBSD
;;
1264 gnu
/kfreebsd
) system_name
=FreeBSD
;;
1265 netbsd
) system_name
=NetBSD
;;
1266 bsd
/os
) system_name
=BSD
/OS
;;
1267 openbsd
) system_name
=OpenBSD
;;
1268 dragonfly
) system_name
=DragonFly
;;
1269 sunos
) system_name
=SunOS
;;
1270 qnx
) system_name
=QNX
;;
1271 morphos
) system_name
=MorphOS
;;
1272 amigaos
) system_name
=AmigaOS
;;
1273 mingw32
*) system_name
=MINGW32
;;
1275 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1276 host_arch
=$
(echo $_target | cut
-d '-' -f 1)
1277 if test $
(echo $host_arch) != "x86_64" ; then
1278 host_arch
=$
(echo $host_arch |
tr '_' '-')
1282 extra_cflags
="-I. $extra_cflags"
1283 _timer
=timer-linux.c
1286 extra_ldflags
="$extra_ldflags -L/usr/local/lib"
1287 extra_cflags
="$extra_cflags -I/usr/local/include"
1290 if netbsd || dragonfly
; then
1291 extra_ldflags
="$extra_ldflags -L/usr/pkg/lib"
1292 extra_cflags
="$extra_cflags -I/usr/pkg/include"
1296 extra_cflags
="-mdynamic-no-pic $extra_cflags"
1297 if test "$(basename $_cc)" != "clang" ; then
1298 extra_cflags
="-falign-loops=16 -shared-libgcc $extra_cflags"
1300 _timer
=timer-darwin.c
1304 extra_ldflags
="$extra_ldflags -lC"
1315 extra_cflags
="$extra_cflags -fno-common"
1316 # -lwinmm is always needed for osdep/timer-win2.c
1317 extra_ldflags
="$extra_ldflags -lwinmm"
1321 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1322 def_priority
="#define CONFIG_PRIORITY 1"
1334 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
1335 extra_cflags
="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1339 extra_ldflags
="$extra_ldflags -lph"
1347 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1348 def_priority
="#define CONFIG_PRIORITY 1"
1351 for tmpdir
in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1352 test "$tmpdir" && break
1355 mplayer_tmpdir
="$tmpdir/mplayer-configure-$RANDOM-$$"
1356 mkdir
$mplayer_tmpdir || die
"Unable to create tmpdir."
1359 TMPC
="$mplayer_tmpdir/tmp.c"
1360 TMPCPP
="$mplayer_tmpdir/tmp.cpp"
1361 TMPEXE
="$mplayer_tmpdir/tmp$_exesuf"
1362 TMPH
="$mplayer_tmpdir/tmp.h"
1363 TMPS
="$mplayer_tmpdir/tmp.S"
1366 echo configuration
: $configuration > "$TMPLOG"
1370 if test "$_runtime_cpudetection" = yes && ! x86
&& ! ppc
; then
1371 die
"Runtime CPU detection only works for x86, x86-64 and PPC!"
1375 # Checking CC version...
1376 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1377 if test "$(basename $_cc)" = "icc" ||
test "$(basename $_cc)" = "ecc"; then
1378 echocheck
"$_cc version"
1380 cc_name
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 1)
1381 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 2 | cut
-d ' ' -f 3)
1382 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1383 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1384 # TODO verify older icc/ecc compatibility
1387 cc_version
="v. ?.??, bad"
1391 cc_version
="$cc_version, ok"
1394 cc_version
="$cc_version, bad"
1398 echores
"$cc_version"
1400 for _cc
in "$_cc" gcc cc
; do
1401 cc_name_tmp
=$
($_cc -v 2>&1 |
tail -n 1 | cut
-d ' ' -f 1)
1402 if test "$cc_name_tmp" = "gcc"; then
1403 cc_name
=$cc_name_tmp
1404 echocheck
"$_cc version"
1406 cc_version
=$
($_cc -dumpversion 2>&1)
1412 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1413 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1414 _cc_mini
=$
(echo $cc_version | cut
-d '.' -f 3)
1417 echores
"$cc_version"
1420 if $_cc -v 2>&1 |
grep -q "clang"; then
1421 echocheck
"$_cc version"
1423 cc_version
=$
($_cc -dumpversion 2>&1)
1424 res_comment
="experimental support only"
1425 echores
"clang $cc_version"
1428 cc_name_tmp
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 2,3)
1429 if test "$cc_name_tmp" = "Sun C"; then
1430 echocheck
"$_cc version"
1432 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 4)
1433 res_comment
="experimental support only"
1434 echores
"Sun C $cc_version"
1439 test "$cc_fail" = yes && die
"unsupported compiler version"
1441 echocheck
"working compiler"
1442 cflag_check
"" || die
"Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1445 if test -z "$_target" && x86
; then
1448 int test[(int)sizeof(char *)-7];
1452 cc_check
&& host_arch
=x86_64 || host_arch
=i386
1455 echo "Detected operating system: $system_name"
1456 echo "Detected host architecture: $host_arch"
1458 echocheck
"cross compilation"
1459 if test $_cross_compile = auto
; then
1461 cflag_check
"" && "$TMPEXE" && _cross_compile
=no
1463 echores
$_cross_compile
1465 if test $_cross_compile = yes; then
1469 test "$_host_cc" || _host_cc
=cc
1473 test "$_host_cc" || _host_cc
=$_cc
1478 # now that we know what compiler should be used for compilation, try to find
1479 # out which assembler is used by the $_cc compiler
1480 if test "$_as" = auto
; then
1481 _as
=$
($_cc -print-prog-name=as
)
1482 test -z "$_as" && _as
=as
1485 if test "$_nm" = auto
; then
1486 _nm
=$
($_cc -print-prog-name=nm
)
1487 test -z "$_nm" && _nm
=nm
1490 # XXX: this should be ok..
1493 if test "$_runtime_cpudetection" = no
; then
1495 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1496 # FIXME: Remove the cygwin check once AMD CPUs are supported
1497 if test -r /proc
/cpuinfo
&& ! cygwin
; then
1498 # Linux with /proc mounted, extract CPU information from it
1499 _cpuinfo
="cat /proc/cpuinfo"
1500 elif test -r /compat
/linux
/proc
/cpuinfo
&& ! x86
; then
1501 # FreeBSD with Linux emulation /proc mounted,
1502 # extract CPU information from it
1503 # Don't use it on x86 though, it never reports 3Dnow
1504 _cpuinfo
="cat /compat/linux/proc/cpuinfo"
1505 elif darwin
&& ! x86
; then
1506 # use hostinfo on Darwin
1509 # use 'lsattr' on AIX
1510 _cpuinfo
="lsattr -E -l proc0 -a type"
1512 # all other OSes try to extract CPU information from a small helper
1513 # program cpuinfo instead
1514 $_cc -o cpuinfo
$_exesuf cpuinfo.c
1515 _cpuinfo
="./cpuinfo$_exesuf"
1519 # gather more CPU information
1520 pname
=$
($_cpuinfo |
grep 'model name' | cut
-d ':' -f 2 |
head -n 1)
1521 pvendor
=$
($_cpuinfo |
grep 'vendor_id' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1522 pfamily
=$
($_cpuinfo |
grep 'cpu family' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1523 pmodel
=$
($_cpuinfo |
grep -v 'model name' |
grep 'model' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1524 pstepping
=$
($_cpuinfo |
grep 'stepping' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1526 exts
=$
($_cpuinfo |
egrep 'features|flags' | cut
-d ':' -f 2 |
head -n 1)
1528 pparam
=$
(echo $exts |
sed -e s
/k6_mtrr
/mtrr
/ -e s
/cyrix_arr
/mtrr
/ -e s
/centaur_mcr
/mtrr
/ \
1529 -e s
/xmm
/sse
/ -e s
/kni
/sse
/)
1530 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1531 pparam
=$
(echo $pparam |
sed -e 's/sse/sse mmxext/')
1533 for ext
in $pparam ; do
1534 eval test \"\
$_$ext\" = auto
2>/dev
/null
&& eval _
$ext=kernel_check
1537 echocheck
"CPU vendor"
1538 echores
"$pvendor ($pfamily:$pmodel:$pstepping)"
1540 echocheck
"CPU type"
1544 fi # test "$_runtime_cpudetection" = no
1546 if x86
&& test "$_runtime_cpudetection" = no
; then
1548 if test "$1" = kernel_check
; then
1549 echocheck
"kernel support of $2"
1553 static void catch(int sig) { exit(1); }
1555 signal(SIGILL, catch);
1556 __asm__ volatile ("$3":::"memory"); return 0;
1560 if cc_check
&& tmp_run
; then
1563 _optimizing
="$_optimizing $2"
1568 echo "It seems that your kernel does not correctly support $2."
1569 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1576 extcheck
$_mmx "mmx" "emms"
1577 extcheck
$_mmxext "mmxext" "sfence"
1578 extcheck
$_3dnow "3dnow" "femms"
1579 extcheck
$_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1580 extcheck
$_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse"
1581 extcheck
$_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse2"
1582 extcheck
$_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1583 extcheck
$_cmov "cmov" "cmovb %%eax, %%ebx"
1585 echocheck
"mtrr support"
1586 if test "$_mtrr" = kernel_check
; then
1588 _optimizing
="$_optimizing mtrr"
1592 if test "$_gcc3_ext" != ""; then
1593 # if we had to disable sse/sse2 because the active kernel does not
1594 # support this instruction set extension, we also have to tell
1595 # gcc3 to not generate sse/sse2 instructions for normal C code
1596 cflag_check
$_march $_gcc3_ext && _march
="$_march $_gcc3_ext"
1602 def_fast_64bit
='#define HAVE_FAST_64BIT 0'
1603 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 0'
1604 arch_all
='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1605 subarch_all
='X86_32 X86_64 PPC64'
1606 case "$host_arch" in
1607 i
[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium
*|athlon
*|i586-i686
)
1610 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1615 if test "$_runtime_cpudetection" = no
; then
1619 3) proc
=i386 iproc
=386 ;;
1620 4) proc
=i486 iproc
=486 ;;
1621 5) iproc
=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1622 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1623 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1625 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1627 elif test "$pmodel" -ge 8; then
1629 elif test "$pmodel" -ge 6; then
1636 # It's a bit difficult to determine the correct type of Family 6
1637 # AMD CPUs just from their signature. Instead, we check directly
1638 # whether it supports SSE.
1639 if test "$_sse" = yes; then
1640 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1643 # Again, gcc treats athlon and athlon-tbird similarly.
1648 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1649 # caught and remedied in the optimization tests below.
1653 *) proc
=amdfam10 iproc
=686
1654 test $_fast_clz = "auto" && _fast_clz
=yes
1660 3) proc
=i386 iproc
=386 ;;
1661 4) proc
=i486 iproc
=486 ;;
1663 if test "$pmodel" -eq 4 ||
test "$pmodel" -eq 8; then
1664 proc
=pentium-mmx
# 4 is desktop, 8 is mobile
1670 if test "$pmodel" -ge 15; then
1672 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1674 elif test "$pmodel" -ge 7; then
1676 elif test "$pmodel" -ge 3; then
1681 test $_fast_clz = "auto" && _fast_clz
=yes
1684 # A nocona in 32-bit mode has no more capabilities than a prescott.
1685 if test "$pmodel" -ge 3; then
1689 test $_fast_clz = "auto" && _fast_clz
=yes
1691 test $_fast_cmov = "auto" && _fast_cmov
=no
1693 *) proc
=prescott iproc
=686 ;;
1699 if test "$pmodel" -ge 8; then
1701 elif test "$pmodel" -ge 4; then
1708 if test "$pmodel" -ge 9; then
1715 *) proc
=i686 iproc
=i686
;;
1720 3) proc
=i386 iproc
=386 ;;
1721 4) proc
=i486 iproc
=486 ;;
1722 *) proc
=i586 iproc
=586 ;;
1726 proc
=i586 iproc
=586 ;;
1728 test $_fast_clz = "auto" && _fast_clz
=no
1729 fi # test "$_runtime_cpudetection" = no
1732 # check that gcc supports our CPU, if not, fall back to earlier ones
1733 # LGB: check -mcpu and -march swithing step by step with enabling
1734 # to fall back till 386.
1736 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1738 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] ||
( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1744 echocheck
"GCC & CPU optimization abilities"
1745 if test "$_runtime_cpudetection" = no
; then
1746 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1747 cflag_check
-march=native
&& proc
=native
1749 if test "$proc" = "amdfam10"; then
1750 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1752 if test "$proc" = "k8"; then
1753 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1755 if test "$proc" = "athlon-xp"; then
1756 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon
1758 if test "$proc" = "k6-3" ||
test "$proc" = "k6-2"; then
1759 cflag_check
-march=$proc $cpuopt=$proc || proc
=k6
1761 if test "$proc" = "k6" ||
test "$proc" = "c3"; then
1762 if ! cflag_check
-march=$proc $cpuopt=$proc; then
1763 if cflag_check
-march=i586
$cpuopt=i686
; then
1770 if test "$proc" = "prescott" ; then
1771 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1773 if test "$proc" = "core2" ; then
1774 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium-m
1776 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
1777 cflag_check
-march=$proc $cpuopt=$proc || proc
=i686
1779 if test "$proc" = "i686" ||
test "$proc" = "pentium-mmx" ||
test "$proc" = "winchip-c6" ||
test "$proc" = "winchip2"; then
1780 cflag_check
-march=$proc $cpuopt=$proc || proc
=i586
1782 if test "$proc" = "i586"; then
1783 cflag_check
-march=$proc $cpuopt=$proc || proc
=i486
1785 if test "$proc" = "i486" ; then
1786 cflag_check
-march=$proc $cpuopt=$proc || proc
=i386
1788 if test "$proc" = "i386" ; then
1789 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1791 if test "$proc" = "error" ; then
1792 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1796 elif test "$proc" = "i586-i686"; then
1797 _march
="-march=i586"
1798 _mcpu
="$cpuopt=i686"
1801 _march
="-march=$proc"
1802 _mcpu
="$cpuopt=$proc"
1805 else # if test "$_runtime_cpudetection" = no
1806 _mcpu
="$cpuopt=generic"
1807 # at least i486 required, for bswap instruction
1808 _march
="-march=i486"
1809 cflag_check
$_mcpu || _mcpu
="$cpuopt=i686"
1810 cflag_check
$_mcpu || _mcpu
=""
1811 cflag_check
$_march $_mcpu || _march
=""
1814 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1815 ## autodetected mcpu/march parameters
1816 if test "$_target" ; then
1817 # TODO: it may be a good idea to check GCC and fall back in all cases
1818 if test "$host_arch" = "i586-i686"; then
1819 _march
="-march=i586"
1820 _mcpu
="$cpuopt=i686"
1822 _march
="-march=$host_arch"
1823 _mcpu
="$cpuopt=$host_arch"
1831 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx
) iproc
=586 ;;
1832 i686|athlon
*|pentium
*) iproc
=686 ;;
1837 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1842 test $_fast_clz = "auto" && _fast_clz
=yes
1849 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1856 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1857 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1860 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1861 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1866 if test "$_runtime_cpudetection" = no
; then
1871 test $_fast_clz = "auto" && _fast_clz
=no
1880 # 64-bit prescotts exist, but as far as GCC is concerned they
1881 # have the same capabilities as a nocona.
1883 test $_fast_cmov = "auto" && _fast_cmov
=no
1884 test $_fast_clz = "auto" && _fast_clz
=no
1891 fi # test "$_runtime_cpudetection" = no
1893 echocheck
"GCC & CPU optimization abilities"
1894 # This is a stripped-down version of the i386 fallback.
1895 if test "$_runtime_cpudetection" = no
; then
1896 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1897 cflag_check
-march=native
&& proc
=native
1899 # --- AMD processors ---
1900 if test "$proc" = "amdfam10"; then
1901 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1903 if test "$proc" = "k8"; then
1904 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1906 # This will fail if gcc version < 3.3, which is ok because earlier
1907 # versions don't really support 64-bit on amd64.
1908 # Is this a valid assumption? -Corey
1909 if test "$proc" = "athlon-xp"; then
1910 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1912 # --- Intel processors ---
1913 if test "$proc" = "core2"; then
1914 cflag_check
-march=$proc $cpuopt=$proc || proc
=x86-64
1916 if test "$proc" = "x86-64"; then
1917 cflag_check
-march=$proc $cpuopt=$proc || proc
=nocona
1919 if test "$proc" = "nocona"; then
1920 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1922 if test "$proc" = "pentium4"; then
1923 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1926 _march
="-march=$proc"
1927 _mcpu
="$cpuopt=$proc"
1928 if test "$proc" = "error" ; then
1929 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1933 else # if test "$_runtime_cpudetection" = no
1934 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1935 _march
="-march=x86-64"
1936 _mcpu
="$cpuopt=generic"
1937 cflag_check
$_mcpu || _mcpu
="x86-64"
1938 cflag_check
$_mcpu || _mcpu
=""
1939 cflag_check
$_march $_mcpu || _march
=""
1943 test $_fast_cmov = "auto" && _fast_cmov
=yes
1944 test $_fast_clz = "auto" && _fast_clz
=yes
1952 if test "$host_arch" = "sparc64" ; then
1955 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1957 echocheck
"CPU type"
1959 case "$(echo $karch)" in
1964 sun4u
) proc
=ultrasparc _vis
='yes' ;;
1983 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1985 test $_fast_clz = "auto" && _fast_clz
=yes
1993 ppc|ppc64|powerpc|powerpc64
)
1995 def_dcbzl
='#define HAVE_DCBZL 0'
1996 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1999 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2001 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2003 echocheck
"CPU type"
2004 case $system_name in
2006 proc
=$
($_cpuinfo |
grep 'cpu' | cut
-d ':' -f 2 | cut
-d ',' -f 1 | cut
-b 2- |
head -n 1)
2007 if test -n "$($_cpuinfo | grep altivec)"; then
2008 test $_altivec = auto
&& _altivec
=yes
2012 proc
=$
($_cpuinfo |
grep "Processor type" | cut
-f 3 -d ' ' |
sed 's/ppc//')
2013 if [ $
(sysctl
-n hw.vectorunit
) -eq 1 -o \
2014 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2015 test $_altivec = auto
&& _altivec
=yes
2019 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2021 2*|
3.0*|
3.1*|
3.2*|
3.3*)
2024 if [ $
(sysctl
-n machdep.altivec
) -eq 1 ]; then
2025 test $_altivec = auto
&& _altivec
=yes
2031 proc
=$
($_cpuinfo |
grep 'type' | cut
-f 2 -d ' ' |
sed 's/PowerPC_//')
2034 if test "$_altivec" = yes; then
2035 echores
"$proc altivec"
2041 echocheck
"GCC & CPU optimization abilities"
2043 if test -n "$proc"; then
2045 601) _march
='-mcpu=601' _mcpu
='-mtune=601' ;;
2046 603) _march
='-mcpu=603' _mcpu
='-mtune=603' ;;
2047 603e|
603ev
) _march
='-mcpu=603e' _mcpu
='-mtune=603e' ;;
2048 604|
604e|
604r|
604ev
) _march
='-mcpu=604' _mcpu
='-mtune=604' ;;
2049 740|
740/750|
745/755) _march
='-mcpu=740' _mcpu
='-mtune=740' ;;
2050 750|
750CX
) _march
='-mcpu=750' _mcpu
='-mtune=750' ;;
2051 POWER
) _march
='-mcpu=power' _mcpu
='-mtune=power' ;;
2052 POWER2
) _march
='-mcpu=power2' _mcpu
='-mtune=power2' ;;
2053 POWER3
) _march
='-mcpu=power3' _mcpu
='-mtune=power3' ;;
2056 # gcc 3.1(.1) and up supports 7400 and 7450
2057 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" ||
test "$_cc_major" -ge "4"; then
2059 7400*|
7410*) _march
='-mcpu=7400' _mcpu
='-mtune=7400' ;;
2060 7447*|
7450*|
7455*) _march
='-mcpu=7450' _mcpu
='-mtune=7450' ;;
2064 # gcc 3.2 and up supports 970
2065 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2067 970*|PPC970
*) _march
='-mcpu=970' _mcpu
='-mtune=970'
2068 def_dcbzl
='#define HAVE_DCBZL 1' ;;
2072 # gcc 3.3 and up supports POWER4
2073 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2075 POWER4
) _march
='-mcpu=power4' _mcpu
='-mtune=power4' ;;
2079 # gcc 3.4 and up supports 440*
2080 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" ||
test "$_cc_major" -ge "4"; then
2082 440EP
*) _march
='-mcpu=440fp' _mcpu
='-mtune=440fp' ;;
2083 440G
* ) _march
='-mcpu=440' _mcpu
='-mtune=440' ;;
2087 # gcc 4.0 and up supports POWER5
2088 if test "$_cc_major" -ge "4"; then
2090 POWER5
*) _march
='-mcpu=power5' _mcpu
='-mtune=power5' ;;
2096 if test -n "$_mcpu"; then
2097 _optimizing
=$
(echo $_mcpu | cut
-c 8-)
2098 echores
"$_optimizing"
2103 test $_fast_clz = "auto" && _fast_clz
=yes
2110 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2112 echocheck
"CPU type"
2115 unsigned long ver, mask;
2116 __asm__ ("implver %0" : "=r" (ver));
2117 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2118 printf("%ld-%x\n", ver, ~mask);
2122 $_cc -o "$TMPEXE" "$TMPC"
2123 case $
("$TMPEXE") in
2125 0-0) proc
="ev4"; _mvi
="0";;
2126 1-0) proc
="ev5"; _mvi
="0";;
2127 1-1) proc
="ev56"; _mvi
="0";;
2128 1-101) proc
="pca56"; _mvi
="1";;
2129 2-303) proc
="ev6"; _mvi
="1";;
2130 2-307) proc
="ev67"; _mvi
="1";;
2131 2-1307) proc
="ev68"; _mvi
="1";;
2135 echocheck
"GCC & CPU optimization abilities"
2136 if test "$proc" = "ev68" ; then
2137 cc_check
-mcpu=$proc || proc
=ev67
2139 if test "$proc" = "ev67" ; then
2140 cc_check
-mcpu=$proc || proc
=ev6
2145 test $_fast_clz = "auto" && _fast_clz
=yes
2155 echocheck
"CPU type"
2156 proc
=$
(hinv
-c processor |
grep CPU | cut
-d " " -f3)
2157 case "$(echo $proc)" in
2158 R3000
) _march
='-mips1' _mcpu
='-mtune=r2000' ;;
2159 R4000
) _march
='-mips3' _mcpu
='-mtune=r4000' ;;
2160 R4400
) _march
='-mips3' _mcpu
='-mtune=r4400' ;;
2161 R4600
) _march
='-mips3' _mcpu
='-mtune=r4600' ;;
2162 R5000
) _march
='-mips4' _mcpu
='-mtune=r5000' ;;
2163 R8000|R10000|R12000|R14000|R16000
) _march
='-mips4' _mcpu
='-mtune=r8000' ;;
2165 # gcc < 3.x does not support -mtune.
2166 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2172 test $_fast_clz = "auto" && _fast_clz
=yes
2206 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2207 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2208 die
"unsupported architecture $host_arch"
2210 esac # case "$host_arch" in
2212 if test "$_runtime_cpudetection" = yes ; then
2214 test "$_cmov" != no
&& _cmov
=yes
2216 test "$_mmx" != no
&& _mmx
=yes
2217 test "$_3dnow" != no
&& _3dnow
=yes
2218 test "$_3dnowext" != no
&& _3dnowext
=yes
2219 test "$_mmxext" != no
&& _mmxext
=yes
2220 test "$_sse" != no
&& _sse
=yes
2221 test "$_sse2" != no
&& _sse2
=yes
2222 test "$_ssse3" != no
&& _ssse3
=yes
2223 test "$_mtrr" != no
&& _mtrr
=yes
2232 echocheck
"byte order"
2233 if test "$_big_endian" = auto
; then
2235 short ascii_name[] = {
2236 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2237 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2238 int main(void) { return (long)ascii_name; }
2241 if strings $TMPEXE |
grep -q -l MPlayerBigEndian
; then
2247 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2250 if test "$_big_endian" = yes ; then
2251 _byte_order
='big-endian'
2252 def_words_endian
='#define WORDS_BIGENDIAN 1'
2253 def_bigendian
='#define HAVE_BIGENDIAN 1'
2255 _byte_order
='little-endian'
2256 def_words_endian
='#undef WORDS_BIGENDIAN'
2257 def_bigendian
='#define HAVE_BIGENDIAN 0'
2259 echores
"$_byte_order"
2262 echocheck
"extern symbol prefix"
2266 cc_check
-c || die
"Symbol mangling check failed."
2267 sym
=$
($_nm -P -g $TMPEXE)
2268 extern_prefix
=${sym%%ff_extern*}
2269 def_extern_asm
="#define EXTERN_ASM $extern_prefix"
2270 def_extern_prefix
="#define EXTERN_PREFIX \"$extern_prefix\""
2271 echores
$extern_prefix
2274 echocheck
"assembler support of -pipe option"
2275 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2276 cflag_check
-pipe -I.
&& _pipe
="-pipe" && echores
"yes" || echores
"no"
2279 if darwin
&& test "$cc_vendor" = "gnu" ; then
2280 echocheck
"GCC support of -mstackrealign"
2281 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2282 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2283 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2284 # wrong code with this flag, but this can be worked around by adding
2285 # -fno-unit-at-a-time as described in the blog post at
2286 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2288 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2289 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2291 cc_check
-O2 -mstackrealign && tmp_run
&& cflags_stackrealign
=-mstackrealign
2292 test -z "$cflags_stackrealign" && cc_check
-O2 -mstackrealign -fno-unit-at-a-time &&
2293 tmp_run
&& cflags_stackrealign
="-mstackrealign -fno-unit-at-a-time"
2294 test -n "$cflags_stackrealign" && echores
"yes" || echores
"no"
2295 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2298 # Checking for CFLAGS
2300 if test "$_profile" != "" ||
test "$_debug" != "" ; then
2301 CFLAGS
="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2302 WARNFLAGS
="-W -Wall"
2304 elif test -z "$CFLAGS" ; then
2305 if test "$cc_vendor" = "intel" ; then
2306 CFLAGS
="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2307 WARNFLAGS
="-wd167 -wd556 -wd144"
2308 elif test "$cc_vendor" = "sun" ; then
2309 CFLAGS
="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2310 elif test "$cc_vendor" = "clang"; then
2311 CFLAGS
="-O2 $_march $_pipe"
2312 WARNFLAGS
="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2313 ERRORFLAGS
="-Werror=implicit-function-declaration"
2314 elif test "$cc_vendor" != "gnu" ; then
2315 CFLAGS
="-O2 $_march $_mcpu $_pipe"
2317 CFLAGS
="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2318 WARNFLAGS
="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2319 ERRORFLAGS
="-Werror-implicit-function-declaration"
2320 extra_ldflags
="$extra_ldflags -ffast-math"
2326 if test "$cc_vendor" = "gnu" ; then
2327 cflag_check
-Wundef && WARNFLAGS
="-Wundef $WARNFLAGS"
2328 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2329 # that's the only variable specific to C now, and this option is not valid
2331 cflag_check
-std=gnu99
&& WARN_CFLAGS
="-std=gnu99 $WARN_CFLAGS"
2332 cflag_check
-Wno-pointer-sign && WARN_CFLAGS
="-Wno-pointer-sign $WARN_CFLAGS"
2333 cflag_check
-Wdisabled-optimization && WARN_CFLAGS
="-Wdisabled-optimization $WARN_CFLAGS"
2334 cflag_check
-Wmissing-prototypes && WARN_CFLAGS
="-Wmissing-prototypes $WARN_CFLAGS"
2335 cflag_check
-Wstrict-prototypes && WARN_CFLAGS
="-Wstrict-prototypes $WARN_CFLAGS"
2337 CFLAGS
="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2340 cflag_check
-mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer
="-mno-omit-leaf-frame-pointer"
2341 cflag_check
-MD -MP && DEPFLAGS
="-MD -MP"
2344 if test -n "$LDFLAGS" ; then
2345 extra_ldflags
="$extra_ldflags $LDFLAGS"
2347 elif test "$cc_vendor" = "intel" ; then
2348 extra_ldflags
="$extra_ldflags -i-static"
2350 if test -n "$CPPFLAGS" ; then
2351 extra_cflags
="$extra_cflags $CPPFLAGS"
2358 # Checking assembler (_as) compatibility...
2359 # Added workaround for older as that reads from stdin by default - atmos
2360 as_version
=$
(echo '' |
$_as -version 2>&1 |
sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2361 echocheck
"assembler ($_as $as_version)"
2363 _pref_as_version
='2.9.1'
2365 if test "$_mmx" = yes ; then
2366 echo 'emms' >> $TMPS
2368 if test "$_3dnow" = yes ; then
2369 _pref_as_version
='2.10.1'
2370 echo 'femms' >> $TMPS
2372 if test "$_3dnowext" = yes ; then
2373 _pref_as_version
='2.10.1'
2374 echo 'pswapd %mm0, %mm0' >> $TMPS
2376 if test "$_mmxext" = yes ; then
2377 _pref_as_version
='2.10.1'
2378 echo 'movntq %mm0, (%eax)' >> $TMPS
2380 if test "$_sse" = yes ; then
2381 _pref_as_version
='2.10.1'
2382 echo 'xorps %xmm0, %xmm0' >> $TMPS
2384 #if test "$_sse2" = yes ; then
2385 # _pref_as_version='2.11'
2386 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2388 if test "$_cmov" = yes ; then
2389 _pref_as_version
='2.10.1'
2390 echo 'cmovb %eax, %ebx' >> $TMPS
2392 if test "$_ssse3" = yes ; then
2393 _pref_as_version
='2.16.92'
2394 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2396 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 || as_verc_fail
=yes
2398 if test "$as_verc_fail" != yes ; then
2401 res_comment
="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2403 die
"obsolete binutils version"
2413 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2414 #error PIC not enabled
2419 cc_check
&& pic
=yes && extra_cflags
="$extra_cflags -DPIC"
2425 echocheck
".align is a power of two"
2426 if test "$_asmalign_pot" = auto
; then
2428 inline_asm_check
'".align 3"' && _asmalign_pot
=yes
2430 if test "$_asmalign_pot" = "yes" ; then
2431 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2433 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2435 echores
$_asmalign_pot
2438 echocheck
"ebx availability"
2440 def_ebx_available
='#define HAVE_EBX_AVAILABLE 0'
2447 // just adding ebx to clobber list seems unreliable with some
2448 // compilers, e.g. Haiku's gcc 2.95
2450 // and the above check does not work for OSX 64 bit...
2451 __asm__ volatile("":::"%ebx");
2455 cc_check
&& ebx_available
=yes && def_ebx_available
='#define HAVE_EBX_AVAILABLE 1'
2456 echores
$ebx_available
2460 if test -z "$YASMFLAGS" ; then
2462 x86_64
&& objformat
="macho64" || objformat
="macho"
2468 # currently tested for Linux x86, x86_64
2469 YASMFLAGS
="-f $objformat"
2470 x86_64
&& YASMFLAGS
="$YASMFLAGS -DARCH_X86_64 -m amd64"
2471 test "$pic" = "yes" && YASMFLAGS
="$YASMFLAGS -DPIC"
2472 case "$objformat" in
2473 elf
) test $_debug && YASMFLAGS
="$YASMFLAGS -g dwarf2" ;;
2474 *) YASMFLAGS
="$YASMFLAGS -DPREFIX" ;;
2480 echo "pabsw xmm0, xmm0" > $TMPS
2481 yasm_check || _yasm
=""
2482 if test $_yasm ; then
2483 def_yasm
='#define HAVE_YASM 1'
2487 def_yasm
='#define HAVE_YASM 0'
2493 def_bswap
='#define HAVE_BSWAP 0'
2494 echo 'bswap %eax' > $TMPS
2495 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 && def_bswap
='#define HAVE_BSWAP 1' && bswap
=yes || bswap
=no
2500 #FIXME: This should happen before the check for CFLAGS..
2501 def_altivec_h
='#define HAVE_ALTIVEC_H 0'
2502 if ppc
&& ( test "$_altivec" = yes ||
test "$_runtime_cpudetection" = yes ) ; then
2504 # check if AltiVec is supported by the compiler, and how to enable it
2505 echocheck
"GCC AltiVec flags"
2506 if $
(cflag_check
-maltivec -mabi=altivec
) ; then
2507 _altivec_gcc_flags
="-maltivec -mabi=altivec"
2508 # check if <altivec.h> should be included
2509 if $
(header_check altivec.h
$_altivec_gcc_flags) ; then
2510 def_altivec_h
='#define HAVE_ALTIVEC_H 1'
2511 inc_altivec_h
='#include <altivec.h>'
2513 if $
(cflag_check
-faltivec) ; then
2514 _altivec_gcc_flags
="-faltivec"
2517 _altivec_gcc_flags
="none, AltiVec disabled"
2521 echores
"$_altivec_gcc_flags"
2523 # check if the compiler supports braces for vector declarations
2526 int main(void) { (vector int) {1}; return 0; }
2528 cc_check
$_altivec_gcc_flags || die
"You need a compiler that supports {} in AltiVec vector declarations."
2530 # Disable runtime cpudetection if we cannot generate AltiVec code or
2531 # AltiVec is disabled by the user.
2532 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2533 && _runtime_cpudetection
=no
2535 # Show that we are optimizing for AltiVec (if enabled and supported).
2536 test "$_runtime_cpudetection" = no
&& test "$_altivec" = yes \
2537 && _optimizing
="$_optimizing altivec"
2539 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2540 test "$_altivec" = yes && CFLAGS
="$CFLAGS $_altivec_gcc_flags"
2544 def_xform_asm
='#define HAVE_XFORM_ASM 0'
2546 echocheck
"XFORM ASM support"
2547 inline_asm_check
'"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2548 xform_asm
=yes && def_xform_asm
='#define HAVE_XFORM_ASM 1'
2549 echores
"$xform_asm"
2553 echocheck
"ARMv5TE (Enhanced DSP Extensions)"
2554 if test $_armv5te = "auto" ; then
2556 inline_asm_check
'"qadd r0, r0, r0"' && _armv5te
=yes
2560 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz
=yes
2562 echocheck
"ARMv6 (SIMD instructions)"
2563 if test $_armv6 = "auto" ; then
2565 inline_asm_check
'"sadd16 r0, r0, r0"' && _armv6
=yes
2569 echocheck
"ARMv6t2 (SIMD instructions)"
2570 if test $_armv6t2 = "auto" ; then
2572 inline_asm_check
'"movt r0, #0"' && _armv6t2
=yes
2577 if test $_armvfp = "auto" ; then
2579 inline_asm_check
'"fadds s0, s0, s0"' && _armvfp
=yes
2583 echocheck
"ARM NEON"
2584 if test $neon = "auto" ; then
2586 inline_asm_check
'"vadd.i16 q0, q0, q0"' && neon
=yes
2590 echocheck
"iWMMXt (Intel XScale SIMD instructions)"
2591 if test $_iwmmxt = "auto" ; then
2593 inline_asm_check
'"wunpckelub wr6, wr4"' && _iwmmxt
=yes
2598 cpuexts_all
='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2599 test "$_altivec" = yes && cpuexts
="ALTIVEC $cpuexts"
2600 test "$_mmx" = yes && cpuexts
="MMX $cpuexts"
2601 test "$_mmxext" = yes && cpuexts
="MMX2 $cpuexts"
2602 test "$_3dnow" = yes && cpuexts
="AMD3DNOW $cpuexts"
2603 test "$_3dnowext" = yes && cpuexts
="AMD3DNOWEXT $cpuexts"
2604 test "$_sse" = yes && cpuexts
="SSE $cpuexts"
2605 test "$_sse2" = yes && cpuexts
="SSE2 $cpuexts"
2606 test "$_ssse3" = yes && cpuexts
="SSSE3 $cpuexts"
2607 test "$_cmov" = yes && cpuexts
="CMOV $cpuexts"
2608 test "$_fast_cmov" = yes && cpuexts
="FAST_CMOV $cpuexts"
2609 test "$_fast_clz" = yes && cpuexts
="FAST_CLZ $cpuexts"
2610 test "$_armv5te" = yes && cpuexts
="ARMV5TE $cpuexts"
2611 test "$_armv6" = yes && cpuexts
="ARMV6 $cpuexts"
2612 test "$_armv6t2" = yes && cpuexts
="ARMV6T2 $cpuexts"
2613 test "$_armvfp" = yes && cpuexts
="ARMVFP $cpuexts"
2614 test "$neon" = yes && cpuexts
="NEON $cpuexts"
2615 test "$_iwmmxt" = yes && cpuexts
="IWMMXT $cpuexts"
2616 test "$_vis" = yes && cpuexts
="VIS $cpuexts"
2617 test "$_mvi" = yes && cpuexts
="MVI $cpuexts"
2619 # Checking kernel version...
2620 if x86_32
&& linux
; then
2622 kernel_version
=$
(uname
-r 2>&1)
2623 echocheck
"$system_name kernel version"
2624 case "$kernel_version" in
2625 '') kernel_version
="?.??"; _k_verc_fail
=yes;;
2626 [0-1].
[0-9].
[0-9]*|
2.
[0-3].
[0-9]*)
2627 _k_verc_problem
=yes;;
2629 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2632 if test "$_k_verc_fail" ; then
2633 echores
"$kernel_version, fail"
2634 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2635 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2636 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2637 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2638 echo "2.2.x you must upgrade it to get SSE support!"
2639 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2641 echores
"$kernel_version, ok"
2645 ######################
2646 # MAIN TESTS GO HERE #
2647 ######################
2651 if cflag_check
-lposix ; then
2652 extra_ldflags
="$extra_ldflags -lposix"
2659 if cflag_check
-lm ; then
2668 echocheck
"langinfo"
2669 if test "$_langinfo" = auto
; then
2671 statement_check langinfo.h
'nl_langinfo(CODESET)' && _langinfo
=yes
2673 if test "$_langinfo" = yes ; then
2674 def_langinfo
='#define HAVE_LANGINFO 1'
2676 def_langinfo
='#undef HAVE_LANGINFO'
2678 echores
"$_langinfo"
2681 echocheck
"translation support"
2682 if test "$_translation" = yes; then
2683 def_translation
="#define CONFIG_TRANSLATION 1"
2685 def_translation
="#undef CONFIG_TRANSLATION"
2687 echores
"$_translation"
2689 echocheck
"language"
2690 # Set preferred languages, "all" uses English as main language.
2691 test -z "$language" && language
=$LINGUAS
2692 test -z "$language_doc" && language_doc
=$language
2693 test -z "$language_man" && language_man
=$language
2694 test -z "$language_msg" && language_msg
=$language
2695 test -z "$language_msg" && language_msg
="all"
2696 language_doc
=$
(echo $language_doc |
tr , " ")
2697 language_man
=$
(echo $language_man |
tr , " ")
2698 language_msg
=$
(echo $language_msg |
tr , " ")
2700 test "$language_doc" = "all" && language_doc
=$doc_lang_all
2701 test "$language_man" = "all" && language_man
=$man_lang_all
2702 test "$language_msg" = "all" && language_msg
=$msg_lang_all
2704 if test "$_translation" != yes ; then
2708 # Prune non-existing translations from language lists.
2709 # Set message translation to the first available language.
2710 # Fall back on English.
2711 for lang
in $language_doc ; do
2712 test -d DOCS
/xml
/$lang && tmp_language_doc
="$tmp_language_doc $lang"
2714 language_doc
=$tmp_language_doc
2715 test -z "$language_doc" && language_doc
=en
2717 for lang
in $language_man ; do
2718 test -d DOCS
/man
/$lang && tmp_language_man
="$tmp_language_man $lang"
2720 language_man
=$tmp_language_man
2721 test -z "$language_man" && language_man
=en
2723 for lang
in $language_msg ; do
2724 test -f po
/$lang.po
&& tmp_language_msg
="$tmp_language_msg $lang"
2726 language_msg
=$tmp_language_msg
2728 echores
"messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2731 echocheck
"enable sighandler"
2732 if test "$_sighandler" = yes ; then
2733 def_sighandler
='#define CONFIG_SIGHANDLER 1'
2735 def_sighandler
='#undef CONFIG_SIGHANDLER'
2737 echores
"$_sighandler"
2739 echocheck
"runtime cpudetection"
2740 if test "$_runtime_cpudetection" = yes ; then
2741 _optimizing
="Runtime CPU-Detection enabled"
2742 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 1'
2744 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 0'
2746 echores
"$_runtime_cpudetection"
2749 echocheck
"restrict keyword"
2750 for restrict_keyword
in restrict __restrict __restrict__
; do
2751 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2753 def_restrict_keyword
=$restrict_keyword
2757 if [ -n "$def_restrict_keyword" ]; then
2758 echores
"$def_restrict_keyword"
2762 # Avoid infinite recursion loop ("#define restrict restrict")
2763 if [ "$def_restrict_keyword" != "restrict" ]; then
2764 def_restrict_keyword
="#define restrict $def_restrict_keyword"
2766 def_restrict_keyword
=""
2770 echocheck
"__builtin_expect"
2771 # GCC branch prediction hint
2773 static int foo(int a) {
2774 a = __builtin_expect(a, 10);
2775 return a == 10 ? 0 : 1;
2777 int main(void) { return foo(10) && foo(0); }
2780 cc_check
&& _builtin_expect
=yes
2781 if test "$_builtin_expect" = yes ; then
2782 def_builtin_expect
='#define HAVE_BUILTIN_EXPECT 1'
2784 def_builtin_expect
='#undef HAVE_BUILTIN_EXPECT'
2786 echores
"$_builtin_expect"
2791 statement_check kstat.h
'kstat_open()' -lkstat && _kstat
=yes
2792 if test "$_kstat" = yes ; then
2793 def_kstat
="#define HAVE_LIBKSTAT 1"
2794 extra_ldflags
="$extra_ldflags -lkstat"
2796 def_kstat
="#undef HAVE_LIBKSTAT"
2802 # required for nanosleep on some systems
2804 statement_check
time.h
'nanosleep(0, 0)' -lposix4 && _posix4
=yes
2805 if test "$_posix4" = yes ; then
2806 extra_ldflags
="$extra_ldflags -lposix4"
2810 for func
in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf
; do
2813 statement_check math.h
"${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _
$func=yes
2814 if eval test "x\$_$func" = "xyes"; then
2815 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2818 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2826 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp
=yes
2827 if test "$_mkstemp" = yes ; then
2828 def_mkstemp
='#define HAVE_MKSTEMP 1'
2830 def_mkstemp
='#define HAVE_MKSTEMP 0'
2835 echocheck
"nanosleep"
2837 statement_check
time.h
'nanosleep(0, 0)' && _nanosleep
=yes
2838 if test "$_nanosleep" = yes ; then
2839 def_nanosleep
='#define HAVE_NANOSLEEP 1'
2841 def_nanosleep
='#undef HAVE_NANOSLEEP'
2843 echores
"$_nanosleep"
2847 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2848 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2851 #include <sys/socket.h>
2852 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2855 for _ld_tmp
in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2856 cc_check
$_ld_tmp && _ld_sock
="$_ld_tmp" && _socklib
=yes && break
2858 test $_socklib = yes && test $_winsock2_h = auto
&& _winsock2_h
=no
2859 if test $_winsock2_h = auto
; then
2861 statement_check winsock2.h
'gethostbyname(0)' -lws2_32 && _ld_sock
="-lws2_32" && _winsock2_h
=yes
2863 test "$_ld_sock" && res_comment
="using $_ld_sock"
2867 if test $_winsock2_h = yes ; then
2869 def_winsock2_h
='#define HAVE_WINSOCK2_H 1'
2871 def_winsock2_h
='#define HAVE_WINSOCK2_H 0'
2875 echocheck
"arpa/inet.h"
2877 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 0'
2878 header_check arpa
/inet.h
&& arpa_inet_h
=yes &&
2879 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 1'
2880 echores
"$arpa_inet_h"
2883 echocheck
"inet_pton()"
2884 def_inet_pton
='#define HAVE_INET_PTON 0'
2886 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2887 statement_check arpa
/inet.h
'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton
=yes && break
2889 if test $inet_pton = yes ; then
2890 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2891 def_inet_pton
='#define HAVE_INET_PTON 1'
2893 echores
"$inet_pton"
2896 echocheck
"inet_aton()"
2897 def_inet_aton
='#define HAVE_INET_ATON 0'
2899 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2900 statement_check arpa
/inet.h
'inet_aton(0, 0)' $_ld_tmp && inet_aton
=yes && break
2902 if test $inet_aton = yes ; then
2903 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2904 def_inet_aton
='#define HAVE_INET_ATON 1'
2906 echores
"$inet_aton"
2909 echocheck
"socklen_t"
2911 for header
in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2912 statement_check
$header 'socklen_t v = 0' && _socklen_t
=yes && break
2914 if test "$_socklen_t" = yes ; then
2915 def_socklen_t
='#define HAVE_SOCKLEN_T 1'
2917 def_socklen_t
='#define HAVE_SOCKLEN_T 0'
2919 echores
"$_socklen_t"
2922 echocheck
"closesocket()"
2924 statement_check winsock2.h
'closesocket(~0)' $_ld_sock && _closesocket
=yes
2925 if test "$_closesocket" = yes ; then
2926 def_closesocket
='#define HAVE_CLOSESOCKET 1'
2928 def_closesocket
='#define HAVE_CLOSESOCKET 0'
2930 echores
"$_closesocket"
2933 echocheck
"networking"
2934 test $_winsock2_h = no
&& test $inet_pton = no
&&
2935 test $inet_aton = no
&& networking
=no
2936 if test "$networking" = yes ; then
2937 def_network
='#define CONFIG_NETWORK 1'
2938 def_networking
='#define CONFIG_NETWORKING 1'
2939 extra_ldflags
="$extra_ldflags $_ld_sock"
2940 inputmodules
="networking $inputmodules"
2942 noinputmodules
="networking $noinputmodules"
2943 def_network
='#define CONFIG_NETWORK 0'
2944 def_networking
='#undef CONFIG_NETWORKING'
2946 echores
"$networking"
2950 if test "$_inet6" = auto
; then
2952 #include <sys/types.h>
2953 #if !defined(_WIN32)
2954 #include <sys/socket.h>
2955 #include <netinet/in.h>
2957 #include <ws2tcpip.h>
2959 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2962 if cc_check
$_ld_sock ; then
2966 if test "$_inet6" = yes ; then
2967 def_inet6
='#define HAVE_AF_INET6 1'
2969 def_inet6
='#undef HAVE_AF_INET6'
2974 echocheck
"gethostbyname2"
2975 if test "$_gethostbyname2" = auto
; then
2977 #include <sys/types.h>
2978 #include <sys/socket.h>
2980 int main(void) { gethostbyname2("", AF_INET); return 0; }
2987 if test "$_gethostbyname2" = yes ; then
2988 def_gethostbyname2
='#define HAVE_GETHOSTBYNAME2 1'
2990 def_gethostbyname2
='#undef HAVE_GETHOSTBYNAME2'
2992 echores
"$_gethostbyname2"
2995 echocheck
"inttypes.h (required)"
2997 header_check inttypes.h
&& _inttypes
=yes
2998 echores
"$_inttypes"
3000 if test "$_inttypes" = no
; then
3001 echocheck
"sys/bitypes.h (inttypes.h predecessor)"
3002 header_check sys
/bitypes.h
&& _inttypes
=yes
3003 if test "$_inttypes" = yes ; then
3004 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."
3006 die
"Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3011 echocheck
"malloc.h"
3013 header_check malloc.h
&& _malloc
=yes
3014 if test "$_malloc" = yes ; then
3015 def_malloc_h
='#define HAVE_MALLOC_H 1'
3017 def_malloc_h
='#define HAVE_MALLOC_H 0'
3022 echocheck
"memalign()"
3023 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3024 def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 0'
3026 statement_check malloc.h
'memalign(64, sizeof(char))' && _memalign
=yes
3027 if test "$_memalign" = yes ; then
3028 def_memalign
='#define HAVE_MEMALIGN 1'
3030 def_memalign
='#define HAVE_MEMALIGN 0'
3031 def_map_memalign
='#define memalign(a, b) malloc(b)'
3032 darwin || def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 1'
3034 echores
"$_memalign"
3037 echocheck
"posix_memalign()"
3039 def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 0'
3040 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3041 posix_memalign
=yes && def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 1'
3042 echores
"$posix_memalign"
3045 echocheck
"alloca.h"
3047 statement_check alloca.h
'alloca(0)' && _alloca
=yes
3049 def_alloca_h
='#define HAVE_ALLOCA_H 1'
3051 def_alloca_h
='#undef HAVE_ALLOCA_H'
3056 echocheck
"fastmemcpy"
3057 if test "$_fastmemcpy" = yes ; then
3058 def_fastmemcpy
='#define CONFIG_FASTMEMCPY 1'
3060 def_fastmemcpy
='#undef CONFIG_FASTMEMCPY'
3062 echores
"$_fastmemcpy"
3067 statement_check sys
/mman.h
'mmap(0, 0, 0, 0, 0, 0)' && _mman
=yes
3068 if test "$_mman" = yes ; then
3069 def_mman_h
='#define HAVE_SYS_MMAN_H 1'
3071 def_mman_h
='#undef HAVE_SYS_MMAN_H'
3072 os2
&& need_mmap
=yes
3076 _mman_has_map_failed
=no
3077 statement_check sys
/mman.h
'void *p = MAP_FAILED' && _mman_has_map_failed
=yes
3078 if test "$_mman_has_map_failed" = yes ; then
3079 def_mman_has_map_failed
=''
3081 def_mman_has_map_failed
='#define MAP_FAILED ((void *) -1)'
3084 echocheck
"dynamic loader"
3086 for _ld_tmp
in "" "-ldl"; do
3087 statement_check dlfcn.h
'dlopen("", 0)' $_ld_tmp && _ld_dl
="$_ld_tmp" && _dl
=yes && break
3089 if test "$_dl" = yes ; then
3090 def_dl
='#define HAVE_LIBDL 1'
3092 def_dl
='#undef HAVE_LIBDL'
3097 def_threads
='#define HAVE_THREADS 0'
3101 THREAD_CFLAGS
=-D_REENTRANT
3102 elif freebsd || netbsd || openbsd || bsdos
; then
3103 THREAD_CFLAGS
=-D_THREAD_SAFE
3105 if test "$_pthreads" = auto
; then
3107 #include <pthread.h>
3108 static void *func(void *arg) { return arg; }
3111 #ifdef PTW32_STATIC_LIB
3112 pthread_win32_process_attach_np();
3113 pthread_win32_thread_attach_np();
3115 return pthread_create (&tid, 0, func, 0) != 0;
3120 for _ld_tmp
in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3121 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3122 cc_check
$THREAD_CFLAGS $_ld_tmp && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && break
3124 if test "$_pthreads" = no
&& mingw32
; then
3125 _ld_tmp
="-lpthreadGC2 -lws2_32"
3126 cc_check
$_ld_tmp -DPTW32_STATIC_LIB && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && CFLAGS
="$CFLAGS -DPTW32_STATIC_LIB"
3130 if test "$_pthreads" = yes ; then
3131 test $_ld_pthread && res_comment
="using $_ld_pthread"
3132 def_pthreads
='#define HAVE_PTHREADS 1'
3133 def_threads
='#define HAVE_THREADS 1'
3134 extra_cflags
="$extra_cflags $THREAD_CFLAGS"
3136 res_comment
="v4l, v4l2, ao_nas, win32 loader disabled"
3137 def_pthreads
='#undef HAVE_PTHREADS'
3138 _nas
=no
; _tv_v4l1
=no
; _tv_v4l2
=no
3139 mingw32 || _win32dll
=no
3141 echores
"$_pthreads"
3144 if test "$_pthreads" = yes ; then
3145 def_pthread_cache
="#define PTHREAD_CACHE 1"
3148 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
3152 echocheck
"w32threads"
3153 if test "$_pthreads" = yes ; then
3154 res_comment
="using pthread instead"
3157 if test "$_w32threads" = auto
; then
3159 mingw32
&& _w32threads
=yes
3161 test "$_w32threads" = yes && def_threads
='#define HAVE_THREADS 1'
3162 echores
"$_w32threads"
3165 if test "$_rpath" = yes ; then
3166 for I
in $
(echo $extra_ldflags |
sed 's/-L//g') ; do
3167 tmp
="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3174 if test "$_iconv" = auto
; then
3179 #define INBUFSIZE 1024
3180 #define OUTBUFSIZE 4096
3182 char inbuffer[INBUFSIZE];
3183 char outbuffer[OUTBUFSIZE];
3188 char *tocode="UTF-8";
3189 char *fromcode="cp1250";
3190 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3191 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3192 char *iptr=inbuffer;
3193 char *optr=outbuffer;
3194 size_t inleft=numread;
3195 size_t outleft=OUTBUFSIZE;
3196 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3198 write(1, outbuffer, OUTBUFSIZE - outleft);
3201 if (iconv_close(icdsc) == -1)
3208 for _ld_tmp
in "" "-liconv" "-liconv $_ld_dl" ; do
3209 cc_check
$_ld_lm $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
3212 if test "$_iconv" != yes ; then
3213 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."
3216 if test "$_iconv" = yes ; then
3217 def_iconv
='#define CONFIG_ICONV 1'
3219 def_iconv
='#undef CONFIG_ICONV'
3224 echocheck
"soundcard.h"
3226 def_soundcard_h
='#undef HAVE_SOUNDCARD_H'
3227 def_sys_soundcard_h
='#undef HAVE_SYS_SOUNDCARD_H'
3228 for _soundcard_header
in "sys/soundcard.h" "soundcard.h"; do
3229 header_check
$_soundcard_header && _soundcard_h
=yes &&
3230 res_comment
="$_soundcard_header" && break
3233 if test "$_soundcard_h" = yes ; then
3234 if test $_soundcard_header = "sys/soundcard.h"; then
3235 def_sys_soundcard_h
='#define HAVE_SYS_SOUNDCARD_H 1'
3237 def_soundcard_h
='#define HAVE_SOUNDCARD_H 1'
3240 echores
"$_soundcard_h"
3243 echocheck
"sys/videoio.h"
3245 def_sys_videoio_h
='#undef HAVE_SYS_VIDEOIO_H'
3246 header_check sys
/videoio.h
&& sys_videoio_h
=yes &&
3247 def_sys_videoio_h
='#define HAVE_SYS_VIDEOIO_H 1'
3248 echores
"$sys_videoio_h"
3251 echocheck
"sys/dvdio.h"
3253 # FreeBSD 8.1 has broken dvdio.h
3254 header_check_broken sys
/types.h sys
/dvdio.h
&& _dvdio
=yes
3255 if test "$_dvdio" = yes ; then
3256 def_dvdio
='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3258 def_dvdio
='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3263 echocheck
"sys/cdio.h"
3265 # at least OpenSolaris has a broken cdio.h
3266 header_check_broken sys
/types.h sys
/cdio.h
&& _cdio
=yes
3267 if test "$_cdio" = yes ; then
3268 def_cdio
='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3270 def_cdio
='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3275 echocheck
"linux/cdrom.h"
3277 header_check linux
/cdrom.h
&& _cdrom
=yes
3278 if test "$_cdrom" = yes ; then
3279 def_cdrom
='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3281 def_cdrom
='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3288 header_check dvd.h
&& _dvd
=yes
3289 if test "$_dvd" = yes ; then
3290 def_dvd
='#define DVD_STRUCT_IN_DVD_H 1'
3292 def_dvd
='#undef DVD_STRUCT_IN_DVD_H'
3298 echocheck
"BSDI dvd.h"
3300 header_check dvd.h
&& _bsdi_dvd
=yes
3301 if test "$_bsdi_dvd" = yes ; then
3302 def_bsdi_dvd
='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3304 def_bsdi_dvd
='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3306 echores
"$_bsdi_dvd"
3311 # also used by AIX, but AIX does not support VCD and/or libdvdread
3312 echocheck
"HP-UX SCSI header"
3314 header_check sys
/scsi.h
&& _hpux_scsi_h
=yes
3315 if test "$_hpux_scsi_h" = yes ; then
3316 def_hpux_scsi_h
='#define HPUX_SCTL_IO 1'
3318 def_hpux_scsi_h
='#undef HPUX_SCTL_IO'
3320 echores
"$_hpux_scsi_h"
3325 echocheck
"userspace SCSI headers (Solaris)"
3327 header_check sys
/scsi
/scsi_types.h
&&
3328 header_check_broken sys
/types.h sys
/scsi
/impl
/uscsi.h
&&
3330 if test "$_sol_scsi_h" = yes ; then
3331 def_sol_scsi_h
='#define SOLARIS_USCSI 1'
3333 def_sol_scsi_h
='#undef SOLARIS_USCSI'
3335 echores
"$_sol_scsi_h"
3340 if test "$_termcap" = auto
; then
3342 for _ld_tmp
in "-lncurses" "-ltinfo" "-ltermcap"; do
3343 statement_check term.h
'tgetent(0, 0)' $_ld_tmp &&
3344 extra_ldflags
="$extra_ldflags $_ld_tmp" && _termcap
=yes && break
3347 if test "$_termcap" = yes ; then
3348 def_termcap
='#define HAVE_TERMCAP 1'
3349 test $_ld_tmp && res_comment
="using $_ld_tmp"
3351 def_termcap
='#undef HAVE_TERMCAP'
3357 def_termios
='#undef HAVE_TERMIOS'
3358 def_termios_h
='#undef HAVE_TERMIOS_H'
3359 def_termios_sys_h
='#undef HAVE_SYS_TERMIOS_H'
3360 if test "$_termios" = auto
; then
3362 for _termios_header
in "termios.h" "sys/termios.h"; do
3363 header_check
$_termios_header && _termios
=yes &&
3364 res_comment
="using $_termios_header" && break
3368 if test "$_termios" = yes ; then
3369 def_termios
='#define HAVE_TERMIOS 1'
3370 if test "$_termios_header" = "termios.h" ; then
3371 def_termios_h
='#define HAVE_TERMIOS_H 1'
3373 def_termios_sys_h
='#define HAVE_SYS_TERMIOS_H 1'
3380 if test "$_shm" = auto
; then
3382 statement_check sys
/shm.h
'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm
=yes
3384 if test "$_shm" = yes ; then
3385 def_shm
='#define HAVE_SHM 1'
3387 def_shm
='#undef HAVE_SHM'
3392 echocheck
"strsep()"
3394 statement_check string.h
'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep
=yes
3395 if test "$_strsep" = yes ; then
3396 def_strsep
='#define HAVE_STRSEP 1'
3399 def_strsep
='#undef HAVE_STRSEP'
3405 echocheck
"vsscanf()"
3407 #define _ISOC99_SOURCE
3410 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3413 cc_check
&& _vsscanf
=yes
3414 if test "$_vsscanf" = yes ; then
3415 def_vsscanf
='#define HAVE_VSSCANF 1'
3418 def_vsscanf
='#undef HAVE_VSSCANF'
3426 define_statement_check
"_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3427 statement_check
"string.h" 'int a, b; swab(&a, &b, 0)' && _swab
=yes
3428 if test "$_swab" = yes ; then
3429 def_swab
='#define HAVE_SWAB 1'
3432 def_swab
='#undef HAVE_SWAB'
3437 echocheck
"POSIX select()"
3441 #include <sys/types.h>
3443 #include <sys/time.h>
3445 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3448 def_posix_select
='#undef HAVE_POSIX_SELECT'
3449 #select() of kLIBC (OS/2) supports socket only
3450 ! os2
&& cc_check
&& _posix_select
=yes &&
3451 def_posix_select
='#define HAVE_POSIX_SELECT 1'
3452 echores
"$_posix_select"
3455 echocheck
"audio select()"
3456 if test "$_select" = no
; then
3457 def_select
='#undef HAVE_AUDIO_SELECT'
3458 elif test "$_select" = yes ; then
3459 def_select
='#define HAVE_AUDIO_SELECT 1'
3464 echocheck
"gettimeofday()"
3466 statement_check sys
/time.h
'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday
=yes
3467 if test "$_gettimeofday" = yes ; then
3468 def_gettimeofday
='#define HAVE_GETTIMEOFDAY 1'
3469 need_gettimeofday
=no
3471 def_gettimeofday
='#undef HAVE_GETTIMEOFDAY'
3472 need_gettimeofday
=yes
3474 echores
"$_gettimeofday"
3479 statement_check glob.h
'glob("filename", 0, 0, 0)' && _glob
=yes
3481 if test "$_glob" = yes ; then
3482 def_glob
='#define HAVE_GLOB 1'
3484 def_glob
='#undef HAVE_GLOB'
3485 # HACK! need_glob currently enables compilation of a
3486 # win32-specific glob()-replacement.
3487 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3488 win32
&& need_glob
=yes
3493 echocheck
"setenv()"
3495 statement_check stdlib.h
'setenv("", "", 0)' && _setenv
=yes
3496 if test "$_setenv" = yes ; then
3497 def_setenv
='#define HAVE_SETENV 1'
3500 def_setenv
='#undef HAVE_SETENV'
3506 echocheck
"setmode()"
3508 def_setmode
='#define HAVE_SETMODE 0'
3509 statement_check io.h
'setmode(0, 0)' && _setmode
=yes && def_setmode
='#define HAVE_SETMODE 1'
3514 echocheck
"sysi86()"
3516 statement_check sys
/sysi86.h
'sysi86(0)' && _sysi86
=yes
3517 if test "$_sysi86" = yes ; then
3518 def_sysi86
='#define HAVE_SYSI86 1'
3519 statement_check sys
/sysi86.h
'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv
='#define HAVE_SYSI86_iv 1'
3521 def_sysi86
='#undef HAVE_SYSI86'
3527 echocheck
"sys/sysinfo.h"
3529 statement_check sys
/sysinfo.h
'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo
=yes
3530 if test "$_sys_sysinfo" = yes ; then
3531 def_sys_sysinfo_h
='#define HAVE_SYS_SYSINFO_H 1'
3533 def_sys_sysinfo_h
='#undef HAVE_SYS_SYSINFO_H'
3535 echores
"$_sys_sysinfo"
3540 echocheck
"Mac OS X Finder Support"
3541 def_macosx_finder
='#undef CONFIG_MACOSX_FINDER'
3542 if test "$_macosx_finder" = yes ; then
3543 def_macosx_finder
='#define CONFIG_MACOSX_FINDER 1'
3544 extra_ldflags
="$extra_ldflags -framework Carbon"
3546 echores
"$_macosx_finder"
3548 echocheck
"Mac OS X Bundle file locations"
3549 def_macosx_bundle
='#undef CONFIG_MACOSX_BUNDLE'
3550 test "$_macosx_bundle" = auto
&& _macosx_bundle
=$_macosx_finder
3551 if test "$_macosx_bundle" = yes ; then
3552 def_macosx_bundle
='#define CONFIG_MACOSX_BUNDLE 1'
3553 extra_ldflags
="$extra_ldflags -framework Carbon"
3555 echores
"$_macosx_bundle"
3557 echocheck
"Apple Remote"
3558 if test "$_apple_remote" = auto
; then
3562 #include <IOKit/IOCFPlugIn.h>
3564 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3565 CFMutableDictionaryRef hidMatchDictionary;
3566 IOReturn ioReturnValue;
3568 // Set up a matching dictionary to search the I/O Registry by class.
3569 // name for all HID class devices
3570 hidMatchDictionary = IOServiceMatching("AppleIRController");
3572 // Now search I/O Registry for matching devices.
3573 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3574 hidMatchDictionary, &hidObjectIterator);
3576 // If search is unsuccessful, return nonzero.
3577 if (ioReturnValue != kIOReturnSuccess ||
3578 !IOIteratorIsValid(hidObjectIterator)) {
3584 cc_check
-framework IOKit
&& _apple_remote
=yes
3586 if test "$_apple_remote" = yes ; then
3587 def_apple_remote
='#define CONFIG_APPLE_REMOTE 1'
3588 libs_mplayer
="$libs_mplayer -framework IOKit -framework Cocoa"
3590 def_apple_remote
='#undef CONFIG_APPLE_REMOTE'
3592 echores
"$_apple_remote"
3598 echocheck
"Apple IR"
3599 if test "$_apple_ir" = auto
; then
3601 statement_check linux
/input.h
'struct input_event ev; struct input_id id' && _apple_ir
=yes
3603 if test "$_apple_ir" = yes ; then
3604 def_apple_ir
='#define CONFIG_APPLE_IR 1'
3606 def_apple_ir
='#undef CONFIG_APPLE_IR'
3608 echores
"$_apple_ir"
3611 echocheck
"pkg-config"
3612 _pkg_config
=pkg-config
3613 if $
($_pkg_config --version > /dev
/null
2>&1); then
3614 if test "$_ld_static"; then
3615 _pkg_config
="$_pkg_config --static"
3624 echocheck
"Samba support (libsmbclient)"
3625 if test "$_smb" = yes; then
3626 extra_ldflags
="$extra_ldflags -lsmbclient"
3628 if test "$_smb" = auto
; then
3630 for _ld_tmp
in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3631 statement_check libsmbclient.h
'smbc_opendir("smb://")' $_ld_tmp &&
3632 extra_ldflags
="$extra_ldflags $_ld_tmp" && _smb
=yes && break
3636 if test "$_smb" = yes; then
3637 def_smb
="#define CONFIG_LIBSMBCLIENT 1"
3638 inputmodules
="smb $inputmodules"
3640 def_smb
="#undef CONFIG_LIBSMBCLIENT"
3641 noinputmodules
="smb $noinputmodules"
3652 if test "$_tdfxfb" = yes ; then
3653 def_tdfxfb
='#define CONFIG_TDFXFB 1'
3654 vomodules
="tdfxfb $vomodules"
3656 def_tdfxfb
='#undef CONFIG_TDFXFB'
3657 novomodules
="tdfxfb $novomodules"
3662 if test "$_s3fb" = yes ; then
3663 def_s3fb
='#define CONFIG_S3FB 1'
3664 vomodules
="s3fb $vomodules"
3666 def_s3fb
='#undef CONFIG_S3FB'
3667 novomodules
="s3fb $novomodules"
3672 if test "$_wii" = yes ; then
3673 def_wii
='#define CONFIG_WII 1'
3674 vomodules
="wii $vomodules"
3676 def_wii
='#undef CONFIG_WII'
3677 novomodules
="wii $novomodules"
3682 if test "$_tdfxvid" = yes ; then
3683 def_tdfxvid
='#define CONFIG_TDFX_VID 1'
3684 vomodules
="tdfx_vid $vomodules"
3686 def_tdfxvid
='#undef CONFIG_TDFX_VID'
3687 novomodules
="tdfx_vid $novomodules"
3692 if test "$_xvr100" = auto
; then
3695 #include <sys/fbio.h>
3696 #include <sys/visual_io.h>
3698 struct vis_identifier ident;
3699 struct fbgattr attr;
3700 ioctl(0, VIS_GETIDENTIFIER, &ident);
3701 ioctl(0, FBIOGATTR, &attr);
3706 cc_check
&& _xvr100
=yes
3708 if test "$_xvr100" = yes ; then
3709 def_xvr100
='#define CONFIG_XVR100 1'
3710 vomodules
="xvr100 $vomodules"
3712 def_tdfxvid
='#undef CONFIG_XVR100'
3713 novomodules
="xvr100 $novomodules"
3718 if test "$_tga" = yes ; then
3719 def_tga
='#define CONFIG_TGA 1'
3720 vomodules
="tga $vomodules"
3722 def_tga
='#undef CONFIG_TGA'
3723 novomodules
="tga $novomodules"
3728 echocheck
"md5sum support"
3729 if test "$_md5sum" = yes; then
3730 def_md5sum
="#define CONFIG_MD5SUM 1"
3731 vomodules
="md5sum $vomodules"
3733 def_md5sum
="#undef CONFIG_MD5SUM"
3734 novomodules
="md5sum $novomodules"
3739 echocheck
"yuv4mpeg support"
3740 if test "$_yuv4mpeg" = yes; then
3741 def_yuv4mpeg
="#define CONFIG_YUV4MPEG 1"
3742 vomodules
="yuv4mpeg $vomodules"
3744 def_yuv4mpeg
="#undef CONFIG_YUV4MPEG"
3745 novomodules
="yuv4mpeg $novomodules"
3747 echores
"$_yuv4mpeg"
3751 if test "$_bl" = yes ; then
3752 def_bl
='#define CONFIG_BL 1'
3753 vomodules
="bl $vomodules"
3755 def_bl
='#undef CONFIG_BL'
3756 novomodules
="bl $novomodules"
3761 echocheck
"DirectFB"
3762 if test "$_directfb" = auto
; then
3765 #include <directfb.h>
3766 #include <directfb_version.h>
3767 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3768 #error "DirectFB version too old."
3770 int main(void) { DirectFBInit(0, 0); return 0; }
3772 for _inc_tmp
in "" -I/usr
/local
/include
/directfb
-I/usr
/include
/directfb
-I/usr
/local
/include
; do
3773 cc_check
$_inc_tmp -ldirectfb &&
3774 _directfb
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
3777 if test "$_directfb" = yes ; then
3778 def_directfb
='#define CONFIG_DIRECTFB 1'
3779 vomodules
="directfb dfbmga $vomodules"
3780 libs_mplayer
="$libs_mplayer -ldirectfb"
3782 def_directfb
='#undef CONFIG_DIRECTFB'
3783 novomodules
="directfb dfbmga $novomodules"
3785 echores
"$_directfb"
3788 echocheck
"X11 headers presence"
3790 res_comment
="check if the dev(el) packages are installed"
3791 for I
in $
(echo $extra_cflags |
sed s
/-I//g
) /usr
/include
; do
3792 if test -f "$I/X11/Xlib.h" ; then
3798 if test $_cross_compile = no
; then
3799 for I
in /usr
/X11
/include
/usr
/X11R
7/include
/usr
/local
/include
/usr
/X11R
6/include \
3800 /usr
/include
/X11R6
/usr
/openwin
/include
; do
3801 if test -f "$I/X11/Xlib.h" ; then
3802 extra_cflags
="$extra_cflags -I$I"
3804 res_comment
="using $I"
3809 echores
"$_x11_headers"
3813 if test "$_x11" = auto
&& test "$_x11_headers" = yes ; then
3814 for I
in "" -L/usr
/X11R
7/lib
-L/usr
/local
/lib
-L/usr
/X11R
6/lib
-L/usr
/lib
/X11R6 \
3815 -L/usr
/X11
/lib
-L/usr
/lib32
-L/usr
/openwin
/lib
-L/usr
/local
/lib64
-L/usr
/X11R
6/lib64 \
3818 _ld_tmp
="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3820 _ld_tmp
="$I -lXext -lX11 $_ld_pthread"
3822 statement_check X11
/Xutil.h
'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3823 libs_mplayer
="$libs_mplayer $_ld_tmp" && _x11
=yes && break
3826 if test "$_x11" = yes ; then
3827 def_x11
='#define CONFIG_X11 1'
3828 vomodules
="x11 xover $vomodules"
3831 def_x11
='#undef CONFIG_X11'
3832 novomodules
="x11 $novomodules"
3833 res_comment
="check if the dev(el) packages are installed"
3837 echocheck
"Xss screensaver extensions"
3838 if test "$_xss" = auto
; then
3840 statement_check
"X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss
=yes
3842 if test "$_xss" = yes ; then
3843 def_xss
='#define CONFIG_XSS 1'
3844 libs_mplayer
="$libs_mplayer -lXss"
3846 def_xss
='#undef CONFIG_XSS'
3853 if test "$_x11" = yes ; then
3855 #include <X11/Xmd.h>
3856 #include <X11/Xlib.h>
3857 #include <X11/Xutil.h>
3858 #include <X11/Xatom.h>
3859 #include <X11/extensions/dpms.h>
3860 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3862 cc_check
-lXdpms && _xdpms3
=yes
3863 statement_check_broken X11
/Xlib.h X11
/extensions
/dpms.h
'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4
=yes
3865 if test "$_xdpms4" = yes ; then
3866 def_xdpms
='#define CONFIG_XDPMS 1'
3867 res_comment
="using Xdpms 4"
3869 elif test "$_xdpms3" = yes ; then
3870 def_xdpms
='#define CONFIG_XDPMS 1'
3871 libs_mplayer
="$libs_mplayer -lXdpms"
3872 res_comment
="using Xdpms 3"
3875 def_xdpms
='#undef CONFIG_XDPMS'
3881 if test "$_xv" = auto
&& test "$_x11" = yes ; then
3883 statement_check_broken X11
/Xlib.h X11
/extensions
/Xvlib.h
'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv
=yes
3886 if test "$_xv" = yes ; then
3887 def_xv
='#define CONFIG_XV 1'
3888 libs_mplayer
="$libs_mplayer -lXv"
3889 vomodules
="xv $vomodules"
3891 def_xv
='#undef CONFIG_XV'
3892 novomodules
="xv $novomodules"
3898 if test "$_vdpau" = auto
&& test "$_x11" = yes ; then
3900 if test "$_dl" = yes ; then
3901 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
3904 if test "$_vdpau" = yes ; then
3905 def_vdpau
='#define CONFIG_VDPAU 1'
3906 libs_mplayer
="$libs_mplayer -lvdpau"
3907 vomodules
="vdpau $vomodules"
3909 def_vdpau
='#define CONFIG_VDPAU 0'
3910 novomodules
="vdpau $novomodules"
3915 echocheck
"Xinerama"
3916 if test "$_xinerama" = auto
&& test "$_x11" = yes ; then
3918 statement_check X11
/extensions
/Xinerama.h
'XineramaIsActive(0)' -lXinerama && _xinerama
=yes
3921 if test "$_xinerama" = yes ; then
3922 def_xinerama
='#define CONFIG_XINERAMA 1'
3923 libs_mplayer
="$libs_mplayer -lXinerama"
3925 def_xinerama
='#undef CONFIG_XINERAMA'
3927 echores
"$_xinerama"
3930 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3931 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3932 # named 'X extensions' or something similar.
3933 # This check may be useful for future mplayer versions (to change resolution)
3934 # If you run into problems, remove '-lXxf86vm'.
3936 if test "$_vm" = auto
&& test "$_x11" = yes ; then
3938 statement_check_broken X11
/Xlib.h X11
/extensions
/xf86vmode.h
'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm
=yes
3940 if test "$_vm" = yes ; then
3941 def_vm
='#define CONFIG_XF86VM 1'
3942 libs_mplayer
="$libs_mplayer -lXxf86vm"
3944 def_vm
='#undef CONFIG_XF86VM'
3948 # Check for the presence of special keycodes, like audio control buttons
3949 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3950 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3951 # have these new keycodes.
3952 echocheck
"XF86keysym"
3953 if test "$_xf86keysym" = auto
&& test "$_x11" = yes ; then
3955 return_check X11
/XF86keysym.h XF86XK_AudioPause
&& _xf86keysym
=yes
3957 if test "$_xf86keysym" = yes ; then
3958 def_xf86keysym
='#define CONFIG_XF86XK 1'
3960 def_xf86keysym
='#undef CONFIG_XF86XK'
3962 echores
"$_xf86keysym"
3965 if test "$_dga2" = auto
&& test "$_x11" = yes ; then
3967 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2
=yes
3969 if test "$_dga1" = auto
&& test "$_dga2" = no
&& test "$_vm" = yes ; then
3971 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1
=yes
3975 def_dga
='#undef CONFIG_DGA'
3976 def_dga1
='#undef CONFIG_DGA1'
3977 def_dga2
='#undef CONFIG_DGA2'
3978 if test "$_dga1" = yes ; then
3980 def_dga1
='#define CONFIG_DGA1 1'
3981 res_comment
="using DGA 1.0"
3982 elif test "$_dga2" = yes ; then
3984 def_dga2
='#define CONFIG_DGA2 1'
3985 res_comment
="using DGA 2.0"
3987 if test "$_dga" = yes ; then
3988 def_dga
='#define CONFIG_DGA 1'
3989 libs_mplayer
="$libs_mplayer -lXxf86dga"
3990 vomodules
="dga $vomodules"
3992 novomodules
="dga $novomodules"
3998 if test "$_3dfx" = yes && test "$_dga" = yes ; then
3999 def_3dfx
='#define CONFIG_3DFX 1'
4000 vomodules
="3dfx $vomodules"
4003 def_3dfx
='#undef CONFIG_3DFX'
4004 novomodules
="3dfx $novomodules"
4010 if test "$_ggi" = auto
; then
4012 statement_check ggi
/ggi.h
'ggiInit()' -lggi && _ggi
=yes
4014 if test "$_ggi" = yes ; then
4015 def_ggi
='#define CONFIG_GGI 1'
4016 libs_mplayer
="$libs_mplayer -lggi"
4017 vomodules
="ggi $vomodules"
4019 def_ggi
='#undef CONFIG_GGI'
4020 novomodules
="ggi $novomodules"
4024 echocheck
"GGI extension: libggiwmh"
4025 if test "$_ggiwmh" = auto
; then
4027 statement_check ggi
/wmh.h
'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh
=yes
4029 # needed to get right output on obscure combination
4030 # like --disable-ggi --enable-ggiwmh
4031 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4032 def_ggiwmh
='#define CONFIG_GGIWMH 1'
4033 libs_mplayer
="$libs_mplayer -lggiwmh"
4036 def_ggiwmh
='#undef CONFIG_GGIWMH'
4042 if test "$_aa" = auto
; then
4049 c = aa_autoinit(&aa_defparams);
4050 p = aa_getrenderparams();
4051 aa_autoinitkbd(c, 0);
4055 for _ld_tmp
in "-laa" ; do
4056 cc_check
$_ld_tmp && libs_mplayer
="$libs_mplayer $_ld_tmp" && _aa
=yes && break
4059 if test "$_aa" = yes ; then
4060 def_aa
='#define CONFIG_AA 1'
4062 libs_mplayer
="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4064 vomodules
="aa $vomodules"
4066 def_aa
='#undef CONFIG_AA'
4067 novomodules
="aa $novomodules"
4073 if test "$_caca" = auto
; then
4075 if ( caca-config
--version ) >> "$TMPLOG" 2>&1 ; then
4078 #ifdef CACA_API_VERSION_1
4081 int main(void) { caca_init(); return 0; }
4083 cc_check $
(caca-config
--libs) && _caca
=yes
4086 if test "$_caca" = yes ; then
4087 def_caca
='#define CONFIG_CACA 1'
4088 extra_cflags
="$extra_cflags $(caca-config --cflags)"
4089 libs_mplayer
="$libs_mplayer $(caca-config --libs)"
4090 vomodules
="caca $vomodules"
4092 def_caca
='#undef CONFIG_CACA'
4093 novomodules
="caca $novomodules"
4099 if test "$_svga" = auto
; then
4101 header_check vga.h
-lvga $_ld_lm && _svga
=yes
4103 if test "$_svga" = yes ; then
4104 def_svga
='#define CONFIG_SVGALIB 1'
4105 libs_mplayer
="$libs_mplayer -lvga"
4106 vomodules
="svga $vomodules"
4108 def_svga
='#undef CONFIG_SVGALIB'
4109 novomodules
="svga $novomodules"
4115 if test "$_fbdev" = auto
; then
4119 if test "$_fbdev" = yes ; then
4120 def_fbdev
='#define CONFIG_FBDEV 1'
4121 vomodules
="fbdev $vomodules"
4123 def_fbdev
='#undef CONFIG_FBDEV'
4124 novomodules
="fbdev $novomodules"
4131 if test "$_dvb" = auto
; then
4135 #include <sys/ioctl.h>
4139 #include <linux/dvb/dmx.h>
4140 #include <linux/dvb/frontend.h>
4141 #include <linux/dvb/video.h>
4142 #include <linux/dvb/audio.h>
4143 int main(void) {return 0;}
4145 for _inc_tmp
in "" "-I/usr/src/DVB/include" ; do
4146 cc_check
$_inc_tmp && _dvb
=yes &&
4147 extra_cflags
="$extra_cflags $_inc_tmp" && break
4151 if test "$_dvb" = yes ; then
4153 inputmodules
="dvb $inputmodules"
4154 def_dvb
='#define CONFIG_DVB 1'
4155 def_dvbin
='#define CONFIG_DVBIN 1'
4156 aomodules
="mpegpes(dvb) $aomodules"
4157 vomodules
="mpegpes(dvb) $vomodules"
4160 noinputmodules
="dvb $noinputmodules"
4161 def_dvb
='#undef CONFIG_DVB'
4162 def_dvbin
='#undef CONFIG_DVBIN '
4163 aomodules
="mpegpes(file) $aomodules"
4164 vomodules
="mpegpes(file) $vomodules"
4170 echocheck
"QuickTime"
4171 if test "$quicktime" = auto
; then
4173 statement_check QuickTime
/QuickTime.h
'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime
&& quicktime
=yes
4175 if test "$quicktime" = yes ; then
4176 extra_ldflags
="$extra_ldflags -framework QuickTime"
4177 def_quicktime
='#define CONFIG_QUICKTIME 1'
4179 def_quicktime
='#undef CONFIG_QUICKTIME'
4185 if test "$_quartz" = auto
; then
4187 statement_check Carbon
/Carbon.h
'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon
&& _quartz
=yes
4189 if test "$_quartz" = yes ; then
4190 libs_mplayer
="$libs_mplayer -framework Carbon"
4191 def_quartz
='#define CONFIG_QUARTZ 1'
4192 vomodules
="quartz $vomodules"
4194 def_quartz
='#undef CONFIG_QUARTZ'
4195 novomodules
="quartz $novomodules"
4199 echocheck
"CoreVideo"
4200 if test "$_corevideo" = auto
; then
4202 #include <Carbon/Carbon.h>
4203 #include <CoreServices/CoreServices.h>
4204 #include <OpenGL/OpenGL.h>
4205 #include <QuartzCore/CoreVideo.h>
4206 int main(void) { return 0; }
4209 cc_check
-framework Carbon
-framework Cocoa
-framework QuartzCore
-framework OpenGL
&& _corevideo
=yes
4211 if test "$_corevideo" = yes ; then
4212 vomodules
="corevideo $vomodules"
4213 libs_mplayer
="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4214 def_corevideo
='#define CONFIG_COREVIDEO 1'
4216 novomodules
="corevideo $novomodules"
4217 def_corevideo
='#undef CONFIG_COREVIDEO'
4219 echores
"$_corevideo"
4222 if test "$_gl" = no
; then
4223 # if _gl is not enabled there is no point to add potentially unused linker flags
4226 if test "$_cocoa" = auto
; then
4228 #include <CoreServices/CoreServices.h>
4229 #include <OpenGL/OpenGL.h>
4230 #include <QuartzCore/CoreVideo.h>
4231 int main(void) { return 0; }
4234 cc_check
-framework Cocoa
-framework QuartzCore
-framework OpenGL
&& _cocoa
=yes
4236 if test "$_cocoa" = yes ; then
4237 libs_mplayer
="$libs_mplayer -framework Cocoa -framework QuartzCore -framework OpenGL"
4244 echocheck
"PNG support"
4245 if test "$_png" = auto
; then
4248 # Don't check for -lpng on irix since it has its own libpng
4249 # incompatible with the GNU libpng
4250 res_comment
="disabled on irix (not GNU libpng)"
4257 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4258 printf("libpng: %s\n", png_libpng_ver);
4259 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4262 cc_check
-lpng -lz $_ld_lm && _png
=yes
4266 if test "$_png" = yes ; then
4267 def_png
='#define CONFIG_PNG 1'
4268 extra_ldflags
="$extra_ldflags -lpng -lz"
4270 def_png
='#undef CONFIG_PNG'
4273 echocheck
"MNG support"
4274 if test "$_mng" = auto
; then
4276 return_statement_check libmng.h
'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng
=yes
4279 if test "$_mng" = yes ; then
4280 def_mng
='#define CONFIG_MNG 1'
4281 extra_ldflags
="$extra_ldflags -lmng -lz"
4283 def_mng
='#undef CONFIG_MNG'
4286 echocheck
"JPEG support"
4287 if test "$_jpeg" = auto
; then
4289 header_check_broken stdio.h jpeglib.h
-ljpeg $_ld_lm && _jpeg
=yes
4293 if test "$_jpeg" = yes ; then
4294 def_jpeg
='#define CONFIG_JPEG 1'
4295 vomodules
="jpeg $vomodules"
4296 extra_ldflags
="$extra_ldflags -ljpeg"
4298 def_jpeg
='#undef CONFIG_JPEG'
4299 novomodules
="jpeg $novomodules"
4304 echocheck
"PNM support"
4305 if test "$_pnm" = yes; then
4306 def_pnm
="#define CONFIG_PNM 1"
4307 vomodules
="pnm $vomodules"
4309 def_pnm
="#undef CONFIG_PNM"
4310 novomodules
="pnm $novomodules"
4316 echocheck
"GIF support"
4317 # This is to appease people who want to force gif support.
4318 # If it is forced to yes, then we still do checks to determine
4319 # which gif library to use.
4320 if test "$_gif" = yes ; then
4325 if test "$_gif" = auto
; then
4327 for _ld_gif
in "-lungif" "-lgif" ; do
4328 statement_check gif_lib.h
'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif
=yes && break
4332 # If no library was found, and the user wants support forced,
4333 # then we force it on with libgif, as this is the safest
4334 # assumption IMHO. (libungif & libregif both create symbolic
4335 # links to libgif. We also assume that no x11 support is needed,
4336 # because if you are forcing this, then you _should_ know what
4337 # you are doing. [ Besides, package maintainers should never
4338 # have compiled x11 deps into libungif in the first place. ] )
4341 if test "$_force_gif" = yes && test "$_gif" = no
; then
4346 if test "$_gif" = yes ; then
4347 def_gif
='#define CONFIG_GIF 1'
4348 codecmodules
="gif $codecmodules"
4349 vomodules
="gif89a $vomodules"
4350 res_comment
="old version, some encoding functions disabled"
4351 def_gif_4
='#undef CONFIG_GIF_4'
4352 extra_ldflags
="$extra_ldflags $_ld_gif"
4358 #include <gif_lib.h>
4359 static void catch(int sig) { exit(1); }
4361 signal(SIGSEGV, catch); // catch segfault
4362 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4363 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4367 if cc_check
"$_ld_gif" ; then
4368 def_gif_4
='#define CONFIG_GIF_4 1'
4372 def_gif
='#undef CONFIG_GIF'
4373 def_gif_4
='#undef CONFIG_GIF_4'
4374 novomodules
="gif89a $novomodules"
4375 nocodecmodules
="gif $nocodecmodules"
4380 case "$_gif" in yes*)
4381 echocheck
"broken giflib workaround"
4382 def_gif_tvt_hack
='#define CONFIG_GIF_TVT_HACK 1'
4386 #include <gif_lib.h>
4388 GifFileType gif = {.UserData = NULL};
4389 printf("UserData is at address %p\n", gif.UserData);
4393 if cc_check
"$_ld_gif" ; then
4394 def_gif_tvt_hack
='#undef CONFIG_GIF_TVT_HACK'
4403 echocheck
"VESA support"
4404 if test "$_vesa" = auto
; then
4406 statement_check vbe.h
'vbeInit()' -lvbe -llrmi && _vesa
=yes
4408 if test "$_vesa" = yes ; then
4409 def_vesa
='#define CONFIG_VESA 1'
4410 libs_mplayer
="$libs_mplayer -lvbe -llrmi"
4411 vomodules
="vesa $vomodules"
4413 def_vesa
='#undef CONFIG_VESA'
4414 novomodules
="vesa $novomodules"
4426 def_sdl_sdl_h
="#undef CONFIG_SDL_SDL_H"
4427 if test -z "$_sdlconfig" ; then
4428 if ( sdl-config
--version ) >>"$TMPLOG" 2>&1 ; then
4429 _sdlconfig
="sdl-config"
4430 elif ( sdl11-config
--version ) >>"$TMPLOG" 2>&1 ; then
4431 _sdlconfig
="sdl11-config"
4436 if test "$_sdl" = auto ||
test "$_sdl" = yes ; then
4438 #ifdef CONFIG_SDL_SDL_H
4439 #include <SDL/SDL.h>
4444 // we allow SDL hacking our main() only on OSX
4447 int main(int argc, char *argv[]) {
4448 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4453 for _ld_tmp
in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4454 if cc_check
-DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4456 def_sdl_sdl_h
="#define CONFIG_SDL_SDL_H 1"
4460 if test "$_sdl" = no
&& "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4461 res_comment
="using $_sdlconfig"
4463 _inc_tmp
="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4464 _ld_tmp
="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4466 _inc_tmp
=$
($_sdlconfig --cflags |
sed s
/-Dmain=SDL_main
//)
4467 _ld_tmp
=$
($_sdlconfig --libs |
sed -e s
/-mwindows// -e s
/-lmingw32//)
4469 _inc_tmp
="$($_sdlconfig --cflags)"
4470 _ld_tmp
="$($_sdlconfig --libs)"
4472 if cc_check
$_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4474 elif cc_check
$_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4475 # HACK for BeOS/Haiku SDL
4476 _ld_tmp
="$_ld_tmp -lstdc++"
4481 if test "$_sdl" = yes ; then
4482 def_sdl
='#define CONFIG_SDL 1'
4483 extra_cflags
="$extra_cflags $_inc_tmp"
4484 libs_mplayer
="$libs_mplayer $_ld_tmp"
4485 vomodules
="sdl $vomodules"
4486 aomodules
="sdl $aomodules"
4488 def_sdl
='#undef CONFIG_SDL'
4489 novomodules
="sdl $novomodules"
4490 noaomodules
="sdl $noaomodules"
4495 # make sure this stays below CoreVideo to avoid issues due to namespace
4496 # conflicts between -lGL and -framework OpenGL
4498 #Note: this test is run even with --enable-gl since we autodetect linker flags
4499 if (test "$_x11" = yes ||
test "$_sdl" = yes ||
test "$_cocoa" = yes || win32
) && test "$_gl" != no
; then
4502 #include <windows.h>
4504 #elif defined(GL_SDL)
4506 #ifdef CONFIG_SDL_SDL_H
4507 #include <SDL/SDL.h>
4512 // we allow SDL hacking our main() only on OSX
4517 #include <X11/Xlib.h>
4520 int main(int argc, char *argv[]) {
4523 wglCreateContext(dc);
4524 #elif defined(GL_SDL)
4525 SDL_GL_SwapBuffers();
4527 glXCreateContext(NULL, NULL, NULL, True);
4534 for _ld_tmp
in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4535 if cc_check
$_ld_tmp $_ld_lm ; then
4538 libs_mplayer
="$libs_mplayer $_ld_tmp $_ld_dl"
4542 if cc_check
-DGL_WIN32 -lopengl32 ; then
4545 libs_mplayer
="$libs_mplayer -lopengl32 -lgdi32"
4547 if test "$_cocoa" = yes ; then
4551 # last so it can reuse any linker etc. flags detected before
4552 if test "$_sdl" = yes ; then
4553 if cc_check
-DGL_SDL ||
4554 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL ; then
4557 elif cc_check
-DGL_SDL -lGL ||
4558 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4561 libs_mplayer
="$libs_mplayer -lGL"
4567 if test "$_gl" = yes ; then
4568 def_gl
='#define CONFIG_GL 1'
4569 res_comment
="backends:"
4570 if test "$_gl_cocoa" = yes ; then
4571 def_gl_cocoa
='#define CONFIG_GL_COCOA 1'
4572 res_comment
="$res_comment cocoa"
4574 if test "$_gl_win32" = yes ; then
4575 def_gl_win32
='#define CONFIG_GL_WIN32 1'
4576 res_comment
="$res_comment win32"
4578 if test "$_gl_x11" = yes ; then
4579 def_gl_x11
='#define CONFIG_GL_X11 1'
4580 res_comment
="$res_comment x11"
4582 if test "$_gl_sdl" = yes ; then
4583 def_gl_sdl
='#define CONFIG_GL_SDL 1'
4584 res_comment
="$res_comment sdl"
4586 vomodules
="opengl $vomodules"
4588 def_gl
='#undef CONFIG_GL'
4589 def_gl_cocoa
='#undef CONFIG_GL_COCOA'
4590 def_gl_win32
='#undef CONFIG_GL_WIN32'
4591 def_gl_x11
='#undef CONFIG_GL_X11'
4592 def_gl_sdl
='#undef CONFIG_GL_SDL'
4593 novomodules
="opengl $novomodules"
4599 echocheck
"KVA (SNAP/WarpOverlay!/DIVE)"
4600 if test "$_kva" = auto
; then
4602 header_check_broken os2.h kva.h
-lkva && _kva
=yes
4604 if test "$_kva" = yes ; then
4605 def_kva
='#define CONFIG_KVA 1'
4606 libs_mplayer
="$libs_mplayer -lkva"
4607 vomodules
="kva $vomodules"
4609 def_kva
='#undef CONFIG_KVA'
4610 novomodules
="kva $novomodules"
4618 echocheck
"Windows waveout"
4619 if test "$_win32waveout" = auto
; then
4621 header_check_broken windows.h mmsystem.h
-lwinmm && _win32waveout
=yes
4623 if test "$_win32waveout" = yes ; then
4624 def_win32waveout
='#define CONFIG_WIN32WAVEOUT 1'
4625 libs_mplayer
="$libs_mplayer -lwinmm"
4626 aomodules
="win32 $aomodules"
4628 def_win32waveout
='#undef CONFIG_WIN32WAVEOUT'
4629 noaomodules
="win32 $noaomodules"
4631 echores
"$_win32waveout"
4633 echocheck
"Direct3D"
4634 if test "$_direct3d" = auto
; then
4636 header_check d3d9.h
&& _direct3d
=yes
4638 if test "$_direct3d" = yes ; then
4639 def_direct3d
='#define CONFIG_DIRECT3D 1'
4640 vomodules
="direct3d $vomodules"
4642 def_direct3d
='#undef CONFIG_DIRECT3D'
4643 novomodules
="direct3d $novomodules"
4645 echores
"$_direct3d"
4648 if test "$_directx" = auto
; then
4652 int main(void) { return 0; }
4655 cc_check
-lgdi32 && _directx
=yes
4657 if test "$_directx" = yes ; then
4658 def_directx
='#define CONFIG_DIRECTX 1'
4659 libs_mplayer
="$libs_mplayer -lgdi32"
4660 vomodules
="directx $vomodules"
4661 aomodules
="dsound $aomodules"
4663 def_directx
='#undef CONFIG_DIRECTX'
4664 novomodules
="directx $novomodules"
4665 noaomodules
="dsound $noaomodules"
4673 if test "$_dxr3" = auto
; then
4675 header_check linux
/em8300.h
&& _dxr3
=yes
4677 if test "$_dxr3" = yes ; then
4678 def_dxr3
='#define CONFIG_DXR3 1'
4679 vomodules
="dxr3 $vomodules"
4681 def_dxr3
='#undef CONFIG_DXR3'
4682 novomodules
="dxr3 $novomodules"
4687 echocheck
"IVTV TV-Out (pre linux-2.6.24)"
4688 if test "$_ivtv" = auto
; then
4690 #include <sys/time.h>
4691 #include <linux/videodev2.h>
4692 #include <linux/ivtv.h>
4693 #include <sys/ioctl.h>
4695 struct ivtv_cfg_stop_decode sd;
4696 struct ivtv_cfg_start_decode sd1;
4697 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4698 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4702 cc_check
&& _ivtv
=yes
4704 if test "$_ivtv" = yes ; then
4705 def_ivtv
='#define CONFIG_IVTV 1'
4706 vomodules
="ivtv $vomodules"
4707 aomodules
="ivtv $aomodules"
4709 def_ivtv
='#undef CONFIG_IVTV'
4710 novomodules
="ivtv $novomodules"
4711 noaomodules
="ivtv $noaomodules"
4716 echocheck
"V4L2 MPEG Decoder"
4717 if test "$_v4l2" = auto
; then
4719 #include <sys/time.h>
4720 #include <linux/videodev2.h>
4721 #include <linux/version.h>
4723 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4724 #error kernel headers too old, need 2.6.22
4726 struct v4l2_ext_controls ctrls;
4727 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4732 cc_check
&& _v4l2
=yes
4734 if test "$_v4l2" = yes ; then
4735 def_v4l2
='#define CONFIG_V4L2_DECODER 1'
4736 vomodules
="v4l2 $vomodules"
4737 aomodules
="v4l2 $aomodules"
4739 def_v4l2
='#undef CONFIG_V4L2_DECODER'
4740 novomodules
="v4l2 $novomodules"
4741 noaomodules
="v4l2 $noaomodules"
4752 echocheck
"OSS Audio"
4753 if test "$_ossaudio" = auto
; then
4755 return_check
$_soundcard_header SNDCTL_DSP_SETFRAGMENT
&& _ossaudio
=yes
4757 if test "$_ossaudio" = yes ; then
4758 def_ossaudio
='#define CONFIG_OSS_AUDIO 1'
4759 aomodules
="oss $aomodules"
4761 #include <$_soundcard_header>
4762 #ifdef OPEN_SOUND_SYSTEM
4763 int main(void) { return 0; }
4765 #error Not the real thing
4769 cc_check
&& _real_ossaudio
=yes
4770 if test "$_real_ossaudio" = yes; then
4771 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4772 # Check for OSS4 headers (override default headers)
4773 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4774 if test -f /etc
/oss.conf
; then
4776 _ossinc
="$OSSLIBDIR/include"
4777 if test -f "$_ossinc/sys/soundcard.h"; then
4778 extra_cflags
="-I$_ossinc $extra_cflags"
4781 elif netbsd || openbsd
; then
4782 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/sound"'
4783 extra_ldflags
="$extra_ldflags -lossaudio"
4785 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4787 def_ossaudio_devmixer
='#define PATH_DEV_MIXER "/dev/mixer"'
4789 def_ossaudio
='#undef CONFIG_OSS_AUDIO'
4790 def_ossaudio_devdsp
='#define PATH_DEV_DSP ""'
4791 def_ossaudio_devmixer
='#define PATH_DEV_MIXER ""'
4792 noaomodules
="oss $noaomodules"
4794 echores
"$_ossaudio"
4798 if test "$_arts" = auto
; then
4800 if ( artsc-config
--version ) >> "$TMPLOG" 2>&1 ; then
4801 statement_check artsc.h
'arts_init()' $
(artsc-config
--libs) $
(artsc-config
--cflags) &&
4806 if test "$_arts" = yes ; then
4807 def_arts
='#define CONFIG_ARTS 1'
4808 aomodules
="arts $aomodules"
4809 libs_mplayer
="$libs_mplayer $(artsc-config --libs)"
4810 extra_cflags
="$extra_cflags $(artsc-config --cflags)"
4812 noaomodules
="arts $noaomodules"
4818 if test "$_esd" = auto
; then
4820 if ( esd-config
--version ) >> "$TMPLOG" 2>&1 ; then
4821 statement_check esd.h
'esd_open_sound("test")' $
(esd-config
--libs) $
(esd-config
--cflags) && _esd
=yes
4826 if test "$_esd" = yes ; then
4827 def_esd
='#define CONFIG_ESD 1'
4828 aomodules
="esd $aomodules"
4829 libs_mplayer
="$libs_mplayer $(esd-config --libs)"
4830 extra_cflags
="$extra_cflags $(esd-config --cflags)"
4832 echocheck
"esd_get_latency()"
4833 statement_check esd.h
'esd_get_latency(0)' $
(esd-config
--libs) $
(esd-config
--cflags) &&
4834 _esd_latency
=yes && def_esd_latency
='#define CONFIG_ESD_LATENCY 1'
4835 echores
"$_esd_latency"
4837 def_esd
='#undef CONFIG_ESD'
4838 def_esd_latency
='#undef CONFIG_ESD_LATENCY'
4839 noaomodules
="esd $noaomodules"
4843 if test "$_rsound" = auto
; then
4845 statement_check rsound.h
'rsd_init(NULL);' -lrsound && _rsound
=yes
4849 if test "$_rsound" = yes ; then
4850 def_rsound
='#define CONFIG_RSOUND 1'
4851 aomodules
="rsound $aomodules"
4852 libs_mplayer
="$libs_mplayer -lrsound"
4854 def_rsound
='#undef CONFIG_RSOUND'
4855 noaomodules
="rsound $noaomodules"
4860 if test "$_nas" = auto
; then
4862 header_check audio
/audiolib.h
$_ld_lm -laudio -lXt && _nas
=yes
4864 if test "$_nas" = yes ; then
4865 def_nas
='#define CONFIG_NAS 1'
4866 libs_mplayer
="$libs_mplayer -laudio -lXt"
4867 aomodules
="nas $aomodules"
4869 noaomodules
="nas $noaomodules"
4870 def_nas
='#undef CONFIG_NAS'
4876 if test "$_pulse" = auto
; then
4878 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4879 header_check pulse
/pulseaudio.h $
($_pkg_config --libs --cflags libpulse
) &&
4885 if test "$_pulse" = yes ; then
4886 def_pulse
='#define CONFIG_PULSE 1'
4887 aomodules
="pulse $aomodules"
4888 libs_mplayer
="$libs_mplayer $($_pkg_config --libs libpulse)"
4889 extra_cflags
="$extra_cflags $($_pkg_config --cflags libpulse)"
4891 def_pulse
='#undef CONFIG_PULSE'
4892 noaomodules
="pulse $noaomodules"
4897 if test "$_jack" = auto
; then
4899 if statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4900 libs_mplayer
="$libs_mplayer -ljack"
4901 elif statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' $
($_pkg_config --libs --cflags --silence-errors jack
) ; then
4902 libs_mplayer
="$libs_mplayer $($_pkg_config --libs jack)"
4903 extra_cflags
="$extra_cflags "$
($_pkg_config --cflags jack
)""
4909 if test "$_jack" = yes ; then
4910 def_jack
='#define CONFIG_JACK 1'
4911 aomodules
="jack $aomodules"
4913 noaomodules
="jack $noaomodules"
4918 if test "$_openal" = auto
; then
4922 #include <OpenAL/al.h>
4927 alSourceQueueBuffers(0, 0, 0);
4928 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4932 for I
in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4933 cc_check
$I && _openal
=yes && break
4934 cc_check
-DOPENAL_AL_H=1 $I && def_openal_h
='#define OPENAL_AL_H 1' && _openal
=yes && break
4936 test "$_openal" = yes && libs_mplayer
="$libs_mplayer $I"
4938 if test "$_openal" = yes ; then
4939 def_openal
='#define CONFIG_OPENAL 1'
4940 aomodules
="openal $aomodules"
4942 noaomodules
="openal $noaomodules"
4946 echocheck
"ALSA audio"
4947 if test "$_alloca" != yes ; then
4949 res_comment
="alloca missing"
4951 if test "$_alsa" != no
; then
4954 #include <sys/asoundlib.h>
4955 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4956 #error "alsa version != 0.5.x"
4958 int main(void) { return 0; }
4960 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.5.x'
4963 #include <sys/asoundlib.h>
4964 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4965 #error "alsa version != 0.9.x"
4967 int main(void) { return 0; }
4969 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-sys'
4971 #include <alsa/asoundlib.h>
4972 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4973 #error "alsa version != 0.9.x"
4975 int main(void) { return 0; }
4977 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-alsa'
4980 #include <sys/asoundlib.h>
4981 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4982 #error "alsa version != 1.0.x"
4984 int main(void) { return 0; }
4986 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-sys'
4988 #include <alsa/asoundlib.h>
4989 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4990 #error "alsa version != 1.0.x"
4992 int main(void) { return 0; }
4994 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-alsa'
4996 def_alsa
='#undef CONFIG_ALSA'
4997 def_alsa5
='#undef CONFIG_ALSA5'
4998 def_alsa9
='#undef CONFIG_ALSA9'
4999 def_alsa1x
='#undef CONFIG_ALSA1X'
5000 def_sys_asoundlib_h
='#undef HAVE_SYS_ASOUNDLIB_H'
5001 def_alsa_asoundlib_h
='#undef HAVE_ALSA_ASOUNDLIB_H'
5002 if test "$_alsaver" ; then
5004 if test "$_alsaver" = '0.5.x' ; then
5006 aomodules
="alsa5 $aomodules"
5007 def_alsa5
='#define CONFIG_ALSA5 1'
5008 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
5009 res_comment
="using alsa 0.5.x and sys/asoundlib.h"
5010 elif test "$_alsaver" = '0.9.x-sys' ; then
5012 aomodules
="alsa $aomodules"
5013 def_alsa
='#define CONFIG_ALSA 1'
5014 def_alsa9
='#define CONFIG_ALSA9 1'
5015 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
5016 res_comment
="using alsa 0.9.x and sys/asoundlib.h"
5017 elif test "$_alsaver" = '0.9.x-alsa' ; then
5019 aomodules
="alsa $aomodules"
5020 def_alsa
='#define CONFIG_ALSA 1'
5021 def_alsa9
='#define CONFIG_ALSA9 1'
5022 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
5023 res_comment
="using alsa 0.9.x and alsa/asoundlib.h"
5024 elif test "$_alsaver" = '1.0.x-sys' ; then
5026 aomodules
="alsa $aomodules"
5027 def_alsa
='#define CONFIG_ALSA 1'
5028 def_alsa1x
="#define CONFIG_ALSA1X 1"
5029 def_alsa_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
5030 res_comment
="using alsa 1.0.x and sys/asoundlib.h"
5031 elif test "$_alsaver" = '1.0.x-alsa' ; then
5033 aomodules
="alsa $aomodules"
5034 def_alsa
='#define CONFIG_ALSA 1'
5035 def_alsa1x
="#define CONFIG_ALSA1X 1"
5036 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
5037 res_comment
="using alsa 1.0.x and alsa/asoundlib.h"
5040 res_comment
="unknown version"
5042 extra_ldflags
="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5044 noaomodules
="alsa $noaomodules"
5049 echocheck
"Sun audio"
5050 if test "$_sunaudio" = auto
; then
5052 #include <sys/types.h>
5053 #include <sys/audioio.h>
5054 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5057 cc_check
&& _sunaudio
=yes
5059 if test "$_sunaudio" = yes ; then
5060 def_sunaudio
='#define CONFIG_SUN_AUDIO 1'
5061 aomodules
="sun $aomodules"
5063 def_sunaudio
='#undef CONFIG_SUN_AUDIO'
5064 noaomodules
="sun $noaomodules"
5066 echores
"$_sunaudio"
5070 echocheck
"CoreAudio"
5071 if test "$_coreaudio" = auto
; then
5073 #include <CoreAudio/CoreAudio.h>
5074 #include <AudioToolbox/AudioToolbox.h>
5075 #include <AudioUnit/AudioUnit.h>
5076 int main(void) { return 0; }
5079 cc_check
-framework CoreAudio
-framework AudioUnit
-framework AudioToolbox
&& _coreaudio
=yes
5081 if test "$_coreaudio" = yes ; then
5082 libs_mplayer
="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5083 def_coreaudio
='#define CONFIG_COREAUDIO 1'
5084 aomodules
="coreaudio $aomodules"
5086 def_coreaudio
='#undef CONFIG_COREAUDIO'
5087 noaomodules
="coreaudio $noaomodules"
5094 echocheck
"SGI audio"
5095 if test "$_sgiaudio" = auto
; then
5097 header_check dmedia
/audio.h
&& _sgiaudio
=yes
5099 if test "$_sgiaudio" = "yes" ; then
5100 def_sgiaudio
='#define CONFIG_SGI_AUDIO 1'
5101 libs_mplayer
="$libs_mplayer -laudio"
5102 aomodules
="sgi $aomodules"
5104 def_sgiaudio
='#undef CONFIG_SGI_AUDIO'
5105 noaomodules
="sgi $noaomodules"
5107 echores
"$_sgiaudio"
5112 echocheck
"KAI (UNIAUD/DART)"
5113 if test "$_kai" = auto
; then
5115 header_check_broken os2.h kai.h
-lkai && _kai
=yes
5117 if test "$_kai" = yes ; then
5118 def_kai
='#define CONFIG_KAI 1'
5119 libs_mplayer
="$libs_mplayer -lkai"
5120 aomodules
="kai $aomodules"
5122 def_kai
='#undef CONFIG_KAI'
5123 noaomodules
="kai $noaomodules"
5128 if test "$_dart" = auto
; then
5130 header_check_broken os2.h dart.h
-ldart && _dart
=yes
5132 if test "$_dart" = yes ; then
5133 def_dart
='#define CONFIG_DART 1'
5134 libs_mplayer
="$libs_mplayer -ldart"
5135 aomodules
="dart $aomodules"
5137 def_dart
='#undef CONFIG_DART'
5138 noaomodules
="dart $noaomodules"
5144 # set default CD/DVD devices
5145 if win32 || os2
; then
5146 default_cdrom_device
="D:"
5148 default_cdrom_device
="/dev/disk1"
5149 elif dragonfly
; then
5150 default_cdrom_device
="/dev/cd0"
5152 default_cdrom_device
="/dev/acd0"
5154 default_cdrom_device
="/dev/rcd0c"
5156 default_cdrom_device
="/vol/dev/aliases/cdrom0"
5157 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5158 # file system and the volfs service.
5159 test -r "/cdrom/cdrom0" && default_cdrom_device
="/cdrom/cdrom0"
5161 default_cdrom_device
="a1ide.device:2"
5163 default_cdrom_device
="/dev/cdrom"
5166 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos
; then
5167 default_dvd_device
=$default_cdrom_device
5169 default_dvd_device
="/dev/rdiskN"
5171 default_dvd_device
="/dev/dvd"
5175 echocheck
"VCD support"
5176 if test "$_vcd" = auto
; then
5178 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2
; then
5181 header_check
ddk
/ntddcdrm.h
&& _vcd
=yes
5184 if test "$_vcd" = yes; then
5185 inputmodules
="vcd $inputmodules"
5186 def_vcd
='#define CONFIG_VCD 1'
5188 def_vcd
='#undef CONFIG_VCD'
5189 noinputmodules
="vcd $noinputmodules"
5190 res_comment
="not supported on this OS"
5196 echocheck
"Blu-ray support"
5197 if test "$_bluray" = auto
; then
5199 statement_check libbluray
/bluray.h
'bd_get_title_info(0, 0, 0)' -lbluray && _bluray
=yes
5201 if test "$_bluray" = yes ; then
5202 def_bluray
='#define CONFIG_LIBBLURAY 1'
5203 extra_ldflags
="$extra_ldflags -lbluray"
5204 inputmodules
="bluray $inputmodules"
5206 def_bluray
='#undef CONFIG_LIBBLURAY'
5207 noinputmodules
="bluray $noinputmodules"
5212 if test "$_dvdread_internal" = auto
&& test ! -f "libdvdread4/dvd_reader.c" ; then
5213 _dvdread_internal
=no
5215 if test "$_dvdread_internal" = auto
; then
5216 _dvdread_internal
=no
5218 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux
) &&
5219 (test "$_dvd" = yes ||
test "$_cdrom" = yes ||
test "$_cdio" = yes ||
5220 test "$_dvdio" = yes ||
test "$_bsdi_dvd" = yes) ||
5221 darwin || win32 || os2
; then
5222 _dvdread_internal
=yes
5224 extra_cflags
="-Ilibdvdread4 $extra_cflags"
5226 elif test "$_dvdread" = auto
; then
5228 if test "$_dl" = yes; then
5229 _dvdreadcflags
=$
($_dvdreadconfig --cflags 2> /dev
/null
)
5230 _dvdreadlibs
=$
($_dvdreadconfig --libs 2> /dev
/null
)
5231 if header_check dvdread
/dvd_reader.h
$_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5233 extra_cflags
="$extra_cflags $_dvdreadcflags"
5234 extra_ldflags
="$extra_ldflags $_dvdreadlibs"
5235 res_comment
="external"
5240 if test "$_dvdread_internal" = yes; then
5241 def_dvdread
='#define CONFIG_DVDREAD 1'
5242 inputmodules
="dvdread(internal) $inputmodules"
5243 res_comment
="internal"
5244 elif test "$_dvdread" = yes; then
5245 def_dvdread
='#define CONFIG_DVDREAD 1'
5246 extra_ldflags
="$extra_ldflags -ldvdread"
5247 inputmodules
="dvdread(external) $inputmodules"
5248 res_comment
="external"
5250 def_dvdread
='#undef CONFIG_DVDREAD'
5251 noinputmodules
="dvdread $noinputmodules"
5256 echocheck
"internal libdvdcss"
5257 if test "$_libdvdcss_internal" = auto
; then
5258 _libdvdcss_internal
=no
5259 test "$_dvdread_internal" = yes && test -d libdvdcss
&& _libdvdcss_internal
=yes
5260 hpux
&& test "$_hpux_scsi_h" = no
&& _libdvdcss_internal
=no
5262 if test "$_libdvdcss_internal" = yes ; then
5263 if linux || netbsd || openbsd || bsdos
; then
5264 def_dvd_linux
='#define HAVE_LINUX_DVD_STRUCT 1'
5265 openbsd
&& def_dvd_openbsd
='#define HAVE_OPENBSD_DVD_STRUCT 1'
5266 elif freebsd || dragonfly
; then
5267 def_dvd_bsd
='#define HAVE_BSD_DVD_STRUCT 1'
5269 def_dvd_darwin
='#define DARWIN_DVD_IOCTL'
5270 extra_ldflags
="$extra_ldflags -framework IOKit -framework Carbon"
5272 cflags_libdvdcss
="-DSYS_CYGWIN -DWIN32"
5274 cflags_libdvdcss
="-DSYS_BEOS"
5276 cflags_libdvdcss
="-DSYS_OS2"
5278 cflags_libdvdcss_dvdread
="-Ilibdvdcss"
5279 def_dvdcss
="#define HAVE_DVDCSS_DVDCSS_H 1"
5280 inputmodules
="libdvdcss(internal) $inputmodules"
5282 noinputmodules
="libdvdcss(internal) $noinputmodules"
5284 echores
"$_libdvdcss_internal"
5287 echocheck
"cdparanoia"
5288 if test "$_cdparanoia" = auto
; then
5290 #include <cdda_interface.h>
5291 #include <cdda_paranoia.h>
5292 // This need a better test. How ?
5293 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5296 for _inc_tmp
in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5297 cc_check
$_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5298 _cdparanoia
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
5301 if test "$_cdparanoia" = yes ; then
5303 extra_ldflags
="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5304 openbsd
&& extra_ldflags
="$extra_ldflags -lutil"
5306 echores
"$_cdparanoia"
5310 if test "$_libcdio" = auto
&& test "$_cdparanoia" = no
; then
5313 #include <cdio/version.h>
5314 #include <cdio/cdda.h>
5315 #include <cdio/paranoia.h>
5317 void *test = cdda_verbose_set;
5318 printf("%s\n", CDIO_VERSION);
5319 return test == (void *)1;
5323 for _ld_tmp
in "" "-lwinmm" ; do
5324 _ld_tmp
="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5325 cc_check
$_ld_tmp $_ld_lm && _libcdio
=yes &&
5326 extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5328 if test "$_libcdio" = no
&& $_pkg_config --exists libcdio_paranoia
; then
5329 _inc_tmp
=$
($_pkg_config --cflags libcdio_paranoia
)
5330 _ld_tmp
=$
($_pkg_config --libs libcdio_paranoia
)
5331 cc_check
$_inc_tmp $_ld_tmp $_ld_lm && _libcdio
=yes &&
5332 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5335 if test "$_libcdio" = yes && test "$_cdparanoia" = no
; then
5337 def_libcdio
='#define CONFIG_LIBCDIO 1'
5338 def_havelibcdio
='yes'
5341 if test "$_cdparanoia" = yes ; then
5342 res_comment
="using cdparanoia"
5344 def_libcdio
='#undef CONFIG_LIBCDIO'
5345 def_havelibcdio
='no'
5349 if test "$_cdda" = yes ; then
5350 test $_cddb = auto
&& test $networking = yes && _cddb
=yes
5351 def_cdparanoia
='#define CONFIG_CDDA 1'
5352 inputmodules
="cdda $inputmodules"
5354 def_cdparanoia
='#undef CONFIG_CDDA'
5355 noinputmodules
="cdda $noinputmodules"
5358 if test "$_cddb" = yes ; then
5359 def_cddb
='#define CONFIG_CDDB 1'
5360 inputmodules
="cddb $inputmodules"
5363 def_cddb
='#undef CONFIG_CDDB'
5364 noinputmodules
="cddb $noinputmodules"
5367 echocheck
"bitmap font support"
5368 if test "$_bitmap_font" = yes ; then
5369 def_bitmap_font
="#define CONFIG_BITMAP_FONT 1"
5371 def_bitmap_font
="#undef CONFIG_BITMAP_FONT"
5373 echores
"$_bitmap_font"
5376 echocheck
"freetype >= 2.0.9"
5378 # freetype depends on iconv
5379 if test "$_iconv" = no
; then
5381 res_comment
="iconv support needed"
5384 if test "$_freetype" = auto
; then
5385 if ( $_freetypeconfig --version ) >/dev
/null
2>&1 ; then
5388 #include <ft2build.h>
5389 #include FT_FREETYPE_H
5390 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5391 #error "Need FreeType 2.0.9 or newer"
5395 FT_Init_FreeType(&library);
5400 cc_check $
($_freetypeconfig --cflags) $
($_freetypeconfig --libs) && _freetype
=yes
5404 if test "$_freetype" != yes ; then
5405 die
"Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5408 if test "$_freetype" = yes ; then
5409 def_freetype
='#define CONFIG_FREETYPE 1'
5410 extra_cflags
="$extra_cflags $($_freetypeconfig --cflags)"
5411 extra_ldflags
="$extra_ldflags $($_freetypeconfig --libs)"
5413 def_freetype
='#undef CONFIG_FREETYPE'
5415 echores
"$_freetype"
5417 if test "$_freetype" = no
; then
5419 res_comment
="FreeType support needed"
5421 echocheck
"fontconfig"
5422 if test "$_fontconfig" = auto
; then
5426 #include <fontconfig/fontconfig.h>
5427 #if FC_VERSION < 20402
5428 #error At least version 2.4.2 of fontconfig required
5432 if (err == FcFalse) {
5433 printf("Couldn't initialize fontconfig lib\n");
5440 for _ld_tmp
in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5441 _ld_tmp
="-lfontconfig $_ld_tmp"
5442 cc_check
$_ld_tmp && _fontconfig
=yes && extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5444 if test "$_fontconfig" = no
&& $_pkg_config --exists fontconfig
; then
5445 _inc_tmp
=$
($_pkg_config --cflags fontconfig
)
5446 _ld_tmp
=$
($_pkg_config --libs fontconfig
)
5447 cc_check
$_inc_tmp $_ld_tmp && _fontconfig
=yes &&
5448 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5450 if test "$_fontconfig" != yes ; then
5451 die
"Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5454 if test "$_fontconfig" = yes ; then
5455 def_fontconfig
='#define CONFIG_FONTCONFIG 1'
5457 def_fontconfig
='#undef CONFIG_FONTCONFIG'
5459 echores
"$_fontconfig"
5462 echocheck
"SSA/ASS support"
5463 if test "$_ass" = auto
-o "$_ass" = yes ; then
5464 if $_pkg_config libass
; then
5466 def_ass
='#define CONFIG_ASS 1'
5467 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libass)"
5468 extra_cflags
="$extra_cflags $($_pkg_config --cflags libass)"
5470 die
"Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5473 def_ass
='#undef CONFIG_ASS'
5478 echocheck
"fribidi with charsets"
5481 if test "$_fribidi" = auto
; then
5484 /* workaround for fribidi 0.10.4 and below */
5485 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5486 #include <fribidi/fribidi.h>
5488 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5496 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5497 if $_pkg_config --exists fribidi
> /dev
/null
2>&1 &&
5498 test "$_fribidi" = no
; then
5499 _inc_tmp
="$($_pkg_config --cflags)"
5500 _ld_tmp
="$($_pkg_config --libs)"
5501 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5504 if test "$_fribidi" = yes ; then
5505 def_fribidi
='#define CONFIG_FRIBIDI 1'
5506 extra_cflags
="$extra_cflags $_inc_tmp"
5507 extra_ldflags
="$extra_ldflags $_ld_tmp"
5509 def_fribidi
='#undef CONFIG_FRIBIDI'
5515 if test "$_enca" = auto
; then
5517 statement_check enca.h
'enca_get_languages(NULL)' -lenca $_ld_lm && _enca
=yes
5519 if test "$_enca" = yes ; then
5520 def_enca
='#define CONFIG_ENCA 1'
5521 extra_ldflags
="$extra_ldflags -lenca"
5523 def_enca
='#undef CONFIG_ENCA'
5530 statement_check zlib.h
'inflate(0, Z_NO_FLUSH)' -lz && _zlib
=yes
5531 if test "$_zlib" = yes ; then
5532 def_zlib
='#define CONFIG_ZLIB 1'
5533 extra_ldflags
="$extra_ldflags -lz"
5535 def_zlib
='#define CONFIG_ZLIB 0'
5541 if test "$_rtc" = auto
; then
5543 #include <sys/ioctl.h>
5545 #include <linux/rtc.h>
5548 #define RTC_PIE_ON RTCIO_PIE_ON
5550 int main(void) { return RTC_PIE_ON; }
5553 cc_check
&& _rtc
=yes
5556 if test "$_rtc" = yes ; then
5557 def_rtc
='#define HAVE_RTC 1'
5559 def_rtc
='#undef HAVE_RTC'
5564 echocheck
"mad support"
5565 if test "$_mad" = auto
; then
5567 header_check mad.h
-lmad && _mad
=yes
5569 if test "$_mad" = yes ; then
5570 def_mad
='#define CONFIG_LIBMAD 1'
5571 extra_ldflags
="$extra_ldflags -lmad"
5572 codecmodules
="libmad $codecmodules"
5574 def_mad
='#undef CONFIG_LIBMAD'
5575 nocodecmodules
="libmad $nocodecmodules"
5579 echocheck
"OggVorbis support"
5580 if test "$_libvorbis" = auto
; then
5582 statement_check vorbis
/codec.h
'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis
=yes && _tremor
=no
5583 elif test "$_libvorbis" = yes ; then
5586 if test "$_tremor" = auto
; then
5588 statement_check tremor
/ivorbiscodec.h
'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor
=yes
5590 if test "$_tremor" = yes ; then
5592 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5593 def_tremor
='#define CONFIG_TREMOR 1'
5594 codecmodules
="tremor(external) $codecmodules"
5595 res_comment
="external Tremor"
5596 extra_ldflags
="$extra_ldflags -logg -lvorbisidec"
5597 elif test "$_libvorbis" = yes ; then
5599 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5600 codecmodules
="libvorbis $codecmodules"
5601 res_comment
="libvorbis"
5602 extra_ldflags
="$extra_ldflags -lvorbis -logg"
5605 nocodecmodules
="libvorbis $nocodecmodules"
5609 echocheck
"libspeex (version >= 1.1 required)"
5610 if test "$_speex" = auto
; then
5614 #include <speex/speex.h>
5615 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5617 cc_check
-lspeex $_ld_lm && _speex
=yes
5619 if test "$_speex" = yes ; then
5620 def_speex
='#define CONFIG_SPEEX 1'
5621 extra_ldflags
="$extra_ldflags -lspeex"
5622 codecmodules
="speex $codecmodules"
5624 def_speex
='#undef CONFIG_SPEEX'
5625 nocodecmodules
="speex $nocodecmodules"
5629 echocheck
"OggTheora support"
5630 if test "$_theora" = auto
; then
5633 #include <theora/theora.h>
5636 /* Theora is in flux, make sure that all interface routines and datatypes
5637 * exist and work the way we expect it, so we don't break MPlayer. */
5646 theora_info_init(&inf);
5647 theora_comment_init(&tc);
5651 /* we don't want to execute this kind of nonsense; just for making sure
5652 * that compilation works... */
5653 memset(&op, 0, sizeof(op));
5654 r = theora_decode_header(&inf, &tc, &op);
5655 r = theora_decode_init(&st, &inf);
5656 t = theora_granule_time(&st, op.granulepos);
5657 r = theora_decode_packetin(&st, &op);
5658 r = theora_decode_YUVout(&st, &yuv);
5664 _ld_theora
=$
($_pkg_config --silence-errors --libs theora
)
5665 _inc_theora
=$
($_pkg_config --silence-errors --cflags theora
)
5666 cc_check
$_inc_theora $_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" &&
5667 extra_cflags
="$extra_cflags $_inc_theora" && _theora
=yes
5668 if test _theora
= no
; then
5669 _ld_theora
="-ltheora -logg"
5670 cc_check
$_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" && _theora
=yes
5673 if test "$_theora" = yes ; then
5674 def_theora
='#define CONFIG_OGGTHEORA 1'
5675 codecmodules
="libtheora $codecmodules"
5676 # when --enable-theora is forced, we'd better provide a probably sane
5677 # $_ld_theora than nothing
5678 test -z "$_ld_theora" && extra_ldflags
="$extra_ldflags -ltheora -logg"
5680 def_theora
='#undef CONFIG_OGGTHEORA'
5681 nocodecmodules
="libtheora $nocodecmodules"
5685 # Any version of libmpg123 shall be fine.
5686 echocheck
"mpg123 support"
5687 def_mpg123
='#undef CONFIG_MPG123'
5688 if test "$_mpg123" = auto
; then
5690 statement_check mpg123.h
'mpg123_init()' -lmpg123 && _mpg123
=yes && extra_ldflags
="$extra_ldflags -lmpg123"
5692 if test "$_mpg123" = yes ; then
5693 def_mpg123
='#define CONFIG_MPG123 1'
5694 codecmodules
="mpg123 $codecmodules"
5696 nocodecmodules
="mpg123 $nocodecmodules"
5700 echocheck
"liba52 support"
5701 def_liba52
='#undef CONFIG_LIBA52'
5702 if test "$_liba52" = auto
; then
5705 #include <inttypes.h>
5706 #include <a52dec/a52.h>
5707 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5709 cc_check
-la52 && _liba52
=yes && extra_ldflags
="$extra_ldflags -la52"
5711 if test "$_liba52" = yes ; then
5712 def_liba52
='#define CONFIG_LIBA52 1'
5713 codecmodules
="liba52 $codecmodules"
5715 nocodecmodules
="liba52 $nocodecmodules"
5719 echocheck
"libdca support"
5720 if test "$_libdca" = auto
; then
5722 for _ld_dca
in -ldca -ldts ; do
5723 statement_check_broken stdint.h dts.h
'dts_init(0)' $_ld_dca $_ld_lm &&
5724 extra_ldflags
="$extra_ldflags $_ld_dca" && _libdca
=yes && break
5727 if test "$_libdca" = yes ; then
5728 def_libdca
='#define CONFIG_LIBDCA 1'
5729 codecmodules
="libdca $codecmodules"
5731 def_libdca
='#undef CONFIG_LIBDCA'
5732 nocodecmodules
="libdca $nocodecmodules"
5736 echocheck
"libmpcdec (musepack, version >= 1.2.1 required)"
5737 if test "$_musepack" = yes ; then
5741 #include <mpcdec/mpcdec.h>
5743 mpc_streaminfo info;
5744 mpc_decoder decoder;
5745 mpc_decoder_set_streaminfo(&decoder, &info);
5746 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5750 cc_check
-lmpcdec $_ld_lm && _musepack
=yes
5752 if test "$_musepack" = yes ; then
5753 def_musepack
='#define CONFIG_MUSEPACK 1'
5754 extra_ldflags
="$extra_ldflags -lmpcdec"
5755 codecmodules
="musepack $codecmodules"
5757 def_musepack
='#undef CONFIG_MUSEPACK'
5758 nocodecmodules
="musepack $nocodecmodules"
5760 echores
"$_musepack"
5763 echocheck
"FAAD2 support"
5764 if test "$_faad" = auto
; then
5768 #ifndef FAAD_MIN_STREAMSIZE
5769 #error Too old version
5771 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5772 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5774 cc_check
-lfaad $_ld_lm && _faad
=yes
5777 def_faad
='#undef CONFIG_FAAD'
5778 if test "$_faad" = yes ; then
5779 def_faad
='#define CONFIG_FAAD 1'
5780 extra_ldflags
="$extra_ldflags -lfaad"
5781 codecmodules
="faad2 $codecmodules"
5783 nocodecmodules
="faad2 $nocodecmodules"
5788 echocheck
"LADSPA plugin support"
5789 if test "$_ladspa" = auto
; then
5791 statement_check ladspa.h
'LADSPA_Descriptor ld = {0}' && _ladspa
=yes
5793 if test "$_ladspa" = yes; then
5794 def_ladspa
="#define CONFIG_LADSPA 1"
5796 def_ladspa
="#undef CONFIG_LADSPA"
5801 echocheck
"libbs2b audio filter support"
5802 if test "$_libbs2b" = auto
; then
5805 #if BS2B_VERSION_MAJOR < 3
5806 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5816 if $_pkg_config --exists libbs2b
; then
5817 _inc_tmp
=$
($_pkg_config --cflags libbs2b
)
5818 _ld_tmp
=$
($_pkg_config --libs libbs2b
)
5819 cc_check
$_inc_tmp $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
5820 extra_cflags
="$extra_cflags $_inc_tmp" && _libbs2b
=yes
5822 for _inc_tmp
in "" -I/usr
/include
/bs2b
-I/usr
/local
/include \
5823 -I/usr
/local
/include
/bs2b
; do
5824 if cc_check
$_inc_tmp $_ld_lm -lbs2b ; then
5825 extra_ldflags
="$extra_ldflags -lbs2b"
5826 extra_cflags
="$extra_cflags $_inc_tmp"
5833 def_libbs2b
="#undef CONFIG_LIBBS2B"
5834 test "$_libbs2b" = yes && def_libbs2b
="#define CONFIG_LIBBS2B 1"
5838 if test -z "$_codecsdir" ; then
5839 for dir
in "$_libdir/codecs" "$_libdir/win32" /usr
/local
/lib
/codecs \
5840 /usr
/lib
/codecs
/usr
/local
/lib
/win32
/usr
/lib
/win32
; do
5841 if test -d "$dir" ; then
5847 # Fall back on default directory.
5848 if test -z "$_codecsdir" ; then
5849 _codecsdir
="$_libdir/codecs"
5850 mingw32 || os2
&& _codecsdir
="codecs"
5854 echocheck
"Win32 codecs"
5855 if test "$_win32dll" = auto
; then
5857 if x86_32
&& ! qnx
; then
5861 if test "$_win32dll" = yes ; then
5862 def_win32dll
='#define CONFIG_WIN32DLL 1'
5864 def_win32_loader
='#define WIN32_LOADER 1'
5865 _win32_emulation
=yes
5867 extra_ldflags
="$extra_ldflags -ladvapi32 -lole32"
5868 res_comment
="using native windows"
5870 codecmodules
="win32 $codecmodules"
5872 def_win32dll
='#undef CONFIG_WIN32DLL'
5873 def_win32_loader
='#undef WIN32_LOADER'
5874 nocodecmodules
="win32 $nocodecmodules"
5876 echores
"$_win32dll"
5879 echocheck
"XAnim codecs"
5880 if test "$_xanim" = auto
; then
5882 res_comment
="dynamic loader support needed"
5883 if test "$_dl" = yes ; then
5887 if test "$_xanim" = yes ; then
5888 def_xanim
='#define CONFIG_XANIM 1'
5889 codecmodules
="xanim $codecmodules"
5891 def_xanim
='#undef CONFIG_XANIM'
5892 nocodecmodules
="xanim $nocodecmodules"
5897 echocheck
"RealPlayer codecs"
5898 if test "$_real" = auto
; then
5900 res_comment
="dynamic loader support needed"
5901 if test "$_dl" = yes ||
test "$_win32dll" = yes &&
5902 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2
) ; then
5906 if test "$_real" = yes ; then
5907 def_real
='#define CONFIG_REALCODECS 1'
5908 codecmodules
="real $codecmodules"
5910 def_real
='#undef CONFIG_REALCODECS'
5911 nocodecmodules
="real $nocodecmodules"
5916 echocheck
"QuickTime codecs"
5918 def_qtx_win32
='#undef CONFIG_QTX_CODECS_WIN32'
5919 if test "$_qtx" = auto
; then
5920 test "$_win32dll" = yes ||
test "$quicktime" = yes && _qtx
=yes
5922 if test "$_qtx" = yes ; then
5923 def_qtx
='#define CONFIG_QTX_CODECS 1'
5924 win32
&& _qtx_codecs_win32
=yes && def_qtx_win32
='#define CONFIG_QTX_CODECS_WIN32 1'
5925 codecmodules
="qtx $codecmodules"
5926 darwin || win32 || _qtx_emulation
=yes
5928 def_qtx
='#undef CONFIG_QTX_CODECS'
5929 nocodecmodules
="qtx $nocodecmodules"
5933 echocheck
"Nemesi Streaming Media libraries"
5934 if test "$_nemesi" = auto
&& test "$networking" = yes ; then
5936 if $_pkg_config libnemesi
--atleast-version=0.6.3 ; then
5937 extra_cflags
="$extra_cflags $($_pkg_config --cflags libnemesi)"
5938 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libnemesi)"
5942 if test "$_nemesi" = yes; then
5944 def_nemesi
='#define CONFIG_LIBNEMESI 1'
5945 inputmodules
="nemesi $inputmodules"
5947 _native_rtsp
="$networking"
5949 def_nemesi
='#undef CONFIG_LIBNEMESI'
5950 noinputmodules
="nemesi $noinputmodules"
5954 echocheck
"LIVE555 Streaming Media libraries"
5955 if test "$_live" = auto
&& test "$networking" = yes ; then
5956 cat > $TMPCPP << EOF
5957 #include <liveMedia.hh>
5958 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5959 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5961 int main(void) { return 0; }
5965 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
5966 cxx_check
$I/liveMedia
/include
$I/UsageEnvironment
/include
$I/groupsock
/include
&&
5967 _livelibdir
=$
(echo $I|
sed s
/-I//) &&
5968 extra_ldflags
="$_livelibdir/liveMedia/libliveMedia.a \
5969 $_livelibdir/groupsock/libgroupsock.a \
5970 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5971 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5972 $extra_ldflags -lstdc++" \
5973 extra_cxxflags
="-I$_livelibdir/liveMedia/include \
5974 -I$_livelibdir/UsageEnvironment/include \
5975 -I$_livelibdir/BasicUsageEnvironment/include \
5976 -I$_livelibdir/groupsock/include" &&
5979 if test "$_live" != yes ; then
5980 ld_tmp
="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5981 if cxx_check
-I/usr
/include
/liveMedia
-I/usr
/include
/UsageEnvironment
-I/usr
/include
/groupsock
$ld_tmp; then
5986 if test "$_live" = yes && test "$networking" = yes; then
5987 test $_livelibdir && res_comment
="using $_livelibdir"
5988 def_live
='#define CONFIG_LIVE555 1'
5989 inputmodules
="live555 $inputmodules"
5990 elif test "$_live_dist" = yes && test "$networking" = yes; then
5991 res_comment
="using distribution version"
5993 def_live
='#define CONFIG_LIVE555 1'
5994 extra_ldflags
="$extra_ldflags $ld_tmp"
5995 extra_cxxflags
="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5996 inputmodules
="live555 $inputmodules"
5999 def_live
='#undef CONFIG_LIVE555'
6000 noinputmodules
="live555 $noinputmodules"
6006 all_libav_libs
="libavutil >= 51.7.0:libavcodec >= 53.5.0:libavformat >= 53.2.0:libswscale >= 2.0.0:libpostproc >= 52.0.0"
6007 echocheck
"Libav ($all_libav_libs)"
6008 if test "$ffmpeg" = auto
; then
6009 IFS
=":" # shell should not be used for programming
6010 if $_pkg_config --exists --print-errors $all_libav_libs ; then
6011 inc_ffmpeg
=$
($_pkg_config --cflags $all_libav_libs)
6012 _ld_tmp
=$
($_pkg_config --libs $all_libav_libs)
6013 extra_ldflags
="$extra_ldflags $_ld_tmp"
6014 extra_cflags
="$extra_cflags $inc_ffmpeg"
6017 die
"Unable to find development files for some of the required Libav libraries above. Aborting."
6022 def_ffmpeg_internals
="#undef CONFIG_FFMPEG_INTERNALS"
6023 if ! test -z "$_ffmpeg_source" ; then
6024 def_ffmpeg_internals
="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals
=yes
6029 echocheck
"libdv-0.9.5+"
6030 if test "$_libdv" = auto
; then
6032 statement_check libdv
/dv.h
'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv
=yes
6034 if test "$_libdv" = yes ; then
6035 def_libdv
='#define CONFIG_LIBDV095 1'
6036 extra_ldflags
="$extra_ldflags -ldv"
6037 codecmodules
="libdv $codecmodules"
6039 def_libdv
='#undef CONFIG_LIBDV095'
6040 nocodecmodules
="libdv $nocodecmodules"
6046 if test "$_xvid" = auto
; then
6048 for _ld_tmp
in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6049 statement_check xvid.h
'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6050 extra_ldflags
="$extra_ldflags $_ld_tmp" && _xvid
=yes && break
6054 if test "$_xvid" = yes ; then
6055 def_xvid
='#define CONFIG_XVID4 1'
6056 codecmodules
="xvid $codecmodules"
6058 def_xvid
='#undef CONFIG_XVID4'
6059 nocodecmodules
="xvid $nocodecmodules"
6065 if test "$_libnut" = auto
; then
6067 statement_check libnut.h
'nut_context_tt * nut; nut_error(0)' -lnut && _libnut
=yes
6070 if test "$_libnut" = yes ; then
6071 def_libnut
='#define CONFIG_LIBNUT 1'
6072 extra_ldflags
="$extra_ldflags -lnut"
6074 def_libnut
='#undef CONFIG_LIBNUT'
6078 # These VO checks must be done after the FFmpeg one
6079 echocheck
"/dev/mga_vid"
6080 if test "$_mga" = auto
; then
6082 test -c /dev
/mga_vid
&& _mga
=yes
6084 if test "$_mga" = yes ; then
6085 def_mga
='#define CONFIG_MGA 1'
6086 vomodules
="mga $vomodules"
6088 def_mga
='#undef CONFIG_MGA'
6089 novomodules
="mga $novomodules"
6095 if test "$_xmga" = auto
; then
6097 test "$_x11" = yes && test "$_mga" = yes && _xmga
=yes
6099 if test "$_xmga" = yes ; then
6100 def_xmga
='#define CONFIG_XMGA 1'
6101 vomodules
="xmga $vomodules"
6103 def_xmga
='#undef CONFIG_XMGA'
6104 novomodules
="xmga $novomodules"
6109 echocheck
"UnRAR executable"
6110 if test "$_unrar_exec" = auto
; then
6112 mingw32
&& _unrar_exec
="no"
6114 if test "$_unrar_exec" = yes ; then
6115 def_unrar_exec
='#define CONFIG_UNRAR_EXEC 1'
6117 def_unrar_exec
='#undef CONFIG_UNRAR_EXEC'
6119 echores
"$_unrar_exec"
6121 echocheck
"TV interface"
6122 if test "$_tv" = yes ; then
6123 def_tv
='#define CONFIG_TV 1'
6124 inputmodules
="tv $inputmodules"
6126 noinputmodules
="tv $noinputmodules"
6127 def_tv
='#undef CONFIG_TV'
6132 if freebsd || netbsd || openbsd || dragonfly || bsdos
; then
6133 echocheck
"*BSD BT848 bt8xx header"
6135 for file in "machine/ioctl_bt848.h" \
6136 "dev/bktr/ioctl_bt848.h" \
6137 "dev/video/bktr/ioctl_bt848.h" \
6138 "dev/ic/bt8xx.h" ; do
6140 #include <sys/types.h>
6141 #include <sys/ioctl.h>
6143 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6147 _ioctl_bt848_h_name
="$file"
6151 if test "$_ioctl_bt848_h" = yes ; then
6152 def_ioctl_bt848_h_name
="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6153 res_comment
="using $_ioctl_bt848_h_name"
6155 def_ioctl_bt848_h_name
="#undef IOCTL_BT848_H_NAME"
6157 echores
"$_ioctl_bt848_h"
6159 echocheck
"*BSD ioctl_meteor.h"
6161 for ioctl_meteor_h_path
in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6162 statement_check_broken
"sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6163 _ioctl_meteor_h
=yes && break
6165 if test "$_ioctl_meteor_h" = yes ; then
6166 def_ioctl_meteor_h_name
="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6167 res_comment
="using $ioctl_meteor_h_path"
6169 def_ioctl_meteor_h_name
="#undef IOCTL_METEOR_H_NAME"
6171 echores
"$_ioctl_meteor_h"
6173 echocheck
"*BSD BrookTree 848 TV interface"
6174 if test "$_tv_bsdbt848" = auto
; then
6176 if test "$_tv" = yes ; then
6178 #include <sys/types.h>
6179 $def_ioctl_meteor_h_name
6180 $def_ioctl_bt848_h_name
6181 #ifdef IOCTL_METEOR_H_NAME
6182 #include IOCTL_METEOR_H_NAME
6184 #ifdef IOCTL_BT848_H_NAME
6185 #include IOCTL_BT848_H_NAME
6188 ioctl(0, METEORSINPUT, 0);
6189 ioctl(0, TVTUNER_GETFREQ, 0);
6193 cc_check
&& _tv_bsdbt848
=yes
6196 if test "$_tv_bsdbt848" = yes ; then
6197 def_tv_bsdbt848
='#define CONFIG_TV_BSDBT848 1'
6198 inputmodules
="tv-bsdbt848 $inputmodules"
6200 def_tv_bsdbt848
='#undef CONFIG_TV_BSDBT848'
6201 noinputmodules
="tv-bsdbt848 $noinputmodules"
6203 echores
"$_tv_bsdbt848"
6204 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6207 echocheck
"DirectShow TV interface"
6208 if test "$_tv_dshow" = auto
; then
6210 if test "$_tv" = yes && win32
; then
6211 statement_check ole2.h
'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow
=yes
6214 if test "$_tv_dshow" = yes ; then
6215 inputmodules
="tv-dshow $inputmodules"
6216 def_tv_dshow
='#define CONFIG_TV_DSHOW 1'
6217 extra_ldflags
="$extra_ldflags -lole32 -luuid"
6219 noinputmodules
="tv-dshow $noinputmodules"
6220 def_tv_dshow
='#undef CONFIG_TV_DSHOW'
6222 echores
"$_tv_dshow"
6225 echocheck
"Video 4 Linux TV interface"
6226 if test "$_tv_v4l1" = auto
; then
6228 if test "$_tv" = yes && linux
; then
6229 header_check_broken sys
/time.h linux
/videodev.h
&& _tv_v4l1
=yes
6232 if test "$_tv_v4l1" = yes ; then
6235 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6236 def_tv_v4l1
='#define CONFIG_TV_V4L1 1'
6237 inputmodules
="tv-v4l $inputmodules"
6239 noinputmodules
="tv-v4l1 $noinputmodules"
6240 def_tv_v4l
='#undef CONFIG_TV_V4L'
6245 echocheck
"Video 4 Linux 2 TV interface"
6246 if test "$_tv_v4l2" = auto
; then
6248 if test "$_tv" = yes && linux
; then
6249 header_check_broken sys
/time.h linux
/videodev2.h
&& _tv_v4l2
=yes
6250 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
6254 if test "$_tv_v4l2" = yes ; then
6257 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6258 def_tv_v4l2
='#define CONFIG_TV_V4L2 1'
6259 inputmodules
="tv-v4l2 $inputmodules"
6261 noinputmodules
="tv-v4l2 $noinputmodules"
6262 def_tv_v4l2
='#undef CONFIG_TV_V4L2'
6267 echocheck
"Radio interface"
6268 if test "$_radio" = yes ; then
6269 def_radio
='#define CONFIG_RADIO 1'
6270 inputmodules
="radio $inputmodules"
6271 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6274 if test "$_radio_capture" = yes ; then
6276 def_radio_capture
="#define CONFIG_RADIO_CAPTURE 1"
6278 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6281 noinputmodules
="radio $noinputmodules"
6282 def_radio
='#undef CONFIG_RADIO'
6283 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6287 echocheck
"Capture for Radio interface"
6288 echores
"$_radio_capture"
6290 echocheck
"Video 4 Linux 2 Radio interface"
6291 if test "$_radio_v4l2" = auto
; then
6293 if test "$_radio" = yes && linux
; then
6294 header_check linux
/videodev2.h
&& _radio_v4l2
=yes
6297 if test "$_radio_v4l2" = yes ; then
6298 def_radio_v4l2
='#define CONFIG_RADIO_V4L2 1'
6300 def_radio_v4l2
='#undef CONFIG_RADIO_V4L2'
6302 echores
"$_radio_v4l2"
6304 echocheck
"Video 4 Linux Radio interface"
6305 if test "$_radio_v4l" = auto
; then
6307 if test "$_radio" = yes && linux
; then
6308 header_check linux
/videodev.h
&& _radio_v4l
=yes
6311 if test "$_radio_v4l" = yes ; then
6312 def_radio_v4l
='#define CONFIG_RADIO_V4L 1'
6314 def_radio_v4l
='#undef CONFIG_RADIO_V4L'
6316 echores
"$_radio_v4l"
6318 if freebsd || netbsd || openbsd || dragonfly || bsdos
&&
6319 test "$_radio" = yes && test "$_radio_bsdbt848" = auto
; then
6320 echocheck
"*BSD BrookTree 848 Radio interface"
6323 #include <sys/types.h>
6324 $def_ioctl_bt848_h_name
6325 #ifdef IOCTL_BT848_H_NAME
6326 #include IOCTL_BT848_H_NAME
6328 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6330 cc_check
&& _radio_bsdbt848
=yes
6331 echores
"$_radio_bsdbt848"
6332 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6334 if test "$_radio_bsdbt848" = yes ; then
6335 def_radio_bsdbt848
='#define CONFIG_RADIO_BSDBT848 1'
6337 def_radio_bsdbt848
='#undef CONFIG_RADIO_BSDBT848'
6340 if test "$_radio_v4l" = no
&& test "$_radio_v4l2" = no
&&
6341 test "$_radio_bsdbt848" = no
&& test "$_radio" = yes ; then
6342 die
"Radio driver requires BSD BT848, V4L or V4L2!"
6345 echocheck
"Video 4 Linux 2 MPEG PVR interface"
6346 if test "$_pvr" = auto
; then
6348 if test "$_tv_v4l2" = yes && linux
; then
6350 #include <sys/time.h>
6351 #include <linux/videodev2.h>
6352 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6354 cc_check
&& _pvr
=yes
6357 if test "$_pvr" = yes ; then
6358 def_pvr
='#define CONFIG_PVR 1'
6359 inputmodules
="pvr $inputmodules"
6361 noinputmodules
="pvr $noinputmodules"
6362 def_pvr
='#undef CONFIG_PVR'
6368 if test "$_ftp" = "auto" ; then
6369 test "$networking" = "yes" && ! beos
&& _ftp
=yes
6371 if test "$_ftp" = yes ; then
6372 def_ftp
='#define CONFIG_FTP 1'
6373 inputmodules
="ftp $inputmodules"
6375 noinputmodules
="ftp $noinputmodules"
6376 def_ftp
='#undef CONFIG_FTP'
6380 echocheck
"vstream client"
6381 if test "$_vstream" = auto
; then
6384 #include <vstream-client.h>
6385 void vstream_error(const char *format, ... ) {}
6386 int main(void) { vstream_start(); return 0; }
6388 cc_check
-lvstream-client && _vstream
=yes
6390 if test "$_vstream" = yes ; then
6391 def_vstream
='#define CONFIG_VSTREAM 1'
6392 inputmodules
="vstream $inputmodules"
6393 extra_ldflags
="$extra_ldflags -lvstream-client"
6395 noinputmodules
="vstream $noinputmodules"
6396 def_vstream
='#undef CONFIG_VSTREAM'
6401 echocheck
"Subtitles sorting"
6402 if test "$_sortsub" = yes ; then
6403 def_sortsub
='#define CONFIG_SORTSUB 1'
6405 def_sortsub
='#undef CONFIG_SORTSUB'
6410 echocheck
"XMMS inputplugin support"
6411 if test "$_xmms" = yes ; then
6412 if ( xmms-config
--version ) >/dev
/null
2>&1 ; then
6413 _xmmsplugindir
=$
(xmms-config
--input-plugin-dir)
6414 _xmmslibdir
=$
(xmms-config
--exec-prefix)/lib
6416 _xmmsplugindir
=/usr
/lib
/xmms
/Input
6417 _xmmslibdir
=/usr
/lib
6420 def_xmms
='#define CONFIG_XMMS 1'
6422 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6424 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6427 def_xmms
='#undef CONFIG_XMMS'
6431 if test "$_charset" != "noconv" ; then
6432 def_charset
="#define MSG_CHARSET \"$_charset\""
6434 def_charset
="#undef MSG_CHARSET"
6438 #############################################################################
6440 echocheck
"automatic gdb attach"
6441 if test "$_crash_debug" = yes ; then
6442 def_crash_debug
='#define CONFIG_CRASH_DEBUG 1'
6444 def_crash_debug
='#undef CONFIG_CRASH_DEBUG'
6447 echores
"$_crash_debug"
6449 echocheck
"compiler support for noexecstack"
6450 if cflag_check
-Wl,-z,noexecstack
; then
6451 extra_ldflags
="-Wl,-z,noexecstack $extra_ldflags"
6457 echocheck
"linker support for --nxcompat --no-seh --dynamicbase"
6458 if cflag_check
"-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6459 extra_ldflags
="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6466 # Dynamic linking flags
6467 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6469 freebsd || netbsd || openbsd || dragonfly || bsdos
&& _ld_dl_dynamic
='-rdynamic'
6470 if test "$_real" = yes ||
test "$_xanim" = yes && ! win32
&& ! qnx
&& ! darwin
&& ! os2
&& ! sunos
; then
6471 _ld_dl_dynamic
='-rdynamic'
6474 extra_ldflags
="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6475 bsdos
&& extra_ldflags
="$extra_ldflags -ldvd"
6476 (netbsd || openbsd
) && x86_32
&& extra_ldflags
="$extra_ldflags -li386"
6478 def_debug
='#undef MP_DEBUG'
6479 test "$_debug" != "" && def_debug
='#define MP_DEBUG 1'
6482 echocheck
"joystick"
6483 def_joystick
='#undef CONFIG_JOYSTICK'
6484 if test "$_joystick" = yes ; then
6485 if linux || freebsd
; then
6486 # TODO add some check
6487 def_joystick
='#define CONFIG_JOYSTICK 1'
6490 res_comment
="unsupported under $system_name"
6493 echores
"$_joystick"
6496 if test "$_lirc" = auto
; then
6498 header_check lirc
/lirc_client.h
-llirc_client && _lirc
=yes
6500 if test "$_lirc" = yes ; then
6501 def_lirc
='#define CONFIG_LIRC 1'
6502 libs_mplayer
="$libs_mplayer -llirc_client"
6504 def_lirc
='#undef CONFIG_LIRC'
6509 if test "$_lircc" = auto
; then
6511 header_check lirc
/lircc.h
-llircc && _lircc
=yes
6513 if test "$_lircc" = yes ; then
6514 def_lircc
='#define CONFIG_LIRCC 1'
6515 libs_mplayer
="$libs_mplayer -llircc"
6517 def_lircc
='#undef CONFIG_LIRCC'
6521 #############################################################################
6523 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6524 # the OMF format needs to come after the 'extern symbol prefix' check, which
6527 extra_ldflags
="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6530 #############################################################################
6532 CFLAGS
="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6534 CXXFLAGS
=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6536 # This must be the last test to be performed. Any other tests following it
6537 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6538 # against libdvdread (to permit MPlayer to use its own copy of the library).
6539 # So any compilation using the flags added here but not linking against
6540 # libdvdread can fail.
6541 echocheck
"DVD support (libdvdnav)"
6542 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6546 if test "$_dvdnav" = auto
; then
6547 if test "$_dvdread_internal" = yes ; then
6550 res_comment
="internal"
6552 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav
=no
6555 if test "$_dvdnav" = auto
; then
6557 _dvdnavdir
=$
($_dvdnavconfig --cflags)
6558 _dvdnavlibs
=$
($_dvdnavconfig --libs)
6559 statement_check_broken stdint.h dvdnav
/dvdnav.h
'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav
=yes
6561 if test "$_dvdnav" = yes ; then
6562 def_dvdnav
='#define CONFIG_DVDNAV 1'
6563 if test "$dvdnav_internal" = yes ; then
6564 cflags_libdvdnav
="-Ilibdvdnav"
6565 inputmodules
="dvdnav(internal) $inputmodules"
6567 extra_cflags
="$extra_cflags $($_dvdnavconfig --cflags)"
6568 extra_ldflags
="$extra_ldflags $($_dvdnavconfig --minilibs)"
6569 inputmodules
="dvdnav $inputmodules"
6572 def_dvdnav
='#undef CONFIG_DVDNAV'
6573 noinputmodules
="dvdnav $noinputmodules"
6577 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6578 # Read dvdnav comment above.
6581 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6582 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6584 for part
in $list; do
6585 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6586 echo "${nprefix}_$part = yes"
6591 #############################################################################
6592 echo "Creating config.mak"
6593 cat > config.mak
<< EOF
6594 # -------- Generated by configure -----------
6596 # Ensure that locale settings do not interfere with shell commands.
6599 CONFIGURATION = $configuration
6602 DOC_LANGS = $language_doc
6603 DOC_LANG_ALL = $doc_lang_all
6604 MAN_LANGS = $language_man
6605 MAN_LANG_ALL = $man_lang_all
6606 MSG_LANGS = $language_msg
6607 MSG_LANG_ALL = $msg_lang_all
6609 prefix = \$(DESTDIR)$_prefix
6610 BINDIR = \$(DESTDIR)$_bindir
6611 DATADIR = \$(DESTDIR)$_datadir
6612 LIBDIR = \$(DESTDIR)$_libdir
6613 MANDIR = \$(DESTDIR)$_mandir
6614 CONFDIR = \$(DESTDIR)$_confdir
6615 LOCALEDIR = \$(DESTDIR)$_localedir
6623 INSTALLSTRIP = $_install_strip
6626 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6627 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6628 DEPFLAGS = $DEPFLAGS
6630 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6631 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6632 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6633 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6634 CFLAGS_STACKREALIGN = $cflags_stackrealign
6636 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6637 EXTRALIBS_MPLAYER = $libs_mplayer
6646 $(mak_enable "$arch_all" "$arch" ARCH)
6647 $(mak_enable "$subarch_all" "$subarch" ARCH)
6648 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6652 NEED_GETTIMEOFDAY = $need_gettimeofday
6653 NEED_GLOB = $need_glob
6654 NEED_MMAP = $need_mmap
6655 NEED_SETENV = $need_setenv
6656 NEED_SHMEM = $need_shmem
6657 NEED_STRSEP = $need_strsep
6658 NEED_SWAB = $need_swab
6659 NEED_VSSCANF = $need_vsscanf
6667 APPLE_IR = $_apple_ir
6668 APPLE_REMOTE = $_apple_remote
6670 AUDIO_INPUT = $_audio_input
6671 BITMAP_FONT = $_bitmap_font
6676 COREAUDIO = $_coreaudio
6677 COREVIDEO = $_corevideo
6680 DIRECT3D = $_direct3d
6681 DIRECTFB = $_directfb
6685 DVDNAV_INTERNAL = $dvdnav_internal
6687 DVDREAD_INTERNAL = $_dvdread_internal
6691 FASTMEMCPY = $_fastmemcpy
6693 FREETYPE = $_freetype
6698 GL_COCOA = $_gl_cocoa
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
6719 LIBNEMESI = $_nemesi
6721 LIBSMBCLIENT = $_smb
6722 LIBTHEORA = $_theora
6725 MACOSX_FINDER = $_macosx_finder
6730 MUSEPACK = $_musepack
6732 NATIVE_RTSP = $_native_rtsp
6733 NETWORKING = $networking
6736 PE_EXECUTABLE = $_pe_executable
6739 PRIORITY = $_priority
6743 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6744 QTX_EMULATION = $_qtx_emulation
6747 RADIO_CAPTURE=$_radio_capture
6748 REAL_CODECS = $_real
6753 STREAM_CACHE = $_stream_cache
6754 SGIAUDIO = $_sgiaudio
6755 SUNAUDIO = $_sunaudio
6761 TV_BSDBT848 = $_tv_bsdbt848
6762 TV_DSHOW = $_tv_dshow
6766 UNRAR_EXEC = $_unrar_exec
6774 WIN32DLL = $_win32dll
6775 WIN32WAVEOUT = $_win32waveout
6776 WIN32_EMULATION = $_win32_emulation
6778 XANIM_CODECS = $_xanim
6780 XMMS_PLUGINS = $_xmms
6784 YUV4MPEG = $_yuv4mpeg
6787 FFMPEG_INTERNALS = $ffmpeg_internals
6788 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6792 YASMFLAGS = $YASMFLAGS
6794 CONFIG_VDPAU = $_vdpau
6795 CONFIG_ZLIB = $_zlib
6797 HAVE_PTHREADS = $_pthreads
6799 HAVE_W32THREADS = $_w32threads
6800 HAVE_YASM = $have_yasm
6804 #############################################################################
6806 ff_config_enable
() {
6807 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6808 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6810 test -z "$_nprefix" && _nprefix
='CONFIG'
6811 for part
in $list; do
6812 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6813 echo "#define ${_nprefix}_$part 1"
6815 echo "#define ${_nprefix}_$part 0"
6820 echo "Creating config.h"
6822 /*----------------------------------------------------------------------------
6823 ** This file has been automatically generated by configure any changes in it
6824 ** will be lost when you run configure again.
6825 ** Instead of modifying definitions here, use the --enable/--disable options
6826 ** of the configure script! See ./configure --help for details.
6827 *---------------------------------------------------------------------------*/
6829 #ifndef MPLAYER_CONFIG_H
6830 #define MPLAYER_CONFIG_H
6832 /* Undefine this if you do not want to select mono audio (left or right)
6833 with a stereo MPEG layer 2/3 audio stream. The command line option
6834 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6835 right-only), with 0 being the default.
6837 #define CONFIG_FAKE_MONO 1
6839 /* set up audio OUTBURST. Do not change this! */
6840 #define OUTBURST 512
6842 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6844 #undef FAST_OSD_TABLE
6848 #define CONFIGURATION "$configuration"
6850 #define MPLAYER_DATADIR "$_datadir"
6851 #define MPLAYER_CONFDIR "$_confdir"
6852 #define MPLAYER_LOCALEDIR "$_localedir"
6856 /* definitions needed by included libraries */
6857 #define HAVE_INTTYPES_H 1
6859 #define HAVE_ERRNO_H 1
6860 /* libdvdcss + libdvdread */
6861 #define HAVE_LIMITS_H 1
6863 #define HAVE_UNISTD_H 1
6865 #define STDC_HEADERS 1
6866 #define HAVE_MEMCPY 1
6868 #define READ_CACHE_TRACE 0
6870 #define HAVE_DLFCN_H 1
6874 /* system headers */
6876 $def_alsa_asoundlib_h
6880 $def_mman_has_map_failed
6882 $def_sys_asoundlib_h
6883 $def_sys_soundcard_h
6891 /* system functions */
6914 /* system-specific features */
6927 $def_restrict_keyword
6932 /* configurable options */
6937 $def_runtime_cpudetection
6945 #define __CPU__ $iproc
6949 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6950 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6951 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6954 /* Blu-ray/DVD/VCD/CD */
6955 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6956 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6977 /* codec libraries */
7003 #define BINARY_CODECS_PATH "$_codecsdir"
7004 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7007 /* Audio output drivers */
7023 $def_ossaudio_devdsp
7024 $def_ossaudio_devmixer
7038 $def_ioctl_bt848_h_name
7039 $def_ioctl_meteor_h_name
7139 $def_ffmpeg_internals
7163 #define HAVE_INLINE_ASM 1
7165 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7167 #define HAVE_EBP_AVAILABLE 1
7169 #define HAVE_EBP_AVAILABLE 0
7172 #endif /* MPLAYER_CONFIG_H */
7175 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7176 cmp -s "$TMPH" config.h ||
mv -f "$TMPH" config.h
7178 #############################################################################
7182 Config files successfully generated by ./configure $configuration !
7184 Install prefix: $_prefix
7185 Data directory: $_datadir
7186 Config direct.: $_confdir
7188 Byte order: $_byte_order
7189 Optimizing for: $_optimizing
7192 Messages (in addition to English): $language_msg
7193 Manual pages: $language_man
7194 Documentation: $language_doc
7196 Enabled optional drivers:
7197 Input: $inputmodules
7198 Codecs: $codecmodules
7199 Audio output: $aomodules
7200 Video output: $vomodules
7202 Disabled optional drivers:
7203 Input: $noinputmodules
7204 Codecs: $nocodecmodules
7205 Audio output: $noaomodules
7206 Video output: $novomodules
7208 'config.h' and 'config.mak' contain your configuration options.
7209 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7210 compile *** DO NOT REPORT BUGS if you tweak these files ***
7212 'make' will now compile MPlayer and 'make install' will install it.
7213 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7218 if test "$_mtrr" = yes ; then
7219 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7225 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7226 operating system ($system_name). You may encounter a few files that cannot
7227 be played due to missing open source video/audio codec support.
7234 Check $TMPLOG if you wonder why an autodetection failed (make sure
7235 development headers/packages are installed).
7237 NOTE: The --enable-* parameters unconditionally force options on, completely
7238 skipping autodetection. This behavior is unlike what you may be used to from
7239 autoconf-based configure scripts that can decide to override you. This greater
7240 level of control comes at a price. You may have to provide the correct compiler
7241 and linker flags yourself.
7242 If you used one of these options (except --enable-runtime-cpudetection and
7243 similar ones that turn on internal features) and experience a compilation or
7244 linking failure, make sure you have passed the necessary compiler/linker flags
7247 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7251 if test "$warn_cflags" = yes; then
7254 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7257 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7259 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7260 To do so, execute 'CFLAGS= ./configure <options>'
7266 rm -rf "$mplayer_tmpdir"