vo_gl: fix 10 bit with Mesa drivers (Intel/Nouveau on Linux)
[mplayer.git] / configure
blob9221501729a6ccf086518163f0baabd2d7d36885
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, 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
39 export LC_ALL=C
41 # Store the configure line that was used
42 configuration="$*"
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
46 compile_check() {
47 source="$1"
48 shift
49 echo >> "$TMPLOG"
50 cat "$source" >> "$TMPLOG"
51 echo >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
55 TMPRES="$?"
56 echo >> "$TMPLOG"
57 echo >> "$TMPLOG"
58 return "$TMPRES"
61 cc_check() {
62 compile_check $TMPC $@
65 cxx_check() {
66 compile_check $TMPCPP $@ -lstdc++
69 cflag_check() {
70 cat > $TMPC << EOF
71 int main(void) { return 0; }
72 EOF
73 compile_check $TMPC $@
76 header_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { return 0; }
80 EOF
81 shift
82 compile_check $TMPC $@
85 return_check() {
86 cat > $TMPC << EOF
87 #include <$1>
88 int main(void) { return $2; }
89 EOF
90 shift 2
91 compile_check $TMPC $@
94 statement_check() {
95 cat > $TMPC << EOF
96 #include <$1>
97 int main(void) { $2; return 0; }
98 EOF
99 shift
100 shift
101 compile_check $TMPC $@
104 define_statement_check() {
105 cat > $TMPC << EOF
106 #define $1
107 #include <$2>
108 int main(void) { $3; return 0; }
110 shift 3
111 compile_check $TMPC $@
114 return_statement_check() {
115 cat > $TMPC << EOF
116 #include <$1>
117 int main(void) { $2; return $3; }
119 shift 3
120 compile_check $TMPC $@
123 inline_asm_check() {
124 cat > $TMPC << EOF
125 int main(void) { __asm__ volatile ($1); return 0; }
127 shift
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() {
135 cat > $TMPC << EOF
136 #include <$1>
137 #include <$2>
138 int main(void) { return 0; }
140 shift
141 shift
142 compile_check $TMPC $@
145 statement_check_broken() {
146 cat > $TMPC << EOF
147 #include <$1>
148 #include <$2>
149 int main(void) { $3; return 0; }
151 shift 3
152 compile_check $TMPC $@
155 yasm_check() {
156 echo >> "$TMPLOG"
157 cat "$TMPS" >> "$TMPLOG"
158 echo >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
160 rm -f "$TMPEXE"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
162 TMPRES="$?"
163 echo >> "$TMPLOG"
164 echo >> "$TMPLOG"
165 return "$TMPRES"
168 tmp_run() {
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
173 die () {
174 echo
175 echo "Error: $@" >&2
176 echo >&2
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
179 exit 1
182 # OS test booleans functions
183 issystem() {
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
209 x86_32() {
210 case "$host_arch" in
211 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
212 *) return 1 ;;
213 esac
216 x86_64() {
217 case "$host_arch" in
218 x86_64|amd64) return 0 ;;
219 *) return 1 ;;
220 esac
223 x86() {
224 x86_32 || x86_64
227 ppc() {
228 case "$host_arch" in
229 ppc|ppc64|powerpc|powerpc64) return 0;;
230 *) return 1;;
231 esac
234 alpha() {
235 case "$host_arch" in
236 alpha*) return 0;;
237 *) return 1;;
238 esac
241 arm() {
242 case "$host_arch" in
243 arm*) return 0;;
244 *) return 1;;
245 esac
248 # Use this before starting a check
249 echocheck() {
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
255 echores() {
256 if test "$res_comment" ; then
257 res_comment="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
261 echo "" >> "$TMPLOG"
262 echo "$@ $res_comment"
263 res_comment=""
265 #############################################################################
267 # Check how echo works in this /bin/sh
268 case $(echo -n) in
269 -n) _echo_n= _echo_c='\c' ;; # SysV echo
270 *) _echo_n='-n ' _echo_c= ;; # BSD echo
271 esac
273 msg_lang_all=''
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")
278 show_help(){
279 cat << EOF
280 Usage: $0 [OPTIONS]...
282 Configuration:
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
292 [PREFIX/etc/mplayer]
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]
297 Optional features:
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
341 parsing [disabled]
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]
352 Codecs:
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]
381 Video output:
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]
424 Audio output:
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]
442 Language options:
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
475 Advanced options:
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.
514 exit 0
515 } #show_help()
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
520 _mmx=auto
521 _3dnow=auto
522 _3dnowext=auto
523 _mmxext=auto
524 _sse=auto
525 _sse2=auto
526 _ssse3=auto
527 _cmov=auto
528 _fast_cmov=auto
529 _fast_clz=auto
530 _armv5te=auto
531 _armv6=auto
532 _armv6t2=auto
533 _armvfp=auto
534 neon=auto
535 _iwmmxt=auto
536 _mtrr=auto
537 _altivec=auto
538 _install=install
539 _ranlib=ranlib
540 _windres=windres
541 _cc=cc
542 _ar=ar
543 test "$CC" && _cc="$CC"
544 _as=auto
545 _nm=auto
546 _yasm=yasm
547 _runtime_cpudetection=no
548 _cross_compile=auto
549 _prefix="/usr/local"
550 ffmpeg=auto
551 ffmpeg_internals=no
552 _mplayer=yes
553 _x11=auto
554 _xshape=auto
555 _xss=auto
556 _dga1=auto
557 _dga2=auto
558 _xv=auto
559 _vdpau=auto
560 _sdl=auto
561 _kva=auto
562 _direct3d=auto
563 _directx=auto
564 _win32waveout=auto
565 _nas=auto
566 _png=auto
567 _mng=auto
568 _jpeg=auto
569 _pnm=yes
570 _md5sum=yes
571 _yuv4mpeg=yes
572 _gif=auto
573 _gl=auto
574 _ggi=auto
575 _ggiwmh=auto
576 _aa=auto
577 _caca=auto
578 _svga=auto
579 _vesa=auto
580 _fbdev=auto
581 _dvb=auto
582 _dxr3=auto
583 _ivtv=auto
584 _v4l2=auto
585 _iconv=auto
586 _langinfo=auto
587 _rtc=auto
588 _ossaudio=auto
589 _arts=auto
590 _esd=auto
591 _rsound=auto
592 _pulse=auto
593 _jack=auto
594 _kai=auto
595 _dart=auto
596 _openal=no
597 _libcdio=auto
598 _mad=auto
599 _tremor=auto
600 _libvorbis=auto
601 _speex=auto
602 _theora=auto
603 _mpg123=auto
604 _liba52=auto
605 _libdca=auto
606 _faad=auto
607 _ladspa=auto
608 _libbs2b=auto
609 _xmms=no
610 _vcd=auto
611 _bluray=auto
612 _dvdnav=auto
613 _dvdnavconfig=dvdnav-config
614 _dvdreadconfig=dvdread-config
615 _dvdread=auto
616 _dvdread_internal=auto
617 _libdvdcss_internal=auto
618 _xanim=auto
619 _real=auto
620 _live=auto
621 _nemesi=auto
622 _native_rtsp=yes
623 _xinerama=auto
624 _mga=auto
625 _xmga=auto
626 _vm=auto
627 _xf86keysym=auto
628 _sgiaudio=auto
629 _sunaudio=auto
630 _alsa=auto
631 _fastmemcpy=yes
632 _unrar_exec=auto
633 _win32dll=auto
634 _select=yes
635 _radio=no
636 _radio_capture=no
637 _radio_v4l=auto
638 _radio_v4l2=auto
639 _radio_bsdbt848=auto
640 _tv=yes
641 _tv_v4l1=auto
642 _tv_v4l2=auto
643 _tv_bsdbt848=auto
644 _tv_dshow=auto
645 _pvr=auto
646 networking=yes
647 _winsock2_h=auto
648 _smb=auto
649 _joystick=no
650 _xvid=auto
651 _libnut=auto
652 _lirc=auto
653 _lircc=auto
654 _apple_remote=auto
655 _apple_ir=auto
656 _termcap=auto
657 _termios=auto
658 _3dfx=no
659 _s3fb=no
660 _wii=no
661 _tdfxfb=no
662 _tdfxvid=no
663 _xvr100=auto
664 _tga=yes
665 _directfb=auto
666 _bl=no
667 #language=en
668 _shm=auto
669 _translation=no
670 _charset="UTF-8"
671 _crash_debug=no
672 _sighandler=yes
673 _libdv=auto
674 _cdparanoia=auto
675 _cddb=auto
676 _big_endian=auto
677 _bitmap_font=yes
678 _freetype=auto
679 _fontconfig=auto
680 _qtx=auto
681 _coreaudio=auto
682 _corevideo=auto
683 _quartz=auto
684 quicktime=auto
685 _macosx_finder=no
686 _macosx_bundle=auto
687 _sortsub=yes
688 _freetypeconfig='freetype-config'
689 _fribidi=auto
690 _enca=auto
691 _inet6=auto
692 _gethostbyname2=auto
693 _ftp=auto
694 _musepack=no
695 _vstream=auto
696 _pthreads=auto
697 _w32threads=auto
698 _ass=auto
699 _rpath=no
700 _asmalign_pot=auto
701 _stream_cache=yes
702 _priority=no
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"
707 need_shmem=yes
708 for ac_option do
709 case "$ac_option" in
710 --help|-help|-h)
711 show_help
713 --prefix=*)
714 _prefix=$(echo $ac_option | cut -d '=' -f 2)
716 --bindir=*)
717 _bindir=$(echo $ac_option | cut -d '=' -f 2)
719 --datadir=*)
720 _datadir=$(echo $ac_option | cut -d '=' -f 2)
722 --mandir=*)
723 _mandir=$(echo $ac_option | cut -d '=' -f 2)
725 --confdir=*)
726 _confdir=$(echo $ac_option | cut -d '=' -f 2)
728 --libdir=*)
729 _libdir=$(echo $ac_option | cut -d '=' -f 2)
731 --codecsdir=*)
732 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
734 --localedir=*)
735 _localedir=$(echo $ac_option | cut -d '=' -f 2)
738 --with-install=*)
739 _install=$(echo $ac_option | cut -d '=' -f 2 )
742 --with-sdl-config=*)
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)
755 --extra-cflags=*)
756 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
758 --extra-ldflags=*)
759 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
761 --extra-libs=*)
762 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
764 --extra-libs-mplayer=*)
765 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
768 --target=*)
769 _target=$(echo $ac_option | cut -d '=' -f 2)
771 --cc=*)
772 _cc=$(echo $ac_option | cut -d '=' -f 2)
774 --host-cc=*)
775 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
777 --as=*)
778 _as=$(echo $ac_option | cut -d '=' -f 2)
780 --nm=*)
781 _nm=$(echo $ac_option | cut -d '=' -f 2)
783 --yasm=*)
784 _yasm=$(echo $ac_option | cut -d '=' -f 2)
786 --ar=*)
787 _ar=$(echo $ac_option | cut -d '=' -f 2)
789 --ranlib=*)
790 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
792 --windres=*)
793 _windres=$(echo $ac_option | cut -d '=' -f 2)
795 --charset=*)
796 _charset=$(echo $ac_option | cut -d '=' -f 2)
798 --language-doc=*)
799 language_doc=$(echo $ac_option | cut -d '=' -f 2)
801 --language-man=*)
802 language_man=$(echo $ac_option | cut -d '=' -f 2)
804 --language-msg=*)
805 language_msg=$(echo $ac_option | cut -d '=' -f 2)
807 --language=*)
808 language=$(echo $ac_option | cut -d '=' -f 2)
811 --enable-static)
812 _ld_static='-static'
814 --disable-static)
815 _ld_static=''
817 --enable-profile)
818 _profile='-p'
820 --disable-profile)
821 _profile=
823 --enable-debug)
824 _debug='-g'
826 --enable-debug=*)
827 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
829 --disable-debug)
830 _debug=
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
1173 exit 1
1176 esac
1177 done
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
1189 # OS name
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)
1194 Haiku)
1195 system_name=BeOS
1197 IRIX*)
1198 system_name=IRIX
1200 GNU/kFreeBSD)
1201 system_name=FreeBSD
1203 HP-UX*)
1204 system_name=HP-UX
1206 [cC][yY][gG][wW][iI][nN]*)
1207 system_name=CYGWIN
1209 MINGW32*)
1210 system_name=MINGW32
1212 OS/2*)
1213 system_name=OS/2
1216 system_name="$system_name-UNKNOWN"
1218 esac
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'
1227 host_arch=ppc
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
1233 # recognize.
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 ;;
1253 esac
1255 esac
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 ;;
1271 esac
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
1281 _getch=getch2.c
1282 if freebsd ; then
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"
1292 if darwin; then
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
1300 if aix ; then
1301 extra_ldflags="$extra_ldflags -lC"
1304 if irix ; then
1305 _ranlib='ar -r'
1306 elif linux ; then
1307 _ranlib='true'
1310 if win32 ; then
1311 _exesuf=".exe"
1312 extra_cflags="$extra_cflags -fno-common"
1313 # -lwinmm is always needed for osdep/timer-win2.c
1314 extra_ldflags="$extra_ldflags -lwinmm"
1315 _pe_executable=yes
1316 _timer=timer-win2.c
1317 _priority=yes
1318 def_dos_paths="#define HAVE_DOS_PATHS 1"
1319 def_priority="#define CONFIG_PRIORITY 1"
1322 if mingw32 ; then
1323 _getch=getch2-win.c
1324 need_shmem=no
1327 if amigaos ; then
1328 _select=no
1329 _sighandler=no
1330 _stream_cache=no
1331 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1332 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1335 if qnx ; then
1336 extra_ldflags="$extra_ldflags -lph"
1339 if os2 ; then
1340 _exesuf=".exe"
1341 _getch=getch2-os2.c
1342 need_shmem=no
1343 _priority=yes
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
1350 done
1352 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1353 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1355 TMPLOG="config.log"
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"
1362 rm -f "$TMPLOG"
1363 echo configuration: $configuration > "$TMPLOG"
1364 echo >> "$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"
1376 cc_vendor=intel
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
1382 case $cc_version in
1384 cc_version="v. ?.??, bad"
1385 cc_fail=yes
1387 10.1|11.0|11.1)
1388 cc_version="$cc_version, ok"
1391 cc_version="$cc_version, bad"
1392 cc_fail=yes
1394 esac
1395 echores "$cc_version"
1396 else
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"
1402 cc_vendor=gnu
1403 cc_version=$($_cc -dumpversion 2>&1)
1404 case $cc_version in
1405 2.96*)
1406 cc_fail=yes
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)
1413 esac
1414 echores "$cc_version"
1415 break
1417 if $_cc -v 2>&1 | grep -q "clang"; then
1418 echocheck "$_cc version"
1419 cc_vendor=clang
1420 cc_version=$($_cc -dumpversion 2>&1)
1421 res_comment="experimental support only"
1422 echores "clang $cc_version"
1423 break
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"
1428 cc_vendor=sun
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"
1432 break
1434 done
1435 fi # icc
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 ."
1440 echo "yes"
1442 if test -z "$_target" && x86 ; then
1443 cat > $TMPC << EOF
1444 int main(void) {
1445 int test[(int)sizeof(char *)-7];
1446 return 0;
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
1457 _cross_compile=yes
1458 cflag_check "" && "$TMPEXE" && _cross_compile=no
1460 echores $_cross_compile
1462 if test $_cross_compile = yes; then
1463 tmp_run() {
1464 return 0
1466 test "$_host_cc" || _host_cc=cc
1469 echocheck "host cc"
1470 test "$_host_cc" || _host_cc=$_cc
1471 echores $_host_cc
1473 # ---
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..
1488 _cpuinfo="echo"
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
1504 _cpuinfo="hostinfo"
1505 elif aix; then
1506 # use 'lsattr' on AIX
1507 _cpuinfo="lsattr -E -l proc0 -a type"
1508 elif x86; then
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"
1515 if x86 ; then
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
1532 done
1534 echocheck "CPU vendor"
1535 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1537 echocheck "CPU type"
1538 echores "$pname"
1541 fi # test "$_runtime_cpudetection" = no
1543 if x86 && test "$_runtime_cpudetection" = no ; then
1544 extcheck() {
1545 if test "$1" = kernel_check ; then
1546 echocheck "kernel support of $2"
1547 cat > $TMPC <<EOF
1548 #include <stdlib.h>
1549 #include <signal.h>
1550 static void catch(int sig) { exit(1); }
1551 int main(void) {
1552 signal(SIGILL, catch);
1553 __asm__ volatile ("$3":::"memory"); return 0;
1557 if cc_check && tmp_run ; then
1558 eval _$2=yes
1559 echores "yes"
1560 _optimizing="$_optimizing $2"
1561 return 0
1562 else
1563 eval _$2=no
1564 echores "failed"
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!"
1567 return 1
1570 return 0
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
1584 _mtrr="yes"
1585 _optimizing="$_optimizing mtrr"
1587 echores "$_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)
1605 arch='x86'
1606 subarch='x86_32'
1607 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1608 iproc=486
1609 proc=i486
1612 if test "$_runtime_cpudetection" = no ; then
1613 case "$pvendor" in
1614 AuthenticAMD)
1615 case "$pfamily" in
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
1621 proc=k6-3
1622 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1623 proc=geode
1624 elif test "$pmodel" -ge 8; then
1625 proc=k6-2
1626 elif test "$pmodel" -ge 6; then
1627 proc=k6
1628 else
1629 proc=i586
1632 6) iproc=686
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.
1638 proc=athlon-xp
1639 else
1640 # Again, gcc treats athlon and athlon-tbird similarly.
1641 proc=athlon
1644 15) iproc=686
1645 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1646 # caught and remedied in the optimization tests below.
1647 proc=k8
1650 *) proc=amdfam10 iproc=686
1651 test $_fast_clz = "auto" && _fast_clz=yes
1653 esac
1655 GenuineIntel)
1656 case "$pfamily" in
1657 3) proc=i386 iproc=386 ;;
1658 4) proc=i486 iproc=486 ;;
1659 5) iproc=586
1660 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1661 proc=pentium-mmx # 4 is desktop, 8 is mobile
1662 else
1663 proc=i586
1666 6) iproc=686
1667 if test "$pmodel" -ge 15; then
1668 proc=core2
1669 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1670 proc=pentium-m
1671 elif test "$pmodel" -ge 7; then
1672 proc=pentium3
1673 elif test "$pmodel" -ge 3; then
1674 proc=pentium2
1675 else
1676 proc=i686
1678 test $_fast_clz = "auto" && _fast_clz=yes
1680 15) iproc=686
1681 # A nocona in 32-bit mode has no more capabilities than a prescott.
1682 if test "$pmodel" -ge 3; then
1683 proc=prescott
1684 else
1685 proc=pentium4
1686 test $_fast_clz = "auto" && _fast_clz=yes
1688 test $_fast_cmov = "auto" && _fast_cmov=no
1690 *) proc=prescott iproc=686 ;;
1691 esac
1693 CentaurHauls)
1694 case "$pfamily" in
1695 5) iproc=586
1696 if test "$pmodel" -ge 8; then
1697 proc=winchip2
1698 elif test "$pmodel" -ge 4; then
1699 proc=winchip-c6
1700 else
1701 proc=i586
1704 6) iproc=686
1705 if test "$pmodel" -ge 9; then
1706 proc=c3-2
1707 else
1708 proc=c3
1709 iproc=586
1712 *) proc=i686 iproc=i686 ;;
1713 esac
1715 unknown)
1716 case "$pfamily" in
1717 3) proc=i386 iproc=386 ;;
1718 4) proc=i486 iproc=486 ;;
1719 *) proc=i586 iproc=586 ;;
1720 esac
1723 proc=i586 iproc=586 ;;
1724 esac
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
1736 cpuopt=-mtune
1737 else
1738 cpuopt=-mcpu
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
1761 proc=i586-i686
1762 else
1763 proc=i586
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."
1790 _mcpu=""
1791 _march=""
1792 _optimizing=""
1793 elif test "$proc" = "i586-i686"; then
1794 _march="-march=i586"
1795 _mcpu="$cpuopt=i686"
1796 _optimizing="$proc"
1797 else
1798 _march="-march=$proc"
1799 _mcpu="$cpuopt=$proc"
1800 _optimizing="$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"
1818 else
1819 _march="-march=$host_arch"
1820 _mcpu="$cpuopt=$host_arch"
1823 proc="$host_arch"
1825 case "$proc" in
1826 i386) iproc=386 ;;
1827 i486) iproc=486 ;;
1828 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1829 i686|athlon*|pentium*) iproc=686 ;;
1830 *) iproc=586 ;;
1831 esac
1834 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1835 _fast_cmov="yes"
1836 else
1837 _fast_cmov="no"
1839 test $_fast_clz = "auto" && _fast_clz=yes
1841 echores "$proc"
1844 ia64)
1845 arch='ia64'
1846 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1847 iproc='ia64'
1850 x86_64|amd64)
1851 arch='x86'
1852 subarch='x86_64'
1853 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1854 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1855 iproc='x86_64'
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
1859 cpuopt=-mtune
1860 else
1861 cpuopt=-mcpu
1863 if test "$_runtime_cpudetection" = no ; then
1864 case "$pvendor" in
1865 AuthenticAMD)
1866 case "$pfamily" in
1867 15) proc=k8
1868 test $_fast_clz = "auto" && _fast_clz=no
1870 *) proc=amdfam10;;
1871 esac
1873 GenuineIntel)
1874 case "$pfamily" in
1875 6) proc=core2;;
1877 # 64-bit prescotts exist, but as far as GCC is concerned they
1878 # have the same capabilities as a nocona.
1879 proc=nocona
1880 test $_fast_cmov = "auto" && _fast_cmov=no
1881 test $_fast_clz = "auto" && _fast_clz=no
1883 esac
1886 proc=error;;
1887 esac
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."
1927 _mcpu=""
1928 _march=""
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=""
1939 _optimizing="$proc"
1940 test $_fast_cmov = "auto" && _fast_cmov=yes
1941 test $_fast_clz = "auto" && _fast_clz=yes
1943 echores "$proc"
1946 sparc|sparc64)
1947 arch='sparc'
1948 iproc='sparc'
1949 if test "$host_arch" = "sparc64" ; then
1950 _vis='yes'
1951 proc='ultrasparc'
1952 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1953 elif sunos ; then
1954 echocheck "CPU type"
1955 karch=$(uname -m)
1956 case "$(echo $karch)" in
1957 sun4) proc=v7 ;;
1958 sun4c) proc=v7 ;;
1959 sun4d) proc=v8 ;;
1960 sun4m) proc=v8 ;;
1961 sun4u) proc=ultrasparc _vis='yes' ;;
1962 sun4v) proc=v9 ;;
1963 *) proc=v8 ;;
1964 esac
1965 echores "$proc"
1966 else
1967 proc=v8
1969 _mcpu="-mcpu=$proc"
1970 _optimizing="$proc"
1973 arm*)
1974 arch='arm'
1975 iproc='arm'
1978 avr32)
1979 arch='avr32'
1980 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1981 iproc='avr32'
1982 test $_fast_clz = "auto" && _fast_clz=yes
1985 sh|sh4)
1986 arch='sh4'
1987 iproc='sh4'
1990 ppc|ppc64|powerpc|powerpc64)
1991 arch='ppc'
1992 def_dcbzl='#define HAVE_DCBZL 0'
1993 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1994 iproc='ppc'
1996 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
1997 subarch='ppc64'
1998 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2000 echocheck "CPU type"
2001 case $system_name in
2002 Linux)
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
2008 Darwin)
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
2015 NetBSD)
2016 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2017 case $cc_version in
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
2025 esac
2027 AIX)
2028 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2030 esac
2031 if test "$_altivec" = yes; then
2032 echores "$proc altivec"
2033 else
2034 _altivec=no
2035 echores "$proc"
2038 echocheck "GCC & CPU optimization abilities"
2040 if test -n "$proc"; then
2041 case "$proc" in
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' ;;
2051 *) ;;
2052 esac
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
2055 case "$proc" in
2056 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2057 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2058 *) ;;
2059 esac
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
2063 case "$proc" in
2064 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2065 def_dcbzl='#define HAVE_DCBZL 1' ;;
2066 *) ;;
2067 esac
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
2071 case "$proc" in
2072 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2073 *) ;;
2074 esac
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
2078 case "$proc" in
2079 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2080 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2081 *) ;;
2082 esac
2084 # gcc 4.0 and up supports POWER5
2085 if test "$_cc_major" -ge "4"; then
2086 case "$proc" in
2087 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2088 *) ;;
2089 esac
2093 if test -n "$_mcpu"; then
2094 _optimizing=$(echo $_mcpu | cut -c 8-)
2095 echores "$_optimizing"
2096 else
2097 echores "none"
2100 test $_fast_clz = "auto" && _fast_clz=yes
2104 alpha*)
2105 arch='alpha'
2106 iproc='alpha'
2107 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2109 echocheck "CPU type"
2110 cat > $TMPC << EOF
2111 int main(void) {
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);
2116 return 0;
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";;
2129 esac
2130 echores "$proc"
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
2139 _mcpu="-mcpu=$proc"
2140 echores "$proc"
2142 test $_fast_clz = "auto" && _fast_clz=yes
2144 _optimizing="$proc"
2147 mips*)
2148 arch='mips'
2149 iproc='mips'
2151 if irix ; then
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' ;;
2161 esac
2162 # gcc < 3.x does not support -mtune.
2163 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2164 _mcpu=''
2166 echores "$proc"
2169 test $_fast_clz = "auto" && _fast_clz=yes
2173 hppa)
2174 arch='pa_risc'
2175 iproc='PA-RISC'
2178 s390)
2179 arch='s390'
2180 iproc='390'
2183 s390x)
2184 arch='s390x'
2185 iproc='390x'
2188 vax)
2189 arch='vax'
2190 iproc='vax'
2193 xtensa)
2194 arch='xtensa'
2195 iproc='xtensa'
2198 generic)
2199 arch='generic'
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
2210 if x86 ; then
2211 test "$_cmov" != no && _cmov=yes
2212 x86_32 && _cmov=no
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
2222 if ppc; then
2223 _altivec=yes
2228 # endian testing
2229 echocheck "byte order"
2230 if test "$_big_endian" = auto ; then
2231 cat > $TMPC <<EOF
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; }
2237 if cc_check ; then
2238 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2239 _big_endian=yes
2240 else
2241 _big_endian=no
2243 else
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'
2251 else
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"
2260 cat > $TMPC << EOF
2261 int ff_extern;
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/
2284 cat > $TMPC << EOF
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
2296 _install_strip="-s"
2297 if test "$_profile" != "" || test "$_debug" != "" ; then
2298 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2299 WARNFLAGS="-W -Wall"
2300 _install_strip=
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"
2313 else
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"
2319 else
2320 warn_cflags=yes
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
2327 # for C++.
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"
2333 else
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"
2343 warn_cflags=yes
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"
2349 warn_cflags=yes
2354 if x86_32 ; then
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'
2361 echo 'nop' > $TMPS
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
2396 echores "ok"
2397 else
2398 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2399 echores "failed"
2400 die "obsolete binutils version"
2403 fi #if x86_32
2406 echocheck "PIC"
2407 pic=no
2408 cat > $TMPC << EOF
2409 int main(void) {
2410 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2411 #error PIC not enabled
2412 #endif
2413 return 0;
2416 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2417 echores $pic
2420 if x86 ; then
2422 echocheck ".align is a power of two"
2423 if test "$_asmalign_pot" = auto ; then
2424 _asmalign_pot=no
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"'
2429 else
2430 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2432 echores $_asmalign_pot
2435 echocheck "ebx availability"
2436 ebx_available=no
2437 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2438 cat > $TMPC << EOF
2439 int main(void) {
2440 int x;
2441 __asm__ volatile(
2442 "xor %0, %0"
2443 :"=b"(x)
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");
2449 return 0;
2452 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2453 echores $ebx_available
2456 echocheck "yasm"
2457 if test -z "$YASMFLAGS" ; then
2458 if darwin ; then
2459 x86_64 && objformat="macho64" || objformat="macho"
2460 elif win32 ; then
2461 objformat="win32"
2462 else
2463 objformat="elf"
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" ;;
2472 esac
2473 else
2474 warn_cflags=yes
2477 echo "pabsw xmm0, xmm0" > $TMPS
2478 yasm_check || _yasm=""
2479 if test $_yasm ; then
2480 def_yasm='#define HAVE_YASM 1'
2481 have_yasm="yes"
2482 echores "$_yasm"
2483 else
2484 def_yasm='#define HAVE_YASM 0'
2485 have_yasm="no"
2486 echores "no"
2489 echocheck "bswap"
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
2493 echores "$bswap"
2494 fi #if x86
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>'
2509 else
2510 if $(cflag_check -faltivec) ; then
2511 _altivec_gcc_flags="-faltivec"
2512 else
2513 _altivec=no
2514 _altivec_gcc_flags="none, AltiVec disabled"
2518 echores "$_altivec_gcc_flags"
2520 # check if the compiler supports braces for vector declarations
2521 cat > $TMPC << EOF
2522 $inc_altivec_h
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"
2540 if ppc ; then
2541 def_xform_asm='#define HAVE_XFORM_ASM 0'
2542 xform_asm=no
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"
2549 if arm ; then
2550 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2551 if test $_armv5te = "auto" ; then
2552 _armv5te=no
2553 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2555 echores "$_armv5te"
2557 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2559 echocheck "ARMv6 (SIMD instructions)"
2560 if test $_armv6 = "auto" ; then
2561 _armv6=no
2562 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2564 echores "$_armv6"
2566 echocheck "ARMv6t2 (SIMD instructions)"
2567 if test $_armv6t2 = "auto" ; then
2568 _armv6t2=no
2569 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2571 echores "$_armv6t2"
2573 echocheck "ARM VFP"
2574 if test $_armvfp = "auto" ; then
2575 _armvfp=no
2576 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2578 echores "$_armvfp"
2580 echocheck "ARM NEON"
2581 if test $neon = "auto" ; then
2582 neon=no
2583 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2585 echores "$neon"
2587 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2588 if test $_iwmmxt = "auto" ; then
2589 _iwmmxt=no
2590 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2592 echores "$_iwmmxt"
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
2618 _k_verc_problem=no
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;;
2625 esac
2626 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2627 _k_verc_fail=yes
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)
2637 else
2638 echores "$kernel_version, ok"
2642 ######################
2643 # MAIN TESTS GO HERE #
2644 ######################
2647 echocheck "-lposix"
2648 if cflag_check -lposix ; then
2649 extra_ldflags="$extra_ldflags -lposix"
2650 echores "yes"
2651 else
2652 echores "no"
2655 echocheck "-lm"
2656 if cflag_check -lm ; then
2657 _ld_lm="-lm"
2658 echores "yes"
2659 else
2660 _ld_lm=""
2661 echores "no"
2665 echocheck "langinfo"
2666 if test "$_langinfo" = auto ; then
2667 _langinfo=no
2668 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2670 if test "$_langinfo" = yes ; then
2671 def_langinfo='#define HAVE_LANGINFO 1'
2672 else
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"
2681 else
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
2702 language_msg=""
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"
2710 done
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"
2716 done
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"
2722 done
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'
2731 else
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'
2740 else
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
2749 if cc_check; then
2750 def_restrict_keyword=$restrict_keyword
2751 break;
2753 done
2754 if [ -n "$def_restrict_keyword" ]; then
2755 echores "$def_restrict_keyword"
2756 else
2757 echores "none"
2759 # Avoid infinite recursion loop ("#define restrict restrict")
2760 if [ "$def_restrict_keyword" != "restrict" ]; then
2761 def_restrict_keyword="#define restrict $def_restrict_keyword"
2762 else
2763 def_restrict_keyword=""
2767 echocheck "__builtin_expect"
2768 # GCC branch prediction hint
2769 cat > $TMPC << EOF
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); }
2776 _builtin_expect=no
2777 cc_check && _builtin_expect=yes
2778 if test "$_builtin_expect" = yes ; then
2779 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2780 else
2781 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2783 echores "$_builtin_expect"
2786 echocheck "kstat"
2787 _kstat=no
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"
2792 else
2793 def_kstat="#undef HAVE_LIBKSTAT"
2795 echores "$_kstat"
2798 echocheck "posix4"
2799 # required for nanosleep on some systems
2800 _posix4=no
2801 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2802 if test "$_posix4" = yes ; then
2803 extra_ldflags="$extra_ldflags -lposix4"
2805 echores "$_posix4"
2807 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2808 echocheck $func
2809 eval _$func=no
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\""
2813 echores yes
2814 else
2815 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2816 echores no
2818 done
2821 echocheck "mkstemp"
2822 _mkstemp=no
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'
2826 else
2827 def_mkstemp='#define HAVE_MKSTEMP 0'
2829 echores "$_mkstemp"
2832 echocheck "nanosleep"
2833 _nanosleep=no
2834 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2835 if test "$_nanosleep" = yes ; then
2836 def_nanosleep='#define HAVE_NANOSLEEP 1'
2837 else
2838 def_nanosleep='#undef HAVE_NANOSLEEP'
2840 echores "$_nanosleep"
2843 echocheck "socklib"
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):
2846 cat > $TMPC << EOF
2847 #include <netdb.h>
2848 #include <sys/socket.h>
2849 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2851 _socklib=no
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
2854 done
2855 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2856 if test $_winsock2_h = auto ; then
2857 _winsock2_h=no
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"
2861 echores "$_socklib"
2864 if test $_winsock2_h = yes ; then
2865 _ld_sock="-lws2_32"
2866 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2867 else
2868 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2872 echocheck "arpa/inet.h"
2873 arpa_inet_h=no
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'
2882 inet_pton=no
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
2885 done
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'
2895 inet_aton=no
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
2898 done
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"
2907 _socklen_t=no
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
2910 done
2911 if test "$_socklen_t" = yes ; then
2912 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2913 else
2914 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2916 echores "$_socklen_t"
2919 echocheck "closesocket()"
2920 _closesocket=no
2921 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2922 if test "$_closesocket" = yes ; then
2923 def_closesocket='#define HAVE_CLOSESOCKET 1'
2924 else
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"
2938 else
2939 noinputmodules="networking $noinputmodules"
2940 def_network='#define CONFIG_NETWORK 0'
2941 def_networking='#undef CONFIG_NETWORKING'
2943 echores "$networking"
2946 echocheck "inet6"
2947 if test "$_inet6" = auto ; then
2948 cat > $TMPC << EOF
2949 #include <sys/types.h>
2950 #if !defined(_WIN32)
2951 #include <sys/socket.h>
2952 #include <netinet/in.h>
2953 #else
2954 #include <ws2tcpip.h>
2955 #endif
2956 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2958 _inet6=no
2959 if cc_check $_ld_sock ; then
2960 _inet6=yes
2963 if test "$_inet6" = yes ; then
2964 def_inet6='#define HAVE_AF_INET6 1'
2965 else
2966 def_inet6='#undef HAVE_AF_INET6'
2968 echores "$_inet6"
2971 echocheck "gethostbyname2"
2972 if test "$_gethostbyname2" = auto ; then
2973 cat > $TMPC << EOF
2974 #include <sys/types.h>
2975 #include <sys/socket.h>
2976 #include <netdb.h>
2977 int main(void) { gethostbyname2("", AF_INET); return 0; }
2979 _gethostbyname2=no
2980 if cc_check ; then
2981 _gethostbyname2=yes
2984 if test "$_gethostbyname2" = yes ; then
2985 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
2986 else
2987 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
2989 echores "$_gethostbyname2"
2992 echocheck "inttypes.h (required)"
2993 _inttypes=no
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."
3002 else
3003 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3008 echocheck "malloc.h"
3009 _malloc=no
3010 header_check malloc.h && _malloc=yes
3011 if test "$_malloc" = yes ; then
3012 def_malloc_h='#define HAVE_MALLOC_H 1'
3013 else
3014 def_malloc_h='#define HAVE_MALLOC_H 0'
3016 echores "$_malloc"
3019 echocheck "memalign()"
3020 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3021 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3022 _memalign=no
3023 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3024 if test "$_memalign" = yes ; then
3025 def_memalign='#define HAVE_MEMALIGN 1'
3026 else
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()"
3035 posix_memalign=no
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"
3043 _alloca=no
3044 statement_check alloca.h 'alloca(0)' && _alloca=yes
3045 if cc_check ; then
3046 def_alloca_h='#define HAVE_ALLOCA_H 1'
3047 else
3048 def_alloca_h='#undef HAVE_ALLOCA_H'
3050 echores "$_alloca"
3053 echocheck "fastmemcpy"
3054 if test "$_fastmemcpy" = yes ; then
3055 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3056 else
3057 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3059 echores "$_fastmemcpy"
3062 echocheck "mman.h"
3063 _mman=no
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'
3067 else
3068 def_mman_h='#undef HAVE_SYS_MMAN_H'
3069 os2 && need_mmap=yes
3071 echores "$_mman"
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=''
3077 else
3078 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3081 echocheck "dynamic loader"
3082 _dl=no
3083 for _ld_tmp in "" "-ldl"; do
3084 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3085 done
3086 if test "$_dl" = yes ; then
3087 def_dl='#define HAVE_LIBDL 1'
3088 else
3089 def_dl='#undef HAVE_LIBDL'
3091 echores "$_dl"
3094 def_threads='#define HAVE_THREADS 0'
3096 echocheck "pthread"
3097 if linux ; then
3098 THREAD_CFLAGS=-D_REENTRANT
3099 elif freebsd || netbsd || openbsd || bsdos ; then
3100 THREAD_CFLAGS=-D_THREAD_SAFE
3102 if test "$_pthreads" = auto ; then
3103 cat > $TMPC << EOF
3104 #include <pthread.h>
3105 static void *func(void *arg) { return arg; }
3106 int main(void) {
3107 pthread_t tid;
3108 #ifdef PTW32_STATIC_LIB
3109 pthread_win32_process_attach_np();
3110 pthread_win32_thread_attach_np();
3111 #endif
3112 return pthread_create (&tid, 0, func, 0) != 0;
3115 _pthreads=no
3116 if ! hpux ; then
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
3120 done
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"
3132 else
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"
3140 if cygwin ; then
3141 if test "$_pthreads" = yes ; then
3142 def_pthread_cache="#define PTHREAD_CACHE 1"
3143 else
3144 _stream_cache=no
3145 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3149 echocheck "w32threads"
3150 if test "$_pthreads" = yes ; then
3151 res_comment="using pthread instead"
3152 _w32threads=no
3154 if test "$_w32threads" = auto ; then
3155 _w32threads=no
3156 mingw32 && _w32threads=yes
3158 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3159 echores "$_w32threads"
3161 echocheck "rpath"
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&/')"
3165 done
3166 extra_ldflags=$tmp
3168 echores "$_rpath"
3170 echocheck "iconv"
3171 if test "$_iconv" = auto ; then
3172 cat > $TMPC << EOF
3173 #include <stdio.h>
3174 #include <unistd.h>
3175 #include <iconv.h>
3176 #define INBUFSIZE 1024
3177 #define OUTBUFSIZE 4096
3179 char inbuffer[INBUFSIZE];
3180 char outbuffer[OUTBUFSIZE];
3182 int main(void) {
3183 size_t numread;
3184 iconv_t icdsc;
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)
3194 != (size_t)(-1)) {
3195 write(1, outbuffer, OUTBUFSIZE - outleft);
3198 if (iconv_close(icdsc) == -1)
3201 return 0;
3204 _iconv=no
3205 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3206 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3207 _iconv=yes && break
3208 done
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'
3215 else
3216 def_iconv='#undef CONFIG_ICONV'
3218 echores "$_iconv"
3221 echocheck "soundcard.h"
3222 _soundcard_h=no
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
3228 done
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'
3233 else
3234 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3237 echores "$_soundcard_h"
3240 echocheck "sys/videoio.h"
3241 sys_videoio_h=no
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"
3249 _dvdio=no
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'
3254 else
3255 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3257 echores "$_dvdio"
3260 echocheck "sys/cdio.h"
3261 _cdio=no
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'
3266 else
3267 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3269 echores "$_cdio"
3272 echocheck "linux/cdrom.h"
3273 _cdrom=no
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'
3277 else
3278 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3280 echores "$_cdrom"
3283 echocheck "dvd.h"
3284 _dvd=no
3285 header_check dvd.h && _dvd=yes
3286 if test "$_dvd" = yes ; then
3287 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3288 else
3289 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3291 echores "$_dvd"
3294 if bsdos; then
3295 echocheck "BSDI dvd.h"
3296 _bsdi_dvd=no
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'
3300 else
3301 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3303 echores "$_bsdi_dvd"
3304 fi #if bsdos
3307 if hpux; then
3308 # also used by AIX, but AIX does not support VCD and/or libdvdread
3309 echocheck "HP-UX SCSI header"
3310 _hpux_scsi_h=no
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'
3314 else
3315 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3317 echores "$_hpux_scsi_h"
3318 fi #if hpux
3321 if sunos; then
3322 echocheck "userspace SCSI headers (Solaris)"
3323 _sol_scsi_h=no
3324 header_check sys/scsi/scsi_types.h &&
3325 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3326 _sol_scsi_h=yes
3327 if test "$_sol_scsi_h" = yes ; then
3328 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3329 else
3330 def_sol_scsi_h='#undef SOLARIS_USCSI'
3332 echores "$_sol_scsi_h"
3333 fi #if sunos
3336 echocheck "termcap"
3337 if test "$_termcap" = auto ; then
3338 _termcap=no
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
3342 done
3344 if test "$_termcap" = yes ; then
3345 def_termcap='#define HAVE_TERMCAP 1'
3346 test $_ld_tmp && res_comment="using $_ld_tmp"
3347 else
3348 def_termcap='#undef HAVE_TERMCAP'
3350 echores "$_termcap"
3353 echocheck "termios"
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
3358 _termios=no
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
3362 done
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'
3369 else
3370 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3373 echores "$_termios"
3376 echocheck "shm"
3377 if test "$_shm" = auto ; then
3378 _shm=no
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'
3383 else
3384 def_shm='#undef HAVE_SHM'
3386 echores "$_shm"
3389 echocheck "strsep()"
3390 _strsep=no
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'
3394 need_strsep=no
3395 else
3396 def_strsep='#undef HAVE_STRSEP'
3397 need_strsep=yes
3399 echores "$_strsep"
3402 echocheck "vsscanf()"
3403 cat > $TMPC << EOF
3404 #define _ISOC99_SOURCE
3405 #include <stdarg.h>
3406 #include <stdio.h>
3407 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3409 _vsscanf=no
3410 cc_check && _vsscanf=yes
3411 if test "$_vsscanf" = yes ; then
3412 def_vsscanf='#define HAVE_VSSCANF 1'
3413 need_vsscanf=no
3414 else
3415 def_vsscanf='#undef HAVE_VSSCANF'
3416 need_vsscanf=yes
3418 echores "$_vsscanf"
3421 echocheck "swab()"
3422 _swab=no
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'
3427 need_swab=no
3428 else
3429 def_swab='#undef HAVE_SWAB'
3430 need_swab=yes
3432 echores "$_swab"
3434 echocheck "POSIX select()"
3435 cat > $TMPC << EOF
3436 #include <stdio.h>
3437 #include <stdlib.h>
3438 #include <sys/types.h>
3439 #include <string.h>
3440 #include <sys/time.h>
3441 #include <unistd.h>
3442 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3444 _posix_select=no
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'
3458 echores "$_select"
3461 echocheck "gettimeofday()"
3462 _gettimeofday=no
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
3467 else
3468 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3469 need_gettimeofday=yes
3471 echores "$_gettimeofday"
3474 echocheck "glob()"
3475 _glob=no
3476 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3477 need_glob=no
3478 if test "$_glob" = yes ; then
3479 def_glob='#define HAVE_GLOB 1'
3480 else
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
3487 echores "$_glob"
3490 echocheck "setenv()"
3491 _setenv=no
3492 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3493 if test "$_setenv" = yes ; then
3494 def_setenv='#define HAVE_SETENV 1'
3495 need_setenv=no
3496 else
3497 def_setenv='#undef HAVE_SETENV'
3498 need_setenv=yes
3500 echores "$_setenv"
3503 echocheck "setmode()"
3504 _setmode=no
3505 def_setmode='#define HAVE_SETMODE 0'
3506 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3507 echores "$_setmode"
3510 if sunos; then
3511 echocheck "sysi86()"
3512 _sysi86=no
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'
3517 else
3518 def_sysi86='#undef HAVE_SYSI86'
3520 echores "$_sysi86"
3521 fi #if sunos
3524 echocheck "sys/sysinfo.h"
3525 _sys_sysinfo=no
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'
3529 else
3530 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3532 echores "$_sys_sysinfo"
3535 if darwin; then
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
3556 _apple_remote=no
3557 cat > $TMPC <<EOF
3558 #include <stdio.h>
3559 #include <IOKit/IOCFPlugIn.h>
3560 int main(void) {
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)) {
3576 return 1;
3578 return 0;
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"
3586 else
3587 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3589 echores "$_apple_remote"
3591 fi #if darwin
3593 if linux; then
3595 echocheck "Apple IR"
3596 if test "$_apple_ir" = auto ; then
3597 _apple_ir=no
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'
3602 else
3603 def_apple_ir='#undef CONFIG_APPLE_IR'
3605 echores "$_apple_ir"
3606 fi #if linux
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"
3614 echores "yes"
3615 else
3616 _pkg_config=false
3617 echores "no"
3621 echocheck "Samba support (libsmbclient)"
3622 if test "$_smb" = yes; then
3623 extra_ldflags="$extra_ldflags -lsmbclient"
3625 if test "$_smb" = auto; then
3626 _smb=no
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
3630 done
3633 if test "$_smb" = yes; then
3634 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3635 inputmodules="smb $inputmodules"
3636 else
3637 def_smb="#undef CONFIG_LIBSMBCLIENT"
3638 noinputmodules="smb $noinputmodules"
3640 echores "$_smb"
3643 #########
3644 # VIDEO #
3645 #########
3648 echocheck "tdfxfb"
3649 if test "$_tdfxfb" = yes ; then
3650 def_tdfxfb='#define CONFIG_TDFXFB 1'
3651 vomodules="tdfxfb $vomodules"
3652 else
3653 def_tdfxfb='#undef CONFIG_TDFXFB'
3654 novomodules="tdfxfb $novomodules"
3656 echores "$_tdfxfb"
3658 echocheck "s3fb"
3659 if test "$_s3fb" = yes ; then
3660 def_s3fb='#define CONFIG_S3FB 1'
3661 vomodules="s3fb $vomodules"
3662 else
3663 def_s3fb='#undef CONFIG_S3FB'
3664 novomodules="s3fb $novomodules"
3666 echores "$_s3fb"
3668 echocheck "wii"
3669 if test "$_wii" = yes ; then
3670 def_wii='#define CONFIG_WII 1'
3671 vomodules="wii $vomodules"
3672 else
3673 def_wii='#undef CONFIG_WII'
3674 novomodules="wii $novomodules"
3676 echores "$_wii"
3678 echocheck "tdfxvid"
3679 if test "$_tdfxvid" = yes ; then
3680 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3681 vomodules="tdfx_vid $vomodules"
3682 else
3683 def_tdfxvid='#undef CONFIG_TDFX_VID'
3684 novomodules="tdfx_vid $novomodules"
3686 echores "$_tdfxvid"
3688 echocheck "xvr100"
3689 if test "$_xvr100" = auto ; then
3690 cat > $TMPC << EOF
3691 #include <unistd.h>
3692 #include <sys/fbio.h>
3693 #include <sys/visual_io.h>
3694 int main(void) {
3695 struct vis_identifier ident;
3696 struct fbgattr attr;
3697 ioctl(0, VIS_GETIDENTIFIER, &ident);
3698 ioctl(0, FBIOGATTR, &attr);
3699 return 0;
3702 _xvr100=no
3703 cc_check && _xvr100=yes
3705 if test "$_xvr100" = yes ; then
3706 def_xvr100='#define CONFIG_XVR100 1'
3707 vomodules="xvr100 $vomodules"
3708 else
3709 def_tdfxvid='#undef CONFIG_XVR100'
3710 novomodules="xvr100 $novomodules"
3712 echores "$_xvr100"
3714 echocheck "tga"
3715 if test "$_tga" = yes ; then
3716 def_tga='#define CONFIG_TGA 1'
3717 vomodules="tga $vomodules"
3718 else
3719 def_tga='#undef CONFIG_TGA'
3720 novomodules="tga $novomodules"
3722 echores "$_tga"
3725 echocheck "md5sum support"
3726 if test "$_md5sum" = yes; then
3727 def_md5sum="#define CONFIG_MD5SUM 1"
3728 vomodules="md5sum $vomodules"
3729 else
3730 def_md5sum="#undef CONFIG_MD5SUM"
3731 novomodules="md5sum $novomodules"
3733 echores "$_md5sum"
3736 echocheck "yuv4mpeg support"
3737 if test "$_yuv4mpeg" = yes; then
3738 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3739 vomodules="yuv4mpeg $vomodules"
3740 else
3741 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3742 novomodules="yuv4mpeg $novomodules"
3744 echores "$_yuv4mpeg"
3747 echocheck "bl"
3748 if test "$_bl" = yes ; then
3749 def_bl='#define CONFIG_BL 1'
3750 vomodules="bl $vomodules"
3751 else
3752 def_bl='#undef CONFIG_BL'
3753 novomodules="bl $novomodules"
3755 echores "$_bl"
3758 echocheck "DirectFB"
3759 if test "$_directfb" = auto ; then
3760 _directfb=no
3761 cat > $TMPC << EOF
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."
3766 #endif
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
3772 done
3774 if test "$_directfb" = yes ; then
3775 def_directfb='#define CONFIG_DIRECTFB 1'
3776 vomodules="directfb dfbmga $vomodules"
3777 libs_mplayer="$libs_mplayer -ldirectfb"
3778 else
3779 def_directfb='#undef CONFIG_DIRECTFB'
3780 novomodules="directfb dfbmga $novomodules"
3782 echores "$_directfb"
3785 echocheck "X11 headers presence"
3786 _x11_headers="no"
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
3790 _x11_headers="yes"
3791 res_comment=""
3792 break
3794 done
3795 if test $_cross_compile = no; then
3796 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/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"
3800 _x11_headers="yes"
3801 res_comment="using $I"
3802 break
3804 done
3806 echores "$_x11_headers"
3809 echocheck "X11"
3810 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3811 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3812 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3813 -L/usr/lib ; do
3814 if netbsd; then
3815 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3816 else
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
3821 done
3823 if test "$_x11" = yes ; then
3824 def_x11='#define CONFIG_X11 1'
3825 vomodules="x11 xover $vomodules"
3826 else
3827 _x11=no
3828 def_x11='#undef CONFIG_X11'
3829 novomodules="x11 $novomodules"
3830 res_comment="check if the dev(el) packages are installed"
3832 echores "$_x11"
3834 echocheck "Xss screensaver extensions"
3835 if test "$_xss" = auto ; then
3836 _xss=no
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"
3842 else
3843 def_xss='#undef CONFIG_XSS'
3845 echores "$_xss"
3847 echocheck "DPMS"
3848 _xdpms3=no
3849 _xdpms4=no
3850 if test "$_x11" = yes ; then
3851 cat > $TMPC <<EOF
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"
3865 echores "yes"
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"
3870 echores "yes"
3871 else
3872 def_xdpms='#undef CONFIG_XDPMS'
3873 echores "no"
3877 echocheck "Xv"
3878 if test "$_xv" = auto && test "$_x11" = yes ; then
3879 _xv=no
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"
3887 else
3888 def_xv='#undef CONFIG_XV'
3889 novomodules="xv $novomodules"
3891 echores "$_xv"
3894 echocheck "VDPAU"
3895 if test "$_vdpau" = auto && test "$_x11" = yes ; then
3896 _vdpau=no
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"
3905 else
3906 def_vdpau='#define CONFIG_VDPAU 0'
3907 novomodules="vdpau $novomodules"
3909 echores "$_vdpau"
3912 echocheck "Xinerama"
3913 if test "$_xinerama" = auto && test "$_x11" = yes ; then
3914 _xinerama=no
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"
3921 else
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'.
3932 echocheck "Xxf86vm"
3933 if test "$_vm" = auto && test "$_x11" = yes ; then
3934 _vm=no
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"
3940 else
3941 def_vm='#undef CONFIG_XF86VM'
3943 echores "$_vm"
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
3951 _xf86keysym=no
3952 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
3954 if test "$_xf86keysym" = yes ; then
3955 def_xf86keysym='#define CONFIG_XF86XK 1'
3956 else
3957 def_xf86keysym='#undef CONFIG_XF86XK'
3959 echores "$_xf86keysym"
3961 echocheck "DGA"
3962 if test "$_dga2" = auto && test "$_x11" = yes ; then
3963 _dga2=no
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
3967 _dga1=no
3968 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
3971 _dga=no
3972 def_dga='#undef CONFIG_DGA'
3973 def_dga1='#undef CONFIG_DGA1'
3974 def_dga2='#undef CONFIG_DGA2'
3975 if test "$_dga1" = yes ; then
3976 _dga=yes
3977 def_dga1='#define CONFIG_DGA1 1'
3978 res_comment="using DGA 1.0"
3979 elif test "$_dga2" = yes ; then
3980 _dga=yes
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"
3988 else
3989 novomodules="dga $novomodules"
3991 echores "$_dga"
3994 echocheck "3dfx"
3995 if test "$_3dfx" = yes && test "$_dga" = yes ; then
3996 def_3dfx='#define CONFIG_3DFX 1'
3997 vomodules="3dfx $vomodules"
3998 else
3999 _3dfx=no
4000 def_3dfx='#undef CONFIG_3DFX'
4001 novomodules="3dfx $novomodules"
4003 echores "$_3dfx"
4006 echocheck "GGI"
4007 if test "$_ggi" = auto ; then
4008 _ggi=no
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"
4015 else
4016 def_ggi='#undef CONFIG_GGI'
4017 novomodules="ggi $novomodules"
4019 echores "$_ggi"
4021 echocheck "GGI extension: libggiwmh"
4022 if test "$_ggiwmh" = auto ; then
4023 _ggiwmh=no
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"
4031 else
4032 _ggiwmh=no
4033 def_ggiwmh='#undef CONFIG_GGIWMH'
4035 echores "$_ggiwmh"
4038 echocheck "AA"
4039 if test "$_aa" = auto ; then
4040 cat > $TMPC << EOF
4041 #include <aalib.h>
4042 int main(void) {
4043 aa_context *c;
4044 aa_renderparams *p;
4045 aa_init(0, 0, 0);
4046 c = aa_autoinit(&aa_defparams);
4047 p = aa_getrenderparams();
4048 aa_autoinitkbd(c, 0);
4049 return 0; }
4051 _aa=no
4052 for _ld_tmp in "-laa" ; do
4053 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4054 done
4056 if test "$_aa" = yes ; then
4057 def_aa='#define CONFIG_AA 1'
4058 if cygwin ; then
4059 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4061 vomodules="aa $vomodules"
4062 else
4063 def_aa='#undef CONFIG_AA'
4064 novomodules="aa $novomodules"
4066 echores "$_aa"
4069 echocheck "CACA"
4070 if test "$_caca" = auto ; then
4071 _caca=no
4072 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4073 cat > $TMPC << EOF
4074 #include <caca.h>
4075 #ifdef CACA_API_VERSION_1
4076 #include <caca0.h>
4077 #endif
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"
4088 else
4089 def_caca='#undef CONFIG_CACA'
4090 novomodules="caca $novomodules"
4092 echores "$_caca"
4095 echocheck "SVGAlib"
4096 if test "$_svga" = auto ; then
4097 _svga=no
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"
4104 else
4105 def_svga='#undef CONFIG_SVGALIB'
4106 novomodules="svga $novomodules"
4108 echores "$_svga"
4111 echocheck "FBDev"
4112 if test "$_fbdev" = auto ; then
4113 _fbdev=no
4114 linux && _fbdev=yes
4116 if test "$_fbdev" = yes ; then
4117 def_fbdev='#define CONFIG_FBDEV 1'
4118 vomodules="fbdev $vomodules"
4119 else
4120 def_fbdev='#undef CONFIG_FBDEV'
4121 novomodules="fbdev $novomodules"
4123 echores "$_fbdev"
4127 echocheck "DVB"
4128 if test "$_dvb" = auto ; then
4129 _dvb=no
4130 cat >$TMPC << EOF
4131 #include <poll.h>
4132 #include <sys/ioctl.h>
4133 #include <stdio.h>
4134 #include <time.h>
4135 #include <unistd.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
4145 done
4147 echores "$_dvb"
4148 if test "$_dvb" = yes ; then
4149 _dvbin=yes
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"
4155 else
4156 _dvbin=no
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"
4165 if darwin; then
4167 echocheck "QuickTime"
4168 if test "$quicktime" = auto ; then
4169 quicktime=no
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'
4175 else
4176 def_quicktime='#undef CONFIG_QUICKTIME'
4177 _quartz=no
4179 echores $quicktime
4181 echocheck "Quartz"
4182 if test "$_quartz" = auto ; then
4183 _quartz=no
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"
4190 else
4191 def_quartz='#undef CONFIG_QUARTZ'
4192 novomodules="quartz $novomodules"
4194 echores $_quartz
4196 echocheck "CoreVideo"
4197 if test "$_corevideo" = auto ; then
4198 cat > $TMPC <<EOF
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; }
4205 _corevideo=no
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'
4212 else
4213 novomodules="corevideo $novomodules"
4214 def_corevideo='#undef CONFIG_COREVIDEO'
4216 echores "$_corevideo"
4218 fi #if darwin
4221 echocheck "PNG support"
4222 if test "$_png" = auto ; then
4223 _png=no
4224 if irix ; 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)"
4228 else
4229 cat > $TMPC << EOF
4230 #include <stdio.h>
4231 #include <string.h>
4232 #include <png.h>
4233 int main(void) {
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
4242 echores "$_png"
4243 if test "$_png" = yes ; then
4244 def_png='#define CONFIG_PNG 1'
4245 extra_ldflags="$extra_ldflags -lpng -lz"
4246 else
4247 def_png='#undef CONFIG_PNG'
4250 echocheck "MNG support"
4251 if test "$_mng" = auto ; then
4252 _mng=no
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
4255 echores "$_mng"
4256 if test "$_mng" = yes ; then
4257 def_mng='#define CONFIG_MNG 1'
4258 extra_ldflags="$extra_ldflags -lmng -lz"
4259 else
4260 def_mng='#undef CONFIG_MNG'
4263 echocheck "JPEG support"
4264 if test "$_jpeg" = auto ; then
4265 _jpeg=no
4266 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4268 echores "$_jpeg"
4270 if test "$_jpeg" = yes ; then
4271 def_jpeg='#define CONFIG_JPEG 1'
4272 vomodules="jpeg $vomodules"
4273 extra_ldflags="$extra_ldflags -ljpeg"
4274 else
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"
4285 else
4286 def_pnm="#undef CONFIG_PNM"
4287 novomodules="pnm $novomodules"
4289 echores "$_pnm"
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
4298 _force_gif=yes
4299 _gif=auto
4302 if test "$_gif" = auto ; then
4303 _gif=no
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
4306 done
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. ] )
4316 # </rant>
4317 # --Joey
4318 if test "$_force_gif" = yes && test "$_gif" = no ; then
4319 _gif=yes
4320 _ld_gif="-lgif"
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"
4331 cat > $TMPC << EOF
4332 #include <signal.h>
4333 #include <stdio.h>
4334 #include <stdlib.h>
4335 #include <gif_lib.h>
4336 static void catch(int sig) { exit(1); }
4337 int main(void) {
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.
4341 return 0;
4344 if cc_check "$_ld_gif" ; then
4345 def_gif_4='#define CONFIG_GIF_4 1'
4346 res_comment=""
4348 else
4349 def_gif='#undef CONFIG_GIF'
4350 def_gif_4='#undef CONFIG_GIF_4'
4351 novomodules="gif89a $novomodules"
4352 nocodecmodules="gif $nocodecmodules"
4354 echores "$_gif"
4357 case "$_gif" in yes*)
4358 echocheck "broken giflib workaround"
4359 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4361 cat > $TMPC << EOF
4362 #include <stdio.h>
4363 #include <gif_lib.h>
4364 int main(void) {
4365 GifFileType gif = {.UserData = NULL};
4366 printf("UserData is at address %p\n", gif.UserData);
4367 return 0;
4370 if cc_check "$_ld_gif" ; then
4371 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4372 echores "disabled"
4373 else
4374 echores "enabled"
4377 esac
4380 echocheck "VESA support"
4381 if test "$_vesa" = auto ; then
4382 _vesa=no
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"
4389 else
4390 def_vesa='#undef CONFIG_VESA'
4391 novomodules="vesa $novomodules"
4393 echores "$_vesa"
4395 #################
4396 # VIDEO + AUDIO #
4397 #################
4400 echocheck "SDL"
4401 _inc_tmp=""
4402 _ld_tmp=""
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"
4409 else
4410 _sdlconfig=false
4413 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4414 cat > $TMPC << EOF
4415 #ifdef CONFIG_SDL_SDL_H
4416 #include <SDL/SDL.h>
4417 #else
4418 #include <SDL.h>
4419 #endif
4420 #ifndef __APPLE__
4421 // we allow SDL hacking our main() only on OSX
4422 #undef main
4423 #endif
4424 int main(int argc, char *argv[]) {
4425 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4426 return 0;
4429 _sdl=no
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
4432 _sdl=yes
4433 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4434 break
4436 done
4437 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4438 res_comment="using $_sdlconfig"
4439 if cygwin ; then
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/)"
4442 elif mingw32 ; then
4443 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4444 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4445 else
4446 _inc_tmp="$($_sdlconfig --cflags)"
4447 _ld_tmp="$($_sdlconfig --libs)"
4449 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4450 _sdl=yes
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++"
4454 _sdl=yes
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"
4464 else
4465 def_sdl='#undef CONFIG_SDL'
4466 novomodules="sdl $novomodules"
4467 noaomodules="sdl $noaomodules"
4469 echores "$_sdl"
4472 # make sure this stays below CoreVideo to avoid issues due to namespace
4473 # conflicts between -lGL and -framework OpenGL
4474 echocheck "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
4477 cat > $TMPC << EOF
4478 #ifdef GL_WIN32
4479 #include <windows.h>
4480 #include <GL/gl.h>
4481 #elif defined(GL_SDL)
4482 #include <GL/gl.h>
4483 #ifdef CONFIG_SDL_SDL_H
4484 #include <SDL/SDL.h>
4485 #else
4486 #include <SDL.h>
4487 #endif
4488 #ifndef __APPLE__
4489 // we allow SDL hacking our main() only on OSX
4490 #undef main
4491 #endif
4492 #else
4493 #include <GL/gl.h>
4494 #include <X11/Xlib.h>
4495 #include <GL/glx.h>
4496 #endif
4497 int main(int argc, char *argv[]) {
4498 #ifdef GL_WIN32
4499 HDC dc;
4500 wglCreateContext(dc);
4501 #elif defined(GL_SDL)
4502 SDL_GL_SwapBuffers();
4503 #else
4504 glXCreateContext(NULL, NULL, NULL, True);
4505 #endif
4506 glFinish();
4507 return 0;
4510 _gl=no
4511 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4512 if cc_check $_ld_tmp $_ld_lm ; then
4513 _gl=yes
4514 _gl_x11=yes
4515 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4516 break
4518 done
4519 if cc_check -DGL_WIN32 -lopengl32 ; then
4520 _gl=yes
4521 _gl_win32=yes
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
4528 _gl=yes
4529 _gl_sdl=yes
4530 elif cc_check -DGL_SDL -lGL ||
4531 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4532 _gl=yes
4533 _gl_sdl=yes
4534 libs_mplayer="$libs_mplayer -lGL"
4537 else
4538 _gl=no
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"
4556 else
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"
4563 echores "$_gl"
4566 if os2 ; then
4567 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4568 if test "$_kva" = auto; then
4569 _kva=no;
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"
4576 else
4577 def_kva='#undef CONFIG_KVA'
4578 novomodules="kva $novomodules"
4580 echores "$_kva"
4581 fi #if os2
4584 if win32; then
4586 echocheck "Windows waveout"
4587 if test "$_win32waveout" = auto ; then
4588 _win32waveout=no
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"
4595 else
4596 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4597 noaomodules="win32 $noaomodules"
4599 echores "$_win32waveout"
4601 echocheck "Direct3D"
4602 if test "$_direct3d" = auto ; then
4603 _direct3d=no
4604 header_check d3d9.h && _direct3d=yes
4606 if test "$_direct3d" = yes ; then
4607 def_direct3d='#define CONFIG_DIRECT3D 1'
4608 vomodules="direct3d $vomodules"
4609 else
4610 def_direct3d='#undef CONFIG_DIRECT3D'
4611 novomodules="direct3d $novomodules"
4613 echores "$_direct3d"
4615 echocheck "Directx"
4616 if test "$_directx" = auto ; then
4617 cat > $TMPC << EOF
4618 #include <ddraw.h>
4619 #include <dsound.h>
4620 int main(void) { return 0; }
4622 _directx=no
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"
4630 else
4631 def_directx='#undef CONFIG_DIRECTX'
4632 novomodules="directx $novomodules"
4633 noaomodules="dsound $noaomodules"
4635 echores "$_directx"
4637 fi #if win32; then
4640 echocheck "DXR3/H+"
4641 if test "$_dxr3" = auto ; then
4642 _dxr3=no
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"
4648 else
4649 def_dxr3='#undef CONFIG_DXR3'
4650 novomodules="dxr3 $novomodules"
4652 echores "$_dxr3"
4655 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4656 if test "$_ivtv" = auto ; then
4657 cat > $TMPC << EOF
4658 #include <sys/time.h>
4659 #include <linux/videodev2.h>
4660 #include <linux/ivtv.h>
4661 #include <sys/ioctl.h>
4662 int main(void) {
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);
4667 return 0; }
4669 _ivtv=no
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"
4676 else
4677 def_ivtv='#undef CONFIG_IVTV'
4678 novomodules="ivtv $novomodules"
4679 noaomodules="ivtv $noaomodules"
4681 echores "$_ivtv"
4684 echocheck "V4L2 MPEG Decoder"
4685 if test "$_v4l2" = auto ; then
4686 cat > $TMPC << EOF
4687 #include <sys/time.h>
4688 #include <linux/videodev2.h>
4689 #include <linux/version.h>
4690 int main(void) {
4691 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4692 #error kernel headers too old, need 2.6.22
4693 #endif
4694 struct v4l2_ext_controls ctrls;
4695 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4696 return 0;
4699 _v4l2=no
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"
4706 else
4707 def_v4l2='#undef CONFIG_V4L2_DECODER'
4708 novomodules="v4l2 $novomodules"
4709 noaomodules="v4l2 $noaomodules"
4711 echores "$_v4l2"
4715 #########
4716 # AUDIO #
4717 #########
4720 echocheck "OSS Audio"
4721 if test "$_ossaudio" = auto ; then
4722 _ossaudio=no
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"
4728 cat > $TMPC << EOF
4729 #include <$_soundcard_header>
4730 #ifdef OPEN_SOUND_SYSTEM
4731 int main(void) { return 0; }
4732 #else
4733 #error Not the real thing
4734 #endif
4736 _real_ossaudio=no
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
4743 . /etc/oss.conf
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"
4752 else
4753 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4755 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4756 else
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"
4765 echocheck "aRts"
4766 if test "$_arts" = auto ; then
4767 _arts=no
4768 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4769 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4770 _arts=yes
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)"
4779 else
4780 noaomodules="arts $noaomodules"
4782 echores "$_arts"
4785 echocheck "EsounD"
4786 if test "$_esd" = auto ; then
4787 _esd=no
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
4792 echores "$_esd"
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"
4804 else
4805 def_esd='#undef CONFIG_ESD'
4806 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4807 noaomodules="esd $noaomodules"
4810 echocheck "RSound"
4811 if test "$_rsound" = auto ; then
4812 _rsound=no
4813 statement_check rsound.h 'rsd_init(NULL);' -lrsound && _rsound=yes
4815 echores "$_rsound"
4817 if test "$_rsound" = yes ; then
4818 def_rsound='#define CONFIG_RSOUND 1'
4819 aomodules="rsound $aomodules"
4820 libs_mplayer="$libs_mplayer -lrsound"
4821 else
4822 def_rsound='#undef CONFIG_RSOUND'
4823 noaomodules="rsound $noaomodules"
4827 echocheck "NAS"
4828 if test "$_nas" = auto ; then
4829 _nas=no
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"
4836 else
4837 noaomodules="nas $noaomodules"
4838 def_nas='#undef CONFIG_NAS'
4840 echores "$_nas"
4843 echocheck "pulse"
4844 if test "$_pulse" = auto ; then
4845 _pulse=no
4846 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4847 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4848 _pulse=yes
4851 echores "$_pulse"
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)"
4858 else
4859 def_pulse='#undef CONFIG_PULSE'
4860 noaomodules="pulse $noaomodules"
4864 echocheck "JACK"
4865 if test "$_jack" = auto ; then
4866 _jack=yes
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)""
4872 else
4873 _jack=no
4877 if test "$_jack" = yes ; then
4878 def_jack='#define CONFIG_JACK 1'
4879 aomodules="jack $aomodules"
4880 else
4881 noaomodules="jack $noaomodules"
4883 echores "$_jack"
4885 echocheck "OpenAL"
4886 if test "$_openal" = auto ; then
4887 _openal=no
4888 cat > $TMPC << EOF
4889 #ifdef OPENAL_AL_H
4890 #include <OpenAL/al.h>
4891 #else
4892 #include <AL/al.h>
4893 #endif
4894 int main(void) {
4895 alSourceQueueBuffers(0, 0, 0);
4896 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4897 return 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
4903 done
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"
4909 else
4910 noaomodules="openal $noaomodules"
4912 echores "$_openal"
4914 echocheck "ALSA audio"
4915 if test "$_alloca" != yes ; then
4916 _alsa=no
4917 res_comment="alloca missing"
4919 if test "$_alsa" != no ; then
4920 _alsa=no
4921 cat > $TMPC << EOF
4922 #include <sys/asoundlib.h>
4923 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4924 #error "alsa version != 0.5.x"
4925 #endif
4926 int main(void) { return 0; }
4928 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4930 cat > $TMPC << EOF
4931 #include <sys/asoundlib.h>
4932 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4933 #error "alsa version != 0.9.x"
4934 #endif
4935 int main(void) { return 0; }
4937 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4938 cat > $TMPC << EOF
4939 #include <alsa/asoundlib.h>
4940 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4941 #error "alsa version != 0.9.x"
4942 #endif
4943 int main(void) { return 0; }
4945 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4947 cat > $TMPC << EOF
4948 #include <sys/asoundlib.h>
4949 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4950 #error "alsa version != 1.0.x"
4951 #endif
4952 int main(void) { return 0; }
4954 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4955 cat > $TMPC << EOF
4956 #include <alsa/asoundlib.h>
4957 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4958 #error "alsa version != 1.0.x"
4959 #endif
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
4971 _alsa=yes
4972 if test "$_alsaver" = '0.5.x' ; then
4973 _alsa5=yes
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
4979 _alsa9=yes
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
4986 _alsa9=yes
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
4993 _alsa1x=yes
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
5000 _alsa1x=yes
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"
5006 else
5007 _alsa=no
5008 res_comment="unknown version"
5010 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5011 else
5012 noaomodules="alsa $noaomodules"
5014 echores "$_alsa"
5017 echocheck "Sun audio"
5018 if test "$_sunaudio" = auto ; then
5019 cat > $TMPC << EOF
5020 #include <sys/types.h>
5021 #include <sys/audioio.h>
5022 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5024 _sunaudio=no
5025 cc_check && _sunaudio=yes
5027 if test "$_sunaudio" = yes ; then
5028 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5029 aomodules="sun $aomodules"
5030 else
5031 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5032 noaomodules="sun $noaomodules"
5034 echores "$_sunaudio"
5037 if darwin; then
5038 echocheck "CoreAudio"
5039 if test "$_coreaudio" = auto ; then
5040 cat > $TMPC <<EOF
5041 #include <CoreAudio/CoreAudio.h>
5042 #include <AudioToolbox/AudioToolbox.h>
5043 #include <AudioUnit/AudioUnit.h>
5044 int main(void) { return 0; }
5046 _coreaudio=no
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"
5053 else
5054 def_coreaudio='#undef CONFIG_COREAUDIO'
5055 noaomodules="coreaudio $noaomodules"
5057 echores $_coreaudio
5058 fi #if darwin
5061 if irix; then
5062 echocheck "SGI audio"
5063 if test "$_sgiaudio" = auto ; then
5064 _sgiaudio=no
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"
5071 else
5072 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5073 noaomodules="sgi $noaomodules"
5075 echores "$_sgiaudio"
5076 fi #if irix
5079 if os2 ; then
5080 echocheck "KAI (UNIAUD/DART)"
5081 if test "$_kai" = auto; then
5082 _kai=no;
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"
5089 else
5090 def_kai='#undef CONFIG_KAI'
5091 noaomodules="kai $noaomodules"
5093 echores "$_kai"
5095 echocheck "DART"
5096 if test "$_dart" = auto; then
5097 _dart=no;
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"
5104 else
5105 def_dart='#undef CONFIG_DART'
5106 noaomodules="dart $noaomodules"
5108 echores "$_dart"
5109 fi #if os2
5112 # set default CD/DVD devices
5113 if win32 || os2 ; then
5114 default_cdrom_device="D:"
5115 elif darwin ; then
5116 default_cdrom_device="/dev/disk1"
5117 elif dragonfly ; then
5118 default_cdrom_device="/dev/cd0"
5119 elif freebsd ; then
5120 default_cdrom_device="/dev/acd0"
5121 elif openbsd ; then
5122 default_cdrom_device="/dev/rcd0c"
5123 elif sunos ; then
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"
5128 elif amigaos ; then
5129 default_cdrom_device="a1ide.device:2"
5130 else
5131 default_cdrom_device="/dev/cdrom"
5134 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5135 default_dvd_device=$default_cdrom_device
5136 elif darwin ; then
5137 default_dvd_device="/dev/rdiskN"
5138 else
5139 default_dvd_device="/dev/dvd"
5143 echocheck "VCD support"
5144 if test "$_vcd" = auto; then
5145 _vcd=no
5146 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5147 _vcd=yes
5148 elif mingw32; 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'
5155 else
5156 def_vcd='#undef CONFIG_VCD'
5157 noinputmodules="vcd $noinputmodules"
5158 res_comment="not supported on this OS"
5160 echores "$_vcd"
5164 echocheck "Blu-ray support"
5165 if test "$_bluray" = auto ; then
5166 _bluray=no
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"
5173 else
5174 def_bluray='#undef CONFIG_LIBBLURAY'
5175 noinputmodules="bluray $noinputmodules"
5177 echores "$_bluray"
5179 echocheck "dvdread"
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
5185 _dvdread=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
5191 _dvdread=yes
5192 extra_cflags="-Ilibdvdread4 $extra_cflags"
5194 elif test "$_dvdread" = auto ; then
5195 _dvdread=no
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
5200 _dvdread=yes
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"
5217 else
5218 def_dvdread='#undef CONFIG_DVDREAD'
5219 noinputmodules="dvdread $noinputmodules"
5221 echores "$_dvdread"
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'
5236 elif darwin ; then
5237 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5238 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5239 elif cygwin ; then
5240 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5241 elif beos ; then
5242 cflags_libdvdcss="-DSYS_BEOS"
5243 elif os2 ; then
5244 cflags_libdvdcss="-DSYS_OS2"
5246 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5247 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5248 inputmodules="libdvdcss(internal) $inputmodules"
5249 else
5250 noinputmodules="libdvdcss(internal) $noinputmodules"
5252 echores "$_libdvdcss_internal"
5255 echocheck "cdparanoia"
5256 if test "$_cdparanoia" = auto ; then
5257 cat > $TMPC <<EOF
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; }
5263 _cdparanoia=no
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
5267 done
5269 if test "$_cdparanoia" = yes ; then
5270 _cdda='yes'
5271 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5272 openbsd && extra_ldflags="$extra_ldflags -lutil"
5274 echores "$_cdparanoia"
5277 echocheck "libcdio"
5278 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5279 cat > $TMPC << EOF
5280 #include <stdio.h>
5281 #include <cdio/version.h>
5282 #include <cdio/cdda.h>
5283 #include <cdio/paranoia.h>
5284 int main(void) {
5285 void *test = cdda_verbose_set;
5286 printf("%s\n", CDIO_VERSION);
5287 return test == (void *)1;
5290 _libcdio=no
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
5295 done
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
5304 _cdda='yes'
5305 def_libcdio='#define CONFIG_LIBCDIO 1'
5306 def_havelibcdio='yes'
5307 else
5308 _libcdio=no
5309 if test "$_cdparanoia" = yes ; then
5310 res_comment="using cdparanoia"
5312 def_libcdio='#undef CONFIG_LIBCDIO'
5313 def_havelibcdio='no'
5315 echores "$_libcdio"
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"
5321 else
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"
5329 else
5330 _cddb=no
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"
5338 else
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
5348 _freetype=no
5349 res_comment="iconv support needed"
5352 if test "$_freetype" = auto ; then
5353 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5354 cat > $TMPC << EOF
5355 #include <stdio.h>
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"
5360 #endif
5361 int main(void) {
5362 FT_Library library;
5363 FT_Init_FreeType(&library);
5364 return 0;
5367 _freetype=no
5368 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5369 else
5370 _freetype=no
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)"
5380 else
5381 def_freetype='#undef CONFIG_FREETYPE'
5383 echores "$_freetype"
5385 if test "$_freetype" = no ; then
5386 _fontconfig=no
5387 res_comment="FreeType support needed"
5389 echocheck "fontconfig"
5390 if test "$_fontconfig" = auto ; then
5391 cat > $TMPC << EOF
5392 #include <stdio.h>
5393 #include <stdlib.h>
5394 #include <fontconfig/fontconfig.h>
5395 #if FC_VERSION < 20402
5396 #error At least version 2.4.2 of fontconfig required
5397 #endif
5398 int main(void) {
5399 int err = FcInit();
5400 if (err == FcFalse) {
5401 printf("Couldn't initialize fontconfig lib\n");
5402 exit(err);
5404 return 0;
5407 _fontconfig=no
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
5411 done
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'
5424 else
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
5433 _ass=yes
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)"
5437 else
5438 die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5440 else
5441 def_ass='#undef CONFIG_ASS'
5443 echores "$_ass"
5446 echocheck "fribidi with charsets"
5447 _inc_tmp=""
5448 _ld_tmp=""
5449 if test "$_fribidi" = auto ; then
5450 cat > $TMPC << EOF
5451 #include <stdlib.h>
5452 /* workaround for fribidi 0.10.4 and below */
5453 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5454 #include <fribidi/fribidi.h>
5455 int main(void) {
5456 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5457 exit(1);
5458 return 0;
5461 _fribidi=no
5462 _inc_tmp=""
5463 _ld_tmp="-lfribidi"
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"
5476 else
5477 def_fribidi='#undef CONFIG_FRIBIDI'
5479 echores "$_fribidi"
5482 echocheck "ENCA"
5483 if test "$_enca" = auto ; then
5484 _enca=no
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"
5490 else
5491 def_enca='#undef CONFIG_ENCA'
5493 echores "$_enca"
5496 echocheck "zlib"
5497 _zlib=no
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"
5502 else
5503 def_zlib='#define CONFIG_ZLIB 0'
5505 echores "$_zlib"
5508 echocheck "RTC"
5509 if test "$_rtc" = auto ; then
5510 cat > $TMPC << EOF
5511 #include <sys/ioctl.h>
5512 #ifdef __linux__
5513 #include <linux/rtc.h>
5514 #else
5515 #include <rtc.h>
5516 #define RTC_PIE_ON RTCIO_PIE_ON
5517 #endif
5518 int main(void) { return RTC_PIE_ON; }
5520 _rtc=no
5521 cc_check && _rtc=yes
5522 ppc && _rtc=no
5524 if test "$_rtc" = yes ; then
5525 def_rtc='#define HAVE_RTC 1'
5526 else
5527 def_rtc='#undef HAVE_RTC'
5529 echores "$_rtc"
5532 echocheck "mad support"
5533 if test "$_mad" = auto ; then
5534 _mad=no
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"
5541 else
5542 def_mad='#undef CONFIG_LIBMAD'
5543 nocodecmodules="libmad $nocodecmodules"
5545 echores "$_mad"
5547 echocheck "OggVorbis support"
5548 if test "$_libvorbis" = auto; then
5549 _libvorbis=no
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
5552 _tremor=no
5554 if test "$_tremor" = auto; then
5555 _tremor=no
5556 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5558 if test "$_tremor" = yes ; then
5559 _vorbis=yes
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
5566 _vorbis=yes
5567 def_vorbis='#define CONFIG_OGGVORBIS 1'
5568 codecmodules="libvorbis $codecmodules"
5569 res_comment="libvorbis"
5570 extra_ldflags="$extra_ldflags -lvorbis -logg"
5571 else
5572 _vorbis=no
5573 nocodecmodules="libvorbis $nocodecmodules"
5575 echores "$_vorbis"
5577 echocheck "libspeex (version >= 1.1 required)"
5578 if test "$_speex" = auto ; then
5579 _speex=no
5580 cat > $TMPC << EOF
5581 #include <stddef.h>
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"
5591 else
5592 def_speex='#undef CONFIG_SPEEX'
5593 nocodecmodules="speex $nocodecmodules"
5595 echores "$_speex"
5597 echocheck "OggTheora support"
5598 if test "$_theora" = auto ; then
5599 _theora=no
5600 cat > $TMPC << EOF
5601 #include <theora/theora.h>
5602 #include <string.h>
5603 int main(void) {
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. */
5606 ogg_packet op;
5607 theora_comment tc;
5608 theora_info inf;
5609 theora_state st;
5610 yuv_buffer yuv;
5611 int r;
5612 double t;
5614 theora_info_init(&inf);
5615 theora_comment_init(&tc);
5617 return 0;
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);
5627 theora_clear(&st);
5629 return 0;
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"
5647 else
5648 def_theora='#undef CONFIG_OGGTHEORA'
5649 nocodecmodules="libtheora $nocodecmodules"
5651 echores "$_theora"
5653 # Any version of libmpg123 shall be fine.
5654 echocheck "mpg123 support"
5655 def_mpg123='#undef CONFIG_MPG123'
5656 if test "$_mpg123" = auto; then
5657 _mpg123=no
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"
5663 else
5664 nocodecmodules="mpg123 $nocodecmodules"
5666 echores "$_mpg123"
5668 echocheck "liba52 support"
5669 def_liba52='#undef CONFIG_LIBA52'
5670 if test "$_liba52" = auto ; then
5671 _liba52=no
5672 cat > $TMPC << EOF
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"
5682 else
5683 nocodecmodules="liba52 $nocodecmodules"
5685 echores "$_liba52"
5687 echocheck "libdca support"
5688 if test "$_libdca" = auto ; then
5689 _libdca=no
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
5693 done
5695 if test "$_libdca" = yes ; then
5696 def_libdca='#define CONFIG_LIBDCA 1'
5697 codecmodules="libdca $codecmodules"
5698 else
5699 def_libdca='#undef CONFIG_LIBDCA'
5700 nocodecmodules="libdca $nocodecmodules"
5702 echores "$_libdca"
5704 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5705 if test "$_musepack" = yes ; then
5706 _musepack=no
5707 cat > $TMPC << EOF
5708 #include <stddef.h>
5709 #include <mpcdec/mpcdec.h>
5710 int main(void) {
5711 mpc_streaminfo info;
5712 mpc_decoder decoder;
5713 mpc_decoder_set_streaminfo(&decoder, &info);
5714 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5715 return 0;
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"
5724 else
5725 def_musepack='#undef CONFIG_MUSEPACK'
5726 nocodecmodules="musepack $nocodecmodules"
5728 echores "$_musepack"
5731 echocheck "FAAD2 support"
5732 if test "$_faad" = auto ; then
5733 _faad=no
5734 cat > $TMPC << EOF
5735 #include <faad.h>
5736 #ifndef FAAD_MIN_STREAMSIZE
5737 #error Too old version
5738 #endif
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"
5750 else
5751 nocodecmodules="faad2 $nocodecmodules"
5753 echores "$_faad"
5756 echocheck "LADSPA plugin support"
5757 if test "$_ladspa" = auto ; then
5758 _ladspa=no
5759 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5761 if test "$_ladspa" = yes; then
5762 def_ladspa="#define CONFIG_LADSPA 1"
5763 else
5764 def_ladspa="#undef CONFIG_LADSPA"
5766 echores "$_ladspa"
5769 echocheck "libbs2b audio filter support"
5770 if test "$_libbs2b" = auto ; then
5771 cat > $TMPC <<EOF
5772 #include <bs2b.h>
5773 #if BS2B_VERSION_MAJOR < 3
5774 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5775 #endif
5776 int main(void) {
5777 t_bs2bdp filter;
5778 filter=bs2b_open();
5779 bs2b_close(filter);
5780 return 0;
5783 _libbs2b=no
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
5789 else
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"
5795 _libbs2b=yes
5796 break
5798 done
5801 def_libbs2b="#undef CONFIG_LIBBS2B"
5802 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5803 echores "$_libbs2b"
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
5810 _codecsdir="$dir"
5811 break;
5813 done
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
5824 _win32dll=no
5825 if x86_32 && ! qnx; then
5826 _win32dll=yes
5829 if test "$_win32dll" = yes ; then
5830 def_win32dll='#define CONFIG_WIN32DLL 1'
5831 if ! win32 ; then
5832 def_win32_loader='#define WIN32_LOADER 1'
5833 _win32_emulation=yes
5834 else
5835 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5836 res_comment="using native windows"
5838 codecmodules="win32 $codecmodules"
5839 else
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
5849 _xanim=no
5850 res_comment="dynamic loader support needed"
5851 if test "$_dl" = yes ; then
5852 _xanim=yes
5855 if test "$_xanim" = yes ; then
5856 def_xanim='#define CONFIG_XANIM 1'
5857 codecmodules="xanim $codecmodules"
5858 else
5859 def_xanim='#undef CONFIG_XANIM'
5860 nocodecmodules="xanim $nocodecmodules"
5862 echores "$_xanim"
5865 echocheck "RealPlayer codecs"
5866 if test "$_real" = auto ; then
5867 _real=no
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
5871 _real=yes
5874 if test "$_real" = yes ; then
5875 def_real='#define CONFIG_REALCODECS 1'
5876 codecmodules="real $codecmodules"
5877 else
5878 def_real='#undef CONFIG_REALCODECS'
5879 nocodecmodules="real $nocodecmodules"
5881 echores "$_real"
5884 echocheck "QuickTime codecs"
5885 _qtx_emulation=no
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
5895 else
5896 def_qtx='#undef CONFIG_QTX_CODECS'
5897 nocodecmodules="qtx $nocodecmodules"
5899 echores "$_qtx"
5901 echocheck "Nemesi Streaming Media libraries"
5902 if test "$_nemesi" = auto && test "$networking" = yes ; then
5903 _nemesi=no
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)"
5907 _nemesi=yes
5910 if test "$_nemesi" = yes; then
5911 _native_rtsp=no
5912 def_nemesi='#define CONFIG_LIBNEMESI 1'
5913 inputmodules="nemesi $inputmodules"
5914 else
5915 _native_rtsp="$networking"
5916 _nemesi=no
5917 def_nemesi='#undef CONFIG_LIBNEMESI'
5918 noinputmodules="nemesi $noinputmodules"
5920 echores "$_nemesi"
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/>
5928 #endif
5929 int main(void) { return 0; }
5932 _live=no
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" &&
5945 _live=yes && break
5946 done
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
5950 _live_dist=yes
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"
5960 _live="yes"
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"
5965 else
5966 _live=no
5967 def_live='#undef CONFIG_LIVE555'
5968 noinputmodules="live555 $noinputmodules"
5970 echores "$_live"
5974 all_libav_libs="libavutil libavcodec libavformat libswscale libpostproc"
5975 echocheck "Libav ($all_libav_libs)"
5976 if test "$ffmpeg" = auto ; then
5977 ffmpeg=no
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"
5983 ffmpeg=yes
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"
5986 ffmpeg=yes
5987 else
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."
5992 ffmpeg_eval_api=no
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
5998 ffmpeg_eval_api=yes
5999 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6001 else
6002 def_ffmpeg='#undef CONFIG_FFMPEG'
6003 nocodecmodules="ffmpeg $nocodecmodules"
6005 echores "$ffmpeg"
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
6016 _libdv=no
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"
6023 else
6024 def_libdv='#undef CONFIG_LIBDV095'
6025 nocodecmodules="libdv $nocodecmodules"
6027 echores "$_libdv"
6030 echocheck "Xvid"
6031 if test "$_xvid" = auto ; then
6032 _xvid=no
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
6036 done
6039 if test "$_xvid" = yes ; then
6040 def_xvid='#define CONFIG_XVID4 1'
6041 codecmodules="xvid $codecmodules"
6042 else
6043 def_xvid='#undef CONFIG_XVID4'
6044 nocodecmodules="xvid $nocodecmodules"
6046 echores "$_xvid"
6049 echocheck "libnut"
6050 if test "$_libnut" = auto ; then
6051 _libnut=no
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"
6058 else
6059 def_libnut='#undef CONFIG_LIBNUT'
6061 echores "$_libnut"
6063 # These VO checks must be done after the FFmpeg one
6064 echocheck "/dev/mga_vid"
6065 if test "$_mga" = auto ; then
6066 _mga=no
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"
6072 else
6073 def_mga='#undef CONFIG_MGA'
6074 novomodules="mga $novomodules"
6076 echores "$_mga"
6079 echocheck "xmga"
6080 if test "$_xmga" = auto ; then
6081 _xmga=no
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"
6087 else
6088 def_xmga='#undef CONFIG_XMGA'
6089 novomodules="xmga $novomodules"
6091 echores "$_xmga"
6094 echocheck "UnRAR executable"
6095 if test "$_unrar_exec" = auto ; then
6096 _unrar_exec="yes"
6097 mingw32 && _unrar_exec="no"
6099 if test "$_unrar_exec" = yes ; then
6100 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6101 else
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"
6110 else
6111 noinputmodules="tv $noinputmodules"
6112 def_tv='#undef CONFIG_TV'
6114 echores "$_tv"
6117 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6118 echocheck "*BSD BT848 bt8xx header"
6119 _ioctl_bt848_h=no
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
6124 cat > $TMPC <<EOF
6125 #include <sys/types.h>
6126 #include <sys/ioctl.h>
6127 #include <$file>
6128 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6130 if cc_check ; then
6131 _ioctl_bt848_h=yes
6132 _ioctl_bt848_h_name="$file"
6133 break;
6135 done
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"
6139 else
6140 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6142 echores "$_ioctl_bt848_h"
6144 echocheck "*BSD ioctl_meteor.h"
6145 _ioctl_meteor_h=no
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
6149 done
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"
6153 else
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
6160 _tv_bsdbt848=no
6161 if test "$_tv" = yes ; then
6162 cat > $TMPC <<EOF
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
6168 #endif
6169 #ifdef IOCTL_BT848_H_NAME
6170 #include IOCTL_BT848_H_NAME
6171 #endif
6172 int main(void) {
6173 ioctl(0, METEORSINPUT, 0);
6174 ioctl(0, TVTUNER_GETFREQ, 0);
6175 return 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"
6184 else
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
6194 _tv_dshow=no
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"
6203 else
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
6212 _tv_v4l1=no
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
6218 _audio_input=yes
6219 _tv_v4l=yes
6220 def_tv_v4l='#define CONFIG_TV_V4L 1'
6221 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6222 inputmodules="tv-v4l $inputmodules"
6223 else
6224 noinputmodules="tv-v4l1 $noinputmodules"
6225 def_tv_v4l='#undef CONFIG_TV_V4L'
6227 echores "$_tv_v4l1"
6230 echocheck "Video 4 Linux 2 TV interface"
6231 if test "$_tv_v4l2" = auto ; then
6232 _tv_v4l2=no
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
6236 _tv_v4l2=yes
6239 if test "$_tv_v4l2" = yes ; then
6240 _audio_input=yes
6241 _tv_v4l=yes
6242 def_tv_v4l='#define CONFIG_TV_V4L 1'
6243 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6244 inputmodules="tv-v4l2 $inputmodules"
6245 else
6246 noinputmodules="tv-v4l2 $noinputmodules"
6247 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6249 echores "$_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
6257 _radio_capture=no
6259 if test "$_radio_capture" = yes ; then
6260 _audio_input=yes
6261 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6262 else
6263 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6265 else
6266 noinputmodules="radio $noinputmodules"
6267 def_radio='#undef CONFIG_RADIO'
6268 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6269 _radio_capture=no
6271 echores "$_radio"
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
6277 _radio_v4l2=no
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'
6284 else
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
6291 _radio_v4l=no
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'
6298 else
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"
6306 _radio_bsdbt848=no
6307 cat > $TMPC <<EOF
6308 #include <sys/types.h>
6309 $def_ioctl_bt848_h_name
6310 #ifdef IOCTL_BT848_H_NAME
6311 #include IOCTL_BT848_H_NAME
6312 #endif
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'
6321 else
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
6332 _pvr=no
6333 if test "$_tv_v4l2" = yes && linux ; then
6334 cat > $TMPC <<EOF
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"
6345 else
6346 noinputmodules="pvr $noinputmodules"
6347 def_pvr='#undef CONFIG_PVR'
6349 echores "$_pvr"
6352 echocheck "ftp"
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"
6359 else
6360 noinputmodules="ftp $noinputmodules"
6361 def_ftp='#undef CONFIG_FTP'
6363 echores "$_ftp"
6365 echocheck "vstream client"
6366 if test "$_vstream" = auto ; then
6367 _vstream=no
6368 cat > $TMPC <<EOF
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"
6379 else
6380 noinputmodules="vstream $noinputmodules"
6381 def_vstream='#undef CONFIG_VSTREAM'
6383 echores "$_vstream"
6386 echocheck "Subtitles sorting"
6387 if test "$_sortsub" = yes ; then
6388 def_sortsub='#define CONFIG_SORTSUB 1'
6389 else
6390 def_sortsub='#undef CONFIG_SORTSUB'
6392 echores "$_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
6400 else
6401 _xmmsplugindir=/usr/lib/xmms/Input
6402 _xmmslibdir=/usr/lib
6405 def_xmms='#define CONFIG_XMMS 1'
6406 if darwin ; then
6407 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6408 else
6409 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6411 else
6412 def_xmms='#undef CONFIG_XMMS'
6414 echores "$_xmms"
6416 if test "$_charset" != "noconv" ; then
6417 def_charset="#define MSG_CHARSET \"$_charset\""
6418 else
6419 def_charset="#undef MSG_CHARSET"
6420 _charset="UTF-8"
6423 #############################################################################
6425 echocheck "automatic gdb attach"
6426 if test "$_crash_debug" = yes ; then
6427 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6428 else
6429 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6430 _crash_debug=no
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"
6437 echores "yes"
6438 else
6439 echores "no"
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"
6445 echores "yes"
6446 else
6447 echores "no"
6451 # Dynamic linking flags
6452 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6453 _ld_dl_dynamic=''
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'
6473 else
6474 _joystick="no"
6475 res_comment="unsupported under $system_name"
6478 echores "$_joystick"
6480 echocheck "lirc"
6481 if test "$_lirc" = auto ; then
6482 _lirc=no
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"
6488 else
6489 def_lirc='#undef CONFIG_LIRC'
6491 echores "$_lirc"
6493 echocheck "lircc"
6494 if test "$_lircc" = auto ; then
6495 _lircc=no
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"
6501 else
6502 def_lircc='#undef CONFIG_LIRCC'
6504 echores "$_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
6510 # uses nm.
6511 if os2 ; then
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
6528 _dvdnav=no
6530 dvdnav_internal=no
6531 if test "$_dvdnav" = auto ; then
6532 if test "$_dvdread_internal" = yes ; then
6533 _dvdnav=yes
6534 dvdnav_internal=yes
6535 res_comment="internal"
6536 else
6537 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6540 if test "$_dvdnav" = auto ; then
6541 _dvdnav=no
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"
6551 else
6552 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6553 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6554 inputmodules="dvdnav $inputmodules"
6556 else
6557 def_dvdnav='#undef CONFIG_DVDNAV'
6558 noinputmodules="dvdnav $noinputmodules"
6560 echores "$_dvdnav"
6562 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6563 # Read dvdnav comment above.
6565 mak_enable () {
6566 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6567 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6568 nprefix=$3;
6569 for part in $list; do
6570 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6571 echo "${nprefix}_$part = yes"
6573 done
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.
6582 export LC_ALL = C
6584 CONFIGURATION = $configuration
6586 CHARSET = $_charset
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
6602 AR = $_ar
6603 AS = $_cc
6604 CC = $_cc
6605 CXX = $_cc
6606 HOST_CC = $_host_cc
6607 INSTALL = $_install
6608 INSTALLSTRIP = $_install_strip
6609 WINDRES = $_windres
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
6624 GETCH = $_getch
6625 TIMER = $_timer
6627 EXESUF = $_exesuf
6628 EXESUFS_ALL = .exe
6630 ARCH = $arch
6631 $(mak_enable "$arch_all" "$arch" ARCH)
6632 $(mak_enable "$subarch_all" "$subarch" ARCH)
6633 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6635 MPLAYER = $_mplayer
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
6646 # features
6647 3DFX = $_3dfx
6648 AA = $_aa
6649 ALSA1X = $_alsa1x
6650 ALSA9 = $_alsa9
6651 ALSA5 = $_alsa5
6652 APPLE_IR = $_apple_ir
6653 APPLE_REMOTE = $_apple_remote
6654 ARTS = $_arts
6655 AUDIO_INPUT = $_audio_input
6656 BITMAP_FONT = $_bitmap_font
6657 BL = $_bl
6658 CACA = $_caca
6659 CDDA = $_cdda
6660 CDDB = $_cddb
6661 COREAUDIO = $_coreaudio
6662 COREVIDEO = $_corevideo
6663 DART = $_dart
6664 DGA = $_dga
6665 DIRECT3D = $_direct3d
6666 DIRECTFB = $_directfb
6667 DIRECTX = $_directx
6668 DVBIN = $_dvbin
6669 DVDNAV = $_dvdnav
6670 DVDNAV_INTERNAL = $dvdnav_internal
6671 DVDREAD = $_dvdread
6672 DVDREAD_INTERNAL = $_dvdread_internal
6673 DXR3 = $_dxr3
6674 ESD = $_esd
6675 FAAD = $_faad
6676 FASTMEMCPY = $_fastmemcpy
6677 FBDEV = $_fbdev
6678 FREETYPE = $_freetype
6679 FTP = $_ftp
6680 GIF = $_gif
6681 GGI = $_ggi
6682 GL = $_gl
6683 GL_WIN32 = $_gl_win32
6684 GL_X11 = $_gl_x11
6685 GL_SDL = $_gl_sdl
6686 HAVE_POSIX_SELECT = $_posix_select
6687 HAVE_SYS_MMAN_H = $_mman
6688 IVTV = $_ivtv
6689 JACK = $_jack
6690 JOYSTICK = $_joystick
6691 JPEG = $_jpeg
6692 KAI = $_kai
6693 KVA = $_kva
6694 LADSPA = $_ladspa
6695 LIBA52 = $_liba52
6696 LIBASS = $_ass
6697 LIBBLURAY = $_bluray
6698 LIBBS2B = $_libbs2b
6699 LIBDCA = $_libdca
6700 LIBDV = $_libdv
6701 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6702 LIBMAD = $_mad
6703 LIBNEMESI = $_nemesi
6704 LIBNUT = $_libnut
6705 LIBSMBCLIENT = $_smb
6706 LIBTHEORA = $_theora
6707 LIRC = $_lirc
6708 LIVE555 = $_live
6709 MACOSX_FINDER = $_macosx_finder
6710 MD5SUM = $_md5sum
6711 MGA = $_mga
6712 MNG = $_mng
6713 MPG123 = $_mpg123
6714 MUSEPACK = $_musepack
6715 NAS = $_nas
6716 NATIVE_RTSP = $_native_rtsp
6717 NETWORKING = $networking
6718 OPENAL = $_openal
6719 OSS = $_ossaudio
6720 PE_EXECUTABLE = $_pe_executable
6721 PNG = $_png
6722 PNM = $_pnm
6723 PRIORITY = $_priority
6724 PULSE = $_pulse
6725 PVR = $_pvr
6726 QTX_CODECS = $_qtx
6727 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6728 QTX_EMULATION = $_qtx_emulation
6729 QUARTZ = $_quartz
6730 RADIO=$_radio
6731 RADIO_CAPTURE=$_radio_capture
6732 REAL_CODECS = $_real
6733 RSOUND = $_rsound
6734 S3FB = $_s3fb
6735 SDL = $_sdl
6736 SPEEX = $_speex
6737 STREAM_CACHE = $_stream_cache
6738 SGIAUDIO = $_sgiaudio
6739 SUNAUDIO = $_sunaudio
6740 SVGA = $_svga
6741 TDFXFB = $_tdfxfb
6742 TDFXVID = $_tdfxvid
6743 TGA = $_tga
6744 TV = $_tv
6745 TV_BSDBT848 = $_tv_bsdbt848
6746 TV_DSHOW = $_tv_dshow
6747 TV_V4L = $_tv_v4l
6748 TV_V4L1 = $_tv_v4l1
6749 TV_V4L2 = $_tv_v4l2
6750 UNRAR_EXEC = $_unrar_exec
6751 V4L2 = $_v4l2
6752 VCD = $_vcd
6753 VDPAU = $_vdpau
6754 VESA = $_vesa
6755 VORBIS = $_vorbis
6756 VSTREAM = $_vstream
6757 WII = $_wii
6758 WIN32DLL = $_win32dll
6759 WIN32WAVEOUT = $_win32waveout
6760 WIN32_EMULATION = $_win32_emulation
6761 X11 = $_x11
6762 XANIM_CODECS = $_xanim
6763 XMGA = $_xmga
6764 XMMS_PLUGINS = $_xmms
6765 XV = $_xv
6766 XVID4 = $_xvid
6767 XVR100 = $_xvr100
6768 YUV4MPEG = $_yuv4mpeg
6770 # FFmpeg
6771 FFMPEG = $ffmpeg
6772 FFMPEG_EVAL_API = $ffmpeg_eval_api
6773 FFMPEG_INTERNALS = $ffmpeg_internals
6774 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6776 RANLIB = $_ranlib
6777 YASM = $_yasm
6778 YASMFLAGS = $YASMFLAGS
6780 CONFIG_VDPAU = $_vdpau
6781 CONFIG_ZLIB = $_zlib
6783 HAVE_PTHREADS = $_pthreads
6784 HAVE_SHM = $_shm
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]')
6795 _nprefix=$3;
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"
6800 else
6801 echo "#define ${_nprefix}_$part 0"
6803 done
6806 echo "Creating config.h"
6807 cat > $TMPH << EOF
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) */
6829 #undef FAST_OSD
6830 #undef FAST_OSD_TABLE
6834 #define CONFIGURATION "$configuration"
6836 #define MPLAYER_DATADIR "$_datadir"
6837 #define MPLAYER_CONFDIR "$_confdir"
6838 #define MPLAYER_LOCALEDIR "$_localedir"
6840 $def_translation
6842 /* definitions needed by included libraries */
6843 #define HAVE_INTTYPES_H 1
6844 /* libdvdcss */
6845 #define HAVE_ERRNO_H 1
6846 /* libdvdcss + libdvdread */
6847 #define HAVE_LIMITS_H 1
6848 /* libdvdcss */
6849 #define HAVE_UNISTD_H 1
6850 /* libdvdread */
6851 #define STDC_HEADERS 1
6852 #define HAVE_MEMCPY 1
6853 /* libdvdnav */
6854 #define READ_CACHE_TRACE 0
6855 /* libdvdread */
6856 #define HAVE_DLFCN_H 1
6857 $def_dvdcss
6860 /* system headers */
6861 $def_alloca_h
6862 $def_alsa_asoundlib_h
6863 $def_altivec_h
6864 $def_malloc_h
6865 $def_mman_h
6866 $def_mman_has_map_failed
6867 $def_soundcard_h
6868 $def_sys_asoundlib_h
6869 $def_sys_soundcard_h
6870 $def_sys_sysinfo_h
6871 $def_sys_videoio_h
6872 $def_termios_h
6873 $def_termios_sys_h
6874 $def_winsock2_h
6877 /* system functions */
6878 $def_gethostbyname2
6879 $def_gettimeofday
6880 $def_glob
6881 $def_langinfo
6882 $def_lrintf
6883 $def_map_memalign
6884 $def_memalign
6885 $def_nanosleep
6886 $def_posix_select
6887 $def_select
6888 $def_setenv
6889 $def_setmode
6890 $def_shm
6891 $def_strsep
6892 $def_swab
6893 $def_sysi86
6894 $def_sysi86_iv
6895 $def_termcap
6896 $def_termios
6897 $def_vsscanf
6900 /* system-specific features */
6901 $def_asmalign_pot
6902 $def_builtin_expect
6903 $def_dl
6904 $def_dos_paths
6905 $def_extern_asm
6906 $def_extern_prefix
6907 $def_iconv
6908 $def_kstat
6909 $def_macosx_bundle
6910 $def_macosx_finder
6911 $def_priority
6912 $def_quicktime
6913 $def_restrict_keyword
6914 $def_rtc
6915 $def_unrar_exec
6918 /* configurable options */
6919 $def_charset
6920 $def_crash_debug
6921 $def_debug
6922 $def_fastmemcpy
6923 $def_runtime_cpudetection
6924 $def_sighandler
6925 $def_sortsub
6926 $def_stream_cache
6927 $def_pthread_cache
6930 /* CPU stuff */
6931 #define __CPU__ $iproc
6932 $def_ebx_available
6933 $def_words_endian
6934 $def_bigendian
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"
6943 $def_bluray
6944 $def_bsdi_dvd
6945 $def_cddb
6946 $def_cdio
6947 $def_cdparanoia
6948 $def_cdrom
6949 $def_dvd
6950 $def_dvd_bsd
6951 $def_dvd_darwin
6952 $def_dvd_linux
6953 $def_dvd_openbsd
6954 $def_dvdio
6955 $def_dvdnav
6956 $def_dvdread
6957 $def_hpux_scsi_h
6958 $def_libcdio
6959 $def_sol_scsi_h
6960 $def_vcd
6963 /* codec libraries */
6964 $def_faad
6965 $def_liba52
6966 $def_libdca
6967 $def_libdv
6968 $def_mad
6969 $def_mpg123
6970 $def_musepack
6971 $def_speex
6972 $def_theora
6973 $def_tremor
6974 $def_vorbis
6975 $def_xvid
6976 $def_zlib
6978 $def_libnut
6981 /* binary codecs */
6982 $def_qtx
6983 $def_qtx_win32
6984 $def_real
6985 $def_win32_loader
6986 $def_win32dll
6987 $def_xanim
6988 $def_xmms
6989 #define BINARY_CODECS_PATH "$_codecsdir"
6990 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6993 /* Audio output drivers */
6994 $def_alsa
6995 $def_alsa1x
6996 $def_alsa5
6997 $def_alsa9
6998 $def_arts
6999 $def_coreaudio
7000 $def_dart
7001 $def_esd
7002 $def_esd_latency
7003 $def_jack
7004 $def_kai
7005 $def_nas
7006 $def_openal
7007 $def_openal_h
7008 $def_ossaudio
7009 $def_ossaudio_devdsp
7010 $def_ossaudio_devmixer
7011 $def_pulse
7012 $def_rsound
7013 $def_sgiaudio
7014 $def_sunaudio
7015 $def_win32waveout
7017 $def_ladspa
7018 $def_libbs2b
7021 /* input */
7022 $def_apple_ir
7023 $def_apple_remote
7024 $def_ioctl_bt848_h_name
7025 $def_ioctl_meteor_h_name
7026 $def_joystick
7027 $def_lirc
7028 $def_lircc
7029 $def_pvr
7030 $def_radio
7031 $def_radio_bsdbt848
7032 $def_radio_capture
7033 $def_radio_v4l
7034 $def_radio_v4l2
7035 $def_tv
7036 $def_tv_bsdbt848
7037 $def_tv_dshow
7038 $def_tv_v4l
7039 $def_tv_v4l1
7040 $def_tv_v4l2
7043 /* font stuff */
7044 $def_ass
7045 $def_bitmap_font
7046 $def_enca
7047 $def_fontconfig
7048 $def_freetype
7049 $def_fribidi
7052 /* networking */
7053 $def_closesocket
7054 $def_ftp
7055 $def_inet6
7056 $def_inet_aton
7057 $def_inet_pton
7058 $def_live
7059 $def_nemesi
7060 $def_networking
7061 $def_smb
7062 $def_socklen_t
7063 $def_vstream
7066 /* libvo options */
7067 $def_3dfx
7068 $def_aa
7069 $def_bl
7070 $def_caca
7071 $def_corevideo
7072 $def_dga
7073 $def_dga1
7074 $def_dga2
7075 $def_direct3d
7076 $def_directfb
7077 $def_directx
7078 $def_dvb
7079 $def_dvbin
7080 $def_dxr3
7081 $def_fbdev
7082 $def_ggi
7083 $def_ggiwmh
7084 $def_gif
7085 $def_gif_4
7086 $def_gif_tvt_hack
7087 $def_gl
7088 $def_gl_win32
7089 $def_gl_x11
7090 $def_gl_sdl
7091 $def_ivtv
7092 $def_jpeg
7093 $def_kva
7094 $def_md5sum
7095 $def_mga
7096 $def_mng
7097 $def_png
7098 $def_pnm
7099 $def_quartz
7100 $def_s3fb
7101 $def_sdl
7102 $def_sdl_sdl_h
7103 $def_svga
7104 $def_tdfxfb
7105 $def_tdfxvid
7106 $def_tga
7107 $def_v4l2
7108 $def_vdpau
7109 $def_vesa
7110 $def_vm
7111 $def_wii
7112 $def_x11
7113 $def_xdpms
7114 $def_xf86keysym
7115 $def_xinerama
7116 $def_xmga
7117 $def_xss
7118 $def_xv
7119 $def_xvr100
7120 $def_yuv4mpeg
7123 /* FFmpeg */
7124 $def_ffmpeg
7125 $def_ffmpeg_eval_api
7126 $def_ffmpeg_internals
7128 $def_arpa_inet_h
7129 $def_bswap
7130 $def_dcbzl
7131 $def_exp2
7132 $def_exp2f
7133 $def_fast_64bit
7134 $def_fast_unaligned
7135 $def_llrint
7136 $def_log2
7137 $def_log2f
7138 $def_lrint
7139 $def_memalign_hack
7140 $def_mkstemp
7141 $def_posix_memalign
7142 $def_pthreads
7143 $def_round
7144 $def_roundf
7145 $def_threads
7146 $def_truncf
7147 $def_xform_asm
7148 $def_yasm
7150 #define HAVE_INLINE_ASM 1
7152 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7153 #ifndef MP_DEBUG
7154 #define HAVE_EBP_AVAILABLE 1
7155 #else
7156 #define HAVE_EBP_AVAILABLE 0
7157 #endif
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 #############################################################################
7167 cat << EOF
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
7178 Languages:
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)"
7207 echo
7210 if ! x86_32; then
7211 cat <<EOF
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.
7220 cat <<EOF
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
7232 to configure.
7234 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7238 if test "$warn_cflags" = yes; then
7239 cat <<EOF
7241 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7242 but:
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>'
7252 # Last move:
7253 rm -rf "$mplayer_tmpdir"