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 --disable-libav disable Libav [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-quartz disable Quartz video output [autodetect]
425 --disable-alsa disable ALSA audio output [autodetect]
426 --disable-ossaudio disable OSS audio output [autodetect]
427 --disable-arts disable aRts audio output [autodetect]
428 --disable-esd disable esd audio output [autodetect]
429 --disable-rsound disable RSound audio output [autodetect]
430 --disable-pulse disable Pulseaudio audio output [autodetect]
431 --disable-jack disable JACK audio output [autodetect]
432 --enable-openal enable OpenAL audio output [disable]
433 --disable-nas disable NAS audio output [autodetect]
434 --disable-sgiaudio disable SGI audio output [autodetect]
435 --disable-sunaudio disable Sun audio output [autodetect]
436 --disable-kai disable KAI audio output [autodetect]
437 --disable-dart disable DART audio output [autodetect]
438 --disable-win32waveout disable Windows waveout audio output [autodetect]
439 --disable-coreaudio disable CoreAudio audio output [autodetect]
440 --disable-select disable using select() on the audio device [enable]
443 --enable-translation enable support for translated output [disable]
444 --charset=charset convert the console messages to this character set
445 --language-doc=lang language to use for the documentation [en]
446 --language-man=lang language to use for the man pages [en]
447 --language-msg=lang extra languages for program messages [all]
448 --language=lang default language to use [en]
449 Specific options override --language. You can pass a list of languages separated
450 by whitespace or commas instead of a single language. Nonexisting translations
451 will be dropped from each list. All translations available in the list will be
452 installed. The value "all" will activate all translations. The LINGUAS
453 environment variable is honored. In all cases the fallback is English.
454 The program always supports English-language output; additional message
455 languages are only installed if --enable-translation is also specified.
456 Available values for --language-doc are: all $doc_lang_all
457 Available values for --language-man are: all $man_lang_all
458 Available values for --language-msg are: all $msg_lang_all
460 Miscellaneous options:
461 --enable-runtime-cpudetection enable runtime CPU detection [disable]
462 --enable-cross-compile enable cross-compilation [autodetect]
463 --cc=COMPILER C compiler to build MPlayer [gcc]
464 --host-cc=COMPILER C compiler for tools needed while building [gcc]
465 --as=ASSEMBLER assembler to build MPlayer [as]
466 --nm=NM nm tool to build MPlayer [nm]
467 --yasm=YASM Yasm assembler to build MPlayer [yasm]
468 --ar=AR librarian to build MPlayer [ar]
469 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
470 --windres=WINDRES windres to build MPlayer [windres]
471 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
472 --enable-static build a statically linked binary
473 --with-install=PATH path to a custom install program
476 --enable-mmx enable MMX [autodetect]
477 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
478 --enable-3dnow enable 3DNow! [autodetect]
479 --enable-3dnowext enable extended 3DNow! [autodetect]
480 --enable-sse enable SSE [autodetect]
481 --enable-sse2 enable SSE2 [autodetect]
482 --enable-ssse3 enable SSSE3 [autodetect]
483 --enable-shm enable shm [autodetect]
484 --enable-altivec enable AltiVec (PowerPC) [autodetect]
485 --enable-armv5te enable DSP extensions (ARM) [autodetect]
486 --enable-armv6 enable ARMv6 (ARM) [autodetect]
487 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
488 --enable-armvfp enable ARM VFP (ARM) [autodetect]
489 --enable-neon enable NEON (ARM) [autodetect]
490 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
491 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
492 --enable-big-endian force byte order to big-endian [autodetect]
493 --enable-debug[=1-3] compile-in debugging information [disable]
494 --enable-profile compile-in profiling information [disable]
495 --disable-sighandler disable sighandler for crashes [enable]
496 --enable-crash-debug enable automatic gdb attach on crash [disable]
498 Use these options if autodetection fails:
499 --extra-cflags=FLAGS extra CFLAGS
500 --extra-ldflags=FLAGS extra LDFLAGS
501 --extra-libs=FLAGS extra linker flags
502 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
504 --with-freetype-config=PATH path to freetype-config
505 --with-sdl-config=PATH path to sdl*-config
506 --with-dvdnav-config=PATH path to dvdnav-config
507 --with-dvdread-config=PATH path to dvdread-config
509 This configure script is NOT autoconf-based, even though its output is similar.
510 It will try to autodetect all configuration options. If you --enable an option
511 it will be forcefully turned on, skipping autodetection. This can break
512 compilation, so you need to know what you are doing.
517 # GOTCHA: the variables below defines the default behavior for autodetection
518 # and have - unless stated otherwise - at least 2 states : yes no
519 # If autodetection is available then the third state is: auto
543 test "$CC" && _cc
="$CC"
547 _runtime_cpudetection
=no
613 _dvdnavconfig
=dvdnav-config
614 _dvdreadconfig
=dvdread-config
616 _dvdread_internal
=auto
617 _libdvdcss_internal
=auto
688 _freetypeconfig
='freetype-config'
703 def_dos_paths
="#define HAVE_DOS_PATHS 0"
704 def_stream_cache
="#define CONFIG_STREAM_CACHE 1"
705 def_priority
="#undef CONFIG_PRIORITY"
706 def_pthread_cache
="#undef PTHREAD_CACHE"
714 _prefix
=$
(echo $ac_option | cut
-d '=' -f 2)
717 _bindir
=$
(echo $ac_option | cut
-d '=' -f 2)
720 _datadir
=$
(echo $ac_option | cut
-d '=' -f 2)
723 _mandir
=$
(echo $ac_option | cut
-d '=' -f 2)
726 _confdir
=$
(echo $ac_option | cut
-d '=' -f 2)
729 _libdir
=$
(echo $ac_option | cut
-d '=' -f 2)
732 _codecsdir
=$
(echo $ac_option | cut
-d '=' -f 2)
735 _localedir
=$
(echo $ac_option | cut
-d '=' -f 2)
739 _install
=$
(echo $ac_option | cut
-d '=' -f 2 )
743 _sdlconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
745 --with-freetype-config=*)
746 _freetypeconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
748 --with-dvdnav-config=*)
749 _dvdnavconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
751 --with-dvdread-config=*)
752 _dvdreadconfig
=$
(echo $ac_option | cut
-d '=' -f 2)
756 extra_cflags
="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
759 extra_ldflags
="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
762 extra_libs
=$
(echo $ac_option | cut
-d '=' -f 2)
764 --extra-libs-mplayer=*)
765 libs_mplayer
=$
(echo $ac_option | cut
-d '=' -f 2)
769 _target
=$
(echo $ac_option | cut
-d '=' -f 2)
772 _cc
=$
(echo $ac_option | cut
-d '=' -f 2)
775 _host_cc
=$
(echo $ac_option | cut
-d '=' -f 2)
778 _as
=$
(echo $ac_option | cut
-d '=' -f 2)
781 _nm
=$
(echo $ac_option | cut
-d '=' -f 2)
784 _yasm
=$
(echo $ac_option | cut
-d '=' -f 2)
787 _ar
=$
(echo $ac_option | cut
-d '=' -f 2)
790 _ranlib
=$
(echo $ac_option | cut
-d '=' -f 2)
793 _windres
=$
(echo $ac_option | cut
-d '=' -f 2)
796 _charset
=$
(echo $ac_option | cut
-d '=' -f 2)
799 language_doc
=$
(echo $ac_option | cut
-d '=' -f 2)
802 language_man
=$
(echo $ac_option | cut
-d '=' -f 2)
805 language_msg
=$
(echo $ac_option | cut
-d '=' -f 2)
808 language
=$
(echo $ac_option | cut
-d '=' -f 2)
827 _debug
=$
(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut
-d '=' -f 2)
832 --enable-translation) _translation
=yes ;;
833 --disable-translation) _translation
=no
;;
834 --enable-runtime-cpudetection) _runtime_cpudetection
=yes ;;
835 --disable-runtime-cpudetection) _runtime_cpudetection
=no
;;
836 --enable-cross-compile) _cross_compile
=yes ;;
837 --disable-cross-compile) _cross_compile
=no
;;
838 --enable-mplayer) _mplayer
=yes ;;
839 --disable-mplayer) _mplayer
=no
;;
840 --enable-x11) _x11
=yes ;;
841 --disable-x11) _x11
=no
;;
842 --enable-xshape) _xshape
=yes ;;
843 --disable-xshape) _xshape
=no
;;
844 --enable-xss) _xss
=yes ;;
845 --disable-xss) _xss
=no
;;
846 --enable-xv) _xv
=yes ;;
847 --disable-xv) _xv
=no
;;
848 --enable-vdpau) _vdpau
=yes ;;
849 --disable-vdpau) _vdpau
=no
;;
850 --enable-sdl) _sdl
=yes ;;
851 --disable-sdl) _sdl
=no
;;
852 --enable-kva) _kva
=yes ;;
853 --disable-kva) _kva
=no
;;
854 --enable-direct3d) _direct3d
=yes ;;
855 --disable-direct3d) _direct3d
=no
;;
856 --enable-directx) _directx
=yes ;;
857 --disable-directx) _directx
=no
;;
858 --enable-win32waveout) _win32waveout
=yes ;;
859 --disable-win32waveout) _win32waveout
=no
;;
860 --enable-nas) _nas
=yes ;;
861 --disable-nas) _nas
=no
;;
862 --enable-png) _png
=yes ;;
863 --disable-png) _png
=no
;;
864 --enable-mng) _mng
=yes ;;
865 --disable-mng) _mng
=no
;;
866 --enable-jpeg) _jpeg
=yes ;;
867 --disable-jpeg) _jpeg
=no
;;
868 --enable-pnm) _pnm
=yes ;;
869 --disable-pnm) _pnm
=no
;;
870 --enable-md5sum) _md5sum
=yes ;;
871 --disable-md5sum) _md5sum
=no
;;
872 --enable-yuv4mpeg) _yuv4mpeg
=yes ;;
873 --disable-yuv4mpeg) _yuv4mpeg
=no
;;
874 --enable-gif) _gif
=yes ;;
875 --disable-gif) _gif
=no
;;
876 --enable-gl) _gl
=yes ;;
877 --disable-gl) _gl
=no
;;
878 --enable-ggi) _ggi
=yes ;;
879 --disable-ggi) _ggi
=no
;;
880 --enable-ggiwmh) _ggiwmh
=yes ;;
881 --disable-ggiwmh) _ggiwmh
=no
;;
882 --enable-aa) _aa
=yes ;;
883 --disable-aa) _aa
=no
;;
884 --enable-caca) _caca
=yes ;;
885 --disable-caca) _caca
=no
;;
886 --enable-svga) _svga
=yes ;;
887 --disable-svga) _svga
=no
;;
888 --enable-vesa) _vesa
=yes ;;
889 --disable-vesa) _vesa
=no
;;
890 --enable-fbdev) _fbdev
=yes ;;
891 --disable-fbdev) _fbdev
=no
;;
892 --enable-dvb) _dvb
=yes ;;
893 --disable-dvb) _dvb
=no
;;
894 --enable-dxr3) _dxr3
=yes ;;
895 --disable-dxr3) _dxr3
=no
;;
896 --enable-ivtv) _ivtv
=yes ;;
897 --disable-ivtv) _ivtv
=no
;;
898 --enable-v4l2) _v4l2
=yes ;;
899 --disable-v4l2) _v4l2
=no
;;
900 --enable-iconv) _iconv
=yes ;;
901 --disable-iconv) _iconv
=no
;;
902 --enable-langinfo) _langinfo
=yes ;;
903 --disable-langinfo) _langinfo
=no
;;
904 --enable-rtc) _rtc
=yes ;;
905 --disable-rtc) _rtc
=no
;;
906 --enable-libdv) _libdv
=yes ;;
907 --disable-libdv) _libdv
=no
;;
908 --enable-ossaudio) _ossaudio
=yes ;;
909 --disable-ossaudio) _ossaudio
=no
;;
910 --enable-arts) _arts
=yes ;;
911 --disable-arts) _arts
=no
;;
912 --enable-esd) _esd
=yes ;;
913 --disable-esd) _esd
=no
;;
914 --enable-rsound) _rsound
=yes ;;
915 --disable-rsound) _rsound
=no
;;
916 --enable-pulse) _pulse
=yes ;;
917 --disable-pulse) _pulse
=no
;;
918 --enable-jack) _jack
=yes ;;
919 --disable-jack) _jack
=no
;;
920 --enable-openal) _openal
=yes ;;
921 --disable-openal) _openal
=no
;;
922 --enable-kai) _kai
=yes ;;
923 --disable-kai) _kai
=no
;;
924 --enable-dart) _dart
=yes ;;
925 --disable-dart) _dart
=no
;;
926 --enable-mad) _mad
=yes ;;
927 --disable-mad) _mad
=no
;;
928 --enable-libcdio) _libcdio
=yes ;;
929 --disable-libcdio) _libcdio
=no
;;
930 --enable-libvorbis) _libvorbis
=yes ;;
931 --disable-libvorbis) _libvorbis
=no
;;
932 --enable-speex) _speex
=yes ;;
933 --disable-speex) _speex
=no
;;
934 --enable-tremor) _tremor
=yes ;;
935 --disable-tremor) _tremor
=no
;;
936 --enable-theora) _theora
=yes ;;
937 --disable-theora) _theora
=no
;;
938 --enable-mpg123) _mpg123
=yes ;;
939 --disable-mpg123) _mpg123
=no
;;
940 --enable-liba52) _liba52
=yes ;;
941 --disable-liba52) _liba52
=no
;;
942 --enable-libdca) _libdca
=yes ;;
943 --disable-libdca) _libdca
=no
;;
944 --enable-musepack) _musepack
=yes ;;
945 --disable-musepack) _musepack
=no
;;
946 --enable-faad) _faad
=yes ;;
947 --disable-faad) _faad
=no
;;
948 --enable-ladspa) _ladspa
=yes ;;
949 --disable-ladspa) _ladspa
=no
;;
950 --enable-libbs2b) _libbs2b
=yes ;;
951 --disable-libbs2b) _libbs2b
=no
;;
952 --enable-xmms) _xmms
=yes ;;
953 --disable-xmms) _xmms
=no
;;
954 --enable-vcd) _vcd
=yes ;;
955 --disable-vcd) _vcd
=no
;;
956 --enable-bluray) _bluray
=yes ;;
957 --disable-bluray) _bluray
=no
;;
958 --enable-dvdread) _dvdread
=yes ;;
959 --disable-dvdread) _dvdread
=no
;;
960 --enable-dvdread-internal) _dvdread_internal
=yes ;;
961 --disable-dvdread-internal) _dvdread_internal
=no
;;
962 --enable-libdvdcss-internal) _libdvdcss_internal
=yes ;;
963 --disable-libdvdcss-internal) _libdvdcss_internal
=no
;;
964 --enable-dvdnav) _dvdnav
=yes ;;
965 --disable-dvdnav) _dvdnav
=no
;;
966 --enable-xanim) _xanim
=yes ;;
967 --disable-xanim) _xanim
=no
;;
968 --enable-real) _real
=yes ;;
969 --disable-real) _real
=no
;;
970 --enable-live) _live
=yes ;;
971 --disable-live) _live
=no
;;
972 --enable-nemesi) _nemesi
=yes ;;
973 --disable-nemesi) _nemesi
=no
;;
974 --enable-xinerama) _xinerama
=yes ;;
975 --disable-xinerama) _xinerama
=no
;;
976 --enable-mga) _mga
=yes ;;
977 --disable-mga) _mga
=no
;;
978 --enable-xmga) _xmga
=yes ;;
979 --disable-xmga) _xmga
=no
;;
980 --enable-vm) _vm
=yes ;;
981 --disable-vm) _vm
=no
;;
982 --enable-xf86keysym) _xf86keysym
=yes ;;
983 --disable-xf86keysym) _xf86keysym
=no
;;
984 --enable-sunaudio) _sunaudio
=yes ;;
985 --disable-sunaudio) _sunaudio
=no
;;
986 --enable-sgiaudio) _sgiaudio
=yes ;;
987 --disable-sgiaudio) _sgiaudio
=no
;;
988 --enable-alsa) _alsa
=yes ;;
989 --disable-alsa) _alsa
=no
;;
990 --enable-tv) _tv
=yes ;;
991 --disable-tv) _tv
=no
;;
992 --enable-tv-bsdbt848) _tv_bsdbt848
=yes ;;
993 --disable-tv-bsdbt848) _tv_bsdbt848
=no
;;
994 --enable-tv-v4l1) _tv_v4l1
=yes ;;
995 --disable-tv-v4l1) _tv_v4l1
=no
;;
996 --enable-tv-v4l2) _tv_v4l2
=yes ;;
997 --disable-tv-v4l2) _tv_v4l2
=no
;;
998 --enable-tv-dshow) _tv_dshow
=yes ;;
999 --disable-tv-dshow) _tv_dshow
=no
;;
1000 --enable-radio) _radio
=yes ;;
1001 --enable-radio-capture) _radio_capture
=yes ;;
1002 --disable-radio-capture) _radio_capture
=no
;;
1003 --disable-radio) _radio
=no
;;
1004 --enable-radio-v4l) _radio_v4l
=yes ;;
1005 --disable-radio-v4l) _radio_v4l
=no
;;
1006 --enable-radio-v4l2) _radio_v4l2
=yes ;;
1007 --disable-radio-v4l2) _radio_v4l2
=no
;;
1008 --enable-radio-bsdbt848) _radio_bsdbt848
=yes ;;
1009 --disable-radio-bsdbt848) _radio_bsdbt848
=no
;;
1010 --enable-pvr) _pvr
=yes ;;
1011 --disable-pvr) _pvr
=no
;;
1012 --enable-fastmemcpy) _fastmemcpy
=yes ;;
1013 --disable-fastmemcpy) _fastmemcpy
=no
;;
1014 --enable-networking) networking
=yes ;;
1015 --disable-networking) networking
=no
;;
1016 --enable-winsock2_h) _winsock2_h
=yes ;;
1017 --disable-winsock2_h) _winsock2_h
=no
;;
1018 --enable-smb) _smb
=yes ;;
1019 --disable-smb) _smb
=no
;;
1020 --enable-joystick) _joystick
=yes ;;
1021 --disable-joystick) _joystick
=no
;;
1022 --enable-xvid) _xvid
=yes ;;
1023 --disable-xvid) _xvid
=no
;;
1024 --enable-libnut) _libnut
=yes ;;
1025 --disable-libnut) _libnut
=no
;;
1026 --enable-libav) ffmpeg
=yes ;;
1027 --disable-libav) ffmpeg
=no
;;
1028 --ffmpeg-source-dir=*)
1029 _ffmpeg_source
=$
(echo $ac_option | cut
-d '=' -f 2 ) ;;
1031 --enable-lirc) _lirc
=yes ;;
1032 --disable-lirc) _lirc
=no
;;
1033 --enable-lircc) _lircc
=yes ;;
1034 --disable-lircc) _lircc
=no
;;
1035 --enable-apple-remote) _apple_remote
=yes ;;
1036 --disable-apple-remote) _apple_remote
=no
;;
1037 --enable-apple-ir) _apple_ir
=yes ;;
1038 --disable-apple-ir) _apple_ir
=no
;;
1039 --enable-termcap) _termcap
=yes ;;
1040 --disable-termcap) _termcap
=no
;;
1041 --enable-termios) _termios
=yes ;;
1042 --disable-termios) _termios
=no
;;
1043 --enable-3dfx) _3dfx
=yes ;;
1044 --disable-3dfx) _3dfx
=no
;;
1045 --enable-s3fb) _s3fb
=yes ;;
1046 --disable-s3fb) _s3fb
=no
;;
1047 --enable-wii) _wii
=yes ;;
1048 --disable-wii) _wii
=no
;;
1049 --enable-tdfxfb) _tdfxfb
=yes ;;
1050 --disable-tdfxfb) _tdfxfb
=no
;;
1051 --disable-tdfxvid) _tdfxvid
=no
;;
1052 --enable-tdfxvid) _tdfxvid
=yes ;;
1053 --disable-xvr100) _xvr100
=no
;;
1054 --enable-xvr100) _xvr100
=yes ;;
1055 --disable-tga) _tga
=no
;;
1056 --enable-tga) _tga
=yes ;;
1057 --enable-directfb) _directfb
=yes ;;
1058 --disable-directfb) _directfb
=no
;;
1059 --enable-bl) _bl
=yes ;;
1060 --disable-bl) _bl
=no
;;
1061 --enable-mtrr) _mtrr
=yes ;;
1062 --disable-mtrr) _mtrr
=no
;;
1063 --enable-shm) _shm
=yes ;;
1064 --disable-shm) _shm
=no
;;
1065 --enable-select) _select
=yes ;;
1066 --disable-select) _select
=no
;;
1067 --enable-cdparanoia) _cdparanoia
=yes ;;
1068 --disable-cdparanoia) _cdparanoia
=no
;;
1069 --enable-cddb) _cddb
=yes ;;
1070 --disable-cddb) _cddb
=no
;;
1071 --enable-big-endian) _big_endian
=yes ;;
1072 --disable-big-endian) _big_endian
=no
;;
1073 --enable-bitmap-font) _bitmap_font
=yes ;;
1074 --disable-bitmap-font) _bitmap_font
=no
;;
1075 --enable-freetype) _freetype
=yes ;;
1076 --disable-freetype) _freetype
=no
;;
1077 --enable-fontconfig) _fontconfig
=yes ;;
1078 --disable-fontconfig) _fontconfig
=no
;;
1079 --enable-unrarexec) _unrar_exec
=yes ;;
1080 --disable-unrarexec) _unrar_exec
=no
;;
1081 --enable-ftp) _ftp
=yes ;;
1082 --disable-ftp) _ftp
=no
;;
1083 --enable-vstream) _vstream
=yes ;;
1084 --disable-vstream) _vstream
=no
;;
1085 --enable-pthreads) _pthreads
=yes ;;
1086 --disable-pthreads) _pthreads
=no
;;
1087 --enable-w32threads) _w32threads
=yes ;;
1088 --disable-w32threads) _w32threads
=no
;;
1089 --enable-libass) _ass
=yes ;;
1090 --disable-libass) _ass
=no
;;
1091 --enable-rpath) _rpath
=yes ;;
1092 --disable-rpath) _rpath
=no
;;
1094 --enable-fribidi) _fribidi
=yes ;;
1095 --disable-fribidi) _fribidi
=no
;;
1097 --enable-enca) _enca
=yes ;;
1098 --disable-enca) _enca
=no
;;
1100 --enable-inet6) _inet6
=yes ;;
1101 --disable-inet6) _inet6
=no
;;
1103 --enable-gethostbyname2) _gethostbyname2
=yes ;;
1104 --disable-gethostbyname2) _gethostbyname2
=no
;;
1106 --enable-dga1) _dga1
=yes ;;
1107 --disable-dga1) _dga1
=no
;;
1108 --enable-dga2) _dga2
=yes ;;
1109 --disable-dga2) _dga2
=no
;;
1111 --enable-qtx) _qtx
=yes ;;
1112 --disable-qtx) _qtx
=no
;;
1114 --enable-coreaudio) _coreaudio
=yes ;;
1115 --disable-coreaudio) _coreaudio
=no
;;
1116 --enable-corevideo) _corevideo
=yes ;;
1117 --disable-corevideo) _corevideo
=no
;;
1118 --enable-quartz) _quartz
=yes ;;
1119 --disable-quartz) _quartz
=no
;;
1120 --enable-macosx-finder) _macosx_finder
=yes ;;
1121 --disable-macosx-finder) _macosx_finder
=no
;;
1122 --enable-macosx-bundle) _macosx_bundle
=yes ;;
1123 --disable-macosx-bundle) _macosx_bundle
=no
;;
1125 --enable-sortsub) _sortsub
=yes ;;
1126 --disable-sortsub) _sortsub
=no
;;
1128 --enable-crash-debug) _crash_debug
=yes ;;
1129 --disable-crash-debug) _crash_debug
=no
;;
1130 --enable-sighandler) _sighandler
=yes ;;
1131 --disable-sighandler) _sighandler
=no
;;
1132 --enable-win32dll) _win32dll
=yes ;;
1133 --disable-win32dll) _win32dll
=no
;;
1135 --enable-sse) _sse
=yes ;;
1136 --disable-sse) _sse
=no
;;
1137 --enable-sse2) _sse2
=yes ;;
1138 --disable-sse2) _sse2
=no
;;
1139 --enable-ssse3) _ssse3
=yes ;;
1140 --disable-ssse3) _ssse3
=no
;;
1141 --enable-mmxext) _mmxext
=yes ;;
1142 --disable-mmxext) _mmxext
=no
;;
1143 --enable-3dnow) _3dnow
=yes ;;
1144 --disable-3dnow) _3dnow
=no _3dnowext
=no
;;
1145 --enable-3dnowext) _3dnow
=yes _3dnowext
=yes ;;
1146 --disable-3dnowext) _3dnowext
=no
;;
1147 --enable-cmov) _cmov
=yes ;;
1148 --disable-cmov) _cmov
=no
;;
1149 --enable-fast-cmov) _fast_cmov
=yes ;;
1150 --disable-fast-cmov) _fast_cmov
=no
;;
1151 --enable-fast-clz) _fast_clz
=yes ;;
1152 --disable-fast-clz) _fast_clz
=no
;;
1153 --enable-altivec) _altivec
=yes ;;
1154 --disable-altivec) _altivec
=no
;;
1155 --enable-armv5te) _armv5te
=yes ;;
1156 --disable-armv5te) _armv5te
=no
;;
1157 --enable-armv6) _armv6
=yes ;;
1158 --disable-armv6) _armv6
=no
;;
1159 --enable-armv6t2) _armv6t2
=yes ;;
1160 --disable-armv6t2) _armv6t2
=no
;;
1161 --enable-armvfp) _armvfp
=yes ;;
1162 --disable-armvfp) _armvfp
=no
;;
1163 --enable-neon) neon
=yes ;;
1164 --disable-neon) neon
=no
;;
1165 --enable-iwmmxt) _iwmmxt
=yes ;;
1166 --disable-iwmmxt) _iwmmxt
=no
;;
1167 --enable-mmx) _mmx
=yes ;;
1168 --disable-mmx) # 3Dnow! and MMX2 require MMX
1169 _3dnow
=no _3dnowext
=no _mmx
=no _mmxext
=no
;;
1172 echo "Unknown parameter: $ac_option" >&2
1179 # Atmos: moved this here, to be correct, if --prefix is specified
1180 test -z "$_bindir" && _bindir
="$_prefix/bin"
1181 test -z "$_datadir" && _datadir
="$_prefix/share/mplayer"
1182 test -z "$_mandir" && _mandir
="$_prefix/share/man"
1183 test -z "$_confdir" && _confdir
="$_prefix/etc/mplayer"
1184 test -z "$_libdir" && _libdir
="$_prefix/lib"
1185 test -z "$_localedir" && _localedir
="$_prefix/share/locale"
1187 # Determine our OS name and CPU architecture
1188 if test -z "$_target" ; then
1190 system_name
=$
(uname
-s 2>&1)
1191 case "$system_name" in
1192 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD
/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS
)
1206 [cC
][yY
][gG
][wW
][iI
][nN
]*)
1216 system_name
="$system_name-UNKNOWN"
1221 # host's CPU/instruction set
1222 host_arch
=$
(uname
-p 2>&1)
1223 case "$host_arch" in
1224 i386|sparc|ppc|alpha|arm|mips|vax
)
1226 powerpc
) # Darwin returns 'powerpc'
1229 *) # uname -p on Linux returns 'unknown' for the processor type,
1230 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1232 # Maybe uname -m (machine hardware name) returns something we
1235 # x86/x86pc is used by QNX
1236 case "$(uname -m 2>&1)" in
1237 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
;;
1238 ia64
) host_arch
=ia64
;;
1239 macppc|ppc
) host_arch
=ppc
;;
1240 ppc64
) host_arch
=ppc64
;;
1241 alpha
) host_arch
=alpha
;;
1242 sparc
) host_arch
=sparc
;;
1243 sparc64
) host_arch
=sparc64
;;
1244 parisc
*|hppa
*|
9000*) host_arch
=hppa
;;
1245 arm
*|zaurus|cats
) host_arch
=arm
;;
1246 sh3|sh4|sh4a
) host_arch
=sh
;;
1247 s390
) host_arch
=s390
;;
1248 s390x
) host_arch
=s390x
;;
1249 *mips
*) host_arch
=mips
;;
1250 vax
) host_arch
=vax
;;
1251 xtensa
*) host_arch
=xtensa
;;
1252 *) host_arch
=UNKNOWN
;;
1256 else # if test -z "$_target"
1257 system_name
=$
(echo $_target | cut
-d '-' -f 2)
1258 case "$(echo $system_name | tr A-Z a-z)" in
1259 linux
) system_name
=Linux
;;
1260 freebsd
) system_name
=FreeBSD
;;
1261 gnu
/kfreebsd
) system_name
=FreeBSD
;;
1262 netbsd
) system_name
=NetBSD
;;
1263 bsd
/os
) system_name
=BSD
/OS
;;
1264 openbsd
) system_name
=OpenBSD
;;
1265 dragonfly
) system_name
=DragonFly
;;
1266 sunos
) system_name
=SunOS
;;
1267 qnx
) system_name
=QNX
;;
1268 morphos
) system_name
=MorphOS
;;
1269 amigaos
) system_name
=AmigaOS
;;
1270 mingw32
*) system_name
=MINGW32
;;
1272 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1273 host_arch
=$
(echo $_target | cut
-d '-' -f 1)
1274 if test $
(echo $host_arch) != "x86_64" ; then
1275 host_arch
=$
(echo $host_arch |
tr '_' '-')
1279 extra_cflags
="-I. $extra_cflags"
1280 _timer
=timer-linux.c
1283 extra_ldflags
="$extra_ldflags -L/usr/local/lib"
1284 extra_cflags
="$extra_cflags -I/usr/local/include"
1287 if netbsd || dragonfly
; then
1288 extra_ldflags
="$extra_ldflags -L/usr/pkg/lib"
1289 extra_cflags
="$extra_cflags -I/usr/pkg/include"
1293 extra_cflags
="-mdynamic-no-pic $extra_cflags"
1294 if test "$(basename $_cc)" != "clang" ; then
1295 extra_cflags
="-falign-loops=16 -shared-libgcc $extra_cflags"
1297 _timer
=timer-darwin.c
1301 extra_ldflags
="$extra_ldflags -lC"
1312 extra_cflags
="$extra_cflags -fno-common"
1313 # -lwinmm is always needed for osdep/timer-win2.c
1314 extra_ldflags
="$extra_ldflags -lwinmm"
1318 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1319 def_priority
="#define CONFIG_PRIORITY 1"
1331 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
1332 extra_cflags
="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1336 extra_ldflags
="$extra_ldflags -lph"
1344 def_dos_paths
="#define HAVE_DOS_PATHS 1"
1345 def_priority
="#define CONFIG_PRIORITY 1"
1348 for tmpdir
in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1349 test "$tmpdir" && break
1352 mplayer_tmpdir
="$tmpdir/mplayer-configure-$RANDOM-$$"
1353 mkdir
$mplayer_tmpdir || die
"Unable to create tmpdir."
1356 TMPC
="$mplayer_tmpdir/tmp.c"
1357 TMPCPP
="$mplayer_tmpdir/tmp.cpp"
1358 TMPEXE
="$mplayer_tmpdir/tmp$_exesuf"
1359 TMPH
="$mplayer_tmpdir/tmp.h"
1360 TMPS
="$mplayer_tmpdir/tmp.S"
1363 echo configuration
: $configuration > "$TMPLOG"
1367 if test "$_runtime_cpudetection" = yes && ! x86
&& ! ppc
; then
1368 die
"Runtime CPU detection only works for x86, x86-64 and PPC!"
1372 # Checking CC version...
1373 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1374 if test "$(basename $_cc)" = "icc" ||
test "$(basename $_cc)" = "ecc"; then
1375 echocheck
"$_cc version"
1377 cc_name
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 1)
1378 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ',' -f 2 | cut
-d ' ' -f 3)
1379 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1380 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1381 # TODO verify older icc/ecc compatibility
1384 cc_version
="v. ?.??, bad"
1388 cc_version
="$cc_version, ok"
1391 cc_version
="$cc_version, bad"
1395 echores
"$cc_version"
1397 for _cc
in "$_cc" gcc cc
; do
1398 cc_name_tmp
=$
($_cc -v 2>&1 |
tail -n 1 | cut
-d ' ' -f 1)
1399 if test "$cc_name_tmp" = "gcc"; then
1400 cc_name
=$cc_name_tmp
1401 echocheck
"$_cc version"
1403 cc_version
=$
($_cc -dumpversion 2>&1)
1409 _cc_major
=$
(echo $cc_version | cut
-d '.' -f 1)
1410 _cc_minor
=$
(echo $cc_version | cut
-d '.' -f 2)
1411 _cc_mini
=$
(echo $cc_version | cut
-d '.' -f 3)
1414 echores
"$cc_version"
1417 if $_cc -v 2>&1 |
grep -q "clang"; then
1418 echocheck
"$_cc version"
1420 cc_version
=$
($_cc -dumpversion 2>&1)
1421 res_comment
="experimental support only"
1422 echores
"clang $cc_version"
1425 cc_name_tmp
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 2,3)
1426 if test "$cc_name_tmp" = "Sun C"; then
1427 echocheck
"$_cc version"
1429 cc_version
=$
($_cc -V 2>&1 |
head -n 1 | cut
-d ' ' -f 4)
1430 res_comment
="experimental support only"
1431 echores
"Sun C $cc_version"
1436 test "$cc_fail" = yes && die
"unsupported compiler version"
1438 echocheck
"working compiler"
1439 cflag_check
"" || die
"Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1442 if test -z "$_target" && x86
; then
1445 int test[(int)sizeof(char *)-7];
1449 cc_check
&& host_arch
=x86_64 || host_arch
=i386
1452 echo "Detected operating system: $system_name"
1453 echo "Detected host architecture: $host_arch"
1455 echocheck
"cross compilation"
1456 if test $_cross_compile = auto
; then
1458 cflag_check
"" && "$TMPEXE" && _cross_compile
=no
1460 echores
$_cross_compile
1462 if test $_cross_compile = yes; then
1466 test "$_host_cc" || _host_cc
=cc
1470 test "$_host_cc" || _host_cc
=$_cc
1475 # now that we know what compiler should be used for compilation, try to find
1476 # out which assembler is used by the $_cc compiler
1477 if test "$_as" = auto
; then
1478 _as
=$
($_cc -print-prog-name=as
)
1479 test -z "$_as" && _as
=as
1482 if test "$_nm" = auto
; then
1483 _nm
=$
($_cc -print-prog-name=nm
)
1484 test -z "$_nm" && _nm
=nm
1487 # XXX: this should be ok..
1490 if test "$_runtime_cpudetection" = no
; then
1492 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1493 # FIXME: Remove the cygwin check once AMD CPUs are supported
1494 if test -r /proc
/cpuinfo
&& ! cygwin
; then
1495 # Linux with /proc mounted, extract CPU information from it
1496 _cpuinfo
="cat /proc/cpuinfo"
1497 elif test -r /compat
/linux
/proc
/cpuinfo
&& ! x86
; then
1498 # FreeBSD with Linux emulation /proc mounted,
1499 # extract CPU information from it
1500 # Don't use it on x86 though, it never reports 3Dnow
1501 _cpuinfo
="cat /compat/linux/proc/cpuinfo"
1502 elif darwin
&& ! x86
; then
1503 # use hostinfo on Darwin
1506 # use 'lsattr' on AIX
1507 _cpuinfo
="lsattr -E -l proc0 -a type"
1509 # all other OSes try to extract CPU information from a small helper
1510 # program cpuinfo instead
1511 $_cc -o cpuinfo
$_exesuf cpuinfo.c
1512 _cpuinfo
="./cpuinfo$_exesuf"
1516 # gather more CPU information
1517 pname
=$
($_cpuinfo |
grep 'model name' | cut
-d ':' -f 2 |
head -n 1)
1518 pvendor
=$
($_cpuinfo |
grep 'vendor_id' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1519 pfamily
=$
($_cpuinfo |
grep 'cpu family' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1520 pmodel
=$
($_cpuinfo |
grep -v 'model name' |
grep 'model' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1521 pstepping
=$
($_cpuinfo |
grep 'stepping' | cut
-d ':' -f 2 | cut
-d ' ' -f 2 |
head -n 1)
1523 exts
=$
($_cpuinfo |
egrep 'features|flags' | cut
-d ':' -f 2 |
head -n 1)
1525 pparam
=$
(echo $exts |
sed -e s
/k6_mtrr
/mtrr
/ -e s
/cyrix_arr
/mtrr
/ -e s
/centaur_mcr
/mtrr
/ \
1526 -e s
/xmm
/sse
/ -e s
/kni
/sse
/)
1527 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1528 pparam
=$
(echo $pparam |
sed -e 's/sse/sse mmxext/')
1530 for ext
in $pparam ; do
1531 eval test \"\
$_$ext\" = auto
2>/dev
/null
&& eval _
$ext=kernel_check
1534 echocheck
"CPU vendor"
1535 echores
"$pvendor ($pfamily:$pmodel:$pstepping)"
1537 echocheck
"CPU type"
1541 fi # test "$_runtime_cpudetection" = no
1543 if x86
&& test "$_runtime_cpudetection" = no
; then
1545 if test "$1" = kernel_check
; then
1546 echocheck
"kernel support of $2"
1550 static void catch(int sig) { exit(1); }
1552 signal(SIGILL, catch);
1553 __asm__ volatile ("$3":::"memory"); return 0;
1557 if cc_check
&& tmp_run
; then
1560 _optimizing
="$_optimizing $2"
1565 echo "It seems that your kernel does not correctly support $2."
1566 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1573 extcheck
$_mmx "mmx" "emms"
1574 extcheck
$_mmxext "mmxext" "sfence"
1575 extcheck
$_3dnow "3dnow" "femms"
1576 extcheck
$_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1577 extcheck
$_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse"
1578 extcheck
$_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext
="$_gcc3_ext -mno-sse2"
1579 extcheck
$_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1580 extcheck
$_cmov "cmov" "cmovb %%eax, %%ebx"
1582 echocheck
"mtrr support"
1583 if test "$_mtrr" = kernel_check
; then
1585 _optimizing
="$_optimizing mtrr"
1589 if test "$_gcc3_ext" != ""; then
1590 # if we had to disable sse/sse2 because the active kernel does not
1591 # support this instruction set extension, we also have to tell
1592 # gcc3 to not generate sse/sse2 instructions for normal C code
1593 cflag_check
$_march $_gcc3_ext && _march
="$_march $_gcc3_ext"
1599 def_fast_64bit
='#define HAVE_FAST_64BIT 0'
1600 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 0'
1601 arch_all
='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1602 subarch_all
='X86_32 X86_64 PPC64'
1603 case "$host_arch" in
1604 i
[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium
*|athlon
*|i586-i686
)
1607 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1612 if test "$_runtime_cpudetection" = no
; then
1616 3) proc
=i386 iproc
=386 ;;
1617 4) proc
=i486 iproc
=486 ;;
1618 5) iproc
=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1619 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1620 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1622 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1624 elif test "$pmodel" -ge 8; then
1626 elif test "$pmodel" -ge 6; then
1633 # It's a bit difficult to determine the correct type of Family 6
1634 # AMD CPUs just from their signature. Instead, we check directly
1635 # whether it supports SSE.
1636 if test "$_sse" = yes; then
1637 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1640 # Again, gcc treats athlon and athlon-tbird similarly.
1645 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1646 # caught and remedied in the optimization tests below.
1650 *) proc
=amdfam10 iproc
=686
1651 test $_fast_clz = "auto" && _fast_clz
=yes
1657 3) proc
=i386 iproc
=386 ;;
1658 4) proc
=i486 iproc
=486 ;;
1660 if test "$pmodel" -eq 4 ||
test "$pmodel" -eq 8; then
1661 proc
=pentium-mmx
# 4 is desktop, 8 is mobile
1667 if test "$pmodel" -ge 15; then
1669 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1671 elif test "$pmodel" -ge 7; then
1673 elif test "$pmodel" -ge 3; then
1678 test $_fast_clz = "auto" && _fast_clz
=yes
1681 # A nocona in 32-bit mode has no more capabilities than a prescott.
1682 if test "$pmodel" -ge 3; then
1686 test $_fast_clz = "auto" && _fast_clz
=yes
1688 test $_fast_cmov = "auto" && _fast_cmov
=no
1690 *) proc
=prescott iproc
=686 ;;
1696 if test "$pmodel" -ge 8; then
1698 elif test "$pmodel" -ge 4; then
1705 if test "$pmodel" -ge 9; then
1712 *) proc
=i686 iproc
=i686
;;
1717 3) proc
=i386 iproc
=386 ;;
1718 4) proc
=i486 iproc
=486 ;;
1719 *) proc
=i586 iproc
=586 ;;
1723 proc
=i586 iproc
=586 ;;
1725 test $_fast_clz = "auto" && _fast_clz
=no
1726 fi # test "$_runtime_cpudetection" = no
1729 # check that gcc supports our CPU, if not, fall back to earlier ones
1730 # LGB: check -mcpu and -march swithing step by step with enabling
1731 # to fall back till 386.
1733 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1735 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] ||
( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1741 echocheck
"GCC & CPU optimization abilities"
1742 if test "$_runtime_cpudetection" = no
; then
1743 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1744 cflag_check
-march=native
&& proc
=native
1746 if test "$proc" = "amdfam10"; then
1747 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1749 if test "$proc" = "k8"; then
1750 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1752 if test "$proc" = "athlon-xp"; then
1753 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon
1755 if test "$proc" = "k6-3" ||
test "$proc" = "k6-2"; then
1756 cflag_check
-march=$proc $cpuopt=$proc || proc
=k6
1758 if test "$proc" = "k6" ||
test "$proc" = "c3"; then
1759 if ! cflag_check
-march=$proc $cpuopt=$proc; then
1760 if cflag_check
-march=i586
$cpuopt=i686
; then
1767 if test "$proc" = "prescott" ; then
1768 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1770 if test "$proc" = "core2" ; then
1771 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium-m
1773 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
1774 cflag_check
-march=$proc $cpuopt=$proc || proc
=i686
1776 if test "$proc" = "i686" ||
test "$proc" = "pentium-mmx" ||
test "$proc" = "winchip-c6" ||
test "$proc" = "winchip2"; then
1777 cflag_check
-march=$proc $cpuopt=$proc || proc
=i586
1779 if test "$proc" = "i586"; then
1780 cflag_check
-march=$proc $cpuopt=$proc || proc
=i486
1782 if test "$proc" = "i486" ; then
1783 cflag_check
-march=$proc $cpuopt=$proc || proc
=i386
1785 if test "$proc" = "i386" ; then
1786 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1788 if test "$proc" = "error" ; then
1789 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1793 elif test "$proc" = "i586-i686"; then
1794 _march
="-march=i586"
1795 _mcpu
="$cpuopt=i686"
1798 _march
="-march=$proc"
1799 _mcpu
="$cpuopt=$proc"
1802 else # if test "$_runtime_cpudetection" = no
1803 _mcpu
="$cpuopt=generic"
1804 # at least i486 required, for bswap instruction
1805 _march
="-march=i486"
1806 cflag_check
$_mcpu || _mcpu
="$cpuopt=i686"
1807 cflag_check
$_mcpu || _mcpu
=""
1808 cflag_check
$_march $_mcpu || _march
=""
1811 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1812 ## autodetected mcpu/march parameters
1813 if test "$_target" ; then
1814 # TODO: it may be a good idea to check GCC and fall back in all cases
1815 if test "$host_arch" = "i586-i686"; then
1816 _march
="-march=i586"
1817 _mcpu
="$cpuopt=i686"
1819 _march
="-march=$host_arch"
1820 _mcpu
="$cpuopt=$host_arch"
1828 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx
) iproc
=586 ;;
1829 i686|athlon
*|pentium
*) iproc
=686 ;;
1834 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1839 test $_fast_clz = "auto" && _fast_clz
=yes
1846 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1853 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1854 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1857 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1858 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1863 if test "$_runtime_cpudetection" = no
; then
1868 test $_fast_clz = "auto" && _fast_clz
=no
1877 # 64-bit prescotts exist, but as far as GCC is concerned they
1878 # have the same capabilities as a nocona.
1880 test $_fast_cmov = "auto" && _fast_cmov
=no
1881 test $_fast_clz = "auto" && _fast_clz
=no
1888 fi # test "$_runtime_cpudetection" = no
1890 echocheck
"GCC & CPU optimization abilities"
1891 # This is a stripped-down version of the i386 fallback.
1892 if test "$_runtime_cpudetection" = no
; then
1893 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1894 cflag_check
-march=native
&& proc
=native
1896 # --- AMD processors ---
1897 if test "$proc" = "amdfam10"; then
1898 cflag_check
-march=$proc $cpuopt=$proc || proc
=k8
1900 if test "$proc" = "k8"; then
1901 cflag_check
-march=$proc $cpuopt=$proc || proc
=athlon-xp
1903 # This will fail if gcc version < 3.3, which is ok because earlier
1904 # versions don't really support 64-bit on amd64.
1905 # Is this a valid assumption? -Corey
1906 if test "$proc" = "athlon-xp"; then
1907 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1909 # --- Intel processors ---
1910 if test "$proc" = "core2"; then
1911 cflag_check
-march=$proc $cpuopt=$proc || proc
=x86-64
1913 if test "$proc" = "x86-64"; then
1914 cflag_check
-march=$proc $cpuopt=$proc || proc
=nocona
1916 if test "$proc" = "nocona"; then
1917 cflag_check
-march=$proc $cpuopt=$proc || proc
=pentium4
1919 if test "$proc" = "pentium4"; then
1920 cflag_check
-march=$proc $cpuopt=$proc || proc
=error
1923 _march
="-march=$proc"
1924 _mcpu
="$cpuopt=$proc"
1925 if test "$proc" = "error" ; then
1926 echores
"CPU optimization disabled. CPU not recognized or your compiler is too old."
1930 else # if test "$_runtime_cpudetection" = no
1931 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1932 _march
="-march=x86-64"
1933 _mcpu
="$cpuopt=generic"
1934 cflag_check
$_mcpu || _mcpu
="x86-64"
1935 cflag_check
$_mcpu || _mcpu
=""
1936 cflag_check
$_march $_mcpu || _march
=""
1940 test $_fast_cmov = "auto" && _fast_cmov
=yes
1941 test $_fast_clz = "auto" && _fast_clz
=yes
1949 if test "$host_arch" = "sparc64" ; then
1952 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
1954 echocheck
"CPU type"
1956 case "$(echo $karch)" in
1961 sun4u
) proc
=ultrasparc _vis
='yes' ;;
1980 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1982 test $_fast_clz = "auto" && _fast_clz
=yes
1990 ppc|ppc64|powerpc|powerpc64
)
1992 def_dcbzl
='#define HAVE_DCBZL 0'
1993 def_fast_unaligned
='#define HAVE_FAST_UNALIGNED 1'
1996 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
1998 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2000 echocheck
"CPU type"
2001 case $system_name in
2003 proc
=$
($_cpuinfo |
grep 'cpu' | cut
-d ':' -f 2 | cut
-d ',' -f 1 | cut
-b 2- |
head -n 1)
2004 if test -n "$($_cpuinfo | grep altivec)"; then
2005 test $_altivec = auto
&& _altivec
=yes
2009 proc
=$
($_cpuinfo |
grep "Processor type" | cut
-f 3 -d ' ' |
sed 's/ppc//')
2010 if [ $
(sysctl
-n hw.vectorunit
) -eq 1 -o \
2011 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2012 test $_altivec = auto
&& _altivec
=yes
2016 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2018 2*|
3.0*|
3.1*|
3.2*|
3.3*)
2021 if [ $
(sysctl
-n machdep.altivec
) -eq 1 ]; then
2022 test $_altivec = auto
&& _altivec
=yes
2028 proc
=$
($_cpuinfo |
grep 'type' | cut
-f 2 -d ' ' |
sed 's/PowerPC_//')
2031 if test "$_altivec" = yes; then
2032 echores
"$proc altivec"
2038 echocheck
"GCC & CPU optimization abilities"
2040 if test -n "$proc"; then
2042 601) _march
='-mcpu=601' _mcpu
='-mtune=601' ;;
2043 603) _march
='-mcpu=603' _mcpu
='-mtune=603' ;;
2044 603e|
603ev
) _march
='-mcpu=603e' _mcpu
='-mtune=603e' ;;
2045 604|
604e|
604r|
604ev
) _march
='-mcpu=604' _mcpu
='-mtune=604' ;;
2046 740|
740/750|
745/755) _march
='-mcpu=740' _mcpu
='-mtune=740' ;;
2047 750|
750CX
) _march
='-mcpu=750' _mcpu
='-mtune=750' ;;
2048 POWER
) _march
='-mcpu=power' _mcpu
='-mtune=power' ;;
2049 POWER2
) _march
='-mcpu=power2' _mcpu
='-mtune=power2' ;;
2050 POWER3
) _march
='-mcpu=power3' _mcpu
='-mtune=power3' ;;
2053 # gcc 3.1(.1) and up supports 7400 and 7450
2054 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" ||
test "$_cc_major" -ge "4"; then
2056 7400*|
7410*) _march
='-mcpu=7400' _mcpu
='-mtune=7400' ;;
2057 7447*|
7450*|
7455*) _march
='-mcpu=7450' _mcpu
='-mtune=7450' ;;
2061 # gcc 3.2 and up supports 970
2062 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2064 970*|PPC970
*) _march
='-mcpu=970' _mcpu
='-mtune=970'
2065 def_dcbzl
='#define HAVE_DCBZL 1' ;;
2069 # gcc 3.3 and up supports POWER4
2070 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" ||
test "$_cc_major" -ge "4"; then
2072 POWER4
) _march
='-mcpu=power4' _mcpu
='-mtune=power4' ;;
2076 # gcc 3.4 and up supports 440*
2077 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" ||
test "$_cc_major" -ge "4"; then
2079 440EP
*) _march
='-mcpu=440fp' _mcpu
='-mtune=440fp' ;;
2080 440G
* ) _march
='-mcpu=440' _mcpu
='-mtune=440' ;;
2084 # gcc 4.0 and up supports POWER5
2085 if test "$_cc_major" -ge "4"; then
2087 POWER5
*) _march
='-mcpu=power5' _mcpu
='-mtune=power5' ;;
2093 if test -n "$_mcpu"; then
2094 _optimizing
=$
(echo $_mcpu | cut
-c 8-)
2095 echores
"$_optimizing"
2100 test $_fast_clz = "auto" && _fast_clz
=yes
2107 def_fast_64bit
='#define HAVE_FAST_64BIT 1'
2109 echocheck
"CPU type"
2112 unsigned long ver, mask;
2113 __asm__ ("implver %0" : "=r" (ver));
2114 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2115 printf("%ld-%x\n", ver, ~mask);
2119 $_cc -o "$TMPEXE" "$TMPC"
2120 case $
("$TMPEXE") in
2122 0-0) proc
="ev4"; _mvi
="0";;
2123 1-0) proc
="ev5"; _mvi
="0";;
2124 1-1) proc
="ev56"; _mvi
="0";;
2125 1-101) proc
="pca56"; _mvi
="1";;
2126 2-303) proc
="ev6"; _mvi
="1";;
2127 2-307) proc
="ev67"; _mvi
="1";;
2128 2-1307) proc
="ev68"; _mvi
="1";;
2132 echocheck
"GCC & CPU optimization abilities"
2133 if test "$proc" = "ev68" ; then
2134 cc_check
-mcpu=$proc || proc
=ev67
2136 if test "$proc" = "ev67" ; then
2137 cc_check
-mcpu=$proc || proc
=ev6
2142 test $_fast_clz = "auto" && _fast_clz
=yes
2152 echocheck
"CPU type"
2153 proc
=$
(hinv
-c processor |
grep CPU | cut
-d " " -f3)
2154 case "$(echo $proc)" in
2155 R3000
) _march
='-mips1' _mcpu
='-mtune=r2000' ;;
2156 R4000
) _march
='-mips3' _mcpu
='-mtune=r4000' ;;
2157 R4400
) _march
='-mips3' _mcpu
='-mtune=r4400' ;;
2158 R4600
) _march
='-mips3' _mcpu
='-mtune=r4600' ;;
2159 R5000
) _march
='-mips4' _mcpu
='-mtune=r5000' ;;
2160 R8000|R10000|R12000|R14000|R16000
) _march
='-mips4' _mcpu
='-mtune=r8000' ;;
2162 # gcc < 3.x does not support -mtune.
2163 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2169 test $_fast_clz = "auto" && _fast_clz
=yes
2203 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2204 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2205 die
"unsupported architecture $host_arch"
2207 esac # case "$host_arch" in
2209 if test "$_runtime_cpudetection" = yes ; then
2211 test "$_cmov" != no
&& _cmov
=yes
2213 test "$_mmx" != no
&& _mmx
=yes
2214 test "$_3dnow" != no
&& _3dnow
=yes
2215 test "$_3dnowext" != no
&& _3dnowext
=yes
2216 test "$_mmxext" != no
&& _mmxext
=yes
2217 test "$_sse" != no
&& _sse
=yes
2218 test "$_sse2" != no
&& _sse2
=yes
2219 test "$_ssse3" != no
&& _ssse3
=yes
2220 test "$_mtrr" != no
&& _mtrr
=yes
2229 echocheck
"byte order"
2230 if test "$_big_endian" = auto
; then
2232 short ascii_name[] = {
2233 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2234 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2235 int main(void) { return (long)ascii_name; }
2238 if strings $TMPEXE |
grep -q -l MPlayerBigEndian
; then
2244 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2247 if test "$_big_endian" = yes ; then
2248 _byte_order
='big-endian'
2249 def_words_endian
='#define WORDS_BIGENDIAN 1'
2250 def_bigendian
='#define HAVE_BIGENDIAN 1'
2252 _byte_order
='little-endian'
2253 def_words_endian
='#undef WORDS_BIGENDIAN'
2254 def_bigendian
='#define HAVE_BIGENDIAN 0'
2256 echores
"$_byte_order"
2259 echocheck
"extern symbol prefix"
2263 cc_check
-c || die
"Symbol mangling check failed."
2264 sym
=$
($_nm -P -g $TMPEXE)
2265 extern_prefix
=${sym%%ff_extern*}
2266 def_extern_asm
="#define EXTERN_ASM $extern_prefix"
2267 def_extern_prefix
="#define EXTERN_PREFIX \"$extern_prefix\""
2268 echores
$extern_prefix
2271 echocheck
"assembler support of -pipe option"
2272 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2273 cflag_check
-pipe -I.
&& _pipe
="-pipe" && echores
"yes" || echores
"no"
2276 if darwin
&& test "$cc_vendor" = "gnu" ; then
2277 echocheck
"GCC support of -mstackrealign"
2278 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2279 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2280 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2281 # wrong code with this flag, but this can be worked around by adding
2282 # -fno-unit-at-a-time as described in the blog post at
2283 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2285 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2286 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2288 cc_check
-O2 -mstackrealign && tmp_run
&& cflags_stackrealign
=-mstackrealign
2289 test -z "$cflags_stackrealign" && cc_check
-O2 -mstackrealign -fno-unit-at-a-time &&
2290 tmp_run
&& cflags_stackrealign
="-mstackrealign -fno-unit-at-a-time"
2291 test -n "$cflags_stackrealign" && echores
"yes" || echores
"no"
2292 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2295 # Checking for CFLAGS
2297 if test "$_profile" != "" ||
test "$_debug" != "" ; then
2298 CFLAGS
="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2299 WARNFLAGS
="-W -Wall"
2301 elif test -z "$CFLAGS" ; then
2302 if test "$cc_vendor" = "intel" ; then
2303 CFLAGS
="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2304 WARNFLAGS
="-wd167 -wd556 -wd144"
2305 elif test "$cc_vendor" = "sun" ; then
2306 CFLAGS
="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2307 elif test "$cc_vendor" = "clang"; then
2308 CFLAGS
="-O2 $_march $_pipe"
2309 WARNFLAGS
="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2310 ERRORFLAGS
="-Werror=implicit-function-declaration"
2311 elif test "$cc_vendor" != "gnu" ; then
2312 CFLAGS
="-O2 $_march $_mcpu $_pipe"
2314 CFLAGS
="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2315 WARNFLAGS
="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2316 ERRORFLAGS
="-Werror-implicit-function-declaration"
2317 extra_ldflags
="$extra_ldflags -ffast-math"
2323 if test "$cc_vendor" = "gnu" ; then
2324 cflag_check
-Wundef && WARNFLAGS
="-Wundef $WARNFLAGS"
2325 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2326 # that's the only variable specific to C now, and this option is not valid
2328 cflag_check
-std=gnu99
&& WARN_CFLAGS
="-std=gnu99 $WARN_CFLAGS"
2329 cflag_check
-Wno-pointer-sign && WARN_CFLAGS
="-Wno-pointer-sign $WARN_CFLAGS"
2330 cflag_check
-Wdisabled-optimization && WARN_CFLAGS
="-Wdisabled-optimization $WARN_CFLAGS"
2331 cflag_check
-Wmissing-prototypes && WARN_CFLAGS
="-Wmissing-prototypes $WARN_CFLAGS"
2332 cflag_check
-Wstrict-prototypes && WARN_CFLAGS
="-Wstrict-prototypes $WARN_CFLAGS"
2334 CFLAGS
="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2337 cflag_check
-mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer
="-mno-omit-leaf-frame-pointer"
2338 cflag_check
-MD -MP && DEPFLAGS
="-MD -MP"
2341 if test -n "$LDFLAGS" ; then
2342 extra_ldflags
="$extra_ldflags $LDFLAGS"
2344 elif test "$cc_vendor" = "intel" ; then
2345 extra_ldflags
="$extra_ldflags -i-static"
2347 if test -n "$CPPFLAGS" ; then
2348 extra_cflags
="$extra_cflags $CPPFLAGS"
2355 # Checking assembler (_as) compatibility...
2356 # Added workaround for older as that reads from stdin by default - atmos
2357 as_version
=$
(echo '' |
$_as -version 2>&1 |
sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2358 echocheck
"assembler ($_as $as_version)"
2360 _pref_as_version
='2.9.1'
2362 if test "$_mmx" = yes ; then
2363 echo 'emms' >> $TMPS
2365 if test "$_3dnow" = yes ; then
2366 _pref_as_version
='2.10.1'
2367 echo 'femms' >> $TMPS
2369 if test "$_3dnowext" = yes ; then
2370 _pref_as_version
='2.10.1'
2371 echo 'pswapd %mm0, %mm0' >> $TMPS
2373 if test "$_mmxext" = yes ; then
2374 _pref_as_version
='2.10.1'
2375 echo 'movntq %mm0, (%eax)' >> $TMPS
2377 if test "$_sse" = yes ; then
2378 _pref_as_version
='2.10.1'
2379 echo 'xorps %xmm0, %xmm0' >> $TMPS
2381 #if test "$_sse2" = yes ; then
2382 # _pref_as_version='2.11'
2383 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2385 if test "$_cmov" = yes ; then
2386 _pref_as_version
='2.10.1'
2387 echo 'cmovb %eax, %ebx' >> $TMPS
2389 if test "$_ssse3" = yes ; then
2390 _pref_as_version
='2.16.92'
2391 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2393 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 || as_verc_fail
=yes
2395 if test "$as_verc_fail" != yes ; then
2398 res_comment
="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2400 die
"obsolete binutils version"
2410 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2411 #error PIC not enabled
2416 cc_check
&& pic
=yes && extra_cflags
="$extra_cflags -DPIC"
2422 echocheck
".align is a power of two"
2423 if test "$_asmalign_pot" = auto
; then
2425 inline_asm_check
'".align 3"' && _asmalign_pot
=yes
2427 if test "$_asmalign_pot" = "yes" ; then
2428 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2430 def_asmalign_pot
='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2432 echores
$_asmalign_pot
2435 echocheck
"ebx availability"
2437 def_ebx_available
='#define HAVE_EBX_AVAILABLE 0'
2444 // just adding ebx to clobber list seems unreliable with some
2445 // compilers, e.g. Haiku's gcc 2.95
2447 // and the above check does not work for OSX 64 bit...
2448 __asm__ volatile("":::"%ebx");
2452 cc_check
&& ebx_available
=yes && def_ebx_available
='#define HAVE_EBX_AVAILABLE 1'
2453 echores
$ebx_available
2457 if test -z "$YASMFLAGS" ; then
2459 x86_64
&& objformat
="macho64" || objformat
="macho"
2465 # currently tested for Linux x86, x86_64
2466 YASMFLAGS
="-f $objformat"
2467 x86_64
&& YASMFLAGS
="$YASMFLAGS -DARCH_X86_64 -m amd64"
2468 test "$pic" = "yes" && YASMFLAGS
="$YASMFLAGS -DPIC"
2469 case "$objformat" in
2470 elf
) test $_debug && YASMFLAGS
="$YASMFLAGS -g dwarf2" ;;
2471 *) YASMFLAGS
="$YASMFLAGS -DPREFIX" ;;
2477 echo "pabsw xmm0, xmm0" > $TMPS
2478 yasm_check || _yasm
=""
2479 if test $_yasm ; then
2480 def_yasm
='#define HAVE_YASM 1'
2484 def_yasm
='#define HAVE_YASM 0'
2490 def_bswap
='#define HAVE_BSWAP 0'
2491 echo 'bswap %eax' > $TMPS
2492 $_as $TMPS -o $TMPEXE > /dev
/null
2>&1 && def_bswap
='#define HAVE_BSWAP 1' && bswap
=yes || bswap
=no
2497 #FIXME: This should happen before the check for CFLAGS..
2498 def_altivec_h
='#define HAVE_ALTIVEC_H 0'
2499 if ppc
&& ( test "$_altivec" = yes ||
test "$_runtime_cpudetection" = yes ) ; then
2501 # check if AltiVec is supported by the compiler, and how to enable it
2502 echocheck
"GCC AltiVec flags"
2503 if $
(cflag_check
-maltivec -mabi=altivec
) ; then
2504 _altivec_gcc_flags
="-maltivec -mabi=altivec"
2505 # check if <altivec.h> should be included
2506 if $
(header_check altivec.h
$_altivec_gcc_flags) ; then
2507 def_altivec_h
='#define HAVE_ALTIVEC_H 1'
2508 inc_altivec_h
='#include <altivec.h>'
2510 if $
(cflag_check
-faltivec) ; then
2511 _altivec_gcc_flags
="-faltivec"
2514 _altivec_gcc_flags
="none, AltiVec disabled"
2518 echores
"$_altivec_gcc_flags"
2520 # check if the compiler supports braces for vector declarations
2523 int main(void) { (vector int) {1}; return 0; }
2525 cc_check
$_altivec_gcc_flags || die
"You need a compiler that supports {} in AltiVec vector declarations."
2527 # Disable runtime cpudetection if we cannot generate AltiVec code or
2528 # AltiVec is disabled by the user.
2529 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2530 && _runtime_cpudetection
=no
2532 # Show that we are optimizing for AltiVec (if enabled and supported).
2533 test "$_runtime_cpudetection" = no
&& test "$_altivec" = yes \
2534 && _optimizing
="$_optimizing altivec"
2536 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2537 test "$_altivec" = yes && CFLAGS
="$CFLAGS $_altivec_gcc_flags"
2541 def_xform_asm
='#define HAVE_XFORM_ASM 0'
2543 echocheck
"XFORM ASM support"
2544 inline_asm_check
'"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2545 xform_asm
=yes && def_xform_asm
='#define HAVE_XFORM_ASM 1'
2546 echores
"$xform_asm"
2550 echocheck
"ARMv5TE (Enhanced DSP Extensions)"
2551 if test $_armv5te = "auto" ; then
2553 inline_asm_check
'"qadd r0, r0, r0"' && _armv5te
=yes
2557 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz
=yes
2559 echocheck
"ARMv6 (SIMD instructions)"
2560 if test $_armv6 = "auto" ; then
2562 inline_asm_check
'"sadd16 r0, r0, r0"' && _armv6
=yes
2566 echocheck
"ARMv6t2 (SIMD instructions)"
2567 if test $_armv6t2 = "auto" ; then
2569 inline_asm_check
'"movt r0, #0"' && _armv6t2
=yes
2574 if test $_armvfp = "auto" ; then
2576 inline_asm_check
'"fadds s0, s0, s0"' && _armvfp
=yes
2580 echocheck
"ARM NEON"
2581 if test $neon = "auto" ; then
2583 inline_asm_check
'"vadd.i16 q0, q0, q0"' && neon
=yes
2587 echocheck
"iWMMXt (Intel XScale SIMD instructions)"
2588 if test $_iwmmxt = "auto" ; then
2590 inline_asm_check
'"wunpckelub wr6, wr4"' && _iwmmxt
=yes
2595 cpuexts_all
='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2596 test "$_altivec" = yes && cpuexts
="ALTIVEC $cpuexts"
2597 test "$_mmx" = yes && cpuexts
="MMX $cpuexts"
2598 test "$_mmxext" = yes && cpuexts
="MMX2 $cpuexts"
2599 test "$_3dnow" = yes && cpuexts
="AMD3DNOW $cpuexts"
2600 test "$_3dnowext" = yes && cpuexts
="AMD3DNOWEXT $cpuexts"
2601 test "$_sse" = yes && cpuexts
="SSE $cpuexts"
2602 test "$_sse2" = yes && cpuexts
="SSE2 $cpuexts"
2603 test "$_ssse3" = yes && cpuexts
="SSSE3 $cpuexts"
2604 test "$_cmov" = yes && cpuexts
="CMOV $cpuexts"
2605 test "$_fast_cmov" = yes && cpuexts
="FAST_CMOV $cpuexts"
2606 test "$_fast_clz" = yes && cpuexts
="FAST_CLZ $cpuexts"
2607 test "$_armv5te" = yes && cpuexts
="ARMV5TE $cpuexts"
2608 test "$_armv6" = yes && cpuexts
="ARMV6 $cpuexts"
2609 test "$_armv6t2" = yes && cpuexts
="ARMV6T2 $cpuexts"
2610 test "$_armvfp" = yes && cpuexts
="ARMVFP $cpuexts"
2611 test "$neon" = yes && cpuexts
="NEON $cpuexts"
2612 test "$_iwmmxt" = yes && cpuexts
="IWMMXT $cpuexts"
2613 test "$_vis" = yes && cpuexts
="VIS $cpuexts"
2614 test "$_mvi" = yes && cpuexts
="MVI $cpuexts"
2616 # Checking kernel version...
2617 if x86_32
&& linux
; then
2619 kernel_version
=$
(uname
-r 2>&1)
2620 echocheck
"$system_name kernel version"
2621 case "$kernel_version" in
2622 '') kernel_version
="?.??"; _k_verc_fail
=yes;;
2623 [0-1].
[0-9].
[0-9]*|
2.
[0-3].
[0-9]*)
2624 _k_verc_problem
=yes;;
2626 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2629 if test "$_k_verc_fail" ; then
2630 echores
"$kernel_version, fail"
2631 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2632 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2633 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2634 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2635 echo "2.2.x you must upgrade it to get SSE support!"
2636 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2638 echores
"$kernel_version, ok"
2642 ######################
2643 # MAIN TESTS GO HERE #
2644 ######################
2648 if cflag_check
-lposix ; then
2649 extra_ldflags
="$extra_ldflags -lposix"
2656 if cflag_check
-lm ; then
2665 echocheck
"langinfo"
2666 if test "$_langinfo" = auto
; then
2668 statement_check langinfo.h
'nl_langinfo(CODESET)' && _langinfo
=yes
2670 if test "$_langinfo" = yes ; then
2671 def_langinfo
='#define HAVE_LANGINFO 1'
2673 def_langinfo
='#undef HAVE_LANGINFO'
2675 echores
"$_langinfo"
2678 echocheck
"translation support"
2679 if test "$_translation" = yes; then
2680 def_translation
="#define CONFIG_TRANSLATION 1"
2682 def_translation
="#undef CONFIG_TRANSLATION"
2684 echores
"$_translation"
2686 echocheck
"language"
2687 # Set preferred languages, "all" uses English as main language.
2688 test -z "$language" && language
=$LINGUAS
2689 test -z "$language_doc" && language_doc
=$language
2690 test -z "$language_man" && language_man
=$language
2691 test -z "$language_msg" && language_msg
=$language
2692 test -z "$language_msg" && language_msg
="all"
2693 language_doc
=$
(echo $language_doc |
tr , " ")
2694 language_man
=$
(echo $language_man |
tr , " ")
2695 language_msg
=$
(echo $language_msg |
tr , " ")
2697 test "$language_doc" = "all" && language_doc
=$doc_lang_all
2698 test "$language_man" = "all" && language_man
=$man_lang_all
2699 test "$language_msg" = "all" && language_msg
=$msg_lang_all
2701 if test "$_translation" != yes ; then
2705 # Prune non-existing translations from language lists.
2706 # Set message translation to the first available language.
2707 # Fall back on English.
2708 for lang
in $language_doc ; do
2709 test -d DOCS
/xml
/$lang && tmp_language_doc
="$tmp_language_doc $lang"
2711 language_doc
=$tmp_language_doc
2712 test -z "$language_doc" && language_doc
=en
2714 for lang
in $language_man ; do
2715 test -d DOCS
/man
/$lang && tmp_language_man
="$tmp_language_man $lang"
2717 language_man
=$tmp_language_man
2718 test -z "$language_man" && language_man
=en
2720 for lang
in $language_msg ; do
2721 test -f po
/$lang.po
&& tmp_language_msg
="$tmp_language_msg $lang"
2723 language_msg
=$tmp_language_msg
2725 echores
"messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2728 echocheck
"enable sighandler"
2729 if test "$_sighandler" = yes ; then
2730 def_sighandler
='#define CONFIG_SIGHANDLER 1'
2732 def_sighandler
='#undef CONFIG_SIGHANDLER'
2734 echores
"$_sighandler"
2736 echocheck
"runtime cpudetection"
2737 if test "$_runtime_cpudetection" = yes ; then
2738 _optimizing
="Runtime CPU-Detection enabled"
2739 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 1'
2741 def_runtime_cpudetection
='#define CONFIG_RUNTIME_CPUDETECT 0'
2743 echores
"$_runtime_cpudetection"
2746 echocheck
"restrict keyword"
2747 for restrict_keyword
in restrict __restrict __restrict__
; do
2748 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2750 def_restrict_keyword
=$restrict_keyword
2754 if [ -n "$def_restrict_keyword" ]; then
2755 echores
"$def_restrict_keyword"
2759 # Avoid infinite recursion loop ("#define restrict restrict")
2760 if [ "$def_restrict_keyword" != "restrict" ]; then
2761 def_restrict_keyword
="#define restrict $def_restrict_keyword"
2763 def_restrict_keyword
=""
2767 echocheck
"__builtin_expect"
2768 # GCC branch prediction hint
2770 static int foo(int a) {
2771 a = __builtin_expect(a, 10);
2772 return a == 10 ? 0 : 1;
2774 int main(void) { return foo(10) && foo(0); }
2777 cc_check
&& _builtin_expect
=yes
2778 if test "$_builtin_expect" = yes ; then
2779 def_builtin_expect
='#define HAVE_BUILTIN_EXPECT 1'
2781 def_builtin_expect
='#undef HAVE_BUILTIN_EXPECT'
2783 echores
"$_builtin_expect"
2788 statement_check kstat.h
'kstat_open()' -lkstat && _kstat
=yes
2789 if test "$_kstat" = yes ; then
2790 def_kstat
="#define HAVE_LIBKSTAT 1"
2791 extra_ldflags
="$extra_ldflags -lkstat"
2793 def_kstat
="#undef HAVE_LIBKSTAT"
2799 # required for nanosleep on some systems
2801 statement_check
time.h
'nanosleep(0, 0)' -lposix4 && _posix4
=yes
2802 if test "$_posix4" = yes ; then
2803 extra_ldflags
="$extra_ldflags -lposix4"
2807 for func
in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf
; do
2810 statement_check math.h
"${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _
$func=yes
2811 if eval test "x\$_$func" = "xyes"; then
2812 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2815 eval def_
$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2823 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp
=yes
2824 if test "$_mkstemp" = yes ; then
2825 def_mkstemp
='#define HAVE_MKSTEMP 1'
2827 def_mkstemp
='#define HAVE_MKSTEMP 0'
2832 echocheck
"nanosleep"
2834 statement_check
time.h
'nanosleep(0, 0)' && _nanosleep
=yes
2835 if test "$_nanosleep" = yes ; then
2836 def_nanosleep
='#define HAVE_NANOSLEEP 1'
2838 def_nanosleep
='#undef HAVE_NANOSLEEP'
2840 echores
"$_nanosleep"
2844 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2845 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2848 #include <sys/socket.h>
2849 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2852 for _ld_tmp
in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2853 cc_check
$_ld_tmp && _ld_sock
="$_ld_tmp" && _socklib
=yes && break
2855 test $_socklib = yes && test $_winsock2_h = auto
&& _winsock2_h
=no
2856 if test $_winsock2_h = auto
; then
2858 statement_check winsock2.h
'gethostbyname(0)' -lws2_32 && _ld_sock
="-lws2_32" && _winsock2_h
=yes
2860 test "$_ld_sock" && res_comment
="using $_ld_sock"
2864 if test $_winsock2_h = yes ; then
2866 def_winsock2_h
='#define HAVE_WINSOCK2_H 1'
2868 def_winsock2_h
='#define HAVE_WINSOCK2_H 0'
2872 echocheck
"arpa/inet.h"
2874 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 0'
2875 header_check arpa
/inet.h
&& arpa_inet_h
=yes &&
2876 def_arpa_inet_h
='#define HAVE_ARPA_INET_H 1'
2877 echores
"$arpa_inet_h"
2880 echocheck
"inet_pton()"
2881 def_inet_pton
='#define HAVE_INET_PTON 0'
2883 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2884 statement_check arpa
/inet.h
'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton
=yes && break
2886 if test $inet_pton = yes ; then
2887 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2888 def_inet_pton
='#define HAVE_INET_PTON 1'
2890 echores
"$inet_pton"
2893 echocheck
"inet_aton()"
2894 def_inet_aton
='#define HAVE_INET_ATON 0'
2896 for _ld_tmp
in "$_ld_sock" "$_ld_sock -lresolv" ; do
2897 statement_check arpa
/inet.h
'inet_aton(0, 0)' $_ld_tmp && inet_aton
=yes && break
2899 if test $inet_aton = yes ; then
2900 test "$_ld_tmp" && res_comment
="using $_ld_tmp"
2901 def_inet_aton
='#define HAVE_INET_ATON 1'
2903 echores
"$inet_aton"
2906 echocheck
"socklen_t"
2908 for header
in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2909 statement_check
$header 'socklen_t v = 0' && _socklen_t
=yes && break
2911 if test "$_socklen_t" = yes ; then
2912 def_socklen_t
='#define HAVE_SOCKLEN_T 1'
2914 def_socklen_t
='#define HAVE_SOCKLEN_T 0'
2916 echores
"$_socklen_t"
2919 echocheck
"closesocket()"
2921 statement_check winsock2.h
'closesocket(~0)' $_ld_sock && _closesocket
=yes
2922 if test "$_closesocket" = yes ; then
2923 def_closesocket
='#define HAVE_CLOSESOCKET 1'
2925 def_closesocket
='#define HAVE_CLOSESOCKET 0'
2927 echores
"$_closesocket"
2930 echocheck
"networking"
2931 test $_winsock2_h = no
&& test $inet_pton = no
&&
2932 test $inet_aton = no
&& networking
=no
2933 if test "$networking" = yes ; then
2934 def_network
='#define CONFIG_NETWORK 1'
2935 def_networking
='#define CONFIG_NETWORKING 1'
2936 extra_ldflags
="$extra_ldflags $_ld_sock"
2937 inputmodules
="networking $inputmodules"
2939 noinputmodules
="networking $noinputmodules"
2940 def_network
='#define CONFIG_NETWORK 0'
2941 def_networking
='#undef CONFIG_NETWORKING'
2943 echores
"$networking"
2947 if test "$_inet6" = auto
; then
2949 #include <sys/types.h>
2950 #if !defined(_WIN32)
2951 #include <sys/socket.h>
2952 #include <netinet/in.h>
2954 #include <ws2tcpip.h>
2956 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2959 if cc_check
$_ld_sock ; then
2963 if test "$_inet6" = yes ; then
2964 def_inet6
='#define HAVE_AF_INET6 1'
2966 def_inet6
='#undef HAVE_AF_INET6'
2971 echocheck
"gethostbyname2"
2972 if test "$_gethostbyname2" = auto
; then
2974 #include <sys/types.h>
2975 #include <sys/socket.h>
2977 int main(void) { gethostbyname2("", AF_INET); return 0; }
2984 if test "$_gethostbyname2" = yes ; then
2985 def_gethostbyname2
='#define HAVE_GETHOSTBYNAME2 1'
2987 def_gethostbyname2
='#undef HAVE_GETHOSTBYNAME2'
2989 echores
"$_gethostbyname2"
2992 echocheck
"inttypes.h (required)"
2994 header_check inttypes.h
&& _inttypes
=yes
2995 echores
"$_inttypes"
2997 if test "$_inttypes" = no
; then
2998 echocheck
"sys/bitypes.h (inttypes.h predecessor)"
2999 header_check sys
/bitypes.h
&& _inttypes
=yes
3000 if test "$_inttypes" = yes ; then
3001 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."
3003 die
"Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3008 echocheck
"malloc.h"
3010 header_check malloc.h
&& _malloc
=yes
3011 if test "$_malloc" = yes ; then
3012 def_malloc_h
='#define HAVE_MALLOC_H 1'
3014 def_malloc_h
='#define HAVE_MALLOC_H 0'
3019 echocheck
"memalign()"
3020 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3021 def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 0'
3023 statement_check malloc.h
'memalign(64, sizeof(char))' && _memalign
=yes
3024 if test "$_memalign" = yes ; then
3025 def_memalign
='#define HAVE_MEMALIGN 1'
3027 def_memalign
='#define HAVE_MEMALIGN 0'
3028 def_map_memalign
='#define memalign(a, b) malloc(b)'
3029 darwin || def_memalign_hack
='#define CONFIG_MEMALIGN_HACK 1'
3031 echores
"$_memalign"
3034 echocheck
"posix_memalign()"
3036 def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 0'
3037 define_statement_check
"_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3038 posix_memalign
=yes && def_posix_memalign
='#define HAVE_POSIX_MEMALIGN 1'
3039 echores
"$posix_memalign"
3042 echocheck
"alloca.h"
3044 statement_check alloca.h
'alloca(0)' && _alloca
=yes
3046 def_alloca_h
='#define HAVE_ALLOCA_H 1'
3048 def_alloca_h
='#undef HAVE_ALLOCA_H'
3053 echocheck
"fastmemcpy"
3054 if test "$_fastmemcpy" = yes ; then
3055 def_fastmemcpy
='#define CONFIG_FASTMEMCPY 1'
3057 def_fastmemcpy
='#undef CONFIG_FASTMEMCPY'
3059 echores
"$_fastmemcpy"
3064 statement_check sys
/mman.h
'mmap(0, 0, 0, 0, 0, 0)' && _mman
=yes
3065 if test "$_mman" = yes ; then
3066 def_mman_h
='#define HAVE_SYS_MMAN_H 1'
3068 def_mman_h
='#undef HAVE_SYS_MMAN_H'
3069 os2
&& need_mmap
=yes
3073 _mman_has_map_failed
=no
3074 statement_check sys
/mman.h
'void *p = MAP_FAILED' && _mman_has_map_failed
=yes
3075 if test "$_mman_has_map_failed" = yes ; then
3076 def_mman_has_map_failed
=''
3078 def_mman_has_map_failed
='#define MAP_FAILED ((void *) -1)'
3081 echocheck
"dynamic loader"
3083 for _ld_tmp
in "" "-ldl"; do
3084 statement_check dlfcn.h
'dlopen("", 0)' $_ld_tmp && _ld_dl
="$_ld_tmp" && _dl
=yes && break
3086 if test "$_dl" = yes ; then
3087 def_dl
='#define HAVE_LIBDL 1'
3089 def_dl
='#undef HAVE_LIBDL'
3094 def_threads
='#define HAVE_THREADS 0'
3098 THREAD_CFLAGS
=-D_REENTRANT
3099 elif freebsd || netbsd || openbsd || bsdos
; then
3100 THREAD_CFLAGS
=-D_THREAD_SAFE
3102 if test "$_pthreads" = auto
; then
3104 #include <pthread.h>
3105 static void *func(void *arg) { return arg; }
3108 #ifdef PTW32_STATIC_LIB
3109 pthread_win32_process_attach_np();
3110 pthread_win32_thread_attach_np();
3112 return pthread_create (&tid, 0, func, 0) != 0;
3117 for _ld_tmp
in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3118 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3119 cc_check
$THREAD_CFLAGS $_ld_tmp && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && break
3121 if test "$_pthreads" = no
&& mingw32
; then
3122 _ld_tmp
="-lpthreadGC2 -lws2_32"
3123 cc_check
$_ld_tmp -DPTW32_STATIC_LIB && (tmp_run ||
test "$_ld_static") && _ld_pthread
="$_ld_tmp" && _pthreads
=yes && CFLAGS
="$CFLAGS -DPTW32_STATIC_LIB"
3127 if test "$_pthreads" = yes ; then
3128 test $_ld_pthread && res_comment
="using $_ld_pthread"
3129 def_pthreads
='#define HAVE_PTHREADS 1'
3130 def_threads
='#define HAVE_THREADS 1'
3131 extra_cflags
="$extra_cflags $THREAD_CFLAGS"
3133 res_comment
="v4l, v4l2, ao_nas, win32 loader disabled"
3134 def_pthreads
='#undef HAVE_PTHREADS'
3135 _nas
=no
; _tv_v4l1
=no
; _tv_v4l2
=no
3136 mingw32 || _win32dll
=no
3138 echores
"$_pthreads"
3141 if test "$_pthreads" = yes ; then
3142 def_pthread_cache
="#define PTHREAD_CACHE 1"
3145 def_stream_cache
="#undef CONFIG_STREAM_CACHE"
3149 echocheck
"w32threads"
3150 if test "$_pthreads" = yes ; then
3151 res_comment
="using pthread instead"
3154 if test "$_w32threads" = auto
; then
3156 mingw32
&& _w32threads
=yes
3158 test "$_w32threads" = yes && def_threads
='#define HAVE_THREADS 1'
3159 echores
"$_w32threads"
3162 if test "$_rpath" = yes ; then
3163 for I
in $
(echo $extra_ldflags |
sed 's/-L//g') ; do
3164 tmp
="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3171 if test "$_iconv" = auto
; then
3176 #define INBUFSIZE 1024
3177 #define OUTBUFSIZE 4096
3179 char inbuffer[INBUFSIZE];
3180 char outbuffer[OUTBUFSIZE];
3185 char *tocode="UTF-8";
3186 char *fromcode="cp1250";
3187 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3188 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3189 char *iptr=inbuffer;
3190 char *optr=outbuffer;
3191 size_t inleft=numread;
3192 size_t outleft=OUTBUFSIZE;
3193 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3195 write(1, outbuffer, OUTBUFSIZE - outleft);
3198 if (iconv_close(icdsc) == -1)
3205 for _ld_tmp
in "" "-liconv" "-liconv $_ld_dl" ; do
3206 cc_check
$_ld_lm $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
3209 if test "$_iconv" != yes ; then
3210 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."
3213 if test "$_iconv" = yes ; then
3214 def_iconv
='#define CONFIG_ICONV 1'
3216 def_iconv
='#undef CONFIG_ICONV'
3221 echocheck
"soundcard.h"
3223 def_soundcard_h
='#undef HAVE_SOUNDCARD_H'
3224 def_sys_soundcard_h
='#undef HAVE_SYS_SOUNDCARD_H'
3225 for _soundcard_header
in "sys/soundcard.h" "soundcard.h"; do
3226 header_check
$_soundcard_header && _soundcard_h
=yes &&
3227 res_comment
="$_soundcard_header" && break
3230 if test "$_soundcard_h" = yes ; then
3231 if test $_soundcard_header = "sys/soundcard.h"; then
3232 def_sys_soundcard_h
='#define HAVE_SYS_SOUNDCARD_H 1'
3234 def_soundcard_h
='#define HAVE_SOUNDCARD_H 1'
3237 echores
"$_soundcard_h"
3240 echocheck
"sys/videoio.h"
3242 def_sys_videoio_h
='#undef HAVE_SYS_VIDEOIO_H'
3243 header_check sys
/videoio.h
&& sys_videoio_h
=yes &&
3244 def_sys_videoio_h
='#define HAVE_SYS_VIDEOIO_H 1'
3245 echores
"$sys_videoio_h"
3248 echocheck
"sys/dvdio.h"
3250 # FreeBSD 8.1 has broken dvdio.h
3251 header_check_broken sys
/types.h sys
/dvdio.h
&& _dvdio
=yes
3252 if test "$_dvdio" = yes ; then
3253 def_dvdio
='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3255 def_dvdio
='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3260 echocheck
"sys/cdio.h"
3262 # at least OpenSolaris has a broken cdio.h
3263 header_check_broken sys
/types.h sys
/cdio.h
&& _cdio
=yes
3264 if test "$_cdio" = yes ; then
3265 def_cdio
='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3267 def_cdio
='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3272 echocheck
"linux/cdrom.h"
3274 header_check linux
/cdrom.h
&& _cdrom
=yes
3275 if test "$_cdrom" = yes ; then
3276 def_cdrom
='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3278 def_cdrom
='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3285 header_check dvd.h
&& _dvd
=yes
3286 if test "$_dvd" = yes ; then
3287 def_dvd
='#define DVD_STRUCT_IN_DVD_H 1'
3289 def_dvd
='#undef DVD_STRUCT_IN_DVD_H'
3295 echocheck
"BSDI dvd.h"
3297 header_check dvd.h
&& _bsdi_dvd
=yes
3298 if test "$_bsdi_dvd" = yes ; then
3299 def_bsdi_dvd
='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3301 def_bsdi_dvd
='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3303 echores
"$_bsdi_dvd"
3308 # also used by AIX, but AIX does not support VCD and/or libdvdread
3309 echocheck
"HP-UX SCSI header"
3311 header_check sys
/scsi.h
&& _hpux_scsi_h
=yes
3312 if test "$_hpux_scsi_h" = yes ; then
3313 def_hpux_scsi_h
='#define HPUX_SCTL_IO 1'
3315 def_hpux_scsi_h
='#undef HPUX_SCTL_IO'
3317 echores
"$_hpux_scsi_h"
3322 echocheck
"userspace SCSI headers (Solaris)"
3324 header_check sys
/scsi
/scsi_types.h
&&
3325 header_check_broken sys
/types.h sys
/scsi
/impl
/uscsi.h
&&
3327 if test "$_sol_scsi_h" = yes ; then
3328 def_sol_scsi_h
='#define SOLARIS_USCSI 1'
3330 def_sol_scsi_h
='#undef SOLARIS_USCSI'
3332 echores
"$_sol_scsi_h"
3337 if test "$_termcap" = auto
; then
3339 for _ld_tmp
in "-lncurses" "-ltinfo" "-ltermcap"; do
3340 statement_check term.h
'tgetent(0, 0)' $_ld_tmp &&
3341 extra_ldflags
="$extra_ldflags $_ld_tmp" && _termcap
=yes && break
3344 if test "$_termcap" = yes ; then
3345 def_termcap
='#define HAVE_TERMCAP 1'
3346 test $_ld_tmp && res_comment
="using $_ld_tmp"
3348 def_termcap
='#undef HAVE_TERMCAP'
3354 def_termios
='#undef HAVE_TERMIOS'
3355 def_termios_h
='#undef HAVE_TERMIOS_H'
3356 def_termios_sys_h
='#undef HAVE_SYS_TERMIOS_H'
3357 if test "$_termios" = auto
; then
3359 for _termios_header
in "termios.h" "sys/termios.h"; do
3360 header_check
$_termios_header && _termios
=yes &&
3361 res_comment
="using $_termios_header" && break
3365 if test "$_termios" = yes ; then
3366 def_termios
='#define HAVE_TERMIOS 1'
3367 if test "$_termios_header" = "termios.h" ; then
3368 def_termios_h
='#define HAVE_TERMIOS_H 1'
3370 def_termios_sys_h
='#define HAVE_SYS_TERMIOS_H 1'
3377 if test "$_shm" = auto
; then
3379 statement_check sys
/shm.h
'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm
=yes
3381 if test "$_shm" = yes ; then
3382 def_shm
='#define HAVE_SHM 1'
3384 def_shm
='#undef HAVE_SHM'
3389 echocheck
"strsep()"
3391 statement_check string.h
'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep
=yes
3392 if test "$_strsep" = yes ; then
3393 def_strsep
='#define HAVE_STRSEP 1'
3396 def_strsep
='#undef HAVE_STRSEP'
3402 echocheck
"vsscanf()"
3404 #define _ISOC99_SOURCE
3407 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3410 cc_check
&& _vsscanf
=yes
3411 if test "$_vsscanf" = yes ; then
3412 def_vsscanf
='#define HAVE_VSSCANF 1'
3415 def_vsscanf
='#undef HAVE_VSSCANF'
3423 define_statement_check
"_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3424 statement_check
"string.h" 'int a, b; swab(&a, &b, 0)' && _swab
=yes
3425 if test "$_swab" = yes ; then
3426 def_swab
='#define HAVE_SWAB 1'
3429 def_swab
='#undef HAVE_SWAB'
3434 echocheck
"POSIX select()"
3438 #include <sys/types.h>
3440 #include <sys/time.h>
3442 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3445 def_posix_select
='#undef HAVE_POSIX_SELECT'
3446 #select() of kLIBC (OS/2) supports socket only
3447 ! os2
&& cc_check
&& _posix_select
=yes &&
3448 def_posix_select
='#define HAVE_POSIX_SELECT 1'
3449 echores
"$_posix_select"
3452 echocheck
"audio select()"
3453 if test "$_select" = no
; then
3454 def_select
='#undef HAVE_AUDIO_SELECT'
3455 elif test "$_select" = yes ; then
3456 def_select
='#define HAVE_AUDIO_SELECT 1'
3461 echocheck
"gettimeofday()"
3463 statement_check sys
/time.h
'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday
=yes
3464 if test "$_gettimeofday" = yes ; then
3465 def_gettimeofday
='#define HAVE_GETTIMEOFDAY 1'
3466 need_gettimeofday
=no
3468 def_gettimeofday
='#undef HAVE_GETTIMEOFDAY'
3469 need_gettimeofday
=yes
3471 echores
"$_gettimeofday"
3476 statement_check glob.h
'glob("filename", 0, 0, 0)' && _glob
=yes
3478 if test "$_glob" = yes ; then
3479 def_glob
='#define HAVE_GLOB 1'
3481 def_glob
='#undef HAVE_GLOB'
3482 # HACK! need_glob currently enables compilation of a
3483 # win32-specific glob()-replacement.
3484 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3485 win32
&& need_glob
=yes
3490 echocheck
"setenv()"
3492 statement_check stdlib.h
'setenv("", "", 0)' && _setenv
=yes
3493 if test "$_setenv" = yes ; then
3494 def_setenv
='#define HAVE_SETENV 1'
3497 def_setenv
='#undef HAVE_SETENV'
3503 echocheck
"setmode()"
3505 def_setmode
='#define HAVE_SETMODE 0'
3506 statement_check io.h
'setmode(0, 0)' && _setmode
=yes && def_setmode
='#define HAVE_SETMODE 1'
3511 echocheck
"sysi86()"
3513 statement_check sys
/sysi86.h
'sysi86(0)' && _sysi86
=yes
3514 if test "$_sysi86" = yes ; then
3515 def_sysi86
='#define HAVE_SYSI86 1'
3516 statement_check sys
/sysi86.h
'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv
='#define HAVE_SYSI86_iv 1'
3518 def_sysi86
='#undef HAVE_SYSI86'
3524 echocheck
"sys/sysinfo.h"
3526 statement_check sys
/sysinfo.h
'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo
=yes
3527 if test "$_sys_sysinfo" = yes ; then
3528 def_sys_sysinfo_h
='#define HAVE_SYS_SYSINFO_H 1'
3530 def_sys_sysinfo_h
='#undef HAVE_SYS_SYSINFO_H'
3532 echores
"$_sys_sysinfo"
3537 echocheck
"Mac OS X Finder Support"
3538 def_macosx_finder
='#undef CONFIG_MACOSX_FINDER'
3539 if test "$_macosx_finder" = yes ; then
3540 def_macosx_finder
='#define CONFIG_MACOSX_FINDER 1'
3541 extra_ldflags
="$extra_ldflags -framework Carbon"
3543 echores
"$_macosx_finder"
3545 echocheck
"Mac OS X Bundle file locations"
3546 def_macosx_bundle
='#undef CONFIG_MACOSX_BUNDLE'
3547 test "$_macosx_bundle" = auto
&& _macosx_bundle
=$_macosx_finder
3548 if test "$_macosx_bundle" = yes ; then
3549 def_macosx_bundle
='#define CONFIG_MACOSX_BUNDLE 1'
3550 extra_ldflags
="$extra_ldflags -framework Carbon"
3552 echores
"$_macosx_bundle"
3554 echocheck
"Apple Remote"
3555 if test "$_apple_remote" = auto
; then
3559 #include <IOKit/IOCFPlugIn.h>
3561 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3562 CFMutableDictionaryRef hidMatchDictionary;
3563 IOReturn ioReturnValue;
3565 // Set up a matching dictionary to search the I/O Registry by class.
3566 // name for all HID class devices
3567 hidMatchDictionary = IOServiceMatching("AppleIRController");
3569 // Now search I/O Registry for matching devices.
3570 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3571 hidMatchDictionary, &hidObjectIterator);
3573 // If search is unsuccessful, return nonzero.
3574 if (ioReturnValue != kIOReturnSuccess ||
3575 !IOIteratorIsValid(hidObjectIterator)) {
3581 cc_check
-framework IOKit
&& _apple_remote
=yes
3583 if test "$_apple_remote" = yes ; then
3584 def_apple_remote
='#define CONFIG_APPLE_REMOTE 1'
3585 libs_mplayer
="$libs_mplayer -framework IOKit -framework Cocoa"
3587 def_apple_remote
='#undef CONFIG_APPLE_REMOTE'
3589 echores
"$_apple_remote"
3595 echocheck
"Apple IR"
3596 if test "$_apple_ir" = auto
; then
3598 statement_check linux
/input.h
'struct input_event ev; struct input_id id' && _apple_ir
=yes
3600 if test "$_apple_ir" = yes ; then
3601 def_apple_ir
='#define CONFIG_APPLE_IR 1'
3603 def_apple_ir
='#undef CONFIG_APPLE_IR'
3605 echores
"$_apple_ir"
3608 echocheck
"pkg-config"
3609 _pkg_config
=pkg-config
3610 if $
($_pkg_config --version > /dev
/null
2>&1); then
3611 if test "$_ld_static"; then
3612 _pkg_config
="$_pkg_config --static"
3621 echocheck
"Samba support (libsmbclient)"
3622 if test "$_smb" = yes; then
3623 extra_ldflags
="$extra_ldflags -lsmbclient"
3625 if test "$_smb" = auto
; then
3627 for _ld_tmp
in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3628 statement_check libsmbclient.h
'smbc_opendir("smb://")' $_ld_tmp &&
3629 extra_ldflags
="$extra_ldflags $_ld_tmp" && _smb
=yes && break
3633 if test "$_smb" = yes; then
3634 def_smb
="#define CONFIG_LIBSMBCLIENT 1"
3635 inputmodules
="smb $inputmodules"
3637 def_smb
="#undef CONFIG_LIBSMBCLIENT"
3638 noinputmodules
="smb $noinputmodules"
3649 if test "$_tdfxfb" = yes ; then
3650 def_tdfxfb
='#define CONFIG_TDFXFB 1'
3651 vomodules
="tdfxfb $vomodules"
3653 def_tdfxfb
='#undef CONFIG_TDFXFB'
3654 novomodules
="tdfxfb $novomodules"
3659 if test "$_s3fb" = yes ; then
3660 def_s3fb
='#define CONFIG_S3FB 1'
3661 vomodules
="s3fb $vomodules"
3663 def_s3fb
='#undef CONFIG_S3FB'
3664 novomodules
="s3fb $novomodules"
3669 if test "$_wii" = yes ; then
3670 def_wii
='#define CONFIG_WII 1'
3671 vomodules
="wii $vomodules"
3673 def_wii
='#undef CONFIG_WII'
3674 novomodules
="wii $novomodules"
3679 if test "$_tdfxvid" = yes ; then
3680 def_tdfxvid
='#define CONFIG_TDFX_VID 1'
3681 vomodules
="tdfx_vid $vomodules"
3683 def_tdfxvid
='#undef CONFIG_TDFX_VID'
3684 novomodules
="tdfx_vid $novomodules"
3689 if test "$_xvr100" = auto
; then
3692 #include <sys/fbio.h>
3693 #include <sys/visual_io.h>
3695 struct vis_identifier ident;
3696 struct fbgattr attr;
3697 ioctl(0, VIS_GETIDENTIFIER, &ident);
3698 ioctl(0, FBIOGATTR, &attr);
3703 cc_check
&& _xvr100
=yes
3705 if test "$_xvr100" = yes ; then
3706 def_xvr100
='#define CONFIG_XVR100 1'
3707 vomodules
="xvr100 $vomodules"
3709 def_tdfxvid
='#undef CONFIG_XVR100'
3710 novomodules
="xvr100 $novomodules"
3715 if test "$_tga" = yes ; then
3716 def_tga
='#define CONFIG_TGA 1'
3717 vomodules
="tga $vomodules"
3719 def_tga
='#undef CONFIG_TGA'
3720 novomodules
="tga $novomodules"
3725 echocheck
"md5sum support"
3726 if test "$_md5sum" = yes; then
3727 def_md5sum
="#define CONFIG_MD5SUM 1"
3728 vomodules
="md5sum $vomodules"
3730 def_md5sum
="#undef CONFIG_MD5SUM"
3731 novomodules
="md5sum $novomodules"
3736 echocheck
"yuv4mpeg support"
3737 if test "$_yuv4mpeg" = yes; then
3738 def_yuv4mpeg
="#define CONFIG_YUV4MPEG 1"
3739 vomodules
="yuv4mpeg $vomodules"
3741 def_yuv4mpeg
="#undef CONFIG_YUV4MPEG"
3742 novomodules
="yuv4mpeg $novomodules"
3744 echores
"$_yuv4mpeg"
3748 if test "$_bl" = yes ; then
3749 def_bl
='#define CONFIG_BL 1'
3750 vomodules
="bl $vomodules"
3752 def_bl
='#undef CONFIG_BL'
3753 novomodules
="bl $novomodules"
3758 echocheck
"DirectFB"
3759 if test "$_directfb" = auto
; then
3762 #include <directfb.h>
3763 #include <directfb_version.h>
3764 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3765 #error "DirectFB version too old."
3767 int main(void) { DirectFBInit(0, 0); return 0; }
3769 for _inc_tmp
in "" -I/usr
/local
/include
/directfb
-I/usr
/include
/directfb
-I/usr
/local
/include
; do
3770 cc_check
$_inc_tmp -ldirectfb &&
3771 _directfb
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
3774 if test "$_directfb" = yes ; then
3775 def_directfb
='#define CONFIG_DIRECTFB 1'
3776 vomodules
="directfb dfbmga $vomodules"
3777 libs_mplayer
="$libs_mplayer -ldirectfb"
3779 def_directfb
='#undef CONFIG_DIRECTFB'
3780 novomodules
="directfb dfbmga $novomodules"
3782 echores
"$_directfb"
3785 echocheck
"X11 headers presence"
3787 res_comment
="check if the dev(el) packages are installed"
3788 for I
in $
(echo $extra_cflags |
sed s
/-I//g
) /usr
/include
; do
3789 if test -f "$I/X11/Xlib.h" ; then
3795 if test $_cross_compile = no
; then
3796 for I
in /usr
/X11
/include
/usr
/X11R
7/include
/usr
/local
/include
/usr
/X11R
6/include \
3797 /usr
/include
/X11R6
/usr
/openwin
/include
; do
3798 if test -f "$I/X11/Xlib.h" ; then
3799 extra_cflags
="$extra_cflags -I$I"
3801 res_comment
="using $I"
3806 echores
"$_x11_headers"
3810 if test "$_x11" = auto
&& test "$_x11_headers" = yes ; then
3811 for I
in "" -L/usr
/X11R
7/lib
-L/usr
/local
/lib
-L/usr
/X11R
6/lib
-L/usr
/lib
/X11R6 \
3812 -L/usr
/X11
/lib
-L/usr
/lib32
-L/usr
/openwin
/lib
-L/usr
/local
/lib64
-L/usr
/X11R
6/lib64 \
3815 _ld_tmp
="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3817 _ld_tmp
="$I -lXext -lX11 $_ld_pthread"
3819 statement_check X11
/Xutil.h
'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3820 libs_mplayer
="$libs_mplayer $_ld_tmp" && _x11
=yes && break
3823 if test "$_x11" = yes ; then
3824 def_x11
='#define CONFIG_X11 1'
3825 vomodules
="x11 xover $vomodules"
3828 def_x11
='#undef CONFIG_X11'
3829 novomodules
="x11 $novomodules"
3830 res_comment
="check if the dev(el) packages are installed"
3834 echocheck
"Xss screensaver extensions"
3835 if test "$_xss" = auto
; then
3837 statement_check
"X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss
=yes
3839 if test "$_xss" = yes ; then
3840 def_xss
='#define CONFIG_XSS 1'
3841 libs_mplayer
="$libs_mplayer -lXss"
3843 def_xss
='#undef CONFIG_XSS'
3850 if test "$_x11" = yes ; then
3852 #include <X11/Xmd.h>
3853 #include <X11/Xlib.h>
3854 #include <X11/Xutil.h>
3855 #include <X11/Xatom.h>
3856 #include <X11/extensions/dpms.h>
3857 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3859 cc_check
-lXdpms && _xdpms3
=yes
3860 statement_check_broken X11
/Xlib.h X11
/extensions
/dpms.h
'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4
=yes
3862 if test "$_xdpms4" = yes ; then
3863 def_xdpms
='#define CONFIG_XDPMS 1'
3864 res_comment
="using Xdpms 4"
3866 elif test "$_xdpms3" = yes ; then
3867 def_xdpms
='#define CONFIG_XDPMS 1'
3868 libs_mplayer
="$libs_mplayer -lXdpms"
3869 res_comment
="using Xdpms 3"
3872 def_xdpms
='#undef CONFIG_XDPMS'
3878 if test "$_xv" = auto
&& test "$_x11" = yes ; then
3880 statement_check_broken X11
/Xlib.h X11
/extensions
/Xvlib.h
'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv
=yes
3883 if test "$_xv" = yes ; then
3884 def_xv
='#define CONFIG_XV 1'
3885 libs_mplayer
="$libs_mplayer -lXv"
3886 vomodules
="xv $vomodules"
3888 def_xv
='#undef CONFIG_XV'
3889 novomodules
="xv $novomodules"
3895 if test "$_vdpau" = auto
&& test "$_x11" = yes ; then
3897 if test "$_dl" = yes ; then
3898 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
3901 if test "$_vdpau" = yes ; then
3902 def_vdpau
='#define CONFIG_VDPAU 1'
3903 libs_mplayer
="$libs_mplayer -lvdpau"
3904 vomodules
="vdpau $vomodules"
3906 def_vdpau
='#define CONFIG_VDPAU 0'
3907 novomodules
="vdpau $novomodules"
3912 echocheck
"Xinerama"
3913 if test "$_xinerama" = auto
&& test "$_x11" = yes ; then
3915 statement_check X11
/extensions
/Xinerama.h
'XineramaIsActive(0)' -lXinerama && _xinerama
=yes
3918 if test "$_xinerama" = yes ; then
3919 def_xinerama
='#define CONFIG_XINERAMA 1'
3920 libs_mplayer
="$libs_mplayer -lXinerama"
3922 def_xinerama
='#undef CONFIG_XINERAMA'
3924 echores
"$_xinerama"
3927 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3928 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3929 # named 'X extensions' or something similar.
3930 # This check may be useful for future mplayer versions (to change resolution)
3931 # If you run into problems, remove '-lXxf86vm'.
3933 if test "$_vm" = auto
&& test "$_x11" = yes ; then
3935 statement_check_broken X11
/Xlib.h X11
/extensions
/xf86vmode.h
'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm
=yes
3937 if test "$_vm" = yes ; then
3938 def_vm
='#define CONFIG_XF86VM 1'
3939 libs_mplayer
="$libs_mplayer -lXxf86vm"
3941 def_vm
='#undef CONFIG_XF86VM'
3945 # Check for the presence of special keycodes, like audio control buttons
3946 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3947 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3948 # have these new keycodes.
3949 echocheck
"XF86keysym"
3950 if test "$_xf86keysym" = auto
&& test "$_x11" = yes ; then
3952 return_check X11
/XF86keysym.h XF86XK_AudioPause
&& _xf86keysym
=yes
3954 if test "$_xf86keysym" = yes ; then
3955 def_xf86keysym
='#define CONFIG_XF86XK 1'
3957 def_xf86keysym
='#undef CONFIG_XF86XK'
3959 echores
"$_xf86keysym"
3962 if test "$_dga2" = auto
&& test "$_x11" = yes ; then
3964 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2
=yes
3966 if test "$_dga1" = auto
&& test "$_dga2" = no
&& test "$_vm" = yes ; then
3968 statement_check_broken X11
/Xlib.h X11
/extensions
/Xxf86dga.h
'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1
=yes
3972 def_dga
='#undef CONFIG_DGA'
3973 def_dga1
='#undef CONFIG_DGA1'
3974 def_dga2
='#undef CONFIG_DGA2'
3975 if test "$_dga1" = yes ; then
3977 def_dga1
='#define CONFIG_DGA1 1'
3978 res_comment
="using DGA 1.0"
3979 elif test "$_dga2" = yes ; then
3981 def_dga2
='#define CONFIG_DGA2 1'
3982 res_comment
="using DGA 2.0"
3984 if test "$_dga" = yes ; then
3985 def_dga
='#define CONFIG_DGA 1'
3986 libs_mplayer
="$libs_mplayer -lXxf86dga"
3987 vomodules
="dga $vomodules"
3989 novomodules
="dga $novomodules"
3995 if test "$_3dfx" = yes && test "$_dga" = yes ; then
3996 def_3dfx
='#define CONFIG_3DFX 1'
3997 vomodules
="3dfx $vomodules"
4000 def_3dfx
='#undef CONFIG_3DFX'
4001 novomodules
="3dfx $novomodules"
4007 if test "$_ggi" = auto
; then
4009 statement_check ggi
/ggi.h
'ggiInit()' -lggi && _ggi
=yes
4011 if test "$_ggi" = yes ; then
4012 def_ggi
='#define CONFIG_GGI 1'
4013 libs_mplayer
="$libs_mplayer -lggi"
4014 vomodules
="ggi $vomodules"
4016 def_ggi
='#undef CONFIG_GGI'
4017 novomodules
="ggi $novomodules"
4021 echocheck
"GGI extension: libggiwmh"
4022 if test "$_ggiwmh" = auto
; then
4024 statement_check ggi
/wmh.h
'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh
=yes
4026 # needed to get right output on obscure combination
4027 # like --disable-ggi --enable-ggiwmh
4028 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4029 def_ggiwmh
='#define CONFIG_GGIWMH 1'
4030 libs_mplayer
="$libs_mplayer -lggiwmh"
4033 def_ggiwmh
='#undef CONFIG_GGIWMH'
4039 if test "$_aa" = auto
; then
4046 c = aa_autoinit(&aa_defparams);
4047 p = aa_getrenderparams();
4048 aa_autoinitkbd(c, 0);
4052 for _ld_tmp
in "-laa" ; do
4053 cc_check
$_ld_tmp && libs_mplayer
="$libs_mplayer $_ld_tmp" && _aa
=yes && break
4056 if test "$_aa" = yes ; then
4057 def_aa
='#define CONFIG_AA 1'
4059 libs_mplayer
="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4061 vomodules
="aa $vomodules"
4063 def_aa
='#undef CONFIG_AA'
4064 novomodules
="aa $novomodules"
4070 if test "$_caca" = auto
; then
4072 if ( caca-config
--version ) >> "$TMPLOG" 2>&1 ; then
4075 #ifdef CACA_API_VERSION_1
4078 int main(void) { caca_init(); return 0; }
4080 cc_check $
(caca-config
--libs) && _caca
=yes
4083 if test "$_caca" = yes ; then
4084 def_caca
='#define CONFIG_CACA 1'
4085 extra_cflags
="$extra_cflags $(caca-config --cflags)"
4086 libs_mplayer
="$libs_mplayer $(caca-config --libs)"
4087 vomodules
="caca $vomodules"
4089 def_caca
='#undef CONFIG_CACA'
4090 novomodules
="caca $novomodules"
4096 if test "$_svga" = auto
; then
4098 header_check vga.h
-lvga $_ld_lm && _svga
=yes
4100 if test "$_svga" = yes ; then
4101 def_svga
='#define CONFIG_SVGALIB 1'
4102 libs_mplayer
="$libs_mplayer -lvga"
4103 vomodules
="svga $vomodules"
4105 def_svga
='#undef CONFIG_SVGALIB'
4106 novomodules
="svga $novomodules"
4112 if test "$_fbdev" = auto
; then
4116 if test "$_fbdev" = yes ; then
4117 def_fbdev
='#define CONFIG_FBDEV 1'
4118 vomodules
="fbdev $vomodules"
4120 def_fbdev
='#undef CONFIG_FBDEV'
4121 novomodules
="fbdev $novomodules"
4128 if test "$_dvb" = auto
; then
4132 #include <sys/ioctl.h>
4136 #include <linux/dvb/dmx.h>
4137 #include <linux/dvb/frontend.h>
4138 #include <linux/dvb/video.h>
4139 #include <linux/dvb/audio.h>
4140 int main(void) {return 0;}
4142 for _inc_tmp
in "" "-I/usr/src/DVB/include" ; do
4143 cc_check
$_inc_tmp && _dvb
=yes &&
4144 extra_cflags
="$extra_cflags $_inc_tmp" && break
4148 if test "$_dvb" = yes ; then
4150 inputmodules
="dvb $inputmodules"
4151 def_dvb
='#define CONFIG_DVB 1'
4152 def_dvbin
='#define CONFIG_DVBIN 1'
4153 aomodules
="mpegpes(dvb) $aomodules"
4154 vomodules
="mpegpes(dvb) $vomodules"
4157 noinputmodules
="dvb $noinputmodules"
4158 def_dvb
='#undef CONFIG_DVB'
4159 def_dvbin
='#undef CONFIG_DVBIN '
4160 aomodules
="mpegpes(file) $aomodules"
4161 vomodules
="mpegpes(file) $vomodules"
4167 echocheck
"QuickTime"
4168 if test "$quicktime" = auto
; then
4170 statement_check QuickTime
/QuickTime.h
'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime
&& quicktime
=yes
4172 if test "$quicktime" = yes ; then
4173 extra_ldflags
="$extra_ldflags -framework QuickTime"
4174 def_quicktime
='#define CONFIG_QUICKTIME 1'
4176 def_quicktime
='#undef CONFIG_QUICKTIME'
4182 if test "$_quartz" = auto
; then
4184 statement_check Carbon
/Carbon.h
'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon
&& _quartz
=yes
4186 if test "$_quartz" = yes ; then
4187 libs_mplayer
="$libs_mplayer -framework Carbon"
4188 def_quartz
='#define CONFIG_QUARTZ 1'
4189 vomodules
="quartz $vomodules"
4191 def_quartz
='#undef CONFIG_QUARTZ'
4192 novomodules
="quartz $novomodules"
4196 echocheck
"CoreVideo"
4197 if test "$_corevideo" = auto
; then
4199 #include <Carbon/Carbon.h>
4200 #include <CoreServices/CoreServices.h>
4201 #include <OpenGL/OpenGL.h>
4202 #include <QuartzCore/CoreVideo.h>
4203 int main(void) { return 0; }
4206 cc_check
-framework Carbon
-framework Cocoa
-framework QuartzCore
-framework OpenGL
&& _corevideo
=yes
4208 if test "$_corevideo" = yes ; then
4209 vomodules
="corevideo $vomodules"
4210 libs_mplayer
="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4211 def_corevideo
='#define CONFIG_COREVIDEO 1'
4213 novomodules
="corevideo $novomodules"
4214 def_corevideo
='#undef CONFIG_COREVIDEO'
4216 echores
"$_corevideo"
4221 echocheck
"PNG support"
4222 if test "$_png" = auto
; then
4225 # Don't check for -lpng on irix since it has its own libpng
4226 # incompatible with the GNU libpng
4227 res_comment
="disabled on irix (not GNU libpng)"
4234 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4235 printf("libpng: %s\n", png_libpng_ver);
4236 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4239 cc_check
-lpng -lz $_ld_lm && _png
=yes
4243 if test "$_png" = yes ; then
4244 def_png
='#define CONFIG_PNG 1'
4245 extra_ldflags
="$extra_ldflags -lpng -lz"
4247 def_png
='#undef CONFIG_PNG'
4250 echocheck
"MNG support"
4251 if test "$_mng" = auto
; then
4253 return_statement_check libmng.h
'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng
=yes
4256 if test "$_mng" = yes ; then
4257 def_mng
='#define CONFIG_MNG 1'
4258 extra_ldflags
="$extra_ldflags -lmng -lz"
4260 def_mng
='#undef CONFIG_MNG'
4263 echocheck
"JPEG support"
4264 if test "$_jpeg" = auto
; then
4266 header_check_broken stdio.h jpeglib.h
-ljpeg $_ld_lm && _jpeg
=yes
4270 if test "$_jpeg" = yes ; then
4271 def_jpeg
='#define CONFIG_JPEG 1'
4272 vomodules
="jpeg $vomodules"
4273 extra_ldflags
="$extra_ldflags -ljpeg"
4275 def_jpeg
='#undef CONFIG_JPEG'
4276 novomodules
="jpeg $novomodules"
4281 echocheck
"PNM support"
4282 if test "$_pnm" = yes; then
4283 def_pnm
="#define CONFIG_PNM 1"
4284 vomodules
="pnm $vomodules"
4286 def_pnm
="#undef CONFIG_PNM"
4287 novomodules
="pnm $novomodules"
4293 echocheck
"GIF support"
4294 # This is to appease people who want to force gif support.
4295 # If it is forced to yes, then we still do checks to determine
4296 # which gif library to use.
4297 if test "$_gif" = yes ; then
4302 if test "$_gif" = auto
; then
4304 for _ld_gif
in "-lungif" "-lgif" ; do
4305 statement_check gif_lib.h
'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif
=yes && break
4309 # If no library was found, and the user wants support forced,
4310 # then we force it on with libgif, as this is the safest
4311 # assumption IMHO. (libungif & libregif both create symbolic
4312 # links to libgif. We also assume that no x11 support is needed,
4313 # because if you are forcing this, then you _should_ know what
4314 # you are doing. [ Besides, package maintainers should never
4315 # have compiled x11 deps into libungif in the first place. ] )
4318 if test "$_force_gif" = yes && test "$_gif" = no
; then
4323 if test "$_gif" = yes ; then
4324 def_gif
='#define CONFIG_GIF 1'
4325 codecmodules
="gif $codecmodules"
4326 vomodules
="gif89a $vomodules"
4327 res_comment
="old version, some encoding functions disabled"
4328 def_gif_4
='#undef CONFIG_GIF_4'
4329 extra_ldflags
="$extra_ldflags $_ld_gif"
4335 #include <gif_lib.h>
4336 static void catch(int sig) { exit(1); }
4338 signal(SIGSEGV, catch); // catch segfault
4339 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4340 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4344 if cc_check
"$_ld_gif" ; then
4345 def_gif_4
='#define CONFIG_GIF_4 1'
4349 def_gif
='#undef CONFIG_GIF'
4350 def_gif_4
='#undef CONFIG_GIF_4'
4351 novomodules
="gif89a $novomodules"
4352 nocodecmodules
="gif $nocodecmodules"
4357 case "$_gif" in yes*)
4358 echocheck
"broken giflib workaround"
4359 def_gif_tvt_hack
='#define CONFIG_GIF_TVT_HACK 1'
4363 #include <gif_lib.h>
4365 GifFileType gif = {.UserData = NULL};
4366 printf("UserData is at address %p\n", gif.UserData);
4370 if cc_check
"$_ld_gif" ; then
4371 def_gif_tvt_hack
='#undef CONFIG_GIF_TVT_HACK'
4380 echocheck
"VESA support"
4381 if test "$_vesa" = auto
; then
4383 statement_check vbe.h
'vbeInit()' -lvbe -llrmi && _vesa
=yes
4385 if test "$_vesa" = yes ; then
4386 def_vesa
='#define CONFIG_VESA 1'
4387 libs_mplayer
="$libs_mplayer -lvbe -llrmi"
4388 vomodules
="vesa $vomodules"
4390 def_vesa
='#undef CONFIG_VESA'
4391 novomodules
="vesa $novomodules"
4403 def_sdl_sdl_h
="#undef CONFIG_SDL_SDL_H"
4404 if test -z "$_sdlconfig" ; then
4405 if ( sdl-config
--version ) >>"$TMPLOG" 2>&1 ; then
4406 _sdlconfig
="sdl-config"
4407 elif ( sdl11-config
--version ) >>"$TMPLOG" 2>&1 ; then
4408 _sdlconfig
="sdl11-config"
4413 if test "$_sdl" = auto ||
test "$_sdl" = yes ; then
4415 #ifdef CONFIG_SDL_SDL_H
4416 #include <SDL/SDL.h>
4421 // we allow SDL hacking our main() only on OSX
4424 int main(int argc, char *argv[]) {
4425 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4430 for _ld_tmp
in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4431 if cc_check
-DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4433 def_sdl_sdl_h
="#define CONFIG_SDL_SDL_H 1"
4437 if test "$_sdl" = no
&& "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4438 res_comment
="using $_sdlconfig"
4440 _inc_tmp
="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4441 _ld_tmp
="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4443 _inc_tmp
=$
($_sdlconfig --cflags |
sed s
/-Dmain=SDL_main
//)
4444 _ld_tmp
=$
($_sdlconfig --libs |
sed -e s
/-mwindows// -e s
/-lmingw32//)
4446 _inc_tmp
="$($_sdlconfig --cflags)"
4447 _ld_tmp
="$($_sdlconfig --libs)"
4449 if cc_check
$_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4451 elif cc_check
$_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4452 # HACK for BeOS/Haiku SDL
4453 _ld_tmp
="$_ld_tmp -lstdc++"
4458 if test "$_sdl" = yes ; then
4459 def_sdl
='#define CONFIG_SDL 1'
4460 extra_cflags
="$extra_cflags $_inc_tmp"
4461 libs_mplayer
="$libs_mplayer $_ld_tmp"
4462 vomodules
="sdl $vomodules"
4463 aomodules
="sdl $aomodules"
4465 def_sdl
='#undef CONFIG_SDL'
4466 novomodules
="sdl $novomodules"
4467 noaomodules
="sdl $noaomodules"
4472 # make sure this stays below CoreVideo to avoid issues due to namespace
4473 # conflicts between -lGL and -framework OpenGL
4475 #Note: this test is run even with --enable-gl since we autodetect linker flags
4476 if (test "$_x11" = yes ||
test "$_sdl" = yes || win32
) && test "$_gl" != no
; then
4479 #include <windows.h>
4481 #elif defined(GL_SDL)
4483 #ifdef CONFIG_SDL_SDL_H
4484 #include <SDL/SDL.h>
4489 // we allow SDL hacking our main() only on OSX
4494 #include <X11/Xlib.h>
4497 int main(int argc, char *argv[]) {
4500 wglCreateContext(dc);
4501 #elif defined(GL_SDL)
4502 SDL_GL_SwapBuffers();
4504 glXCreateContext(NULL, NULL, NULL, True);
4511 for _ld_tmp
in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4512 if cc_check
$_ld_tmp $_ld_lm ; then
4515 libs_mplayer
="$libs_mplayer $_ld_tmp $_ld_dl"
4519 if cc_check
-DGL_WIN32 -lopengl32 ; then
4522 libs_mplayer
="$libs_mplayer -lopengl32 -lgdi32"
4524 # last so it can reuse any linker etc. flags detected before
4525 if test "$_sdl" = yes ; then
4526 if cc_check
-DGL_SDL ||
4527 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL ; then
4530 elif cc_check
-DGL_SDL -lGL ||
4531 cc_check
-DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4534 libs_mplayer
="$libs_mplayer -lGL"
4540 if test "$_gl" = yes ; then
4541 def_gl
='#define CONFIG_GL 1'
4542 res_comment
="backends:"
4543 if test "$_gl_win32" = yes ; then
4544 def_gl_win32
='#define CONFIG_GL_WIN32 1'
4545 res_comment
="$res_comment win32"
4547 if test "$_gl_x11" = yes ; then
4548 def_gl_x11
='#define CONFIG_GL_X11 1'
4549 res_comment
="$res_comment x11"
4551 if test "$_gl_sdl" = yes ; then
4552 def_gl_sdl
='#define CONFIG_GL_SDL 1'
4553 res_comment
="$res_comment sdl"
4555 vomodules
="opengl $vomodules"
4557 def_gl
='#undef CONFIG_GL'
4558 def_gl_win32
='#undef CONFIG_GL_WIN32'
4559 def_gl_x11
='#undef CONFIG_GL_X11'
4560 def_gl_sdl
='#undef CONFIG_GL_SDL'
4561 novomodules
="opengl $novomodules"
4567 echocheck
"KVA (SNAP/WarpOverlay!/DIVE)"
4568 if test "$_kva" = auto
; then
4570 header_check_broken os2.h kva.h
-lkva && _kva
=yes
4572 if test "$_kva" = yes ; then
4573 def_kva
='#define CONFIG_KVA 1'
4574 libs_mplayer
="$libs_mplayer -lkva"
4575 vomodules
="kva $vomodules"
4577 def_kva
='#undef CONFIG_KVA'
4578 novomodules
="kva $novomodules"
4586 echocheck
"Windows waveout"
4587 if test "$_win32waveout" = auto
; then
4589 header_check_broken windows.h mmsystem.h
-lwinmm && _win32waveout
=yes
4591 if test "$_win32waveout" = yes ; then
4592 def_win32waveout
='#define CONFIG_WIN32WAVEOUT 1'
4593 libs_mplayer
="$libs_mplayer -lwinmm"
4594 aomodules
="win32 $aomodules"
4596 def_win32waveout
='#undef CONFIG_WIN32WAVEOUT'
4597 noaomodules
="win32 $noaomodules"
4599 echores
"$_win32waveout"
4601 echocheck
"Direct3D"
4602 if test "$_direct3d" = auto
; then
4604 header_check d3d9.h
&& _direct3d
=yes
4606 if test "$_direct3d" = yes ; then
4607 def_direct3d
='#define CONFIG_DIRECT3D 1'
4608 vomodules
="direct3d $vomodules"
4610 def_direct3d
='#undef CONFIG_DIRECT3D'
4611 novomodules
="direct3d $novomodules"
4613 echores
"$_direct3d"
4616 if test "$_directx" = auto
; then
4620 int main(void) { return 0; }
4623 cc_check
-lgdi32 && _directx
=yes
4625 if test "$_directx" = yes ; then
4626 def_directx
='#define CONFIG_DIRECTX 1'
4627 libs_mplayer
="$libs_mplayer -lgdi32"
4628 vomodules
="directx $vomodules"
4629 aomodules
="dsound $aomodules"
4631 def_directx
='#undef CONFIG_DIRECTX'
4632 novomodules
="directx $novomodules"
4633 noaomodules
="dsound $noaomodules"
4641 if test "$_dxr3" = auto
; then
4643 header_check linux
/em8300.h
&& _dxr3
=yes
4645 if test "$_dxr3" = yes ; then
4646 def_dxr3
='#define CONFIG_DXR3 1'
4647 vomodules
="dxr3 $vomodules"
4649 def_dxr3
='#undef CONFIG_DXR3'
4650 novomodules
="dxr3 $novomodules"
4655 echocheck
"IVTV TV-Out (pre linux-2.6.24)"
4656 if test "$_ivtv" = auto
; then
4658 #include <sys/time.h>
4659 #include <linux/videodev2.h>
4660 #include <linux/ivtv.h>
4661 #include <sys/ioctl.h>
4663 struct ivtv_cfg_stop_decode sd;
4664 struct ivtv_cfg_start_decode sd1;
4665 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4666 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4670 cc_check
&& _ivtv
=yes
4672 if test "$_ivtv" = yes ; then
4673 def_ivtv
='#define CONFIG_IVTV 1'
4674 vomodules
="ivtv $vomodules"
4675 aomodules
="ivtv $aomodules"
4677 def_ivtv
='#undef CONFIG_IVTV'
4678 novomodules
="ivtv $novomodules"
4679 noaomodules
="ivtv $noaomodules"
4684 echocheck
"V4L2 MPEG Decoder"
4685 if test "$_v4l2" = auto
; then
4687 #include <sys/time.h>
4688 #include <linux/videodev2.h>
4689 #include <linux/version.h>
4691 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4692 #error kernel headers too old, need 2.6.22
4694 struct v4l2_ext_controls ctrls;
4695 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4700 cc_check
&& _v4l2
=yes
4702 if test "$_v4l2" = yes ; then
4703 def_v4l2
='#define CONFIG_V4L2_DECODER 1'
4704 vomodules
="v4l2 $vomodules"
4705 aomodules
="v4l2 $aomodules"
4707 def_v4l2
='#undef CONFIG_V4L2_DECODER'
4708 novomodules
="v4l2 $novomodules"
4709 noaomodules
="v4l2 $noaomodules"
4720 echocheck
"OSS Audio"
4721 if test "$_ossaudio" = auto
; then
4723 return_check
$_soundcard_header SNDCTL_DSP_SETFRAGMENT
&& _ossaudio
=yes
4725 if test "$_ossaudio" = yes ; then
4726 def_ossaudio
='#define CONFIG_OSS_AUDIO 1'
4727 aomodules
="oss $aomodules"
4729 #include <$_soundcard_header>
4730 #ifdef OPEN_SOUND_SYSTEM
4731 int main(void) { return 0; }
4733 #error Not the real thing
4737 cc_check
&& _real_ossaudio
=yes
4738 if test "$_real_ossaudio" = yes; then
4739 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4740 # Check for OSS4 headers (override default headers)
4741 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4742 if test -f /etc
/oss.conf
; then
4744 _ossinc
="$OSSLIBDIR/include"
4745 if test -f "$_ossinc/sys/soundcard.h"; then
4746 extra_cflags
="-I$_ossinc $extra_cflags"
4749 elif netbsd || openbsd
; then
4750 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/sound"'
4751 extra_ldflags
="$extra_ldflags -lossaudio"
4753 def_ossaudio_devdsp
='#define PATH_DEV_DSP "/dev/dsp"'
4755 def_ossaudio_devmixer
='#define PATH_DEV_MIXER "/dev/mixer"'
4757 def_ossaudio
='#undef CONFIG_OSS_AUDIO'
4758 def_ossaudio_devdsp
='#define PATH_DEV_DSP ""'
4759 def_ossaudio_devmixer
='#define PATH_DEV_MIXER ""'
4760 noaomodules
="oss $noaomodules"
4762 echores
"$_ossaudio"
4766 if test "$_arts" = auto
; then
4768 if ( artsc-config
--version ) >> "$TMPLOG" 2>&1 ; then
4769 statement_check artsc.h
'arts_init()' $
(artsc-config
--libs) $
(artsc-config
--cflags) &&
4774 if test "$_arts" = yes ; then
4775 def_arts
='#define CONFIG_ARTS 1'
4776 aomodules
="arts $aomodules"
4777 libs_mplayer
="$libs_mplayer $(artsc-config --libs)"
4778 extra_cflags
="$extra_cflags $(artsc-config --cflags)"
4780 noaomodules
="arts $noaomodules"
4786 if test "$_esd" = auto
; then
4788 if ( esd-config
--version ) >> "$TMPLOG" 2>&1 ; then
4789 statement_check esd.h
'esd_open_sound("test")' $
(esd-config
--libs) $
(esd-config
--cflags) && _esd
=yes
4794 if test "$_esd" = yes ; then
4795 def_esd
='#define CONFIG_ESD 1'
4796 aomodules
="esd $aomodules"
4797 libs_mplayer
="$libs_mplayer $(esd-config --libs)"
4798 extra_cflags
="$extra_cflags $(esd-config --cflags)"
4800 echocheck
"esd_get_latency()"
4801 statement_check esd.h
'esd_get_latency(0)' $
(esd-config
--libs) $
(esd-config
--cflags) &&
4802 _esd_latency
=yes && def_esd_latency
='#define CONFIG_ESD_LATENCY 1'
4803 echores
"$_esd_latency"
4805 def_esd
='#undef CONFIG_ESD'
4806 def_esd_latency
='#undef CONFIG_ESD_LATENCY'
4807 noaomodules
="esd $noaomodules"
4811 if test "$_rsound" = auto
; then
4813 statement_check rsound.h
'rsd_init(NULL);' -lrsound && _rsound
=yes
4817 if test "$_rsound" = yes ; then
4818 def_rsound
='#define CONFIG_RSOUND 1'
4819 aomodules
="rsound $aomodules"
4820 libs_mplayer
="$libs_mplayer -lrsound"
4822 def_rsound
='#undef CONFIG_RSOUND'
4823 noaomodules
="rsound $noaomodules"
4828 if test "$_nas" = auto
; then
4830 header_check audio
/audiolib.h
$_ld_lm -laudio -lXt && _nas
=yes
4832 if test "$_nas" = yes ; then
4833 def_nas
='#define CONFIG_NAS 1'
4834 libs_mplayer
="$libs_mplayer -laudio -lXt"
4835 aomodules
="nas $aomodules"
4837 noaomodules
="nas $noaomodules"
4838 def_nas
='#undef CONFIG_NAS'
4844 if test "$_pulse" = auto
; then
4846 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4847 header_check pulse
/pulseaudio.h $
($_pkg_config --libs --cflags libpulse
) &&
4853 if test "$_pulse" = yes ; then
4854 def_pulse
='#define CONFIG_PULSE 1'
4855 aomodules
="pulse $aomodules"
4856 libs_mplayer
="$libs_mplayer $($_pkg_config --libs libpulse)"
4857 extra_cflags
="$extra_cflags $($_pkg_config --cflags libpulse)"
4859 def_pulse
='#undef CONFIG_PULSE'
4860 noaomodules
="pulse $noaomodules"
4865 if test "$_jack" = auto
; then
4867 if statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4868 libs_mplayer
="$libs_mplayer -ljack"
4869 elif statement_check jack
/jack.h
'jack_client_open("test", JackUseExactName, NULL)' $
($_pkg_config --libs --cflags --silence-errors jack
) ; then
4870 libs_mplayer
="$libs_mplayer $($_pkg_config --libs jack)"
4871 extra_cflags
="$extra_cflags "$
($_pkg_config --cflags jack
)""
4877 if test "$_jack" = yes ; then
4878 def_jack
='#define CONFIG_JACK 1'
4879 aomodules
="jack $aomodules"
4881 noaomodules
="jack $noaomodules"
4886 if test "$_openal" = auto
; then
4890 #include <OpenAL/al.h>
4895 alSourceQueueBuffers(0, 0, 0);
4896 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4900 for I
in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4901 cc_check
$I && _openal
=yes && break
4902 cc_check
-DOPENAL_AL_H=1 $I && def_openal_h
='#define OPENAL_AL_H 1' && _openal
=yes && break
4904 test "$_openal" = yes && libs_mplayer
="$libs_mplayer $I"
4906 if test "$_openal" = yes ; then
4907 def_openal
='#define CONFIG_OPENAL 1'
4908 aomodules
="openal $aomodules"
4910 noaomodules
="openal $noaomodules"
4914 echocheck
"ALSA audio"
4915 if test "$_alloca" != yes ; then
4917 res_comment
="alloca missing"
4919 if test "$_alsa" != no
; then
4922 #include <sys/asoundlib.h>
4923 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4924 #error "alsa version != 0.5.x"
4926 int main(void) { return 0; }
4928 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.5.x'
4931 #include <sys/asoundlib.h>
4932 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4933 #error "alsa version != 0.9.x"
4935 int main(void) { return 0; }
4937 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-sys'
4939 #include <alsa/asoundlib.h>
4940 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4941 #error "alsa version != 0.9.x"
4943 int main(void) { return 0; }
4945 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='0.9.x-alsa'
4948 #include <sys/asoundlib.h>
4949 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4950 #error "alsa version != 1.0.x"
4952 int main(void) { return 0; }
4954 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-sys'
4956 #include <alsa/asoundlib.h>
4957 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4958 #error "alsa version != 1.0.x"
4960 int main(void) { return 0; }
4962 cc_check
-lasound $_ld_dl $_ld_pthread && _alsaver
='1.0.x-alsa'
4964 def_alsa
='#undef CONFIG_ALSA'
4965 def_alsa5
='#undef CONFIG_ALSA5'
4966 def_alsa9
='#undef CONFIG_ALSA9'
4967 def_alsa1x
='#undef CONFIG_ALSA1X'
4968 def_sys_asoundlib_h
='#undef HAVE_SYS_ASOUNDLIB_H'
4969 def_alsa_asoundlib_h
='#undef HAVE_ALSA_ASOUNDLIB_H'
4970 if test "$_alsaver" ; then
4972 if test "$_alsaver" = '0.5.x' ; then
4974 aomodules
="alsa5 $aomodules"
4975 def_alsa5
='#define CONFIG_ALSA5 1'
4976 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
4977 res_comment
="using alsa 0.5.x and sys/asoundlib.h"
4978 elif test "$_alsaver" = '0.9.x-sys' ; then
4980 aomodules
="alsa $aomodules"
4981 def_alsa
='#define CONFIG_ALSA 1'
4982 def_alsa9
='#define CONFIG_ALSA9 1'
4983 def_sys_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
4984 res_comment
="using alsa 0.9.x and sys/asoundlib.h"
4985 elif test "$_alsaver" = '0.9.x-alsa' ; then
4987 aomodules
="alsa $aomodules"
4988 def_alsa
='#define CONFIG_ALSA 1'
4989 def_alsa9
='#define CONFIG_ALSA9 1'
4990 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
4991 res_comment
="using alsa 0.9.x and alsa/asoundlib.h"
4992 elif test "$_alsaver" = '1.0.x-sys' ; then
4994 aomodules
="alsa $aomodules"
4995 def_alsa
='#define CONFIG_ALSA 1'
4996 def_alsa1x
="#define CONFIG_ALSA1X 1"
4997 def_alsa_asoundlib_h
='#define HAVE_SYS_ASOUNDLIB_H 1'
4998 res_comment
="using alsa 1.0.x and sys/asoundlib.h"
4999 elif test "$_alsaver" = '1.0.x-alsa' ; then
5001 aomodules
="alsa $aomodules"
5002 def_alsa
='#define CONFIG_ALSA 1'
5003 def_alsa1x
="#define CONFIG_ALSA1X 1"
5004 def_alsa_asoundlib_h
='#define HAVE_ALSA_ASOUNDLIB_H 1'
5005 res_comment
="using alsa 1.0.x and alsa/asoundlib.h"
5008 res_comment
="unknown version"
5010 extra_ldflags
="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5012 noaomodules
="alsa $noaomodules"
5017 echocheck
"Sun audio"
5018 if test "$_sunaudio" = auto
; then
5020 #include <sys/types.h>
5021 #include <sys/audioio.h>
5022 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5025 cc_check
&& _sunaudio
=yes
5027 if test "$_sunaudio" = yes ; then
5028 def_sunaudio
='#define CONFIG_SUN_AUDIO 1'
5029 aomodules
="sun $aomodules"
5031 def_sunaudio
='#undef CONFIG_SUN_AUDIO'
5032 noaomodules
="sun $noaomodules"
5034 echores
"$_sunaudio"
5038 echocheck
"CoreAudio"
5039 if test "$_coreaudio" = auto
; then
5041 #include <CoreAudio/CoreAudio.h>
5042 #include <AudioToolbox/AudioToolbox.h>
5043 #include <AudioUnit/AudioUnit.h>
5044 int main(void) { return 0; }
5047 cc_check
-framework CoreAudio
-framework AudioUnit
-framework AudioToolbox
&& _coreaudio
=yes
5049 if test "$_coreaudio" = yes ; then
5050 libs_mplayer
="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5051 def_coreaudio
='#define CONFIG_COREAUDIO 1'
5052 aomodules
="coreaudio $aomodules"
5054 def_coreaudio
='#undef CONFIG_COREAUDIO'
5055 noaomodules
="coreaudio $noaomodules"
5062 echocheck
"SGI audio"
5063 if test "$_sgiaudio" = auto
; then
5065 header_check dmedia
/audio.h
&& _sgiaudio
=yes
5067 if test "$_sgiaudio" = "yes" ; then
5068 def_sgiaudio
='#define CONFIG_SGI_AUDIO 1'
5069 libs_mplayer
="$libs_mplayer -laudio"
5070 aomodules
="sgi $aomodules"
5072 def_sgiaudio
='#undef CONFIG_SGI_AUDIO'
5073 noaomodules
="sgi $noaomodules"
5075 echores
"$_sgiaudio"
5080 echocheck
"KAI (UNIAUD/DART)"
5081 if test "$_kai" = auto
; then
5083 header_check_broken os2.h kai.h
-lkai && _kai
=yes
5085 if test "$_kai" = yes ; then
5086 def_kai
='#define CONFIG_KAI 1'
5087 libs_mplayer
="$libs_mplayer -lkai"
5088 aomodules
="kai $aomodules"
5090 def_kai
='#undef CONFIG_KAI'
5091 noaomodules
="kai $noaomodules"
5096 if test "$_dart" = auto
; then
5098 header_check_broken os2.h dart.h
-ldart && _dart
=yes
5100 if test "$_dart" = yes ; then
5101 def_dart
='#define CONFIG_DART 1'
5102 libs_mplayer
="$libs_mplayer -ldart"
5103 aomodules
="dart $aomodules"
5105 def_dart
='#undef CONFIG_DART'
5106 noaomodules
="dart $noaomodules"
5112 # set default CD/DVD devices
5113 if win32 || os2
; then
5114 default_cdrom_device
="D:"
5116 default_cdrom_device
="/dev/disk1"
5117 elif dragonfly
; then
5118 default_cdrom_device
="/dev/cd0"
5120 default_cdrom_device
="/dev/acd0"
5122 default_cdrom_device
="/dev/rcd0c"
5124 default_cdrom_device
="/vol/dev/aliases/cdrom0"
5125 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5126 # file system and the volfs service.
5127 test -r "/cdrom/cdrom0" && default_cdrom_device
="/cdrom/cdrom0"
5129 default_cdrom_device
="a1ide.device:2"
5131 default_cdrom_device
="/dev/cdrom"
5134 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos
; then
5135 default_dvd_device
=$default_cdrom_device
5137 default_dvd_device
="/dev/rdiskN"
5139 default_dvd_device
="/dev/dvd"
5143 echocheck
"VCD support"
5144 if test "$_vcd" = auto
; then
5146 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2
; then
5149 header_check
ddk
/ntddcdrm.h
&& _vcd
=yes
5152 if test "$_vcd" = yes; then
5153 inputmodules
="vcd $inputmodules"
5154 def_vcd
='#define CONFIG_VCD 1'
5156 def_vcd
='#undef CONFIG_VCD'
5157 noinputmodules
="vcd $noinputmodules"
5158 res_comment
="not supported on this OS"
5164 echocheck
"Blu-ray support"
5165 if test "$_bluray" = auto
; then
5167 statement_check libbluray
/bluray.h
'bd_get_title_info(0, 0, 0)' -lbluray && _bluray
=yes
5169 if test "$_bluray" = yes ; then
5170 def_bluray
='#define CONFIG_LIBBLURAY 1'
5171 extra_ldflags
="$extra_ldflags -lbluray"
5172 inputmodules
="bluray $inputmodules"
5174 def_bluray
='#undef CONFIG_LIBBLURAY'
5175 noinputmodules
="bluray $noinputmodules"
5180 if test "$_dvdread_internal" = auto
&& test ! -f "libdvdread4/dvd_reader.c" ; then
5181 _dvdread_internal
=no
5183 if test "$_dvdread_internal" = auto
; then
5184 _dvdread_internal
=no
5186 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux
) &&
5187 (test "$_dvd" = yes ||
test "$_cdrom" = yes ||
test "$_cdio" = yes ||
5188 test "$_dvdio" = yes ||
test "$_bsdi_dvd" = yes) ||
5189 darwin || win32 || os2
; then
5190 _dvdread_internal
=yes
5192 extra_cflags
="-Ilibdvdread4 $extra_cflags"
5194 elif test "$_dvdread" = auto
; then
5196 if test "$_dl" = yes; then
5197 _dvdreadcflags
=$
($_dvdreadconfig --cflags 2> /dev
/null
)
5198 _dvdreadlibs
=$
($_dvdreadconfig --libs 2> /dev
/null
)
5199 if header_check dvdread
/dvd_reader.h
$_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5201 extra_cflags
="$extra_cflags $_dvdreadcflags"
5202 extra_ldflags
="$extra_ldflags $_dvdreadlibs"
5203 res_comment
="external"
5208 if test "$_dvdread_internal" = yes; then
5209 def_dvdread
='#define CONFIG_DVDREAD 1'
5210 inputmodules
="dvdread(internal) $inputmodules"
5211 res_comment
="internal"
5212 elif test "$_dvdread" = yes; then
5213 def_dvdread
='#define CONFIG_DVDREAD 1'
5214 extra_ldflags
="$extra_ldflags -ldvdread"
5215 inputmodules
="dvdread(external) $inputmodules"
5216 res_comment
="external"
5218 def_dvdread
='#undef CONFIG_DVDREAD'
5219 noinputmodules
="dvdread $noinputmodules"
5224 echocheck
"internal libdvdcss"
5225 if test "$_libdvdcss_internal" = auto
; then
5226 _libdvdcss_internal
=no
5227 test "$_dvdread_internal" = yes && test -d libdvdcss
&& _libdvdcss_internal
=yes
5228 hpux
&& test "$_hpux_scsi_h" = no
&& _libdvdcss_internal
=no
5230 if test "$_libdvdcss_internal" = yes ; then
5231 if linux || netbsd || openbsd || bsdos
; then
5232 def_dvd_linux
='#define HAVE_LINUX_DVD_STRUCT 1'
5233 openbsd
&& def_dvd_openbsd
='#define HAVE_OPENBSD_DVD_STRUCT 1'
5234 elif freebsd || dragonfly
; then
5235 def_dvd_bsd
='#define HAVE_BSD_DVD_STRUCT 1'
5237 def_dvd_darwin
='#define DARWIN_DVD_IOCTL'
5238 extra_ldflags
="$extra_ldflags -framework IOKit -framework Carbon"
5240 cflags_libdvdcss
="-DSYS_CYGWIN -DWIN32"
5242 cflags_libdvdcss
="-DSYS_BEOS"
5244 cflags_libdvdcss
="-DSYS_OS2"
5246 cflags_libdvdcss_dvdread
="-Ilibdvdcss"
5247 def_dvdcss
="#define HAVE_DVDCSS_DVDCSS_H 1"
5248 inputmodules
="libdvdcss(internal) $inputmodules"
5250 noinputmodules
="libdvdcss(internal) $noinputmodules"
5252 echores
"$_libdvdcss_internal"
5255 echocheck
"cdparanoia"
5256 if test "$_cdparanoia" = auto
; then
5258 #include <cdda_interface.h>
5259 #include <cdda_paranoia.h>
5260 // This need a better test. How ?
5261 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5264 for _inc_tmp
in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5265 cc_check
$_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5266 _cdparanoia
=yes && extra_cflags
="$extra_cflags $_inc_tmp" && break
5269 if test "$_cdparanoia" = yes ; then
5271 extra_ldflags
="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5272 openbsd
&& extra_ldflags
="$extra_ldflags -lutil"
5274 echores
"$_cdparanoia"
5278 if test "$_libcdio" = auto
&& test "$_cdparanoia" = no
; then
5281 #include <cdio/version.h>
5282 #include <cdio/cdda.h>
5283 #include <cdio/paranoia.h>
5285 void *test = cdda_verbose_set;
5286 printf("%s\n", CDIO_VERSION);
5287 return test == (void *)1;
5291 for _ld_tmp
in "" "-lwinmm" ; do
5292 _ld_tmp
="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5293 cc_check
$_ld_tmp $_ld_lm && _libcdio
=yes &&
5294 extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5296 if test "$_libcdio" = no
&& $_pkg_config --exists libcdio_paranoia
; then
5297 _inc_tmp
=$
($_pkg_config --cflags libcdio_paranoia
)
5298 _ld_tmp
=$
($_pkg_config --libs libcdio_paranoia
)
5299 cc_check
$_inc_tmp $_ld_tmp $_ld_lm && _libcdio
=yes &&
5300 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5303 if test "$_libcdio" = yes && test "$_cdparanoia" = no
; then
5305 def_libcdio
='#define CONFIG_LIBCDIO 1'
5306 def_havelibcdio
='yes'
5309 if test "$_cdparanoia" = yes ; then
5310 res_comment
="using cdparanoia"
5312 def_libcdio
='#undef CONFIG_LIBCDIO'
5313 def_havelibcdio
='no'
5317 if test "$_cdda" = yes ; then
5318 test $_cddb = auto
&& test $networking = yes && _cddb
=yes
5319 def_cdparanoia
='#define CONFIG_CDDA 1'
5320 inputmodules
="cdda $inputmodules"
5322 def_cdparanoia
='#undef CONFIG_CDDA'
5323 noinputmodules
="cdda $noinputmodules"
5326 if test "$_cddb" = yes ; then
5327 def_cddb
='#define CONFIG_CDDB 1'
5328 inputmodules
="cddb $inputmodules"
5331 def_cddb
='#undef CONFIG_CDDB'
5332 noinputmodules
="cddb $noinputmodules"
5335 echocheck
"bitmap font support"
5336 if test "$_bitmap_font" = yes ; then
5337 def_bitmap_font
="#define CONFIG_BITMAP_FONT 1"
5339 def_bitmap_font
="#undef CONFIG_BITMAP_FONT"
5341 echores
"$_bitmap_font"
5344 echocheck
"freetype >= 2.0.9"
5346 # freetype depends on iconv
5347 if test "$_iconv" = no
; then
5349 res_comment
="iconv support needed"
5352 if test "$_freetype" = auto
; then
5353 if ( $_freetypeconfig --version ) >/dev
/null
2>&1 ; then
5356 #include <ft2build.h>
5357 #include FT_FREETYPE_H
5358 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5359 #error "Need FreeType 2.0.9 or newer"
5363 FT_Init_FreeType(&library);
5368 cc_check $
($_freetypeconfig --cflags) $
($_freetypeconfig --libs) && _freetype
=yes
5372 if test "$_freetype" != yes ; then
5373 die
"Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5376 if test "$_freetype" = yes ; then
5377 def_freetype
='#define CONFIG_FREETYPE 1'
5378 extra_cflags
="$extra_cflags $($_freetypeconfig --cflags)"
5379 extra_ldflags
="$extra_ldflags $($_freetypeconfig --libs)"
5381 def_freetype
='#undef CONFIG_FREETYPE'
5383 echores
"$_freetype"
5385 if test "$_freetype" = no
; then
5387 res_comment
="FreeType support needed"
5389 echocheck
"fontconfig"
5390 if test "$_fontconfig" = auto
; then
5394 #include <fontconfig/fontconfig.h>
5395 #if FC_VERSION < 20402
5396 #error At least version 2.4.2 of fontconfig required
5400 if (err == FcFalse) {
5401 printf("Couldn't initialize fontconfig lib\n");
5408 for _ld_tmp
in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5409 _ld_tmp
="-lfontconfig $_ld_tmp"
5410 cc_check
$_ld_tmp && _fontconfig
=yes && extra_ldflags
="$extra_ldflags $_ld_tmp" && break
5412 if test "$_fontconfig" = no
&& $_pkg_config --exists fontconfig
; then
5413 _inc_tmp
=$
($_pkg_config --cflags fontconfig
)
5414 _ld_tmp
=$
($_pkg_config --libs fontconfig
)
5415 cc_check
$_inc_tmp $_ld_tmp && _fontconfig
=yes &&
5416 extra_ldflags
="$extra_ldflags $_ld_tmp" && extra_cflags
="$extra_cflags $_inc_tmp"
5418 if test "$_fontconfig" != yes ; then
5419 die
"Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5422 if test "$_fontconfig" = yes ; then
5423 def_fontconfig
='#define CONFIG_FONTCONFIG 1'
5425 def_fontconfig
='#undef CONFIG_FONTCONFIG'
5427 echores
"$_fontconfig"
5430 echocheck
"SSA/ASS support"
5431 if test "$_ass" = auto
-o "$_ass" = yes ; then
5432 if $_pkg_config libass
; then
5434 def_ass
='#define CONFIG_ASS 1'
5435 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libass)"
5436 extra_cflags
="$extra_cflags $($_pkg_config --cflags libass)"
5438 die
"Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5441 def_ass
='#undef CONFIG_ASS'
5446 echocheck
"fribidi with charsets"
5449 if test "$_fribidi" = auto
; then
5452 /* workaround for fribidi 0.10.4 and below */
5453 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5454 #include <fribidi/fribidi.h>
5456 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5464 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5465 if $_pkg_config --exists fribidi
> /dev
/null
2>&1 &&
5466 test "$_fribidi" = no
; then
5467 _inc_tmp
="$($_pkg_config --cflags)"
5468 _ld_tmp
="$($_pkg_config --libs)"
5469 cc_check
$_inc_tmp $_ld_tmp && _fribidi
=yes
5472 if test "$_fribidi" = yes ; then
5473 def_fribidi
='#define CONFIG_FRIBIDI 1'
5474 extra_cflags
="$extra_cflags $_inc_tmp"
5475 extra_ldflags
="$extra_ldflags $_ld_tmp"
5477 def_fribidi
='#undef CONFIG_FRIBIDI'
5483 if test "$_enca" = auto
; then
5485 statement_check enca.h
'enca_get_languages(NULL)' -lenca $_ld_lm && _enca
=yes
5487 if test "$_enca" = yes ; then
5488 def_enca
='#define CONFIG_ENCA 1'
5489 extra_ldflags
="$extra_ldflags -lenca"
5491 def_enca
='#undef CONFIG_ENCA'
5498 statement_check zlib.h
'inflate(0, Z_NO_FLUSH)' -lz && _zlib
=yes
5499 if test "$_zlib" = yes ; then
5500 def_zlib
='#define CONFIG_ZLIB 1'
5501 extra_ldflags
="$extra_ldflags -lz"
5503 def_zlib
='#define CONFIG_ZLIB 0'
5509 if test "$_rtc" = auto
; then
5511 #include <sys/ioctl.h>
5513 #include <linux/rtc.h>
5516 #define RTC_PIE_ON RTCIO_PIE_ON
5518 int main(void) { return RTC_PIE_ON; }
5521 cc_check
&& _rtc
=yes
5524 if test "$_rtc" = yes ; then
5525 def_rtc
='#define HAVE_RTC 1'
5527 def_rtc
='#undef HAVE_RTC'
5532 echocheck
"mad support"
5533 if test "$_mad" = auto
; then
5535 header_check mad.h
-lmad && _mad
=yes
5537 if test "$_mad" = yes ; then
5538 def_mad
='#define CONFIG_LIBMAD 1'
5539 extra_ldflags
="$extra_ldflags -lmad"
5540 codecmodules
="libmad $codecmodules"
5542 def_mad
='#undef CONFIG_LIBMAD'
5543 nocodecmodules
="libmad $nocodecmodules"
5547 echocheck
"OggVorbis support"
5548 if test "$_libvorbis" = auto
; then
5550 statement_check vorbis
/codec.h
'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis
=yes && _tremor
=no
5551 elif test "$_libvorbis" = yes ; then
5554 if test "$_tremor" = auto
; then
5556 statement_check tremor
/ivorbiscodec.h
'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor
=yes
5558 if test "$_tremor" = yes ; then
5560 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5561 def_tremor
='#define CONFIG_TREMOR 1'
5562 codecmodules
="tremor(external) $codecmodules"
5563 res_comment
="external Tremor"
5564 extra_ldflags
="$extra_ldflags -logg -lvorbisidec"
5565 elif test "$_libvorbis" = yes ; then
5567 def_vorbis
='#define CONFIG_OGGVORBIS 1'
5568 codecmodules
="libvorbis $codecmodules"
5569 res_comment
="libvorbis"
5570 extra_ldflags
="$extra_ldflags -lvorbis -logg"
5573 nocodecmodules
="libvorbis $nocodecmodules"
5577 echocheck
"libspeex (version >= 1.1 required)"
5578 if test "$_speex" = auto
; then
5582 #include <speex/speex.h>
5583 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5585 cc_check
-lspeex $_ld_lm && _speex
=yes
5587 if test "$_speex" = yes ; then
5588 def_speex
='#define CONFIG_SPEEX 1'
5589 extra_ldflags
="$extra_ldflags -lspeex"
5590 codecmodules
="speex $codecmodules"
5592 def_speex
='#undef CONFIG_SPEEX'
5593 nocodecmodules
="speex $nocodecmodules"
5597 echocheck
"OggTheora support"
5598 if test "$_theora" = auto
; then
5601 #include <theora/theora.h>
5604 /* Theora is in flux, make sure that all interface routines and datatypes
5605 * exist and work the way we expect it, so we don't break MPlayer. */
5614 theora_info_init(&inf);
5615 theora_comment_init(&tc);
5619 /* we don't want to execute this kind of nonsense; just for making sure
5620 * that compilation works... */
5621 memset(&op, 0, sizeof(op));
5622 r = theora_decode_header(&inf, &tc, &op);
5623 r = theora_decode_init(&st, &inf);
5624 t = theora_granule_time(&st, op.granulepos);
5625 r = theora_decode_packetin(&st, &op);
5626 r = theora_decode_YUVout(&st, &yuv);
5632 _ld_theora
=$
($_pkg_config --silence-errors --libs theora
)
5633 _inc_theora
=$
($_pkg_config --silence-errors --cflags theora
)
5634 cc_check
$_inc_theora $_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" &&
5635 extra_cflags
="$extra_cflags $_inc_theora" && _theora
=yes
5636 if test _theora
= no
; then
5637 _ld_theora
="-ltheora -logg"
5638 cc_check
$_ld_theora && extra_ldflags
="$extra_ldflags $_ld_theora" && _theora
=yes
5641 if test "$_theora" = yes ; then
5642 def_theora
='#define CONFIG_OGGTHEORA 1'
5643 codecmodules
="libtheora $codecmodules"
5644 # when --enable-theora is forced, we'd better provide a probably sane
5645 # $_ld_theora than nothing
5646 test -z "$_ld_theora" && extra_ldflags
="$extra_ldflags -ltheora -logg"
5648 def_theora
='#undef CONFIG_OGGTHEORA'
5649 nocodecmodules
="libtheora $nocodecmodules"
5653 # Any version of libmpg123 shall be fine.
5654 echocheck
"mpg123 support"
5655 def_mpg123
='#undef CONFIG_MPG123'
5656 if test "$_mpg123" = auto
; then
5658 statement_check mpg123.h
'mpg123_init()' -lmpg123 && _mpg123
=yes && extra_ldflags
="$extra_ldflags -lmpg123"
5660 if test "$_mpg123" = yes ; then
5661 def_mpg123
='#define CONFIG_MPG123 1'
5662 codecmodules
="mpg123 $codecmodules"
5664 nocodecmodules
="mpg123 $nocodecmodules"
5668 echocheck
"liba52 support"
5669 def_liba52
='#undef CONFIG_LIBA52'
5670 if test "$_liba52" = auto
; then
5673 #include <inttypes.h>
5674 #include <a52dec/a52.h>
5675 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5677 cc_check
-la52 && _liba52
=yes && extra_ldflags
="$extra_ldflags -la52"
5679 if test "$_liba52" = yes ; then
5680 def_liba52
='#define CONFIG_LIBA52 1'
5681 codecmodules
="liba52 $codecmodules"
5683 nocodecmodules
="liba52 $nocodecmodules"
5687 echocheck
"libdca support"
5688 if test "$_libdca" = auto
; then
5690 for _ld_dca
in -ldca -ldts ; do
5691 statement_check_broken stdint.h dts.h
'dts_init(0)' $_ld_dca $_ld_lm &&
5692 extra_ldflags
="$extra_ldflags $_ld_dca" && _libdca
=yes && break
5695 if test "$_libdca" = yes ; then
5696 def_libdca
='#define CONFIG_LIBDCA 1'
5697 codecmodules
="libdca $codecmodules"
5699 def_libdca
='#undef CONFIG_LIBDCA'
5700 nocodecmodules
="libdca $nocodecmodules"
5704 echocheck
"libmpcdec (musepack, version >= 1.2.1 required)"
5705 if test "$_musepack" = yes ; then
5709 #include <mpcdec/mpcdec.h>
5711 mpc_streaminfo info;
5712 mpc_decoder decoder;
5713 mpc_decoder_set_streaminfo(&decoder, &info);
5714 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5718 cc_check
-lmpcdec $_ld_lm && _musepack
=yes
5720 if test "$_musepack" = yes ; then
5721 def_musepack
='#define CONFIG_MUSEPACK 1'
5722 extra_ldflags
="$extra_ldflags -lmpcdec"
5723 codecmodules
="musepack $codecmodules"
5725 def_musepack
='#undef CONFIG_MUSEPACK'
5726 nocodecmodules
="musepack $nocodecmodules"
5728 echores
"$_musepack"
5731 echocheck
"FAAD2 support"
5732 if test "$_faad" = auto
; then
5736 #ifndef FAAD_MIN_STREAMSIZE
5737 #error Too old version
5739 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5740 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5742 cc_check
-lfaad $_ld_lm && _faad
=yes
5745 def_faad
='#undef CONFIG_FAAD'
5746 if test "$_faad" = yes ; then
5747 def_faad
='#define CONFIG_FAAD 1'
5748 extra_ldflags
="$extra_ldflags -lfaad"
5749 codecmodules
="faad2 $codecmodules"
5751 nocodecmodules
="faad2 $nocodecmodules"
5756 echocheck
"LADSPA plugin support"
5757 if test "$_ladspa" = auto
; then
5759 statement_check ladspa.h
'LADSPA_Descriptor ld = {0}' && _ladspa
=yes
5761 if test "$_ladspa" = yes; then
5762 def_ladspa
="#define CONFIG_LADSPA 1"
5764 def_ladspa
="#undef CONFIG_LADSPA"
5769 echocheck
"libbs2b audio filter support"
5770 if test "$_libbs2b" = auto
; then
5773 #if BS2B_VERSION_MAJOR < 3
5774 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5784 if $_pkg_config --exists libbs2b
; then
5785 _inc_tmp
=$
($_pkg_config --cflags libbs2b
)
5786 _ld_tmp
=$
($_pkg_config --libs libbs2b
)
5787 cc_check
$_inc_tmp $_ld_tmp && extra_ldflags
="$extra_ldflags $_ld_tmp" &&
5788 extra_cflags
="$extra_cflags $_inc_tmp" && _libbs2b
=yes
5790 for _inc_tmp
in "" -I/usr
/include
/bs2b
-I/usr
/local
/include \
5791 -I/usr
/local
/include
/bs2b
; do
5792 if cc_check
$_inc_tmp $_ld_lm -lbs2b ; then
5793 extra_ldflags
="$extra_ldflags -lbs2b"
5794 extra_cflags
="$extra_cflags $_inc_tmp"
5801 def_libbs2b
="#undef CONFIG_LIBBS2B"
5802 test "$_libbs2b" = yes && def_libbs2b
="#define CONFIG_LIBBS2B 1"
5806 if test -z "$_codecsdir" ; then
5807 for dir
in "$_libdir/codecs" "$_libdir/win32" /usr
/local
/lib
/codecs \
5808 /usr
/lib
/codecs
/usr
/local
/lib
/win32
/usr
/lib
/win32
; do
5809 if test -d "$dir" ; then
5815 # Fall back on default directory.
5816 if test -z "$_codecsdir" ; then
5817 _codecsdir
="$_libdir/codecs"
5818 mingw32 || os2
&& _codecsdir
="codecs"
5822 echocheck
"Win32 codecs"
5823 if test "$_win32dll" = auto
; then
5825 if x86_32
&& ! qnx
; then
5829 if test "$_win32dll" = yes ; then
5830 def_win32dll
='#define CONFIG_WIN32DLL 1'
5832 def_win32_loader
='#define WIN32_LOADER 1'
5833 _win32_emulation
=yes
5835 extra_ldflags
="$extra_ldflags -ladvapi32 -lole32"
5836 res_comment
="using native windows"
5838 codecmodules
="win32 $codecmodules"
5840 def_win32dll
='#undef CONFIG_WIN32DLL'
5841 def_win32_loader
='#undef WIN32_LOADER'
5842 nocodecmodules
="win32 $nocodecmodules"
5844 echores
"$_win32dll"
5847 echocheck
"XAnim codecs"
5848 if test "$_xanim" = auto
; then
5850 res_comment
="dynamic loader support needed"
5851 if test "$_dl" = yes ; then
5855 if test "$_xanim" = yes ; then
5856 def_xanim
='#define CONFIG_XANIM 1'
5857 codecmodules
="xanim $codecmodules"
5859 def_xanim
='#undef CONFIG_XANIM'
5860 nocodecmodules
="xanim $nocodecmodules"
5865 echocheck
"RealPlayer codecs"
5866 if test "$_real" = auto
; then
5868 res_comment
="dynamic loader support needed"
5869 if test "$_dl" = yes ||
test "$_win32dll" = yes &&
5870 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2
) ; then
5874 if test "$_real" = yes ; then
5875 def_real
='#define CONFIG_REALCODECS 1'
5876 codecmodules
="real $codecmodules"
5878 def_real
='#undef CONFIG_REALCODECS'
5879 nocodecmodules
="real $nocodecmodules"
5884 echocheck
"QuickTime codecs"
5886 def_qtx_win32
='#undef CONFIG_QTX_CODECS_WIN32'
5887 if test "$_qtx" = auto
; then
5888 test "$_win32dll" = yes ||
test "$quicktime" = yes && _qtx
=yes
5890 if test "$_qtx" = yes ; then
5891 def_qtx
='#define CONFIG_QTX_CODECS 1'
5892 win32
&& _qtx_codecs_win32
=yes && def_qtx_win32
='#define CONFIG_QTX_CODECS_WIN32 1'
5893 codecmodules
="qtx $codecmodules"
5894 darwin || win32 || _qtx_emulation
=yes
5896 def_qtx
='#undef CONFIG_QTX_CODECS'
5897 nocodecmodules
="qtx $nocodecmodules"
5901 echocheck
"Nemesi Streaming Media libraries"
5902 if test "$_nemesi" = auto
&& test "$networking" = yes ; then
5904 if $_pkg_config libnemesi
--atleast-version=0.6.3 ; then
5905 extra_cflags
="$extra_cflags $($_pkg_config --cflags libnemesi)"
5906 extra_ldflags
="$extra_ldflags $($_pkg_config --libs libnemesi)"
5910 if test "$_nemesi" = yes; then
5912 def_nemesi
='#define CONFIG_LIBNEMESI 1'
5913 inputmodules
="nemesi $inputmodules"
5915 _native_rtsp
="$networking"
5917 def_nemesi
='#undef CONFIG_LIBNEMESI'
5918 noinputmodules
="nemesi $noinputmodules"
5922 echocheck
"LIVE555 Streaming Media libraries"
5923 if test "$_live" = auto
&& test "$networking" = yes ; then
5924 cat > $TMPCPP << EOF
5925 #include <liveMedia.hh>
5926 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5927 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5929 int main(void) { return 0; }
5933 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
5934 cxx_check
$I/liveMedia
/include
$I/UsageEnvironment
/include
$I/groupsock
/include
&&
5935 _livelibdir
=$
(echo $I|
sed s
/-I//) &&
5936 extra_ldflags
="$_livelibdir/liveMedia/libliveMedia.a \
5937 $_livelibdir/groupsock/libgroupsock.a \
5938 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5939 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5940 $extra_ldflags -lstdc++" \
5941 extra_cxxflags
="-I$_livelibdir/liveMedia/include \
5942 -I$_livelibdir/UsageEnvironment/include \
5943 -I$_livelibdir/BasicUsageEnvironment/include \
5944 -I$_livelibdir/groupsock/include" &&
5947 if test "$_live" != yes ; then
5948 ld_tmp
="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5949 if cxx_check
-I/usr
/include
/liveMedia
-I/usr
/include
/UsageEnvironment
-I/usr
/include
/groupsock
$ld_tmp; then
5954 if test "$_live" = yes && test "$networking" = yes; then
5955 test $_livelibdir && res_comment
="using $_livelibdir"
5956 def_live
='#define CONFIG_LIVE555 1'
5957 inputmodules
="live555 $inputmodules"
5958 elif test "$_live_dist" = yes && test "$networking" = yes; then
5959 res_comment
="using distribution version"
5961 def_live
='#define CONFIG_LIVE555 1'
5962 extra_ldflags
="$extra_ldflags $ld_tmp"
5963 extra_cxxflags
="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5964 inputmodules
="live555 $inputmodules"
5967 def_live
='#undef CONFIG_LIVE555'
5968 noinputmodules
="live555 $noinputmodules"
5974 all_libav_libs
="libavutil libavcodec libavformat libswscale libpostproc"
5975 echocheck
"Libav ($all_libav_libs)"
5976 if test "$ffmpeg" = auto
; then
5978 if $_pkg_config --exists --print-errors $all_libav_libs ; then
5979 inc_ffmpeg
=$
($_pkg_config --cflags $all_libav_libs)
5980 _ld_tmp
=$
($_pkg_config --libs $all_libav_libs)
5981 extra_ldflags
="$extra_ldflags $_ld_tmp"
5982 extra_cflags
="$extra_cflags $inc_ffmpeg"
5984 elif header_check libavutil
/avutil.h
-lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
5985 extra_ldflags
="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
5988 die
"Unable to find development files for some of the Libav libraries above. Aborting. If you really mean to compile without Libav support use --disable-libav."
5993 def_ffmpeg_eval_api
="#undef CONFIG_FFMPEG_EVAL_API"
5994 if test "$ffmpeg" = yes; then
5995 def_ffmpeg
='#define CONFIG_FFMPEG 1'
5996 codecmodules
="ffmpeg $codecmodules"
5997 if $_pkg_config --atleast-version=50.33.0 libavutil
; then
5999 def_ffmpeg_eval_api
="#define CONFIG_FFMPEG_EVAL_API 1"
6002 def_ffmpeg
='#undef CONFIG_FFMPEG'
6003 nocodecmodules
="ffmpeg $nocodecmodules"
6007 def_ffmpeg_internals
="#undef CONFIG_FFMPEG_INTERNALS"
6008 if ! test -z "$_ffmpeg_source" ; then
6009 test "$ffmpeg" = yes && def_ffmpeg_internals
="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals
=yes
6014 echocheck
"libdv-0.9.5+"
6015 if test "$_libdv" = auto
; then
6017 statement_check libdv
/dv.h
'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv
=yes
6019 if test "$_libdv" = yes ; then
6020 def_libdv
='#define CONFIG_LIBDV095 1'
6021 extra_ldflags
="$extra_ldflags -ldv"
6022 codecmodules
="libdv $codecmodules"
6024 def_libdv
='#undef CONFIG_LIBDV095'
6025 nocodecmodules
="libdv $nocodecmodules"
6031 if test "$_xvid" = auto
; then
6033 for _ld_tmp
in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6034 statement_check xvid.h
'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6035 extra_ldflags
="$extra_ldflags $_ld_tmp" && _xvid
=yes && break
6039 if test "$_xvid" = yes ; then
6040 def_xvid
='#define CONFIG_XVID4 1'
6041 codecmodules
="xvid $codecmodules"
6043 def_xvid
='#undef CONFIG_XVID4'
6044 nocodecmodules
="xvid $nocodecmodules"
6050 if test "$_libnut" = auto
; then
6052 statement_check libnut.h
'nut_context_tt * nut; nut_error(0)' -lnut && _libnut
=yes
6055 if test "$_libnut" = yes ; then
6056 def_libnut
='#define CONFIG_LIBNUT 1'
6057 extra_ldflags
="$extra_ldflags -lnut"
6059 def_libnut
='#undef CONFIG_LIBNUT'
6063 # These VO checks must be done after the FFmpeg one
6064 echocheck
"/dev/mga_vid"
6065 if test "$_mga" = auto
; then
6067 test -c /dev
/mga_vid
&& _mga
=yes
6069 if test "$_mga" = yes ; then
6070 def_mga
='#define CONFIG_MGA 1'
6071 vomodules
="mga $vomodules"
6073 def_mga
='#undef CONFIG_MGA'
6074 novomodules
="mga $novomodules"
6080 if test "$_xmga" = auto
; then
6082 test "$_x11" = yes && test "$_mga" = yes && _xmga
=yes
6084 if test "$_xmga" = yes ; then
6085 def_xmga
='#define CONFIG_XMGA 1'
6086 vomodules
="xmga $vomodules"
6088 def_xmga
='#undef CONFIG_XMGA'
6089 novomodules
="xmga $novomodules"
6094 echocheck
"UnRAR executable"
6095 if test "$_unrar_exec" = auto
; then
6097 mingw32
&& _unrar_exec
="no"
6099 if test "$_unrar_exec" = yes ; then
6100 def_unrar_exec
='#define CONFIG_UNRAR_EXEC 1'
6102 def_unrar_exec
='#undef CONFIG_UNRAR_EXEC'
6104 echores
"$_unrar_exec"
6106 echocheck
"TV interface"
6107 if test "$_tv" = yes ; then
6108 def_tv
='#define CONFIG_TV 1'
6109 inputmodules
="tv $inputmodules"
6111 noinputmodules
="tv $noinputmodules"
6112 def_tv
='#undef CONFIG_TV'
6117 if freebsd || netbsd || openbsd || dragonfly || bsdos
; then
6118 echocheck
"*BSD BT848 bt8xx header"
6120 for file in "machine/ioctl_bt848.h" \
6121 "dev/bktr/ioctl_bt848.h" \
6122 "dev/video/bktr/ioctl_bt848.h" \
6123 "dev/ic/bt8xx.h" ; do
6125 #include <sys/types.h>
6126 #include <sys/ioctl.h>
6128 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6132 _ioctl_bt848_h_name
="$file"
6136 if test "$_ioctl_bt848_h" = yes ; then
6137 def_ioctl_bt848_h_name
="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6138 res_comment
="using $_ioctl_bt848_h_name"
6140 def_ioctl_bt848_h_name
="#undef IOCTL_BT848_H_NAME"
6142 echores
"$_ioctl_bt848_h"
6144 echocheck
"*BSD ioctl_meteor.h"
6146 for ioctl_meteor_h_path
in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6147 statement_check_broken
"sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6148 _ioctl_meteor_h
=yes && break
6150 if test "$_ioctl_meteor_h" = yes ; then
6151 def_ioctl_meteor_h_name
="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6152 res_comment
="using $ioctl_meteor_h_path"
6154 def_ioctl_meteor_h_name
="#undef IOCTL_METEOR_H_NAME"
6156 echores
"$_ioctl_meteor_h"
6158 echocheck
"*BSD BrookTree 848 TV interface"
6159 if test "$_tv_bsdbt848" = auto
; then
6161 if test "$_tv" = yes ; then
6163 #include <sys/types.h>
6164 $def_ioctl_meteor_h_name
6165 $def_ioctl_bt848_h_name
6166 #ifdef IOCTL_METEOR_H_NAME
6167 #include IOCTL_METEOR_H_NAME
6169 #ifdef IOCTL_BT848_H_NAME
6170 #include IOCTL_BT848_H_NAME
6173 ioctl(0, METEORSINPUT, 0);
6174 ioctl(0, TVTUNER_GETFREQ, 0);
6178 cc_check
&& _tv_bsdbt848
=yes
6181 if test "$_tv_bsdbt848" = yes ; then
6182 def_tv_bsdbt848
='#define CONFIG_TV_BSDBT848 1'
6183 inputmodules
="tv-bsdbt848 $inputmodules"
6185 def_tv_bsdbt848
='#undef CONFIG_TV_BSDBT848'
6186 noinputmodules
="tv-bsdbt848 $noinputmodules"
6188 echores
"$_tv_bsdbt848"
6189 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6192 echocheck
"DirectShow TV interface"
6193 if test "$_tv_dshow" = auto
; then
6195 if test "$_tv" = yes && win32
; then
6196 statement_check ole2.h
'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow
=yes
6199 if test "$_tv_dshow" = yes ; then
6200 inputmodules
="tv-dshow $inputmodules"
6201 def_tv_dshow
='#define CONFIG_TV_DSHOW 1'
6202 extra_ldflags
="$extra_ldflags -lole32 -luuid"
6204 noinputmodules
="tv-dshow $noinputmodules"
6205 def_tv_dshow
='#undef CONFIG_TV_DSHOW'
6207 echores
"$_tv_dshow"
6210 echocheck
"Video 4 Linux TV interface"
6211 if test "$_tv_v4l1" = auto
; then
6213 if test "$_tv" = yes && linux
; then
6214 header_check_broken sys
/time.h linux
/videodev.h
&& _tv_v4l1
=yes
6217 if test "$_tv_v4l1" = yes ; then
6220 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6221 def_tv_v4l1
='#define CONFIG_TV_V4L1 1'
6222 inputmodules
="tv-v4l $inputmodules"
6224 noinputmodules
="tv-v4l1 $noinputmodules"
6225 def_tv_v4l
='#undef CONFIG_TV_V4L'
6230 echocheck
"Video 4 Linux 2 TV interface"
6231 if test "$_tv_v4l2" = auto
; then
6233 if test "$_tv" = yes && linux
; then
6234 header_check_broken sys
/time.h linux
/videodev2.h
&& _tv_v4l2
=yes
6235 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
6239 if test "$_tv_v4l2" = yes ; then
6242 def_tv_v4l
='#define CONFIG_TV_V4L 1'
6243 def_tv_v4l2
='#define CONFIG_TV_V4L2 1'
6244 inputmodules
="tv-v4l2 $inputmodules"
6246 noinputmodules
="tv-v4l2 $noinputmodules"
6247 def_tv_v4l2
='#undef CONFIG_TV_V4L2'
6252 echocheck
"Radio interface"
6253 if test "$_radio" = yes ; then
6254 def_radio
='#define CONFIG_RADIO 1'
6255 inputmodules
="radio $inputmodules"
6256 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6259 if test "$_radio_capture" = yes ; then
6261 def_radio_capture
="#define CONFIG_RADIO_CAPTURE 1"
6263 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6266 noinputmodules
="radio $noinputmodules"
6267 def_radio
='#undef CONFIG_RADIO'
6268 def_radio_capture
="#undef CONFIG_RADIO_CAPTURE"
6272 echocheck
"Capture for Radio interface"
6273 echores
"$_radio_capture"
6275 echocheck
"Video 4 Linux 2 Radio interface"
6276 if test "$_radio_v4l2" = auto
; then
6278 if test "$_radio" = yes && linux
; then
6279 header_check linux
/videodev2.h
&& _radio_v4l2
=yes
6282 if test "$_radio_v4l2" = yes ; then
6283 def_radio_v4l2
='#define CONFIG_RADIO_V4L2 1'
6285 def_radio_v4l2
='#undef CONFIG_RADIO_V4L2'
6287 echores
"$_radio_v4l2"
6289 echocheck
"Video 4 Linux Radio interface"
6290 if test "$_radio_v4l" = auto
; then
6292 if test "$_radio" = yes && linux
; then
6293 header_check linux
/videodev.h
&& _radio_v4l
=yes
6296 if test "$_radio_v4l" = yes ; then
6297 def_radio_v4l
='#define CONFIG_RADIO_V4L 1'
6299 def_radio_v4l
='#undef CONFIG_RADIO_V4L'
6301 echores
"$_radio_v4l"
6303 if freebsd || netbsd || openbsd || dragonfly || bsdos
&&
6304 test "$_radio" = yes && test "$_radio_bsdbt848" = auto
; then
6305 echocheck
"*BSD BrookTree 848 Radio interface"
6308 #include <sys/types.h>
6309 $def_ioctl_bt848_h_name
6310 #ifdef IOCTL_BT848_H_NAME
6311 #include IOCTL_BT848_H_NAME
6313 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6315 cc_check
&& _radio_bsdbt848
=yes
6316 echores
"$_radio_bsdbt848"
6317 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6319 if test "$_radio_bsdbt848" = yes ; then
6320 def_radio_bsdbt848
='#define CONFIG_RADIO_BSDBT848 1'
6322 def_radio_bsdbt848
='#undef CONFIG_RADIO_BSDBT848'
6325 if test "$_radio_v4l" = no
&& test "$_radio_v4l2" = no
&&
6326 test "$_radio_bsdbt848" = no
&& test "$_radio" = yes ; then
6327 die
"Radio driver requires BSD BT848, V4L or V4L2!"
6330 echocheck
"Video 4 Linux 2 MPEG PVR interface"
6331 if test "$_pvr" = auto
; then
6333 if test "$_tv_v4l2" = yes && linux
; then
6335 #include <sys/time.h>
6336 #include <linux/videodev2.h>
6337 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6339 cc_check
&& _pvr
=yes
6342 if test "$_pvr" = yes ; then
6343 def_pvr
='#define CONFIG_PVR 1'
6344 inputmodules
="pvr $inputmodules"
6346 noinputmodules
="pvr $noinputmodules"
6347 def_pvr
='#undef CONFIG_PVR'
6353 if test "$_ftp" = "auto" ; then
6354 test "$networking" = "yes" && ! beos
&& _ftp
=yes
6356 if test "$_ftp" = yes ; then
6357 def_ftp
='#define CONFIG_FTP 1'
6358 inputmodules
="ftp $inputmodules"
6360 noinputmodules
="ftp $noinputmodules"
6361 def_ftp
='#undef CONFIG_FTP'
6365 echocheck
"vstream client"
6366 if test "$_vstream" = auto
; then
6369 #include <vstream-client.h>
6370 void vstream_error(const char *format, ... ) {}
6371 int main(void) { vstream_start(); return 0; }
6373 cc_check
-lvstream-client && _vstream
=yes
6375 if test "$_vstream" = yes ; then
6376 def_vstream
='#define CONFIG_VSTREAM 1'
6377 inputmodules
="vstream $inputmodules"
6378 extra_ldflags
="$extra_ldflags -lvstream-client"
6380 noinputmodules
="vstream $noinputmodules"
6381 def_vstream
='#undef CONFIG_VSTREAM'
6386 echocheck
"Subtitles sorting"
6387 if test "$_sortsub" = yes ; then
6388 def_sortsub
='#define CONFIG_SORTSUB 1'
6390 def_sortsub
='#undef CONFIG_SORTSUB'
6395 echocheck
"XMMS inputplugin support"
6396 if test "$_xmms" = yes ; then
6397 if ( xmms-config
--version ) >/dev
/null
2>&1 ; then
6398 _xmmsplugindir
=$
(xmms-config
--input-plugin-dir)
6399 _xmmslibdir
=$
(xmms-config
--exec-prefix)/lib
6401 _xmmsplugindir
=/usr
/lib
/xmms
/Input
6402 _xmmslibdir
=/usr
/lib
6405 def_xmms
='#define CONFIG_XMMS 1'
6407 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6409 extra_ldflags
="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6412 def_xmms
='#undef CONFIG_XMMS'
6416 if test "$_charset" != "noconv" ; then
6417 def_charset
="#define MSG_CHARSET \"$_charset\""
6419 def_charset
="#undef MSG_CHARSET"
6423 #############################################################################
6425 echocheck
"automatic gdb attach"
6426 if test "$_crash_debug" = yes ; then
6427 def_crash_debug
='#define CONFIG_CRASH_DEBUG 1'
6429 def_crash_debug
='#undef CONFIG_CRASH_DEBUG'
6432 echores
"$_crash_debug"
6434 echocheck
"compiler support for noexecstack"
6435 if cflag_check
-Wl,-z,noexecstack
; then
6436 extra_ldflags
="-Wl,-z,noexecstack $extra_ldflags"
6442 echocheck
"linker support for --nxcompat --no-seh --dynamicbase"
6443 if cflag_check
"-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6444 extra_ldflags
="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6451 # Dynamic linking flags
6452 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6454 freebsd || netbsd || openbsd || dragonfly || bsdos
&& _ld_dl_dynamic
='-rdynamic'
6455 if test "$_real" = yes ||
test "$_xanim" = yes && ! win32
&& ! qnx
&& ! darwin
&& ! os2
&& ! sunos
; then
6456 _ld_dl_dynamic
='-rdynamic'
6459 extra_ldflags
="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6460 bsdos
&& extra_ldflags
="$extra_ldflags -ldvd"
6461 (netbsd || openbsd
) && x86_32
&& extra_ldflags
="$extra_ldflags -li386"
6463 def_debug
='#undef MP_DEBUG'
6464 test "$_debug" != "" && def_debug
='#define MP_DEBUG 1'
6467 echocheck
"joystick"
6468 def_joystick
='#undef CONFIG_JOYSTICK'
6469 if test "$_joystick" = yes ; then
6470 if linux || freebsd
; then
6471 # TODO add some check
6472 def_joystick
='#define CONFIG_JOYSTICK 1'
6475 res_comment
="unsupported under $system_name"
6478 echores
"$_joystick"
6481 if test "$_lirc" = auto
; then
6483 header_check lirc
/lirc_client.h
-llirc_client && _lirc
=yes
6485 if test "$_lirc" = yes ; then
6486 def_lirc
='#define CONFIG_LIRC 1'
6487 libs_mplayer
="$libs_mplayer -llirc_client"
6489 def_lirc
='#undef CONFIG_LIRC'
6494 if test "$_lircc" = auto
; then
6496 header_check lirc
/lircc.h
-llircc && _lircc
=yes
6498 if test "$_lircc" = yes ; then
6499 def_lircc
='#define CONFIG_LIRCC 1'
6500 libs_mplayer
="$libs_mplayer -llircc"
6502 def_lircc
='#undef CONFIG_LIRCC'
6506 #############################################################################
6508 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6509 # the OMF format needs to come after the 'extern symbol prefix' check, which
6512 extra_ldflags
="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6515 #############################################################################
6517 CFLAGS
="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6519 CXXFLAGS
=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6521 # This must be the last test to be performed. Any other tests following it
6522 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6523 # against libdvdread (to permit MPlayer to use its own copy of the library).
6524 # So any compilation using the flags added here but not linking against
6525 # libdvdread can fail.
6526 echocheck
"DVD support (libdvdnav)"
6527 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6531 if test "$_dvdnav" = auto
; then
6532 if test "$_dvdread_internal" = yes ; then
6535 res_comment
="internal"
6537 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav
=no
6540 if test "$_dvdnav" = auto
; then
6542 _dvdnavdir
=$
($_dvdnavconfig --cflags)
6543 _dvdnavlibs
=$
($_dvdnavconfig --libs)
6544 statement_check_broken stdint.h dvdnav
/dvdnav.h
'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav
=yes
6546 if test "$_dvdnav" = yes ; then
6547 def_dvdnav
='#define CONFIG_DVDNAV 1'
6548 if test "$dvdnav_internal" = yes ; then
6549 cflags_libdvdnav
="-Ilibdvdnav"
6550 inputmodules
="dvdnav(internal) $inputmodules"
6552 extra_cflags
="$extra_cflags $($_dvdnavconfig --cflags)"
6553 extra_ldflags
="$extra_ldflags $($_dvdnavconfig --minilibs)"
6554 inputmodules
="dvdnav $inputmodules"
6557 def_dvdnav
='#undef CONFIG_DVDNAV'
6558 noinputmodules
="dvdnav $noinputmodules"
6562 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6563 # Read dvdnav comment above.
6566 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6567 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6569 for part
in $list; do
6570 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6571 echo "${nprefix}_$part = yes"
6576 #############################################################################
6577 echo "Creating config.mak"
6578 cat > config.mak
<< EOF
6579 # -------- Generated by configure -----------
6581 # Ensure that locale settings do not interfere with shell commands.
6584 CONFIGURATION = $configuration
6587 DOC_LANGS = $language_doc
6588 DOC_LANG_ALL = $doc_lang_all
6589 MAN_LANGS = $language_man
6590 MAN_LANG_ALL = $man_lang_all
6591 MSG_LANGS = $language_msg
6592 MSG_LANG_ALL = $msg_lang_all
6594 prefix = \$(DESTDIR)$_prefix
6595 BINDIR = \$(DESTDIR)$_bindir
6596 DATADIR = \$(DESTDIR)$_datadir
6597 LIBDIR = \$(DESTDIR)$_libdir
6598 MANDIR = \$(DESTDIR)$_mandir
6599 CONFDIR = \$(DESTDIR)$_confdir
6600 LOCALEDIR = \$(DESTDIR)$_localedir
6608 INSTALLSTRIP = $_install_strip
6611 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6612 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6613 DEPFLAGS = $DEPFLAGS
6615 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6616 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6617 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6618 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6619 CFLAGS_STACKREALIGN = $cflags_stackrealign
6621 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6622 EXTRALIBS_MPLAYER = $libs_mplayer
6631 $(mak_enable "$arch_all" "$arch" ARCH)
6632 $(mak_enable "$subarch_all" "$subarch" ARCH)
6633 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6637 NEED_GETTIMEOFDAY = $need_gettimeofday
6638 NEED_GLOB = $need_glob
6639 NEED_MMAP = $need_mmap
6640 NEED_SETENV = $need_setenv
6641 NEED_SHMEM = $need_shmem
6642 NEED_STRSEP = $need_strsep
6643 NEED_SWAB = $need_swab
6644 NEED_VSSCANF = $need_vsscanf
6652 APPLE_IR = $_apple_ir
6653 APPLE_REMOTE = $_apple_remote
6655 AUDIO_INPUT = $_audio_input
6656 BITMAP_FONT = $_bitmap_font
6661 COREAUDIO = $_coreaudio
6662 COREVIDEO = $_corevideo
6665 DIRECT3D = $_direct3d
6666 DIRECTFB = $_directfb
6670 DVDNAV_INTERNAL = $dvdnav_internal
6672 DVDREAD_INTERNAL = $_dvdread_internal
6676 FASTMEMCPY = $_fastmemcpy
6678 FREETYPE = $_freetype
6683 GL_WIN32 = $_gl_win32
6686 HAVE_POSIX_SELECT = $_posix_select
6687 HAVE_SYS_MMAN_H = $_mman
6690 JOYSTICK = $_joystick
6697 LIBBLURAY = $_bluray
6701 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6703 LIBNEMESI = $_nemesi
6705 LIBSMBCLIENT = $_smb
6706 LIBTHEORA = $_theora
6709 MACOSX_FINDER = $_macosx_finder
6714 MUSEPACK = $_musepack
6716 NATIVE_RTSP = $_native_rtsp
6717 NETWORKING = $networking
6720 PE_EXECUTABLE = $_pe_executable
6723 PRIORITY = $_priority
6727 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6728 QTX_EMULATION = $_qtx_emulation
6731 RADIO_CAPTURE=$_radio_capture
6732 REAL_CODECS = $_real
6737 STREAM_CACHE = $_stream_cache
6738 SGIAUDIO = $_sgiaudio
6739 SUNAUDIO = $_sunaudio
6745 TV_BSDBT848 = $_tv_bsdbt848
6746 TV_DSHOW = $_tv_dshow
6750 UNRAR_EXEC = $_unrar_exec
6758 WIN32DLL = $_win32dll
6759 WIN32WAVEOUT = $_win32waveout
6760 WIN32_EMULATION = $_win32_emulation
6762 XANIM_CODECS = $_xanim
6764 XMMS_PLUGINS = $_xmms
6768 YUV4MPEG = $_yuv4mpeg
6772 FFMPEG_EVAL_API = $ffmpeg_eval_api
6773 FFMPEG_INTERNALS = $ffmpeg_internals
6774 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6778 YASMFLAGS = $YASMFLAGS
6780 CONFIG_VDPAU = $_vdpau
6781 CONFIG_ZLIB = $_zlib
6783 HAVE_PTHREADS = $_pthreads
6785 HAVE_W32THREADS = $_w32threads
6786 HAVE_YASM = $have_yasm
6790 #############################################################################
6792 ff_config_enable
() {
6793 list
=$
(echo $1 |
tr '[a-z]' '[A-Z]')
6794 item
=$
(echo $2 |
tr '[a-z]' '[A-Z]')
6796 test -z "$_nprefix" && _nprefix
='CONFIG'
6797 for part
in $list; do
6798 if $
(echo $item |
grep -q -E "(^| )$part($| )"); then
6799 echo "#define ${_nprefix}_$part 1"
6801 echo "#define ${_nprefix}_$part 0"
6806 echo "Creating config.h"
6808 /*----------------------------------------------------------------------------
6809 ** This file has been automatically generated by configure any changes in it
6810 ** will be lost when you run configure again.
6811 ** Instead of modifying definitions here, use the --enable/--disable options
6812 ** of the configure script! See ./configure --help for details.
6813 *---------------------------------------------------------------------------*/
6815 #ifndef MPLAYER_CONFIG_H
6816 #define MPLAYER_CONFIG_H
6818 /* Undefine this if you do not want to select mono audio (left or right)
6819 with a stereo MPEG layer 2/3 audio stream. The command line option
6820 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6821 right-only), with 0 being the default.
6823 #define CONFIG_FAKE_MONO 1
6825 /* set up audio OUTBURST. Do not change this! */
6826 #define OUTBURST 512
6828 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6830 #undef FAST_OSD_TABLE
6834 #define CONFIGURATION "$configuration"
6836 #define MPLAYER_DATADIR "$_datadir"
6837 #define MPLAYER_CONFDIR "$_confdir"
6838 #define MPLAYER_LOCALEDIR "$_localedir"
6842 /* definitions needed by included libraries */
6843 #define HAVE_INTTYPES_H 1
6845 #define HAVE_ERRNO_H 1
6846 /* libdvdcss + libdvdread */
6847 #define HAVE_LIMITS_H 1
6849 #define HAVE_UNISTD_H 1
6851 #define STDC_HEADERS 1
6852 #define HAVE_MEMCPY 1
6854 #define READ_CACHE_TRACE 0
6856 #define HAVE_DLFCN_H 1
6860 /* system headers */
6862 $def_alsa_asoundlib_h
6866 $def_mman_has_map_failed
6868 $def_sys_asoundlib_h
6869 $def_sys_soundcard_h
6877 /* system functions */
6900 /* system-specific features */
6913 $def_restrict_keyword
6918 /* configurable options */
6923 $def_runtime_cpudetection
6931 #define __CPU__ $iproc
6935 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6936 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6937 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6940 /* Blu-ray/DVD/VCD/CD */
6941 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6942 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6963 /* codec libraries */
6989 #define BINARY_CODECS_PATH "$_codecsdir"
6990 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6993 /* Audio output drivers */
7009 $def_ossaudio_devdsp
7010 $def_ossaudio_devmixer
7024 $def_ioctl_bt848_h_name
7025 $def_ioctl_meteor_h_name
7125 $def_ffmpeg_eval_api
7126 $def_ffmpeg_internals
7150 #define HAVE_INLINE_ASM 1
7152 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7154 #define HAVE_EBP_AVAILABLE 1
7156 #define HAVE_EBP_AVAILABLE 0
7159 #endif /* MPLAYER_CONFIG_H */
7162 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7163 cmp -s "$TMPH" config.h ||
mv -f "$TMPH" config.h
7165 #############################################################################
7169 Config files successfully generated by ./configure $configuration !
7171 Install prefix: $_prefix
7172 Data directory: $_datadir
7173 Config direct.: $_confdir
7175 Byte order: $_byte_order
7176 Optimizing for: $_optimizing
7179 Messages (in addition to English): $language_msg
7180 Manual pages: $language_man
7181 Documentation: $language_doc
7183 Enabled optional drivers:
7184 Input: $inputmodules
7185 Codecs: $codecmodules
7186 Audio output: $aomodules
7187 Video output: $vomodules
7189 Disabled optional drivers:
7190 Input: $noinputmodules
7191 Codecs: $nocodecmodules
7192 Audio output: $noaomodules
7193 Video output: $novomodules
7195 'config.h' and 'config.mak' contain your configuration options.
7196 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7197 compile *** DO NOT REPORT BUGS if you tweak these files ***
7199 'make' will now compile MPlayer and 'make install' will install it.
7200 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7205 if test "$_mtrr" = yes ; then
7206 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7212 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7213 operating system ($system_name). You may encounter a few files that cannot
7214 be played due to missing open source video/audio codec support.
7221 Check $TMPLOG if you wonder why an autodetection failed (make sure
7222 development headers/packages are installed).
7224 NOTE: The --enable-* parameters unconditionally force options on, completely
7225 skipping autodetection. This behavior is unlike what you may be used to from
7226 autoconf-based configure scripts that can decide to override you. This greater
7227 level of control comes at a price. You may have to provide the correct compiler
7228 and linker flags yourself.
7229 If you used one of these options (except --enable-runtime-cpudetection and
7230 similar ones that turn on internal features) and experience a compilation or
7231 linking failure, make sure you have passed the necessary compiler/linker flags
7234 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7238 if test "$warn_cflags" = yes; then
7241 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7244 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7246 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7247 To do so, execute 'CFLAGS= ./configure <options>'
7253 rm -rf "$mplayer_tmpdir"