configure: remove unused maemo check
[mplayer/greg.git] / configure
blob32661fbfce421403a2b2b5e87cc64a183b45bf78
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 --disable-largefiles disable support for files > 2GB [enable]
300 --enable-termcap use termcap database for key codes [autodetect]
301 --enable-termios use termios database for key codes [autodetect]
302 --disable-iconv disable iconv for encoding conversion [autodetect]
303 --disable-langinfo do not use langinfo [autodetect]
304 --enable-lirc enable LIRC (remote control) support [autodetect]
305 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
306 --enable-joystick enable joystick support [disable]
307 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
308 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
309 --disable-vm disable X video mode extensions [autodetect]
310 --disable-xf86keysym disable support for multimedia keys [autodetect]
311 --enable-radio enable radio interface [disable]
312 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
313 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
314 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
315 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
316 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
317 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
318 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
319 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
320 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
321 --disable-networking disable networking [enable]
322 --enable-winsock2_h enable winsock2_h [autodetect]
323 --enable-smb enable Samba (SMB) input [autodetect]
324 --enable-live enable LIVE555 Streaming Media [autodetect]
325 --enable-nemesi enable Nemesi Streaming Media [autodetect]
326 --disable-vcd disable VCD support [autodetect]
327 --disable-bluray disable Blu-ray support [autodetect]
328 --disable-dvdnav disable libdvdnav [autodetect]
329 --disable-dvdread disable libdvdread [autodetect]
330 --disable-dvdread-internal disable internal libdvdread [autodetect]
331 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
332 --disable-cdparanoia disable cdparanoia [autodetect]
333 --disable-cddb disable cddb [autodetect]
334 --disable-bitmap-font disable bitmap font support [enable]
335 --disable-freetype disable FreeType 2 font rendering [autodetect]
336 --disable-fontconfig disable fontconfig font lookup [autodetect]
337 --disable-unrarexec disable using of UnRAR executable [enabled]
338 --enable-menu enable OSD menu (not DVD menu) [disabled]
339 --disable-sortsub disable subtitle sorting [enabled]
340 --enable-fribidi enable the FriBiDi libs [autodetect]
341 --disable-enca disable ENCA charset oracle library [autodetect]
342 --enable-macosx-finder enable Mac OS X Finder invocation parameter
343 parsing [disabled]
344 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
345 --disable-inet6 disable IPv6 support [autodetect]
346 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
347 --disable-ftp disable FTP support [enabled]
348 --disable-vstream disable TiVo vstream client support [autodetect]
349 --disable-pthreads disable Posix threads support [autodetect]
350 --disable-w32threads disable Win32 threads support [autodetect]
351 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
352 --enable-rpath enable runtime linker path for extra libs [disabled]
354 Codecs:
355 --enable-gif enable GIF support [autodetect]
356 --enable-png enable PNG input/output support [autodetect]
357 --enable-mng enable MNG input support [autodetect]
358 --enable-jpeg enable JPEG input/output support [autodetect]
359 --enable-libcdio enable libcdio support [autodetect]
360 --disable-win32dll disable Win32 DLL support [autodetect]
361 --disable-qtx disable QuickTime codecs support [enabled]
362 --disable-xanim disable XAnim codecs support [enabled]
363 --disable-real disable RealPlayer codecs support [enabled]
364 --disable-xvid disable Xvid [autodetect]
365 --disable-libnut disable libnut [autodetect]
366 --disable-ffmpeg disable FFmpeg [autodetect]
367 --disable-libvorbis disable libvorbis support [autodetect]
368 --disable-tremor disable Tremor [autodetect if no libvorbis]
369 --disable-speex disable Speex support [autodetect]
370 --enable-theora enable OggTheora libraries [autodetect]
371 --enable-faad enable FAAD2 (AAC) [autodetect]
372 --disable-ladspa disable LADSPA plugin support [autodetect]
373 --disable-libbs2b disable libbs2b audio filter support [autodetect]
374 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
375 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
376 --disable-mad disable libmad (MPEG audio) support [autodetect]
377 --enable-xmms enable XMMS input plugin support [disabled]
378 --enable-libdca enable libdca support [autodetect]
379 --disable-mp3lib disable builtin mp3lib [autodetect]
380 --disable-liba52 disable liba52 [autodetect]
381 --disable-musepack disable musepack support [autodetect]
383 Video output:
384 --enable-gl enable OpenGL video output [autodetect]
385 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
386 --enable-dga2 enable DGA 2 support [autodetect]
387 --enable-dga1 enable DGA 1 support [autodetect]
388 --enable-vesa enable VESA video output [autodetect]
389 --enable-svga enable SVGAlib video output [autodetect]
390 --enable-sdl enable SDL video output [autodetect]
391 --enable-kva enable KVA video output [autodetect]
392 --enable-aa enable AAlib video output [autodetect]
393 --enable-caca enable CACA video output [autodetect]
394 --enable-ggi enable GGI video output [autodetect]
395 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
396 --enable-direct3d enable Direct3D video output [autodetect]
397 --enable-directx enable DirectX video output [autodetect]
398 --enable-dxr3 enable DXR3/H+ video output [autodetect]
399 --enable-ivtv enable IVTV TV-Out video output [autodetect]
400 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
401 --enable-dvb enable DVB video output [autodetect]
402 --enable-mga enable mga_vid video output [autodetect]
403 --enable-xmga enable mga_vid X11 video output [autodetect]
404 --enable-xv enable Xv video output [autodetect]
405 --enable-xvmc enable XvMC acceleration [disable]
406 --enable-vdpau enable VDPAU acceleration [autodetect]
407 --enable-vm enable XF86VidMode support [autodetect]
408 --enable-xinerama enable Xinerama support [autodetect]
409 --enable-x11 enable X11 video output [autodetect]
410 --enable-xshape enable XShape support [autodetect]
411 --disable-xss disable screensaver support via xss [autodetect]
412 --enable-fbdev enable FBDev video output [autodetect]
413 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
414 --enable-tdfxfb enable tdfxfb video output [disable]
415 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
416 --enable-wii enable Nintendo Wii/GameCube video output [disable]
417 --enable-directfb enable DirectFB video output [autodetect]
418 --enable-bl enable Blinkenlights video output [disable]
419 --enable-tdfxvid enable tdfx_vid video output [disable]
420 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
421 --disable-tga disable Targa video output [enable]
422 --disable-pnm disable PNM video output [enable]
423 --disable-md5sum disable md5sum video output [enable]
424 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
425 --disable-corevideo disable CoreVideo video output [autodetect]
426 --disable-quartz disable Quartz video output [autodetect]
428 Audio output:
429 --disable-alsa disable ALSA audio output [autodetect]
430 --disable-ossaudio disable OSS audio output [autodetect]
431 --disable-arts disable aRts audio output [autodetect]
432 --disable-esd disable esd audio output [autodetect]
433 --disable-pulse disable Pulseaudio audio output [autodetect]
434 --disable-jack disable JACK audio output [autodetect]
435 --enable-openal enable OpenAL audio output [disable]
436 --disable-nas disable NAS audio output [autodetect]
437 --disable-sgiaudio disable SGI audio output [autodetect]
438 --disable-sunaudio disable Sun audio output [autodetect]
439 --disable-kai disable KAI audio output [autodetect]
440 --disable-dart disable DART audio output [autodetect]
441 --disable-win32waveout disable Windows waveout audio output [autodetect]
442 --disable-coreaudio disable CoreAudio audio output [autodetect]
443 --disable-select disable using select() on the audio device [enable]
445 Language options:
446 --enable-translation enable support for translated output [disable]
447 --charset=charset convert the console messages to this character set
448 --language-doc=lang language to use for the documentation [en]
449 --language-man=lang language to use for the man pages [en]
450 --language-msg=lang extra languages for program messages [all]
451 --language=lang default language to use [en]
452 Specific options override --language. You can pass a list of languages separated
453 by whitespace or commas instead of a single language. Nonexisting translations
454 will be dropped from each list. All translations available in the list will be
455 installed. The value "all" will activate all translations. The LINGUAS
456 environment variable is honored. In all cases the fallback is English.
457 The program always supports English-language output; additional message
458 languages are only installed if --enable-translation is also specified.
459 Available values for --language-doc are: all $doc_lang_all
460 Available values for --language-man are: all $man_lang_all
461 Available values for --language-msg are: all $msg_lang_all
463 Miscellaneous options:
464 --enable-runtime-cpudetection enable runtime CPU detection [disable]
465 --enable-cross-compile enable cross-compilation [autodetect]
466 --cc=COMPILER C compiler to build MPlayer [gcc]
467 --host-cc=COMPILER C compiler for tools needed while building [gcc]
468 --as=ASSEMBLER assembler to build MPlayer [as]
469 --nm=NM nm tool to build MPlayer [nm]
470 --yasm=YASM Yasm assembler to build MPlayer [yasm]
471 --ar=AR librarian to build MPlayer [ar]
472 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
473 --windres=WINDRES windres to build MPlayer [windres]
474 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
475 --enable-static build a statically linked binary
476 --with-install=PATH path to a custom install program
478 Advanced options:
479 --enable-mmx enable MMX [autodetect]
480 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
481 --enable-3dnow enable 3DNow! [autodetect]
482 --enable-3dnowext enable extended 3DNow! [autodetect]
483 --enable-sse enable SSE [autodetect]
484 --enable-sse2 enable SSE2 [autodetect]
485 --enable-ssse3 enable SSSE3 [autodetect]
486 --enable-shm enable shm [autodetect]
487 --enable-altivec enable AltiVec (PowerPC) [autodetect]
488 --enable-armv5te enable DSP extensions (ARM) [autodetect]
489 --enable-armv6 enable ARMv6 (ARM) [autodetect]
490 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
491 --enable-armvfp enable ARM VFP (ARM) [autodetect]
492 --enable-neon enable NEON (ARM) [autodetect]
493 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
494 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
495 --enable-big-endian force byte order to big-endian [autodetect]
496 --enable-debug[=1-3] compile-in debugging information [disable]
497 --enable-profile compile-in profiling information [disable]
498 --disable-sighandler disable sighandler for crashes [enable]
499 --enable-crash-debug enable automatic gdb attach on crash [disable]
500 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
501 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
503 Use these options if autodetection fails:
504 --extra-cflags=FLAGS extra CFLAGS
505 --extra-ldflags=FLAGS extra LDFLAGS
506 --extra-libs=FLAGS extra linker flags
507 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
508 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
510 --with-freetype-config=PATH path to freetype-config
511 --with-glib-config=PATH path to glib*-config
512 --with-gtk-config=PATH path to gtk*-config
513 --with-sdl-config=PATH path to sdl*-config
514 --with-dvdnav-config=PATH path to dvdnav-config
515 --with-dvdread-config=PATH path to dvdread-config
517 This configure script is NOT autoconf-based, even though its output is similar.
518 It will try to autodetect all configuration options. If you --enable an option
519 it will be forcefully turned on, skipping autodetection. This can break
520 compilation, so you need to know what you are doing.
522 exit 0
523 } #show_help()
525 # GOTCHA: the variables below defines the default behavior for autodetection
526 # and have - unless stated otherwise - at least 2 states : yes no
527 # If autodetection is available then the third state is: auto
528 _mmx=auto
529 _3dnow=auto
530 _3dnowext=auto
531 _mmxext=auto
532 _sse=auto
533 _sse2=auto
534 _ssse3=auto
535 _cmov=auto
536 _fast_cmov=auto
537 _fast_clz=auto
538 _armv5te=auto
539 _armv6=auto
540 _armv6t2=auto
541 _armvfp=auto
542 neon=auto
543 _iwmmxt=auto
544 _mtrr=auto
545 _altivec=auto
546 _install=install
547 _ranlib=ranlib
548 _windres=windres
549 _cc=cc
550 _ar=ar
551 test "$CC" && _cc="$CC"
552 _as=auto
553 _nm=auto
554 _yasm=yasm
555 _runtime_cpudetection=no
556 _cross_compile=auto
557 _prefix="/usr/local"
558 ffmpeg=auto
559 ffmpeg_internals=no
560 _mplayer=yes
561 _x11=auto
562 _xshape=auto
563 _xss=auto
564 _dga1=auto
565 _dga2=auto
566 _xv=auto
567 _xvmc=no #auto when complete
568 _vdpau=auto
569 _sdl=auto
570 _kva=auto
571 _direct3d=auto
572 _directx=auto
573 _win32waveout=auto
574 _nas=auto
575 _png=auto
576 _mng=auto
577 _jpeg=auto
578 _pnm=yes
579 _md5sum=yes
580 _yuv4mpeg=yes
581 _gif=auto
582 _gl=auto
583 matrixview=yes
584 _ggi=auto
585 _ggiwmh=auto
586 _aa=auto
587 _caca=auto
588 _svga=auto
589 _vesa=auto
590 _fbdev=auto
591 _dvb=auto
592 _dxr3=auto
593 _ivtv=auto
594 _v4l2=auto
595 _iconv=auto
596 _langinfo=auto
597 _rtc=auto
598 _ossaudio=auto
599 _arts=auto
600 _esd=auto
601 _pulse=auto
602 _jack=auto
603 _kai=auto
604 _dart=auto
605 _openal=no
606 _libcdio=auto
607 _mad=auto
608 _tremor=auto
609 _libvorbis=auto
610 _speex=auto
611 _theora=auto
612 _mpg123=auto
613 _mp3lib=auto
614 _liba52=auto
615 _libdca=auto
616 _faad=auto
617 _ladspa=auto
618 _libbs2b=auto
619 _xmms=no
620 _vcd=auto
621 _bluray=auto
622 _dvdnav=auto
623 _dvdnavconfig=dvdnav-config
624 _dvdreadconfig=dvdread-config
625 _dvdread=auto
626 _dvdread_internal=auto
627 _libdvdcss_internal=auto
628 _xanim=auto
629 _real=auto
630 _live=auto
631 _nemesi=auto
632 _native_rtsp=yes
633 _xinerama=auto
634 _mga=auto
635 _xmga=auto
636 _vm=auto
637 _xf86keysym=auto
638 _sgiaudio=auto
639 _sunaudio=auto
640 _alsa=auto
641 _fastmemcpy=yes
642 _unrar_exec=auto
643 _win32dll=auto
644 _select=yes
645 _radio=no
646 _radio_capture=no
647 _radio_v4l=auto
648 _radio_v4l2=auto
649 _radio_bsdbt848=auto
650 _tv=yes
651 _tv_v4l1=auto
652 _tv_v4l2=auto
653 _tv_bsdbt848=auto
654 _tv_dshow=auto
655 _pvr=auto
656 networking=yes
657 _winsock2_h=auto
658 _smb=auto
659 _joystick=no
660 _xvid=auto
661 _libnut=auto
662 _lirc=auto
663 _lircc=auto
664 _apple_remote=auto
665 _apple_ir=auto
666 _gui=no
667 _gtk1=no
668 _termcap=auto
669 _termios=auto
670 _3dfx=no
671 _s3fb=no
672 _wii=no
673 _tdfxfb=no
674 _tdfxvid=no
675 _xvr100=auto
676 _tga=yes
677 _directfb=auto
678 _bl=no
679 _largefiles=yes
680 #language=en
681 _shm=auto
682 _translation=no
683 _charset="UTF-8"
684 _dynamic_plugins=no
685 _crash_debug=no
686 _sighandler=yes
687 _libdv=auto
688 _cdparanoia=auto
689 _cddb=auto
690 _big_endian=auto
691 _bitmap_font=yes
692 _freetype=auto
693 _fontconfig=auto
694 _menu=no
695 _qtx=auto
696 _coreaudio=auto
697 _corevideo=auto
698 _quartz=auto
699 quicktime=auto
700 _macosx_finder=no
701 _macosx_bundle=auto
702 _sortsub=yes
703 _freetypeconfig='freetype-config'
704 _fribidi=auto
705 _enca=auto
706 _inet6=auto
707 _gethostbyname2=auto
708 _ftp=auto
709 _musepack=auto
710 _vstream=auto
711 _pthreads=auto
712 _w32threads=auto
713 _ass=auto
714 _rpath=no
715 _asmalign_pot=auto
716 _stream_cache=yes
717 _priority=no
718 def_dos_paths="#define HAVE_DOS_PATHS 0"
719 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
720 def_priority="#undef CONFIG_PRIORITY"
721 def_pthread_cache="#undef PTHREAD_CACHE"
722 need_shmem=yes
723 for ac_option do
724 case "$ac_option" in
725 --help|-help|-h)
726 show_help
728 --prefix=*)
729 _prefix=$(echo $ac_option | cut -d '=' -f 2)
731 --bindir=*)
732 _bindir=$(echo $ac_option | cut -d '=' -f 2)
734 --datadir=*)
735 _datadir=$(echo $ac_option | cut -d '=' -f 2)
737 --mandir=*)
738 _mandir=$(echo $ac_option | cut -d '=' -f 2)
740 --confdir=*)
741 _confdir=$(echo $ac_option | cut -d '=' -f 2)
743 --libdir=*)
744 _libdir=$(echo $ac_option | cut -d '=' -f 2)
746 --codecsdir=*)
747 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
749 --localedir=*)
750 _localedir=$(echo $ac_option | cut -d '=' -f 2)
753 --with-install=*)
754 _install=$(echo $ac_option | cut -d '=' -f 2 )
756 --with-xvmclib=*)
757 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
760 --with-sdl-config=*)
761 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
763 --with-freetype-config=*)
764 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
766 --with-gtk-config=*)
767 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
769 --with-glib-config=*)
770 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
772 --with-dvdnav-config=*)
773 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
775 --with-dvdread-config=*)
776 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
779 --extra-cflags=*)
780 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
782 --extra-ldflags=*)
783 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
785 --extra-libs=*)
786 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
788 --extra-libs-mplayer=*)
789 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
792 --target=*)
793 _target=$(echo $ac_option | cut -d '=' -f 2)
795 --cc=*)
796 _cc=$(echo $ac_option | cut -d '=' -f 2)
798 --host-cc=*)
799 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
801 --as=*)
802 _as=$(echo $ac_option | cut -d '=' -f 2)
804 --nm=*)
805 _nm=$(echo $ac_option | cut -d '=' -f 2)
807 --yasm=*)
808 _yasm=$(echo $ac_option | cut -d '=' -f 2)
810 --ar=*)
811 _ar=$(echo $ac_option | cut -d '=' -f 2)
813 --ranlib=*)
814 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
816 --windres=*)
817 _windres=$(echo $ac_option | cut -d '=' -f 2)
819 --charset=*)
820 _charset=$(echo $ac_option | cut -d '=' -f 2)
822 --language-doc=*)
823 language_doc=$(echo $ac_option | cut -d '=' -f 2)
825 --language-man=*)
826 language_man=$(echo $ac_option | cut -d '=' -f 2)
828 --language-msg=*)
829 language_msg=$(echo $ac_option | cut -d '=' -f 2)
831 --language=*)
832 language=$(echo $ac_option | cut -d '=' -f 2)
835 --enable-static)
836 _ld_static='-static'
838 --disable-static)
839 _ld_static=''
841 --enable-profile)
842 _profile='-p'
844 --disable-profile)
845 _profile=
847 --enable-debug)
848 _debug='-g'
850 --enable-debug=*)
851 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
853 --disable-debug)
854 _debug=
856 --enable-translation) _translation=yes ;;
857 --disable-translation) _translation=no ;;
858 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
859 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
860 --enable-cross-compile) _cross_compile=yes ;;
861 --disable-cross-compile) _cross_compile=no ;;
862 --enable-mplayer) _mplayer=yes ;;
863 --disable-mplayer) _mplayer=no ;;
864 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
865 --disable-dynamic-plugins) _dynamic_plugins=no ;;
866 --enable-x11) _x11=yes ;;
867 --disable-x11) _x11=no ;;
868 --enable-xshape) _xshape=yes ;;
869 --disable-xshape) _xshape=no ;;
870 --enable-xss) _xss=yes ;;
871 --disable-xss) _xss=no ;;
872 --enable-xv) _xv=yes ;;
873 --disable-xv) _xv=no ;;
874 --enable-xvmc) _xvmc=yes ;;
875 --disable-xvmc) _xvmc=no ;;
876 --enable-vdpau) _vdpau=yes ;;
877 --disable-vdpau) _vdpau=no ;;
878 --enable-sdl) _sdl=yes ;;
879 --disable-sdl) _sdl=no ;;
880 --enable-kva) _kva=yes ;;
881 --disable-kva) _kva=no ;;
882 --enable-direct3d) _direct3d=yes ;;
883 --disable-direct3d) _direct3d=no ;;
884 --enable-directx) _directx=yes ;;
885 --disable-directx) _directx=no ;;
886 --enable-win32waveout) _win32waveout=yes ;;
887 --disable-win32waveout) _win32waveout=no ;;
888 --enable-nas) _nas=yes ;;
889 --disable-nas) _nas=no ;;
890 --enable-png) _png=yes ;;
891 --disable-png) _png=no ;;
892 --enable-mng) _mng=yes ;;
893 --disable-mng) _mng=no ;;
894 --enable-jpeg) _jpeg=yes ;;
895 --disable-jpeg) _jpeg=no ;;
896 --enable-pnm) _pnm=yes ;;
897 --disable-pnm) _pnm=no ;;
898 --enable-md5sum) _md5sum=yes ;;
899 --disable-md5sum) _md5sum=no ;;
900 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
901 --disable-yuv4mpeg) _yuv4mpeg=no ;;
902 --enable-gif) _gif=yes ;;
903 --disable-gif) _gif=no ;;
904 --enable-gl) _gl=yes ;;
905 --disable-gl) _gl=no ;;
906 --enable-matrixview) matrixview=yes ;;
907 --disable-matrixview) matrixview=no ;;
908 --enable-ggi) _ggi=yes ;;
909 --disable-ggi) _ggi=no ;;
910 --enable-ggiwmh) _ggiwmh=yes ;;
911 --disable-ggiwmh) _ggiwmh=no ;;
912 --enable-aa) _aa=yes ;;
913 --disable-aa) _aa=no ;;
914 --enable-caca) _caca=yes ;;
915 --disable-caca) _caca=no ;;
916 --enable-svga) _svga=yes ;;
917 --disable-svga) _svga=no ;;
918 --enable-vesa) _vesa=yes ;;
919 --disable-vesa) _vesa=no ;;
920 --enable-fbdev) _fbdev=yes ;;
921 --disable-fbdev) _fbdev=no ;;
922 --enable-dvb) _dvb=yes ;;
923 --disable-dvb) _dvb=no ;;
924 --enable-dxr3) _dxr3=yes ;;
925 --disable-dxr3) _dxr3=no ;;
926 --enable-ivtv) _ivtv=yes ;;
927 --disable-ivtv) _ivtv=no ;;
928 --enable-v4l2) _v4l2=yes ;;
929 --disable-v4l2) _v4l2=no ;;
930 --enable-iconv) _iconv=yes ;;
931 --disable-iconv) _iconv=no ;;
932 --enable-langinfo) _langinfo=yes ;;
933 --disable-langinfo) _langinfo=no ;;
934 --enable-rtc) _rtc=yes ;;
935 --disable-rtc) _rtc=no ;;
936 --enable-libdv) _libdv=yes ;;
937 --disable-libdv) _libdv=no ;;
938 --enable-ossaudio) _ossaudio=yes ;;
939 --disable-ossaudio) _ossaudio=no ;;
940 --enable-arts) _arts=yes ;;
941 --disable-arts) _arts=no ;;
942 --enable-esd) _esd=yes ;;
943 --disable-esd) _esd=no ;;
944 --enable-pulse) _pulse=yes ;;
945 --disable-pulse) _pulse=no ;;
946 --enable-jack) _jack=yes ;;
947 --disable-jack) _jack=no ;;
948 --enable-openal) _openal=yes ;;
949 --disable-openal) _openal=no ;;
950 --enable-kai) _kai=yes ;;
951 --disable-kai) _kai=no ;;
952 --enable-dart) _dart=yes ;;
953 --disable-dart) _dart=no ;;
954 --enable-mad) _mad=yes ;;
955 --disable-mad) _mad=no ;;
956 --enable-libcdio) _libcdio=yes ;;
957 --disable-libcdio) _libcdio=no ;;
958 --enable-libvorbis) _libvorbis=yes ;;
959 --disable-libvorbis) _libvorbis=no ;;
960 --enable-speex) _speex=yes ;;
961 --disable-speex) _speex=no ;;
962 --enable-tremor) _tremor=yes ;;
963 --disable-tremor) _tremor=no ;;
964 --enable-theora) _theora=yes ;;
965 --disable-theora) _theora=no ;;
966 --enable-mpg123) _mpg123=yes ;;
967 --disable-mpg123) _mpg123=no ;;
968 --enable-mp3lib) _mp3lib=yes ;;
969 --disable-mp3lib) _mp3lib=no ;;
970 --enable-liba52) _liba52=yes ;;
971 --disable-liba52) _liba52=no ;;
972 --enable-libdca) _libdca=yes ;;
973 --disable-libdca) _libdca=no ;;
974 --enable-musepack) _musepack=yes ;;
975 --disable-musepack) _musepack=no ;;
976 --enable-faad) _faad=yes ;;
977 --disable-faad) _faad=no ;;
978 --enable-ladspa) _ladspa=yes ;;
979 --disable-ladspa) _ladspa=no ;;
980 --enable-libbs2b) _libbs2b=yes ;;
981 --disable-libbs2b) _libbs2b=no ;;
982 --enable-xmms) _xmms=yes ;;
983 --disable-xmms) _xmms=no ;;
984 --enable-vcd) _vcd=yes ;;
985 --disable-vcd) _vcd=no ;;
986 --enable-bluray) _bluray=yes ;;
987 --disable-bluray) _bluray=no ;;
988 --enable-dvdread) _dvdread=yes ;;
989 --disable-dvdread) _dvdread=no ;;
990 --enable-dvdread-internal) _dvdread_internal=yes ;;
991 --disable-dvdread-internal) _dvdread_internal=no ;;
992 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
993 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
994 --enable-dvdnav) _dvdnav=yes ;;
995 --disable-dvdnav) _dvdnav=no ;;
996 --enable-xanim) _xanim=yes ;;
997 --disable-xanim) _xanim=no ;;
998 --enable-real) _real=yes ;;
999 --disable-real) _real=no ;;
1000 --enable-live) _live=yes ;;
1001 --disable-live) _live=no ;;
1002 --enable-nemesi) _nemesi=yes ;;
1003 --disable-nemesi) _nemesi=no ;;
1004 --enable-xinerama) _xinerama=yes ;;
1005 --disable-xinerama) _xinerama=no ;;
1006 --enable-mga) _mga=yes ;;
1007 --disable-mga) _mga=no ;;
1008 --enable-xmga) _xmga=yes ;;
1009 --disable-xmga) _xmga=no ;;
1010 --enable-vm) _vm=yes ;;
1011 --disable-vm) _vm=no ;;
1012 --enable-xf86keysym) _xf86keysym=yes ;;
1013 --disable-xf86keysym) _xf86keysym=no ;;
1014 --enable-sunaudio) _sunaudio=yes ;;
1015 --disable-sunaudio) _sunaudio=no ;;
1016 --enable-sgiaudio) _sgiaudio=yes ;;
1017 --disable-sgiaudio) _sgiaudio=no ;;
1018 --enable-alsa) _alsa=yes ;;
1019 --disable-alsa) _alsa=no ;;
1020 --enable-tv) _tv=yes ;;
1021 --disable-tv) _tv=no ;;
1022 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1023 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1024 --enable-tv-v4l1) _tv_v4l1=yes ;;
1025 --disable-tv-v4l1) _tv_v4l1=no ;;
1026 --enable-tv-v4l2) _tv_v4l2=yes ;;
1027 --disable-tv-v4l2) _tv_v4l2=no ;;
1028 --enable-tv-dshow) _tv_dshow=yes ;;
1029 --disable-tv-dshow) _tv_dshow=no ;;
1030 --enable-radio) _radio=yes ;;
1031 --enable-radio-capture) _radio_capture=yes ;;
1032 --disable-radio-capture) _radio_capture=no ;;
1033 --disable-radio) _radio=no ;;
1034 --enable-radio-v4l) _radio_v4l=yes ;;
1035 --disable-radio-v4l) _radio_v4l=no ;;
1036 --enable-radio-v4l2) _radio_v4l2=yes ;;
1037 --disable-radio-v4l2) _radio_v4l2=no ;;
1038 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1039 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1040 --enable-pvr) _pvr=yes ;;
1041 --disable-pvr) _pvr=no ;;
1042 --enable-fastmemcpy) _fastmemcpy=yes ;;
1043 --disable-fastmemcpy) _fastmemcpy=no ;;
1044 --enable-networking) networking=yes ;;
1045 --disable-networking) networking=no ;;
1046 --enable-winsock2_h) _winsock2_h=yes ;;
1047 --disable-winsock2_h) _winsock2_h=no ;;
1048 --enable-smb) _smb=yes ;;
1049 --disable-smb) _smb=no ;;
1050 --enable-joystick) _joystick=yes ;;
1051 --disable-joystick) _joystick=no ;;
1052 --enable-xvid) _xvid=yes ;;
1053 --disable-xvid) _xvid=no ;;
1054 --enable-libnut) _libnut=yes ;;
1055 --disable-libnut) _libnut=no ;;
1056 --enable-ffmpeg) ffmpeg=yes ;;
1057 --disable-ffmpeg) ffmpeg=no ;;
1058 --ffmpeg-source-dir=*)
1059 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1061 --enable-lirc) _lirc=yes ;;
1062 --disable-lirc) _lirc=no ;;
1063 --enable-lircc) _lircc=yes ;;
1064 --disable-lircc) _lircc=no ;;
1065 --enable-apple-remote) _apple_remote=yes ;;
1066 --disable-apple-remote) _apple_remote=no ;;
1067 --enable-apple-ir) _apple_ir=yes ;;
1068 --disable-apple-ir) _apple_ir=no ;;
1069 --enable-gui) _gui=yes ;;
1070 --disable-gui) _gui=no ;;
1071 --enable-gtk1) _gtk1=yes ;;
1072 --disable-gtk1) _gtk1=no ;;
1073 --enable-termcap) _termcap=yes ;;
1074 --disable-termcap) _termcap=no ;;
1075 --enable-termios) _termios=yes ;;
1076 --disable-termios) _termios=no ;;
1077 --enable-3dfx) _3dfx=yes ;;
1078 --disable-3dfx) _3dfx=no ;;
1079 --enable-s3fb) _s3fb=yes ;;
1080 --disable-s3fb) _s3fb=no ;;
1081 --enable-wii) _wii=yes ;;
1082 --disable-wii) _wii=no ;;
1083 --enable-tdfxfb) _tdfxfb=yes ;;
1084 --disable-tdfxfb) _tdfxfb=no ;;
1085 --disable-tdfxvid) _tdfxvid=no ;;
1086 --enable-tdfxvid) _tdfxvid=yes ;;
1087 --disable-xvr100) _xvr100=no ;;
1088 --enable-xvr100) _xvr100=yes ;;
1089 --disable-tga) _tga=no ;;
1090 --enable-tga) _tga=yes ;;
1091 --enable-directfb) _directfb=yes ;;
1092 --disable-directfb) _directfb=no ;;
1093 --enable-bl) _bl=yes ;;
1094 --disable-bl) _bl=no ;;
1095 --enable-mtrr) _mtrr=yes ;;
1096 --disable-mtrr) _mtrr=no ;;
1097 --enable-largefiles) _largefiles=yes ;;
1098 --disable-largefiles) _largefiles=no ;;
1099 --enable-shm) _shm=yes ;;
1100 --disable-shm) _shm=no ;;
1101 --enable-select) _select=yes ;;
1102 --disable-select) _select=no ;;
1103 --enable-cdparanoia) _cdparanoia=yes ;;
1104 --disable-cdparanoia) _cdparanoia=no ;;
1105 --enable-cddb) _cddb=yes ;;
1106 --disable-cddb) _cddb=no ;;
1107 --enable-big-endian) _big_endian=yes ;;
1108 --disable-big-endian) _big_endian=no ;;
1109 --enable-bitmap-font) _bitmap_font=yes ;;
1110 --disable-bitmap-font) _bitmap_font=no ;;
1111 --enable-freetype) _freetype=yes ;;
1112 --disable-freetype) _freetype=no ;;
1113 --enable-fontconfig) _fontconfig=yes ;;
1114 --disable-fontconfig) _fontconfig=no ;;
1115 --enable-unrarexec) _unrar_exec=yes ;;
1116 --disable-unrarexec) _unrar_exec=no ;;
1117 --enable-ftp) _ftp=yes ;;
1118 --disable-ftp) _ftp=no ;;
1119 --enable-vstream) _vstream=yes ;;
1120 --disable-vstream) _vstream=no ;;
1121 --enable-pthreads) _pthreads=yes ;;
1122 --disable-pthreads) _pthreads=no ;;
1123 --enable-w32threads) _w32threads=yes ;;
1124 --disable-w32threads) _w32threads=no ;;
1125 --enable-ass) _ass=yes ;;
1126 --disable-ass) _ass=no ;;
1127 --enable-rpath) _rpath=yes ;;
1128 --disable-rpath) _rpath=no ;;
1130 --enable-fribidi) _fribidi=yes ;;
1131 --disable-fribidi) _fribidi=no ;;
1133 --enable-enca) _enca=yes ;;
1134 --disable-enca) _enca=no ;;
1136 --enable-inet6) _inet6=yes ;;
1137 --disable-inet6) _inet6=no ;;
1139 --enable-gethostbyname2) _gethostbyname2=yes ;;
1140 --disable-gethostbyname2) _gethostbyname2=no ;;
1142 --enable-dga1) _dga1=yes ;;
1143 --disable-dga1) _dga1=no ;;
1144 --enable-dga2) _dga2=yes ;;
1145 --disable-dga2) _dga2=no ;;
1147 --enable-menu) _menu=yes ;;
1148 --disable-menu) _menu=no ;;
1150 --enable-qtx) _qtx=yes ;;
1151 --disable-qtx) _qtx=no ;;
1153 --enable-coreaudio) _coreaudio=yes ;;
1154 --disable-coreaudio) _coreaudio=no ;;
1155 --enable-corevideo) _corevideo=yes ;;
1156 --disable-corevideo) _corevideo=no ;;
1157 --enable-quartz) _quartz=yes ;;
1158 --disable-quartz) _quartz=no ;;
1159 --enable-macosx-finder) _macosx_finder=yes ;;
1160 --disable-macosx-finder) _macosx_finder=no ;;
1161 --enable-macosx-bundle) _macosx_bundle=yes ;;
1162 --disable-macosx-bundle) _macosx_bundle=no ;;
1164 --enable-sortsub) _sortsub=yes ;;
1165 --disable-sortsub) _sortsub=no ;;
1167 --enable-crash-debug) _crash_debug=yes ;;
1168 --disable-crash-debug) _crash_debug=no ;;
1169 --enable-sighandler) _sighandler=yes ;;
1170 --disable-sighandler) _sighandler=no ;;
1171 --enable-win32dll) _win32dll=yes ;;
1172 --disable-win32dll) _win32dll=no ;;
1174 --enable-sse) _sse=yes ;;
1175 --disable-sse) _sse=no ;;
1176 --enable-sse2) _sse2=yes ;;
1177 --disable-sse2) _sse2=no ;;
1178 --enable-ssse3) _ssse3=yes ;;
1179 --disable-ssse3) _ssse3=no ;;
1180 --enable-mmxext) _mmxext=yes ;;
1181 --disable-mmxext) _mmxext=no ;;
1182 --enable-3dnow) _3dnow=yes ;;
1183 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1184 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1185 --disable-3dnowext) _3dnowext=no ;;
1186 --enable-cmov) _cmov=yes ;;
1187 --disable-cmov) _cmov=no ;;
1188 --enable-fast-cmov) _fast_cmov=yes ;;
1189 --disable-fast-cmov) _fast_cmov=no ;;
1190 --enable-fast-clz) _fast_clz=yes ;;
1191 --disable-fast-clz) _fast_clz=no ;;
1192 --enable-altivec) _altivec=yes ;;
1193 --disable-altivec) _altivec=no ;;
1194 --enable-armv5te) _armv5te=yes ;;
1195 --disable-armv5te) _armv5te=no ;;
1196 --enable-armv6) _armv6=yes ;;
1197 --disable-armv6) _armv6=no ;;
1198 --enable-armv6t2) _armv6t2=yes ;;
1199 --disable-armv6t2) _armv6t2=no ;;
1200 --enable-armvfp) _armvfp=yes ;;
1201 --disable-armvfp) _armvfp=no ;;
1202 --enable-neon) neon=yes ;;
1203 --disable-neon) neon=no ;;
1204 --enable-iwmmxt) _iwmmxt=yes ;;
1205 --disable-iwmmxt) _iwmmxt=no ;;
1206 --enable-mmx) _mmx=yes ;;
1207 --disable-mmx) # 3Dnow! and MMX2 require MMX
1208 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1211 echo "Unknown parameter: $ac_option" >&2
1212 exit 1
1215 esac
1216 done
1218 if test "$_gui" = yes ; then
1219 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1220 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1223 # Atmos: moved this here, to be correct, if --prefix is specified
1224 test -z "$_bindir" && _bindir="$_prefix/bin"
1225 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1226 test -z "$_mandir" && _mandir="$_prefix/share/man"
1227 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1228 test -z "$_libdir" && _libdir="$_prefix/lib"
1229 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1231 # Determine our OS name and CPU architecture
1232 if test -z "$_target" ; then
1233 # OS name
1234 system_name=$(uname -s 2>&1)
1235 case "$system_name" in
1236 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1238 Haiku)
1239 system_name=BeOS
1241 IRIX*)
1242 system_name=IRIX
1244 GNU/kFreeBSD)
1245 system_name=FreeBSD
1247 HP-UX*)
1248 system_name=HP-UX
1250 [cC][yY][gG][wW][iI][nN]*)
1251 system_name=CYGWIN
1253 MINGW32*)
1254 system_name=MINGW32
1256 OS/2*)
1257 system_name=OS/2
1260 system_name="$system_name-UNKNOWN"
1262 esac
1265 # host's CPU/instruction set
1266 host_arch=$(uname -p 2>&1)
1267 case "$host_arch" in
1268 i386|sparc|ppc|alpha|arm|mips|vax)
1270 powerpc) # Darwin returns 'powerpc'
1271 host_arch=ppc
1273 *) # uname -p on Linux returns 'unknown' for the processor type,
1274 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1276 # Maybe uname -m (machine hardware name) returns something we
1277 # recognize.
1279 # x86/x86pc is used by QNX
1280 case "$(uname -m 2>&1)" in
1281 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 ;;
1282 ia64) host_arch=ia64 ;;
1283 macppc|ppc) host_arch=ppc ;;
1284 ppc64) host_arch=ppc64 ;;
1285 alpha) host_arch=alpha ;;
1286 sparc) host_arch=sparc ;;
1287 sparc64) host_arch=sparc64 ;;
1288 parisc*|hppa*|9000*) host_arch=hppa ;;
1289 arm*|zaurus|cats) host_arch=arm ;;
1290 sh3|sh4|sh4a) host_arch=sh ;;
1291 s390) host_arch=s390 ;;
1292 s390x) host_arch=s390x ;;
1293 *mips*) host_arch=mips ;;
1294 vax) host_arch=vax ;;
1295 xtensa*) host_arch=xtensa ;;
1296 *) host_arch=UNKNOWN ;;
1297 esac
1299 esac
1300 else # if test -z "$_target"
1301 system_name=$(echo $_target | cut -d '-' -f 2)
1302 case "$(echo $system_name | tr A-Z a-z)" in
1303 linux) system_name=Linux ;;
1304 freebsd) system_name=FreeBSD ;;
1305 gnu/kfreebsd) system_name=FreeBSD ;;
1306 netbsd) system_name=NetBSD ;;
1307 bsd/os) system_name=BSD/OS ;;
1308 openbsd) system_name=OpenBSD ;;
1309 dragonfly) system_name=DragonFly ;;
1310 sunos) system_name=SunOS ;;
1311 qnx) system_name=QNX ;;
1312 morphos) system_name=MorphOS ;;
1313 amigaos) system_name=AmigaOS ;;
1314 mingw32*) system_name=MINGW32 ;;
1315 esac
1316 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1317 host_arch=$(echo $_target | cut -d '-' -f 1)
1318 if test $(echo $host_arch) != "x86_64" ; then
1319 host_arch=$(echo $host_arch | tr '_' '-')
1323 extra_cflags="-I. $extra_cflags"
1324 _timer=timer-linux.c
1325 _getch=getch2.c
1326 if freebsd ; then
1327 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1328 extra_cflags="$extra_cflags -I/usr/local/include"
1331 if netbsd || dragonfly ; then
1332 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1333 extra_cflags="$extra_cflags -I/usr/pkg/include"
1336 if darwin; then
1337 extra_cflags="-mdynamic-no-pic $extra_cflags"
1338 if test "$(basename $_cc)" != "clang" ; then
1339 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1341 _timer=timer-darwin.c
1344 if aix ; then
1345 extra_ldflags="$extra_ldflags -lC"
1348 if irix ; then
1349 _ranlib='ar -r'
1350 elif linux ; then
1351 _ranlib='true'
1354 if win32 ; then
1355 _exesuf=".exe"
1356 extra_cflags="$extra_cflags -fno-common"
1357 # -lwinmm is always needed for osdep/timer-win2.c
1358 extra_ldflags="$extra_ldflags -lwinmm"
1359 _pe_executable=yes
1360 _timer=timer-win2.c
1361 _priority=yes
1362 def_dos_paths="#define HAVE_DOS_PATHS 1"
1363 def_priority="#define CONFIG_PRIORITY 1"
1366 if mingw32 ; then
1367 _getch=getch2-win.c
1368 need_shmem=no
1371 if amigaos ; then
1372 _select=no
1373 _sighandler=no
1374 _stream_cache=no
1375 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1376 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1379 if qnx ; then
1380 extra_ldflags="$extra_ldflags -lph"
1383 if os2 ; then
1384 _exesuf=".exe"
1385 _getch=getch2-os2.c
1386 need_shmem=no
1387 _priority=yes
1388 def_dos_paths="#define HAVE_DOS_PATHS 1"
1389 def_priority="#define CONFIG_PRIORITY 1"
1392 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1393 test "$tmpdir" && break
1394 done
1396 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1397 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1399 TMPLOG="config.log"
1400 TMPC="$mplayer_tmpdir/tmp.c"
1401 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1402 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1403 TMPH="$mplayer_tmpdir/tmp.h"
1404 TMPS="$mplayer_tmpdir/tmp.S"
1406 rm -f "$TMPLOG"
1407 echo configuration: $configuration > "$TMPLOG"
1408 echo >> "$TMPLOG"
1411 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1412 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1416 # Checking CC version...
1417 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1418 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1419 echocheck "$_cc version"
1420 cc_vendor=intel
1421 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1422 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1423 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1424 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1425 # TODO verify older icc/ecc compatibility
1426 case $cc_version in
1428 cc_version="v. ?.??, bad"
1429 cc_fail=yes
1431 10.1|11.0|11.1)
1432 cc_version="$cc_version, ok"
1435 cc_version="$cc_version, bad"
1436 cc_fail=yes
1438 esac
1439 echores "$cc_version"
1440 else
1441 for _cc in "$_cc" gcc cc ; do
1442 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1443 if test "$cc_name_tmp" = "gcc"; then
1444 cc_name=$cc_name_tmp
1445 echocheck "$_cc version"
1446 cc_vendor=gnu
1447 cc_version=$($_cc -dumpversion 2>&1)
1448 case $cc_version in
1449 2.96*)
1450 cc_fail=yes
1453 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1454 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1455 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1457 esac
1458 echores "$cc_version"
1459 break
1461 cc_name_tmp=$($_cc -v 2>&1 | head -n 1 | cut -d ' ' -f 1)
1462 if test "$cc_name_tmp" = "clang"; then
1463 echocheck "$_cc version"
1464 cc_vendor=clang
1465 cc_version=$($_cc -dumpversion 2>&1)
1466 res_comment="experimental support only"
1467 echores "clang $cc_version"
1468 break
1470 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1471 if test "$cc_name_tmp" = "Sun C"; then
1472 echocheck "$_cc version"
1473 cc_vendor=sun
1474 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1475 res_comment="experimental support only"
1476 echores "Sun C $cc_version"
1477 break
1479 done
1480 fi # icc
1481 test "$cc_fail" = yes && die "unsupported compiler version"
1483 if test -z "$_target" && x86 ; then
1484 cat > $TMPC << EOF
1485 int main(void) {
1486 int test[(int)sizeof(char *)-7];
1487 return 0;
1490 cc_check && host_arch=x86_64 || host_arch=i386
1493 echo "Detected operating system: $system_name"
1494 echo "Detected host architecture: $host_arch"
1496 echocheck "host cc"
1497 test "$_host_cc" || _host_cc=$_cc
1498 echores $_host_cc
1500 echocheck "cross compilation"
1501 if test $_cross_compile = auto ; then
1502 _cross_compile=yes
1503 cflag_check "" && "$TMPEXE" && _cross_compile=no
1505 echores $_cross_compile
1507 if test $_cross_compile = yes; then
1508 tmp_run() {
1509 return 0
1513 # ---
1515 # now that we know what compiler should be used for compilation, try to find
1516 # out which assembler is used by the $_cc compiler
1517 if test "$_as" = auto ; then
1518 _as=$($_cc -print-prog-name=as)
1519 test -z "$_as" && _as=as
1522 if test "$_nm" = auto ; then
1523 _nm=$($_cc -print-prog-name=nm)
1524 test -z "$_nm" && _nm=nm
1527 # XXX: this should be ok..
1528 _cpuinfo="echo"
1530 if test "$_runtime_cpudetection" = no ; then
1532 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1533 # FIXME: Remove the cygwin check once AMD CPUs are supported
1534 if test -r /proc/cpuinfo && ! cygwin; then
1535 # Linux with /proc mounted, extract CPU information from it
1536 _cpuinfo="cat /proc/cpuinfo"
1537 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1538 # FreeBSD with Linux emulation /proc mounted,
1539 # extract CPU information from it
1540 # Don't use it on x86 though, it never reports 3Dnow
1541 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1542 elif darwin && ! x86 ; then
1543 # use hostinfo on Darwin
1544 _cpuinfo="hostinfo"
1545 elif aix; then
1546 # use 'lsattr' on AIX
1547 _cpuinfo="lsattr -E -l proc0 -a type"
1548 elif x86; then
1549 # all other OSes try to extract CPU information from a small helper
1550 # program cpuinfo instead
1551 $_cc -o cpuinfo$_exesuf cpuinfo.c
1552 _cpuinfo="./cpuinfo$_exesuf"
1555 if x86 ; then
1556 # gather more CPU information
1557 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1558 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1559 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1560 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1561 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1563 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1565 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1566 -e s/xmm/sse/ -e s/kni/sse/)
1568 for ext in $pparam ; do
1569 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1570 done
1572 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1573 test $_sse = kernel_check && _mmxext=kernel_check
1575 echocheck "CPU vendor"
1576 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1578 echocheck "CPU type"
1579 echores "$pname"
1582 fi # test "$_runtime_cpudetection" = no
1584 if x86 && test "$_runtime_cpudetection" = no ; then
1585 extcheck() {
1586 if test "$1" = kernel_check ; then
1587 echocheck "kernel support of $2"
1588 cat > $TMPC <<EOF
1589 #include <stdlib.h>
1590 #include <signal.h>
1591 static void catch(int sig) { exit(1); }
1592 int main(void) {
1593 signal(SIGILL, catch);
1594 __asm__ volatile ("$3":::"memory"); return 0;
1598 if cc_check && tmp_run ; then
1599 eval _$2=yes
1600 echores "yes"
1601 _optimizing="$_optimizing $2"
1602 return 0
1603 else
1604 eval _$2=no
1605 echores "failed"
1606 echo "It seems that your kernel does not correctly support $2."
1607 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1608 return 1
1611 return 0
1614 extcheck $_mmx "mmx" "emms"
1615 extcheck $_mmxext "mmxext" "sfence"
1616 extcheck $_3dnow "3dnow" "femms"
1617 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1618 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1619 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1620 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1621 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1623 echocheck "mtrr support"
1624 if test "$_mtrr" = kernel_check ; then
1625 _mtrr="yes"
1626 _optimizing="$_optimizing mtrr"
1628 echores "$_mtrr"
1630 if test "$_gcc3_ext" != ""; then
1631 # if we had to disable sse/sse2 because the active kernel does not
1632 # support this instruction set extension, we also have to tell
1633 # gcc3 to not generate sse/sse2 instructions for normal C code
1634 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1640 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1641 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1642 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1643 subarch_all='X86_32 X86_64 PPC64'
1644 case "$host_arch" in
1645 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1646 arch='x86'
1647 subarch='x86_32'
1648 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1649 iproc=486
1650 proc=i486
1653 if test "$_runtime_cpudetection" = no ; then
1654 case "$pvendor" in
1655 AuthenticAMD)
1656 case "$pfamily" in
1657 3) proc=i386 iproc=386 ;;
1658 4) proc=i486 iproc=486 ;;
1659 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1660 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1661 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1662 proc=k6-3
1663 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1664 proc=geode
1665 elif test "$pmodel" -ge 8; then
1666 proc=k6-2
1667 elif test "$pmodel" -ge 6; then
1668 proc=k6
1669 else
1670 proc=i586
1673 6) iproc=686
1674 # It's a bit difficult to determine the correct type of Family 6
1675 # AMD CPUs just from their signature. Instead, we check directly
1676 # whether it supports SSE.
1677 if test "$_sse" = yes; then
1678 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1679 proc=athlon-xp
1680 else
1681 # Again, gcc treats athlon and athlon-tbird similarly.
1682 proc=athlon
1685 15) iproc=686
1686 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1687 # caught and remedied in the optimization tests below.
1688 proc=k8
1691 *) proc=amdfam10 iproc=686
1692 test $_fast_clz = "auto" && _fast_clz=yes
1694 esac
1696 GenuineIntel)
1697 case "$pfamily" in
1698 3) proc=i386 iproc=386 ;;
1699 4) proc=i486 iproc=486 ;;
1700 5) iproc=586
1701 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1702 proc=pentium-mmx # 4 is desktop, 8 is mobile
1703 else
1704 proc=i586
1707 6) iproc=686
1708 if test "$pmodel" -ge 15; then
1709 proc=core2
1710 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1711 proc=pentium-m
1712 elif test "$pmodel" -ge 7; then
1713 proc=pentium3
1714 elif test "$pmodel" -ge 3; then
1715 proc=pentium2
1716 else
1717 proc=i686
1719 test $_fast_clz = "auto" && _fast_clz=yes
1721 15) iproc=686
1722 # A nocona in 32-bit mode has no more capabilities than a prescott.
1723 if test "$pmodel" -ge 3; then
1724 proc=prescott
1725 else
1726 proc=pentium4
1727 test $_fast_clz = "auto" && _fast_clz=yes
1729 test $_fast_cmov = "auto" && _fast_cmov=no
1731 *) proc=prescott iproc=686 ;;
1732 esac
1734 CentaurHauls)
1735 case "$pfamily" in
1736 5) iproc=586
1737 if test "$pmodel" -ge 8; then
1738 proc=winchip2
1739 elif test "$pmodel" -ge 4; then
1740 proc=winchip-c6
1741 else
1742 proc=i586
1745 6) iproc=686
1746 if test "$pmodel" -ge 9; then
1747 proc=c3-2
1748 else
1749 proc=c3
1750 iproc=586
1753 *) proc=i686 iproc=i686 ;;
1754 esac
1756 unknown)
1757 case "$pfamily" in
1758 3) proc=i386 iproc=386 ;;
1759 4) proc=i486 iproc=486 ;;
1760 *) proc=i586 iproc=586 ;;
1761 esac
1764 proc=i586 iproc=586 ;;
1765 esac
1766 test $_fast_clz = "auto" && _fast_clz=no
1767 fi # test "$_runtime_cpudetection" = no
1770 # check that gcc supports our CPU, if not, fall back to earlier ones
1771 # LGB: check -mcpu and -march swithing step by step with enabling
1772 # to fall back till 386.
1774 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1776 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1777 cpuopt=-mtune
1778 else
1779 cpuopt=-mcpu
1782 echocheck "GCC & CPU optimization abilities"
1783 if test "$_runtime_cpudetection" = no ; then
1784 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1785 cflag_check -march=native && proc=native
1787 if test "$proc" = "amdfam10"; then
1788 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1790 if test "$proc" = "k8"; then
1791 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1793 if test "$proc" = "athlon-xp"; then
1794 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1796 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1797 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1799 if test "$proc" = "k6" || test "$proc" = "c3"; then
1800 if ! cflag_check -march=$proc $cpuopt=$proc; then
1801 if cflag_check -march=i586 $cpuopt=i686; then
1802 proc=i586-i686
1803 else
1804 proc=i586
1808 if test "$proc" = "prescott" ; then
1809 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1811 if test "$proc" = "core2" ; then
1812 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1814 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
1815 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1817 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1818 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1820 if test "$proc" = "i586"; then
1821 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1823 if test "$proc" = "i486" ; then
1824 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1826 if test "$proc" = "i386" ; then
1827 cflag_check -march=$proc $cpuopt=$proc || proc=error
1829 if test "$proc" = "error" ; then
1830 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1831 _mcpu=""
1832 _march=""
1833 _optimizing=""
1834 elif test "$proc" = "i586-i686"; then
1835 _march="-march=i586"
1836 _mcpu="$cpuopt=i686"
1837 _optimizing="$proc"
1838 else
1839 _march="-march=$proc"
1840 _mcpu="$cpuopt=$proc"
1841 _optimizing="$proc"
1843 else # if test "$_runtime_cpudetection" = no
1844 _mcpu="$cpuopt=generic"
1845 # at least i486 required, for bswap instruction
1846 _march="-march=i486"
1847 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1848 cflag_check $_mcpu || _mcpu=""
1849 cflag_check $_march $_mcpu || _march=""
1852 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1853 ## autodetected mcpu/march parameters
1854 if test "$_target" ; then
1855 # TODO: it may be a good idea to check GCC and fall back in all cases
1856 if test "$host_arch" = "i586-i686"; then
1857 _march="-march=i586"
1858 _mcpu="$cpuopt=i686"
1859 else
1860 _march="-march=$host_arch"
1861 _mcpu="$cpuopt=$host_arch"
1864 proc="$host_arch"
1866 case "$proc" in
1867 i386) iproc=386 ;;
1868 i486) iproc=486 ;;
1869 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1870 i686|athlon*|pentium*) iproc=686 ;;
1871 *) iproc=586 ;;
1872 esac
1875 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1876 _fast_cmov="yes"
1877 else
1878 _fast_cmov="no"
1880 test $_fast_clz = "auto" && _fast_clz=yes
1882 echores "$proc"
1885 ia64)
1886 arch='ia64'
1887 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1888 iproc='ia64'
1891 x86_64|amd64)
1892 arch='x86'
1893 subarch='x86_64'
1894 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1895 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1896 iproc='x86_64'
1898 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1899 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1900 cpuopt=-mtune
1901 else
1902 cpuopt=-mcpu
1904 if test "$_runtime_cpudetection" = no ; then
1905 case "$pvendor" in
1906 AuthenticAMD)
1907 case "$pfamily" in
1908 15) proc=k8
1909 test $_fast_clz = "auto" && _fast_clz=no
1911 *) proc=amdfam10;;
1912 esac
1914 GenuineIntel)
1915 case "$pfamily" in
1916 6) proc=core2;;
1918 # 64-bit prescotts exist, but as far as GCC is concerned they
1919 # have the same capabilities as a nocona.
1920 proc=nocona
1921 test $_fast_cmov = "auto" && _fast_cmov=no
1922 test $_fast_clz = "auto" && _fast_clz=no
1924 esac
1927 proc=error;;
1928 esac
1929 fi # test "$_runtime_cpudetection" = no
1931 echocheck "GCC & CPU optimization abilities"
1932 # This is a stripped-down version of the i386 fallback.
1933 if test "$_runtime_cpudetection" = no ; then
1934 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1935 cflag_check -march=native && proc=native
1937 # --- AMD processors ---
1938 if test "$proc" = "amdfam10"; then
1939 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1941 if test "$proc" = "k8"; then
1942 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1944 # This will fail if gcc version < 3.3, which is ok because earlier
1945 # versions don't really support 64-bit on amd64.
1946 # Is this a valid assumption? -Corey
1947 if test "$proc" = "athlon-xp"; then
1948 cflag_check -march=$proc $cpuopt=$proc || proc=error
1950 # --- Intel processors ---
1951 if test "$proc" = "core2"; then
1952 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1954 if test "$proc" = "x86-64"; then
1955 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1957 if test "$proc" = "nocona"; then
1958 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1960 if test "$proc" = "pentium4"; then
1961 cflag_check -march=$proc $cpuopt=$proc || proc=error
1964 _march="-march=$proc"
1965 _mcpu="$cpuopt=$proc"
1966 if test "$proc" = "error" ; then
1967 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1968 _mcpu=""
1969 _march=""
1971 else # if test "$_runtime_cpudetection" = no
1972 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1973 _march="-march=x86-64"
1974 _mcpu="$cpuopt=generic"
1975 cflag_check $_mcpu || _mcpu="x86-64"
1976 cflag_check $_mcpu || _mcpu=""
1977 cflag_check $_march $_mcpu || _march=""
1980 _optimizing="$proc"
1981 test $_fast_cmov = "auto" && _fast_cmov=yes
1982 test $_fast_clz = "auto" && _fast_clz=yes
1984 echores "$proc"
1987 sparc|sparc64)
1988 arch='sparc'
1989 iproc='sparc'
1990 if test "$host_arch" = "sparc64" ; then
1991 _vis='yes'
1992 proc='ultrasparc'
1993 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1994 elif sunos ; then
1995 echocheck "CPU type"
1996 karch=$(uname -m)
1997 case "$(echo $karch)" in
1998 sun4) proc=v7 ;;
1999 sun4c) proc=v7 ;;
2000 sun4d) proc=v8 ;;
2001 sun4m) proc=v8 ;;
2002 sun4u) proc=ultrasparc _vis='yes' ;;
2003 sun4v) proc=v9 ;;
2004 *) proc=v8 ;;
2005 esac
2006 echores "$proc"
2007 else
2008 proc=v8
2010 _mcpu="-mcpu=$proc"
2011 _optimizing="$proc"
2014 arm*)
2015 arch='arm'
2016 iproc='arm'
2019 avr32)
2020 arch='avr32'
2021 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2022 iproc='avr32'
2023 test $_fast_clz = "auto" && _fast_clz=yes
2026 sh|sh4)
2027 arch='sh4'
2028 iproc='sh4'
2031 ppc|ppc64|powerpc|powerpc64)
2032 arch='ppc'
2033 def_dcbzl='#define HAVE_DCBZL 0'
2034 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2035 iproc='ppc'
2037 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2038 subarch='ppc64'
2039 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2041 echocheck "CPU type"
2042 case $system_name in
2043 Linux)
2044 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2045 if test -n "$($_cpuinfo | grep altivec)"; then
2046 test $_altivec = auto && _altivec=yes
2049 Darwin)
2050 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2051 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2052 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2053 test $_altivec = auto && _altivec=yes
2056 NetBSD)
2057 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2058 case $cc_version in
2059 2*|3.0*|3.1*|3.2*|3.3*)
2062 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2063 test $_altivec = auto && _altivec=yes
2066 esac
2068 AIX)
2069 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2071 esac
2072 if test "$_altivec" = yes; then
2073 echores "$proc altivec"
2074 else
2075 _altivec=no
2076 echores "$proc"
2079 echocheck "GCC & CPU optimization abilities"
2081 if test -n "$proc"; then
2082 case "$proc" in
2083 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2084 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2085 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2086 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2087 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2088 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2089 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2090 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2091 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2092 *) ;;
2093 esac
2094 # gcc 3.1(.1) and up supports 7400 and 7450
2095 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2096 case "$proc" in
2097 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2098 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2099 *) ;;
2100 esac
2102 # gcc 3.2 and up supports 970
2103 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2104 case "$proc" in
2105 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2106 def_dcbzl='#define HAVE_DCBZL 1' ;;
2107 *) ;;
2108 esac
2110 # gcc 3.3 and up supports POWER4
2111 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2112 case "$proc" in
2113 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2114 *) ;;
2115 esac
2117 # gcc 3.4 and up supports 440*
2118 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2119 case "$proc" in
2120 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2121 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2122 *) ;;
2123 esac
2125 # gcc 4.0 and up supports POWER5
2126 if test "$_cc_major" -ge "4"; then
2127 case "$proc" in
2128 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2129 *) ;;
2130 esac
2134 if test -n "$_mcpu"; then
2135 _optimizing=$(echo $_mcpu | cut -c 8-)
2136 echores "$_optimizing"
2137 else
2138 echores "none"
2141 test $_fast_clz = "auto" && _fast_clz=yes
2145 alpha*)
2146 arch='alpha'
2147 iproc='alpha'
2148 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2150 echocheck "CPU type"
2151 cat > $TMPC << EOF
2152 int main(void) {
2153 unsigned long ver, mask;
2154 __asm__ ("implver %0" : "=r" (ver));
2155 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2156 printf("%ld-%x\n", ver, ~mask);
2157 return 0;
2160 $_cc -o "$TMPEXE" "$TMPC"
2161 case $("$TMPEXE") in
2163 0-0) proc="ev4"; _mvi="0";;
2164 1-0) proc="ev5"; _mvi="0";;
2165 1-1) proc="ev56"; _mvi="0";;
2166 1-101) proc="pca56"; _mvi="1";;
2167 2-303) proc="ev6"; _mvi="1";;
2168 2-307) proc="ev67"; _mvi="1";;
2169 2-1307) proc="ev68"; _mvi="1";;
2170 esac
2171 echores "$proc"
2173 echocheck "GCC & CPU optimization abilities"
2174 if test "$proc" = "ev68" ; then
2175 cc_check -mcpu=$proc || proc=ev67
2177 if test "$proc" = "ev67" ; then
2178 cc_check -mcpu=$proc || proc=ev6
2180 _mcpu="-mcpu=$proc"
2181 echores "$proc"
2183 test $_fast_clz = "auto" && _fast_clz=yes
2185 _optimizing="$proc"
2188 mips*)
2189 arch='mips'
2190 iproc='mips'
2192 if irix ; then
2193 echocheck "CPU type"
2194 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2195 case "$(echo $proc)" in
2196 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2197 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2198 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2199 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2200 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2201 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2202 esac
2203 # gcc < 3.x does not support -mtune.
2204 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2205 _mcpu=''
2207 echores "$proc"
2210 test $_fast_clz = "auto" && _fast_clz=yes
2214 hppa)
2215 arch='pa_risc'
2216 iproc='PA-RISC'
2219 s390)
2220 arch='s390'
2221 iproc='390'
2224 s390x)
2225 arch='s390x'
2226 iproc='390x'
2229 vax)
2230 arch='vax'
2231 iproc='vax'
2234 xtensa)
2235 arch='xtensa'
2236 iproc='xtensa'
2239 generic)
2240 arch='generic'
2244 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2245 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2246 die "unsupported architecture $host_arch"
2248 esac # case "$host_arch" in
2250 if test "$_runtime_cpudetection" = yes ; then
2251 if x86 ; then
2252 test "$_cmov" != no && _cmov=yes
2253 x86_32 && _cmov=no
2254 test "$_mmx" != no && _mmx=yes
2255 test "$_3dnow" != no && _3dnow=yes
2256 test "$_3dnowext" != no && _3dnowext=yes
2257 test "$_mmxext" != no && _mmxext=yes
2258 test "$_sse" != no && _sse=yes
2259 test "$_sse2" != no && _sse2=yes
2260 test "$_ssse3" != no && _ssse3=yes
2261 test "$_mtrr" != no && _mtrr=yes
2263 if ppc; then
2264 _altivec=yes
2269 # endian testing
2270 echocheck "byte order"
2271 if test "$_big_endian" = auto ; then
2272 cat > $TMPC <<EOF
2273 short ascii_name[] = {
2274 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2275 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2276 int main(void) { return (long)ascii_name; }
2278 if cc_check ; then
2279 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2280 _big_endian=yes
2281 else
2282 _big_endian=no
2284 else
2285 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2288 if test "$_big_endian" = yes ; then
2289 _byte_order='big-endian'
2290 def_words_endian='#define WORDS_BIGENDIAN 1'
2291 def_bigendian='#define HAVE_BIGENDIAN 1'
2292 else
2293 _byte_order='little-endian'
2294 def_words_endian='#undef WORDS_BIGENDIAN'
2295 def_bigendian='#define HAVE_BIGENDIAN 0'
2297 echores "$_byte_order"
2300 echocheck "extern symbol prefix"
2301 cat > $TMPC << EOF
2302 int ff_extern;
2304 cc_check -c || die "Symbol mangling check failed."
2305 sym=$($_nm -P -g $TMPEXE)
2306 extern_prefix=${sym%%ff_extern*}
2307 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2308 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2309 echores $extern_prefix
2312 echocheck "assembler support of -pipe option"
2313 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2314 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2317 echocheck "compiler support of named assembler arguments"
2318 _named_asm_args=yes
2319 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2320 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2321 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2322 _named_asm_args=no
2323 def_named_asm_args="#undef NAMED_ASM_ARGS"
2325 echores $_named_asm_args
2328 if darwin && test "$cc_vendor" = "gnu" ; then
2329 echocheck "GCC support of -mstackrealign"
2330 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2331 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2332 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2333 # wrong code with this flag, but this can be worked around by adding
2334 # -fno-unit-at-a-time as described in the blog post at
2335 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2336 cat > $TMPC << EOF
2337 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2338 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2340 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2341 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2342 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2343 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2344 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2347 # Checking for CFLAGS
2348 _install_strip="-s"
2349 if test "$_profile" != "" || test "$_debug" != "" ; then
2350 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2351 WARNFLAGS="-W -Wall"
2352 _install_strip=
2353 elif test -z "$CFLAGS" ; then
2354 if test "$cc_vendor" = "intel" ; then
2355 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2356 WARNFLAGS="-wd167 -wd556 -wd144"
2357 elif test "$cc_vendor" = "sun" ; then
2358 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2359 elif test "$cc_vendor" = "clang"; then
2360 CFLAGS="-O2 $_march $_pipe"
2361 elif test "$cc_vendor" != "gnu" ; then
2362 CFLAGS="-O2 $_march $_mcpu $_pipe"
2363 else
2364 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2365 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2366 extra_ldflags="$extra_ldflags -ffast-math"
2368 else
2369 warn_cflags=yes
2372 if test "$cc_vendor" = "gnu" ; then
2373 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2374 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2375 # that's the only variable specific to C now, and this option is not valid
2376 # for C++.
2377 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2378 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2379 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2380 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2381 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2382 else
2383 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2386 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2387 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2390 if test -n "$LDFLAGS" ; then
2391 extra_ldflags="$extra_ldflags $LDFLAGS"
2392 warn_cflags=yes
2393 elif test "$cc_vendor" = "intel" ; then
2394 extra_ldflags="$extra_ldflags -i-static"
2396 if test -n "$CPPFLAGS" ; then
2397 extra_cflags="$extra_cflags $CPPFLAGS"
2398 warn_cflags=yes
2403 if x86_32 ; then
2404 # Checking assembler (_as) compatibility...
2405 # Added workaround for older as that reads from stdin by default - atmos
2406 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2407 echocheck "assembler ($_as $as_version)"
2409 _pref_as_version='2.9.1'
2410 echo 'nop' > $TMPS
2411 if test "$_mmx" = yes ; then
2412 echo 'emms' >> $TMPS
2414 if test "$_3dnow" = yes ; then
2415 _pref_as_version='2.10.1'
2416 echo 'femms' >> $TMPS
2418 if test "$_3dnowext" = yes ; then
2419 _pref_as_version='2.10.1'
2420 echo 'pswapd %mm0, %mm0' >> $TMPS
2422 if test "$_mmxext" = yes ; then
2423 _pref_as_version='2.10.1'
2424 echo 'movntq %mm0, (%eax)' >> $TMPS
2426 if test "$_sse" = yes ; then
2427 _pref_as_version='2.10.1'
2428 echo 'xorps %xmm0, %xmm0' >> $TMPS
2430 #if test "$_sse2" = yes ; then
2431 # _pref_as_version='2.11'
2432 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2434 if test "$_cmov" = yes ; then
2435 _pref_as_version='2.10.1'
2436 echo 'cmovb %eax, %ebx' >> $TMPS
2438 if test "$_ssse3" = yes ; then
2439 _pref_as_version='2.16.92'
2440 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2442 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2444 if test "$as_verc_fail" != yes ; then
2445 echores "ok"
2446 else
2447 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2448 echores "failed"
2449 die "obsolete binutils version"
2452 fi #if x86_32
2455 echocheck "PIC"
2456 pic=no
2457 cat > $TMPC << EOF
2458 int main(void) {
2459 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2460 #error PIC not enabled
2461 #endif
2462 return 0;
2465 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2466 echores $pic
2469 if x86 ; then
2471 echocheck ".align is a power of two"
2472 if test "$_asmalign_pot" = auto ; then
2473 _asmalign_pot=no
2474 inline_asm_check '".align 3"' && _asmalign_pot=yes
2476 if test "$_asmalign_pot" = "yes" ; then
2477 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2478 else
2479 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2481 echores $_asmalign_pot
2484 echocheck "10 assembler operands"
2485 ten_operands=no
2486 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2487 cat > $TMPC << EOF
2488 int main(void) {
2489 int x=0;
2490 __asm__ volatile(
2492 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2494 return 0;
2497 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2498 echores $ten_operands
2500 echocheck "ebx availability"
2501 ebx_available=no
2502 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2503 cat > $TMPC << EOF
2504 int main(void) {
2505 int x;
2506 __asm__ volatile(
2507 "xor %0, %0"
2508 :"=b"(x)
2509 // just adding ebx to clobber list seems unreliable with some
2510 // compilers, e.g. Haiku's gcc 2.95
2512 // and the above check does not work for OSX 64 bit...
2513 __asm__ volatile("":::"%ebx");
2514 return 0;
2517 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2518 echores $ebx_available
2521 echocheck "yasm"
2522 if test -z "$YASMFLAGS" ; then
2523 if darwin ; then
2524 x86_64 && objformat="macho64" || objformat="macho"
2525 elif win32 ; then
2526 objformat="win32"
2527 else
2528 objformat="elf"
2530 # currently tested for Linux x86, x86_64
2531 YASMFLAGS="-f $objformat"
2532 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2533 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2534 case "$objformat" in
2535 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2536 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2537 esac
2538 else
2539 warn_cflags=yes
2542 echo "pabsw xmm0, xmm0" > $TMPS
2543 yasm_check || _yasm=""
2544 if test $_yasm ; then
2545 def_yasm='#define HAVE_YASM 1'
2546 have_yasm="yes"
2547 echores "$_yasm"
2548 else
2549 def_yasm='#define HAVE_YASM 0'
2550 have_yasm="no"
2551 echores "no"
2554 echocheck "bswap"
2555 def_bswap='#define HAVE_BSWAP 0'
2556 echo 'bswap %eax' > $TMPS
2557 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2558 echores "$bswap"
2559 fi #if x86
2562 #FIXME: This should happen before the check for CFLAGS..
2563 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2564 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2566 # check if AltiVec is supported by the compiler, and how to enable it
2567 echocheck "GCC AltiVec flags"
2568 if $(cflag_check -maltivec -mabi=altivec) ; then
2569 _altivec_gcc_flags="-maltivec -mabi=altivec"
2570 # check if <altivec.h> should be included
2571 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2572 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2573 inc_altivec_h='#include <altivec.h>'
2574 else
2575 if $(cflag_check -faltivec) ; then
2576 _altivec_gcc_flags="-faltivec"
2577 else
2578 _altivec=no
2579 _altivec_gcc_flags="none, AltiVec disabled"
2583 echores "$_altivec_gcc_flags"
2585 # check if the compiler supports braces for vector declarations
2586 cat > $TMPC << EOF
2587 $inc_altivec_h
2588 int main(void) { (vector int) {1}; return 0; }
2590 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2592 # Disable runtime cpudetection if we cannot generate AltiVec code or
2593 # AltiVec is disabled by the user.
2594 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2595 && _runtime_cpudetection=no
2597 # Show that we are optimizing for AltiVec (if enabled and supported).
2598 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2599 && _optimizing="$_optimizing altivec"
2601 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2602 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2605 if ppc ; then
2606 def_xform_asm='#define HAVE_XFORM_ASM 0'
2607 xform_asm=no
2608 echocheck "XFORM ASM support"
2609 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2610 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2611 echores "$xform_asm"
2614 if arm ; then
2615 echocheck "ARM pld instruction"
2616 pld=no
2617 inline_asm_check '"pld [r0]"' && pld=yes
2618 echores "$pld"
2620 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2621 if test $_armv5te = "auto" ; then
2622 _armv5te=no
2623 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2625 echores "$_armv5te"
2627 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2629 echocheck "ARMv6 (SIMD instructions)"
2630 if test $_armv6 = "auto" ; then
2631 _armv6=no
2632 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2634 echores "$_armv6"
2636 echocheck "ARMv6t2 (SIMD instructions)"
2637 if test $_armv6t2 = "auto" ; then
2638 _armv6t2=no
2639 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2641 echores "$_armv6"
2643 echocheck "ARM VFP"
2644 if test $_armvfp = "auto" ; then
2645 _armvfp=no
2646 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2648 echores "$_armvfp"
2650 echocheck "ARM NEON"
2651 if test $neon = "auto" ; then
2652 neon=no
2653 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2655 echores "$neon"
2657 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2658 if test $_iwmmxt = "auto" ; then
2659 _iwmmxt=no
2660 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2662 echores "$_iwmmxt"
2665 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2666 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2667 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2668 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2669 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2670 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2671 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2672 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2673 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2674 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2675 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2676 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2677 test "$pld" = yes && cpuexts="PLD $cpuexts"
2678 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2679 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2680 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2681 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2682 test "$neon" = yes && cpuexts="NEON $cpuexts"
2683 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2684 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2685 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2687 # Checking kernel version...
2688 if x86_32 && linux ; then
2689 _k_verc_problem=no
2690 kernel_version=$(uname -r 2>&1)
2691 echocheck "$system_name kernel version"
2692 case "$kernel_version" in
2693 '') kernel_version="?.??"; _k_verc_fail=yes;;
2694 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2695 _k_verc_problem=yes;;
2696 esac
2697 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2698 _k_verc_fail=yes
2700 if test "$_k_verc_fail" ; then
2701 echores "$kernel_version, fail"
2702 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2703 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2704 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2705 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2706 echo "2.2.x you must upgrade it to get SSE support!"
2707 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2708 else
2709 echores "$kernel_version, ok"
2713 ######################
2714 # MAIN TESTS GO HERE #
2715 ######################
2718 echocheck "-lposix"
2719 if cflag_check -lposix ; then
2720 extra_ldflags="$extra_ldflags -lposix"
2721 echores "yes"
2722 else
2723 echores "no"
2726 echocheck "-lm"
2727 if cflag_check -lm ; then
2728 _ld_lm="-lm"
2729 echores "yes"
2730 else
2731 _ld_lm=""
2732 echores "no"
2736 echocheck "langinfo"
2737 if test "$_langinfo" = auto ; then
2738 _langinfo=no
2739 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2741 if test "$_langinfo" = yes ; then
2742 def_langinfo='#define HAVE_LANGINFO 1'
2743 else
2744 def_langinfo='#undef HAVE_LANGINFO'
2746 echores "$_langinfo"
2749 echocheck "translation support"
2750 if test "$_translation" = yes; then
2751 def_translation="#define CONFIG_TRANSLATION 1"
2752 else
2753 def_translation="#undef CONFIG_TRANSLATION"
2755 echores "$_translation"
2757 echocheck "language"
2758 # Set preferred languages, "all" uses English as main language.
2759 test -z "$language" && language=$LINGUAS
2760 test -z "$language_doc" && language_doc=$language
2761 test -z "$language_man" && language_man=$language
2762 test -z "$language_msg" && language_msg=$language
2763 test -z "$language_msg" && language_msg="all"
2764 language_doc=$(echo $language_doc | tr , " ")
2765 language_man=$(echo $language_man | tr , " ")
2766 language_msg=$(echo $language_msg | tr , " ")
2768 test "$language_doc" = "all" && language_doc=$doc_lang_all
2769 test "$language_man" = "all" && language_man=$man_lang_all
2770 test "$language_msg" = "all" && language_msg=$msg_lang_all
2772 if test "$_translation" != yes ; then
2773 language_msg=""
2776 # Prune non-existing translations from language lists.
2777 # Set message translation to the first available language.
2778 # Fall back on English.
2779 for lang in $language_doc ; do
2780 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2781 done
2782 language_doc=$tmp_language_doc
2783 test -z "$language_doc" && language_doc=en
2785 for lang in $language_man ; do
2786 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2787 done
2788 language_man=$tmp_language_man
2789 test -z "$language_man" && language_man=en
2791 for lang in $language_msg ; do
2792 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2793 done
2794 language_msg=$tmp_language_msg
2796 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2799 echocheck "enable sighandler"
2800 if test "$_sighandler" = yes ; then
2801 def_sighandler='#define CONFIG_SIGHANDLER 1'
2802 else
2803 def_sighandler='#undef CONFIG_SIGHANDLER'
2805 echores "$_sighandler"
2807 echocheck "runtime cpudetection"
2808 if test "$_runtime_cpudetection" = yes ; then
2809 _optimizing="Runtime CPU-Detection enabled"
2810 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2811 else
2812 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2814 echores "$_runtime_cpudetection"
2817 echocheck "restrict keyword"
2818 for restrict_keyword in restrict __restrict __restrict__ ; do
2819 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2820 if cc_check; then
2821 def_restrict_keyword=$restrict_keyword
2822 break;
2824 done
2825 if [ -n "$def_restrict_keyword" ]; then
2826 echores "$def_restrict_keyword"
2827 else
2828 echores "none"
2830 # Avoid infinite recursion loop ("#define restrict restrict")
2831 if [ "$def_restrict_keyword" != "restrict" ]; then
2832 def_restrict_keyword="#define restrict $def_restrict_keyword"
2833 else
2834 def_restrict_keyword=""
2838 echocheck "__builtin_expect"
2839 # GCC branch prediction hint
2840 cat > $TMPC << EOF
2841 static int foo(int a) {
2842 a = __builtin_expect(a, 10);
2843 return a == 10 ? 0 : 1;
2845 int main(void) { return foo(10) && foo(0); }
2847 _builtin_expect=no
2848 cc_check && _builtin_expect=yes
2849 if test "$_builtin_expect" = yes ; then
2850 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2851 else
2852 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2854 echores "$_builtin_expect"
2857 echocheck "kstat"
2858 _kstat=no
2859 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2860 if test "$_kstat" = yes ; then
2861 def_kstat="#define HAVE_LIBKSTAT 1"
2862 extra_ldflags="$extra_ldflags -lkstat"
2863 else
2864 def_kstat="#undef HAVE_LIBKSTAT"
2866 echores "$_kstat"
2869 echocheck "posix4"
2870 # required for nanosleep on some systems
2871 _posix4=no
2872 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2873 if test "$_posix4" = yes ; then
2874 extra_ldflags="$extra_ldflags -lposix4"
2876 echores "$_posix4"
2878 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2879 echocheck $func
2880 eval _$func=no
2881 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2882 if eval test "x\$_$func" = "xyes"; then
2883 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2884 echores yes
2885 else
2886 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2887 echores no
2889 done
2892 echocheck "mkstemp"
2893 _mkstemp=no
2894 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2895 if test "$_mkstemp" = yes ; then
2896 def_mkstemp='#define HAVE_MKSTEMP 1'
2897 else
2898 def_mkstemp='#define HAVE_MKSTEMP 0'
2900 echores "$_mkstemp"
2903 echocheck "nanosleep"
2904 _nanosleep=no
2905 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2906 if test "$_nanosleep" = yes ; then
2907 def_nanosleep='#define HAVE_NANOSLEEP 1'
2908 else
2909 def_nanosleep='#undef HAVE_NANOSLEEP'
2911 echores "$_nanosleep"
2914 echocheck "socklib"
2915 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2916 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2917 cat > $TMPC << EOF
2918 #include <netdb.h>
2919 #include <sys/socket.h>
2920 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2922 _socklib=no
2923 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2924 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2925 done
2926 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2927 if test $_winsock2_h = auto ; then
2928 _winsock2_h=no
2929 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2931 test "$_ld_sock" && res_comment="using $_ld_sock"
2932 echores "$_socklib"
2935 if test $_winsock2_h = yes ; then
2936 _ld_sock="-lws2_32"
2937 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2938 else
2939 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2943 echocheck "arpa/inet.h"
2944 arpa_inet_h=no
2945 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2946 header_check arpa/inet.h && arpa_inet_h=yes &&
2947 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2948 echores "$arpa_inet_h"
2951 echocheck "inet_pton()"
2952 def_inet_pton='#define HAVE_INET_PTON 0'
2953 inet_pton=no
2954 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2955 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2956 done
2957 if test $inet_pton = yes ; then
2958 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2959 def_inet_pton='#define HAVE_INET_PTON 1'
2961 echores "$inet_pton"
2964 echocheck "inet_aton()"
2965 def_inet_aton='#define HAVE_INET_ATON 0'
2966 inet_aton=no
2967 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2968 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2969 done
2970 if test $inet_aton = yes ; then
2971 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2972 def_inet_aton='#define HAVE_INET_ATON 1'
2974 echores "$inet_aton"
2977 echocheck "socklen_t"
2978 _socklen_t=no
2979 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2980 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2981 done
2982 if test "$_socklen_t" = yes ; then
2983 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2984 else
2985 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2987 echores "$_socklen_t"
2990 echocheck "closesocket()"
2991 _closesocket=no
2992 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2993 if test "$_closesocket" = yes ; then
2994 def_closesocket='#define HAVE_CLOSESOCKET 1'
2995 else
2996 def_closesocket='#define HAVE_CLOSESOCKET 0'
2998 echores "$_closesocket"
3001 echocheck "networking"
3002 test $_winsock2_h = no && test $inet_pton = no &&
3003 test $inet_aton = no && networking=no
3004 if test "$networking" = yes ; then
3005 def_network='#define CONFIG_NETWORK 1'
3006 def_networking='#define CONFIG_NETWORKING 1'
3007 extra_ldflags="$extra_ldflags $_ld_sock"
3008 inputmodules="networking $inputmodules"
3009 else
3010 noinputmodules="networking $noinputmodules"
3011 def_network='#define CONFIG_NETWORK 0'
3012 def_networking='#undef CONFIG_NETWORKING'
3014 echores "$networking"
3017 echocheck "inet6"
3018 if test "$_inet6" = auto ; then
3019 cat > $TMPC << EOF
3020 #include <sys/types.h>
3021 #if !defined(_WIN32)
3022 #include <sys/socket.h>
3023 #include <netinet/in.h>
3024 #else
3025 #include <ws2tcpip.h>
3026 #endif
3027 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3029 _inet6=no
3030 if cc_check $_ld_sock ; then
3031 _inet6=yes
3034 if test "$_inet6" = yes ; then
3035 def_inet6='#define HAVE_AF_INET6 1'
3036 else
3037 def_inet6='#undef HAVE_AF_INET6'
3039 echores "$_inet6"
3042 echocheck "gethostbyname2"
3043 if test "$_gethostbyname2" = auto ; then
3044 cat > $TMPC << EOF
3045 #include <sys/types.h>
3046 #include <sys/socket.h>
3047 #include <netdb.h>
3048 int main(void) { gethostbyname2("", AF_INET); return 0; }
3050 _gethostbyname2=no
3051 if cc_check ; then
3052 _gethostbyname2=yes
3055 if test "$_gethostbyname2" = yes ; then
3056 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3057 else
3058 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3060 echores "$_gethostbyname2"
3063 echocheck "inttypes.h (required)"
3064 _inttypes=no
3065 header_check inttypes.h && _inttypes=yes
3066 echores "$_inttypes"
3068 if test "$_inttypes" = no ; then
3069 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3070 header_check sys/bitypes.h && _inttypes=yes
3071 if test "$_inttypes" = yes ; then
3072 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."
3073 else
3074 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3079 echocheck "malloc.h"
3080 _malloc=no
3081 header_check malloc.h && _malloc=yes
3082 if test "$_malloc" = yes ; then
3083 def_malloc_h='#define HAVE_MALLOC_H 1'
3084 else
3085 def_malloc_h='#define HAVE_MALLOC_H 0'
3087 echores "$_malloc"
3090 echocheck "memalign()"
3091 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3092 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3093 _memalign=no
3094 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3095 if test "$_memalign" = yes ; then
3096 def_memalign='#define HAVE_MEMALIGN 1'
3097 else
3098 def_memalign='#define HAVE_MEMALIGN 0'
3099 def_map_memalign='#define memalign(a, b) malloc(b)'
3100 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3102 echores "$_memalign"
3105 echocheck "posix_memalign()"
3106 posix_memalign=no
3107 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3108 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3109 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3110 echores "$posix_memalign"
3113 echocheck "alloca.h"
3114 _alloca=no
3115 statement_check alloca.h 'alloca(0)' && _alloca=yes
3116 if cc_check ; then
3117 def_alloca_h='#define HAVE_ALLOCA_H 1'
3118 else
3119 def_alloca_h='#undef HAVE_ALLOCA_H'
3121 echores "$_alloca"
3124 echocheck "fastmemcpy"
3125 if test "$_fastmemcpy" = yes ; then
3126 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3127 else
3128 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3130 echores "$_fastmemcpy"
3133 echocheck "mman.h"
3134 _mman=no
3135 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3136 if test "$_mman" = yes ; then
3137 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3138 else
3139 def_mman_h='#undef HAVE_SYS_MMAN_H'
3140 os2 && need_mmap=yes
3142 echores "$_mman"
3144 _mman_has_map_failed=no
3145 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3146 if test "$_mman_has_map_failed" = yes ; then
3147 def_mman_has_map_failed=''
3148 else
3149 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3152 echocheck "dynamic loader"
3153 _dl=no
3154 for _ld_tmp in "" "-ldl"; do
3155 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3156 done
3157 if test "$_dl" = yes ; then
3158 def_dl='#define HAVE_LIBDL 1'
3159 else
3160 def_dl='#undef HAVE_LIBDL'
3162 echores "$_dl"
3165 echocheck "dynamic a/v plugins support"
3166 if test "$_dl" = no ; then
3167 _dynamic_plugins=no
3169 if test "$_dynamic_plugins" = yes ; then
3170 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3171 else
3172 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3174 echores "$_dynamic_plugins"
3177 def_threads='#define HAVE_THREADS 0'
3179 echocheck "pthread"
3180 if linux ; then
3181 THREAD_CFLAGS=-D_REENTRANT
3182 elif freebsd || netbsd || openbsd || bsdos ; then
3183 THREAD_CFLAGS=-D_THREAD_SAFE
3185 if test "$_pthreads" = auto ; then
3186 cat > $TMPC << EOF
3187 #include <pthread.h>
3188 static void *func(void *arg) { return arg; }
3189 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3191 _pthreads=no
3192 if ! hpux ; then
3193 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3194 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3195 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3196 done
3199 if test "$_pthreads" = yes ; then
3200 test $_ld_pthread && res_comment="using $_ld_pthread"
3201 def_pthreads='#define HAVE_PTHREADS 1'
3202 def_threads='#define HAVE_THREADS 1'
3203 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3204 else
3205 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3206 def_pthreads='#undef HAVE_PTHREADS'
3207 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3208 mingw32 || _win32dll=no
3210 echores "$_pthreads"
3212 if cygwin ; then
3213 if test "$_pthreads" = yes ; then
3214 def_pthread_cache="#define PTHREAD_CACHE 1"
3215 else
3216 _stream_cache=no
3217 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3221 echocheck "w32threads"
3222 if test "$_pthreads" = yes ; then
3223 res_comment="using pthread instead"
3224 _w32threads=no
3226 if test "$_w32threads" = auto ; then
3227 _w32threads=no
3228 mingw32 && _w32threads=yes
3230 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3231 echores "$_w32threads"
3233 echocheck "rpath"
3234 if test "$_rpath" = yes ; then
3235 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3236 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3237 done
3238 extra_ldflags=$tmp
3240 echores "$_rpath"
3242 echocheck "iconv"
3243 if test "$_iconv" = auto ; then
3244 cat > $TMPC << EOF
3245 #include <stdio.h>
3246 #include <unistd.h>
3247 #include <iconv.h>
3248 #define INBUFSIZE 1024
3249 #define OUTBUFSIZE 4096
3251 char inbuffer[INBUFSIZE];
3252 char outbuffer[OUTBUFSIZE];
3254 int main(void) {
3255 size_t numread;
3256 iconv_t icdsc;
3257 char *tocode="UTF-8";
3258 char *fromcode="cp1250";
3259 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3260 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3261 char *iptr=inbuffer;
3262 char *optr=outbuffer;
3263 size_t inleft=numread;
3264 size_t outleft=OUTBUFSIZE;
3265 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3266 != (size_t)(-1)) {
3267 write(1, outbuffer, OUTBUFSIZE - outleft);
3270 if (iconv_close(icdsc) == -1)
3273 return 0;
3276 _iconv=no
3277 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3278 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3279 _iconv=yes && break
3280 done
3282 if test "$_iconv" = yes ; then
3283 def_iconv='#define CONFIG_ICONV 1'
3284 else
3285 def_iconv='#undef CONFIG_ICONV'
3287 echores "$_iconv"
3290 echocheck "soundcard.h"
3291 _soundcard_h=no
3292 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3293 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3294 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3295 header_check $_soundcard_header && _soundcard_h=yes &&
3296 res_comment="$_soundcard_header" && break
3297 done
3299 if test "$_soundcard_h" = yes ; then
3300 if test $_soundcard_header = "sys/soundcard.h"; then
3301 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3302 else
3303 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3306 echores "$_soundcard_h"
3309 echocheck "sys/dvdio.h"
3310 _dvdio=no
3311 # FreeBSD 8.1 has broken dvdio.h
3312 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3313 if test "$_dvdio" = yes ; then
3314 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3315 else
3316 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3318 echores "$_dvdio"
3321 echocheck "sys/cdio.h"
3322 _cdio=no
3323 # at least OpenSolaris has a broken cdio.h
3324 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3325 if test "$_cdio" = yes ; then
3326 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3327 else
3328 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3330 echores "$_cdio"
3333 echocheck "linux/cdrom.h"
3334 _cdrom=no
3335 header_check linux/cdrom.h && _cdrom=yes
3336 if test "$_cdrom" = yes ; then
3337 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3338 else
3339 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3341 echores "$_cdrom"
3344 echocheck "dvd.h"
3345 _dvd=no
3346 header_check dvd.h && _dvd=yes
3347 if test "$_dvd" = yes ; then
3348 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3349 else
3350 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3352 echores "$_dvd"
3355 if bsdos; then
3356 echocheck "BSDI dvd.h"
3357 _bsdi_dvd=no
3358 header_check dvd.h && _bsdi_dvd=yes
3359 if test "$_bsdi_dvd" = yes ; then
3360 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3361 else
3362 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3364 echores "$_bsdi_dvd"
3365 fi #if bsdos
3368 if hpux; then
3369 # also used by AIX, but AIX does not support VCD and/or libdvdread
3370 echocheck "HP-UX SCSI header"
3371 _hpux_scsi_h=no
3372 header_check sys/scsi.h && _hpux_scsi_h=yes
3373 if test "$_hpux_scsi_h" = yes ; then
3374 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3375 else
3376 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3378 echores "$_hpux_scsi_h"
3379 fi #if hpux
3382 if sunos; then
3383 echocheck "userspace SCSI headers (Solaris)"
3384 _sol_scsi_h=no
3385 header_check sys/scsi/scsi_types.h &&
3386 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3387 _sol_scsi_h=yes
3388 if test "$_sol_scsi_h" = yes ; then
3389 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3390 else
3391 def_sol_scsi_h='#undef SOLARIS_USCSI'
3393 echores "$_sol_scsi_h"
3394 fi #if sunos
3397 echocheck "termcap"
3398 if test "$_termcap" = auto ; then
3399 _termcap=no
3400 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3401 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3402 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3403 done
3405 if test "$_termcap" = yes ; then
3406 def_termcap='#define HAVE_TERMCAP 1'
3407 test $_ld_tmp && res_comment="using $_ld_tmp"
3408 else
3409 def_termcap='#undef HAVE_TERMCAP'
3411 echores "$_termcap"
3414 echocheck "termios"
3415 def_termios='#undef HAVE_TERMIOS'
3416 def_termios_h='#undef HAVE_TERMIOS_H'
3417 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3418 if test "$_termios" = auto ; then
3419 _termios=no
3420 for _termios_header in "termios.h" "sys/termios.h"; do
3421 header_check $_termios_header && _termios=yes &&
3422 res_comment="using $_termios_header" && break
3423 done
3426 if test "$_termios" = yes ; then
3427 def_termios='#define HAVE_TERMIOS 1'
3428 if test "$_termios_header" = "termios.h" ; then
3429 def_termios_h='#define HAVE_TERMIOS_H 1'
3430 else
3431 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3434 echores "$_termios"
3437 echocheck "shm"
3438 if test "$_shm" = auto ; then
3439 _shm=no
3440 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3442 if test "$_shm" = yes ; then
3443 def_shm='#define HAVE_SHM 1'
3444 else
3445 def_shm='#undef HAVE_SHM'
3447 echores "$_shm"
3450 echocheck "strsep()"
3451 _strsep=no
3452 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3453 if test "$_strsep" = yes ; then
3454 def_strsep='#define HAVE_STRSEP 1'
3455 need_strsep=no
3456 else
3457 def_strsep='#undef HAVE_STRSEP'
3458 need_strsep=yes
3460 echores "$_strsep"
3463 echocheck "vsscanf()"
3464 cat > $TMPC << EOF
3465 #define _ISOC99_SOURCE
3466 #include <stdarg.h>
3467 #include <stdio.h>
3468 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3470 _vsscanf=no
3471 cc_check && _vsscanf=yes
3472 if test "$_vsscanf" = yes ; then
3473 def_vsscanf='#define HAVE_VSSCANF 1'
3474 need_vsscanf=no
3475 else
3476 def_vsscanf='#undef HAVE_VSSCANF'
3477 need_vsscanf=yes
3479 echores "$_vsscanf"
3482 echocheck "swab()"
3483 _swab=no
3484 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3485 if test "$_swab" = yes ; then
3486 def_swab='#define HAVE_SWAB 1'
3487 need_swab=no
3488 else
3489 def_swab='#undef HAVE_SWAB'
3490 need_swab=yes
3492 echores "$_swab"
3494 echocheck "POSIX select()"
3495 cat > $TMPC << EOF
3496 #include <stdio.h>
3497 #include <stdlib.h>
3498 #include <sys/types.h>
3499 #include <string.h>
3500 #include <sys/time.h>
3501 #include <unistd.h>
3502 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3504 _posix_select=no
3505 def_posix_select='#undef HAVE_POSIX_SELECT'
3506 #select() of kLIBC (OS/2) supports socket only
3507 ! os2 && cc_check && _posix_select=yes &&
3508 def_posix_select='#define HAVE_POSIX_SELECT 1'
3509 echores "$_posix_select"
3512 echocheck "audio select()"
3513 if test "$_select" = no ; then
3514 def_select='#undef HAVE_AUDIO_SELECT'
3515 elif test "$_select" = yes ; then
3516 def_select='#define HAVE_AUDIO_SELECT 1'
3518 echores "$_select"
3521 echocheck "gettimeofday()"
3522 _gettimeofday=no
3523 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3524 if test "$_gettimeofday" = yes ; then
3525 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3526 need_gettimeofday=no
3527 else
3528 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3529 need_gettimeofday=yes
3531 echores "$_gettimeofday"
3534 echocheck "glob()"
3535 _glob=no
3536 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3537 if test "$_glob" = yes ; then
3538 def_glob='#define HAVE_GLOB 1'
3539 need_glob=no
3540 else
3541 def_glob='#undef HAVE_GLOB'
3542 need_glob=yes
3544 echores "$_glob"
3547 echocheck "setenv()"
3548 _setenv=no
3549 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3550 if test "$_setenv" = yes ; then
3551 def_setenv='#define HAVE_SETENV 1'
3552 need_setenv=no
3553 else
3554 def_setenv='#undef HAVE_SETENV'
3555 need_setenv=yes
3557 echores "$_setenv"
3560 echocheck "setmode()"
3561 _setmode=no
3562 def_setmode='#define HAVE_SETMODE 0'
3563 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3564 echores "$_setmode"
3567 if sunos; then
3568 echocheck "sysi86()"
3569 _sysi86=no
3570 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3571 if test "$_sysi86" = yes ; then
3572 def_sysi86='#define HAVE_SYSI86 1'
3573 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3574 else
3575 def_sysi86='#undef HAVE_SYSI86'
3577 echores "$_sysi86"
3578 fi #if sunos
3581 echocheck "sys/sysinfo.h"
3582 _sys_sysinfo=no
3583 statement_check sys/sysinfo.h 'struct sysinfo s_info; sysinfo(&s_info)' && _sys_sysinfo=yes
3584 if test "$_sys_sysinfo" = yes ; then
3585 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3586 else
3587 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3589 echores "$_sys_sysinfo"
3592 if darwin; then
3594 echocheck "Mac OS X Finder Support"
3595 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3596 if test "$_macosx_finder" = yes ; then
3597 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3598 extra_ldflags="$extra_ldflags -framework Carbon"
3600 echores "$_macosx_finder"
3602 echocheck "Mac OS X Bundle file locations"
3603 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3604 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3605 if test "$_macosx_bundle" = yes ; then
3606 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3607 extra_ldflags="$extra_ldflags -framework Carbon"
3609 echores "$_macosx_bundle"
3611 echocheck "Apple Remote"
3612 if test "$_apple_remote" = auto ; then
3613 _apple_remote=no
3614 cat > $TMPC <<EOF
3615 #include <stdio.h>
3616 #include <IOKit/IOCFPlugIn.h>
3617 int main(void) {
3618 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3619 CFMutableDictionaryRef hidMatchDictionary;
3620 IOReturn ioReturnValue;
3622 // Set up a matching dictionary to search the I/O Registry by class.
3623 // name for all HID class devices
3624 hidMatchDictionary = IOServiceMatching("AppleIRController");
3626 // Now search I/O Registry for matching devices.
3627 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3628 hidMatchDictionary, &hidObjectIterator);
3630 // If search is unsuccessful, return nonzero.
3631 if (ioReturnValue != kIOReturnSuccess ||
3632 !IOIteratorIsValid(hidObjectIterator)) {
3633 return 1;
3635 return 0;
3638 cc_check -framework IOKit && _apple_remote=yes
3640 if test "$_apple_remote" = yes ; then
3641 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3642 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3643 else
3644 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3646 echores "$_apple_remote"
3648 fi #if darwin
3650 if linux; then
3652 echocheck "Apple IR"
3653 if test "$_apple_ir" = auto ; then
3654 _apple_ir=no
3655 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3657 if test "$_apple_ir" = yes ; then
3658 def_apple_ir='#define CONFIG_APPLE_IR 1'
3659 else
3660 def_apple_ir='#undef CONFIG_APPLE_IR'
3662 echores "$_apple_ir"
3663 fi #if linux
3665 echocheck "pkg-config"
3666 _pkg_config=pkg-config
3667 if $($_pkg_config --version > /dev/null 2>&1); then
3668 if test "$_ld_static"; then
3669 _pkg_config="$_pkg_config --static"
3671 echores "yes"
3672 else
3673 _pkg_config=false
3674 echores "no"
3678 echocheck "Samba support (libsmbclient)"
3679 if test "$_smb" = yes; then
3680 extra_ldflags="$extra_ldflags -lsmbclient"
3682 if test "$_smb" = auto; then
3683 _smb=no
3684 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3685 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3686 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3687 done
3690 if test "$_smb" = yes; then
3691 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3692 inputmodules="smb $inputmodules"
3693 else
3694 def_smb="#undef CONFIG_LIBSMBCLIENT"
3695 noinputmodules="smb $noinputmodules"
3697 echores "$_smb"
3700 #########
3701 # VIDEO #
3702 #########
3705 echocheck "tdfxfb"
3706 if test "$_tdfxfb" = yes ; then
3707 def_tdfxfb='#define CONFIG_TDFXFB 1'
3708 vomodules="tdfxfb $vomodules"
3709 else
3710 def_tdfxfb='#undef CONFIG_TDFXFB'
3711 novomodules="tdfxfb $novomodules"
3713 echores "$_tdfxfb"
3715 echocheck "s3fb"
3716 if test "$_s3fb" = yes ; then
3717 def_s3fb='#define CONFIG_S3FB 1'
3718 vomodules="s3fb $vomodules"
3719 else
3720 def_s3fb='#undef CONFIG_S3FB'
3721 novomodules="s3fb $novomodules"
3723 echores "$_s3fb"
3725 echocheck "wii"
3726 if test "$_wii" = yes ; then
3727 def_wii='#define CONFIG_WII 1'
3728 vomodules="wii $vomodules"
3729 else
3730 def_wii='#undef CONFIG_WII'
3731 novomodules="wii $novomodules"
3733 echores "$_wii"
3735 echocheck "tdfxvid"
3736 if test "$_tdfxvid" = yes ; then
3737 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3738 vomodules="tdfx_vid $vomodules"
3739 else
3740 def_tdfxvid='#undef CONFIG_TDFX_VID'
3741 novomodules="tdfx_vid $novomodules"
3743 echores "$_tdfxvid"
3745 echocheck "xvr100"
3746 if test "$_xvr100" = auto ; then
3747 cat > $TMPC << EOF
3748 #include <unistd.h>
3749 #include <sys/fbio.h>
3750 #include <sys/visual_io.h>
3751 int main(void) {
3752 struct vis_identifier ident;
3753 struct fbgattr attr;
3754 ioctl(0, VIS_GETIDENTIFIER, &ident);
3755 ioctl(0, FBIOGATTR, &attr);
3756 return 0;
3759 _xvr100=no
3760 cc_check && _xvr100=yes
3762 if test "$_xvr100" = yes ; then
3763 def_xvr100='#define CONFIG_XVR100 1'
3764 vomodules="xvr100 $vomodules"
3765 else
3766 def_tdfxvid='#undef CONFIG_XVR100'
3767 novomodules="xvr100 $novomodules"
3769 echores "$_xvr100"
3771 echocheck "tga"
3772 if test "$_tga" = yes ; then
3773 def_tga='#define CONFIG_TGA 1'
3774 vomodules="tga $vomodules"
3775 else
3776 def_tga='#undef CONFIG_TGA'
3777 novomodules="tga $novomodules"
3779 echores "$_tga"
3782 echocheck "md5sum support"
3783 if test "$_md5sum" = yes; then
3784 def_md5sum="#define CONFIG_MD5SUM 1"
3785 vomodules="md5sum $vomodules"
3786 else
3787 def_md5sum="#undef CONFIG_MD5SUM"
3788 novomodules="md5sum $novomodules"
3790 echores "$_md5sum"
3793 echocheck "yuv4mpeg support"
3794 if test "$_yuv4mpeg" = yes; then
3795 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3796 vomodules="yuv4mpeg $vomodules"
3797 else
3798 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3799 novomodules="yuv4mpeg $novomodules"
3801 echores "$_yuv4mpeg"
3804 echocheck "bl"
3805 if test "$_bl" = yes ; then
3806 def_bl='#define CONFIG_BL 1'
3807 vomodules="bl $vomodules"
3808 else
3809 def_bl='#undef CONFIG_BL'
3810 novomodules="bl $novomodules"
3812 echores "$_bl"
3815 echocheck "DirectFB"
3816 if test "$_directfb" = auto ; then
3817 _directfb=no
3818 cat > $TMPC << EOF
3819 #include <directfb.h>
3820 #include <directfb_version.h>
3821 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3822 #error "DirectFB version too old."
3823 #endif
3824 int main(void) { DirectFBInit(0, 0); return 0; }
3826 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3827 cc_check $_inc_tmp -ldirectfb &&
3828 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3829 done
3831 if test "$_directfb" = yes ; then
3832 def_directfb='#define CONFIG_DIRECTFB 1'
3833 vomodules="directfb dfbmga $vomodules"
3834 libs_mplayer="$libs_mplayer -ldirectfb"
3835 else
3836 def_directfb='#undef CONFIG_DIRECTFB'
3837 novomodules="directfb dfbmga $novomodules"
3839 echores "$_directfb"
3842 echocheck "X11 headers presence"
3843 _x11_headers="no"
3844 res_comment="check if the dev(el) packages are installed"
3845 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3846 if test -f "$I/X11/Xlib.h" ; then
3847 _x11_headers="yes"
3848 res_comment=""
3849 break
3851 done
3852 if test $_cross_compile = no; then
3853 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3854 /usr/include/X11R6 /usr/openwin/include ; do
3855 if test -f "$I/X11/Xlib.h" ; then
3856 extra_cflags="$extra_cflags -I$I"
3857 _x11_headers="yes"
3858 res_comment="using $I"
3859 break
3861 done
3863 echores "$_x11_headers"
3866 echocheck "X11"
3867 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3868 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3869 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3870 -L/usr/lib ; do
3871 if netbsd; then
3872 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3873 else
3874 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3876 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3877 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3878 done
3880 if test "$_x11" = yes ; then
3881 def_x11='#define CONFIG_X11 1'
3882 vomodules="x11 xover $vomodules"
3883 else
3884 _x11=no
3885 def_x11='#undef CONFIG_X11'
3886 novomodules="x11 $novomodules"
3887 res_comment="check if the dev(el) packages are installed"
3888 # disable stuff that depends on X
3889 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
3891 echores "$_x11"
3893 echocheck "Xss screensaver extensions"
3894 if test "$_xss" = auto ; then
3895 _xss=no
3896 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3898 if test "$_xss" = yes ; then
3899 def_xss='#define CONFIG_XSS 1'
3900 libs_mplayer="$libs_mplayer -lXss"
3901 else
3902 def_xss='#undef CONFIG_XSS'
3904 echores "$_xss"
3906 echocheck "DPMS"
3907 _xdpms3=no
3908 _xdpms4=no
3909 if test "$_x11" = yes ; then
3910 cat > $TMPC <<EOF
3911 #include <X11/Xmd.h>
3912 #include <X11/Xlib.h>
3913 #include <X11/Xutil.h>
3914 #include <X11/Xatom.h>
3915 #include <X11/extensions/dpms.h>
3916 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3918 cc_check -lXdpms && _xdpms3=yes
3919 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3921 if test "$_xdpms4" = yes ; then
3922 def_xdpms='#define CONFIG_XDPMS 1'
3923 res_comment="using Xdpms 4"
3924 echores "yes"
3925 elif test "$_xdpms3" = yes ; then
3926 def_xdpms='#define CONFIG_XDPMS 1'
3927 libs_mplayer="$libs_mplayer -lXdpms"
3928 res_comment="using Xdpms 3"
3929 echores "yes"
3930 else
3931 def_xdpms='#undef CONFIG_XDPMS'
3932 echores "no"
3936 echocheck "Xv"
3937 if test "$_xv" = auto ; then
3938 _xv=no
3939 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3942 if test "$_xv" = yes ; then
3943 def_xv='#define CONFIG_XV 1'
3944 libs_mplayer="$libs_mplayer -lXv"
3945 vomodules="xv $vomodules"
3946 else
3947 def_xv='#undef CONFIG_XV'
3948 novomodules="xv $novomodules"
3950 echores "$_xv"
3953 echocheck "XvMC"
3954 if test "$_xv" = yes && test "$_xvmc" != no ; then
3955 _xvmc=no
3956 cat > $TMPC <<EOF
3957 #include <X11/Xlib.h>
3958 #include <X11/extensions/Xvlib.h>
3959 #include <X11/extensions/XvMClib.h>
3960 int main(void) {
3961 XvMCQueryExtension(0, 0, 0);
3962 XvMCCreateContext(0, 0, 0, 0, 0, 0, 0);
3963 return 0; }
3965 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
3966 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
3967 done
3969 if test "$_xvmc" = yes ; then
3970 def_xvmc='#define CONFIG_XVMC 1'
3971 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
3972 vomodules="xvmc $vomodules"
3973 res_comment="using $_xvmclib"
3974 else
3975 def_xvmc='#define CONFIG_XVMC 0'
3976 novomodules="xvmc $novomodules"
3978 echores "$_xvmc"
3981 echocheck "VDPAU"
3982 if test "$_vdpau" = auto ; then
3983 _vdpau=no
3984 if test "$_dl" = yes ; then
3985 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
3988 if test "$_vdpau" = yes ; then
3989 def_vdpau='#define CONFIG_VDPAU 1'
3990 libs_mplayer="$libs_mplayer -lvdpau"
3991 vomodules="vdpau $vomodules"
3992 else
3993 def_vdpau='#define CONFIG_VDPAU 0'
3994 novomodules="vdpau $novomodules"
3996 echores "$_vdpau"
3999 echocheck "Xinerama"
4000 if test "$_xinerama" = auto ; then
4001 _xinerama=no
4002 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
4005 if test "$_xinerama" = yes ; then
4006 def_xinerama='#define CONFIG_XINERAMA 1'
4007 libs_mplayer="$libs_mplayer -lXinerama"
4008 else
4009 def_xinerama='#undef CONFIG_XINERAMA'
4011 echores "$_xinerama"
4014 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4015 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4016 # named 'X extensions' or something similar.
4017 # This check may be useful for future mplayer versions (to change resolution)
4018 # If you run into problems, remove '-lXxf86vm'.
4019 echocheck "Xxf86vm"
4020 if test "$_vm" = auto ; then
4021 _vm=no
4022 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
4024 if test "$_vm" = yes ; then
4025 def_vm='#define CONFIG_XF86VM 1'
4026 libs_mplayer="$libs_mplayer -lXxf86vm"
4027 else
4028 def_vm='#undef CONFIG_XF86VM'
4030 echores "$_vm"
4032 # Check for the presence of special keycodes, like audio control buttons
4033 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4034 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4035 # have these new keycodes.
4036 echocheck "XF86keysym"
4037 if test "$_xf86keysym" = auto; then
4038 _xf86keysym=no
4039 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
4041 if test "$_xf86keysym" = yes ; then
4042 def_xf86keysym='#define CONFIG_XF86XK 1'
4043 else
4044 def_xf86keysym='#undef CONFIG_XF86XK'
4046 echores "$_xf86keysym"
4048 echocheck "DGA"
4049 if test "$_dga2" = auto && test "$_x11" = yes ; then
4050 _dga2=no
4051 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
4053 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4054 _dga1=no
4055 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
4058 _dga=no
4059 def_dga='#undef CONFIG_DGA'
4060 def_dga1='#undef CONFIG_DGA1'
4061 def_dga2='#undef CONFIG_DGA2'
4062 if test "$_dga1" = yes ; then
4063 _dga=yes
4064 def_dga1='#define CONFIG_DGA1 1'
4065 res_comment="using DGA 1.0"
4066 elif test "$_dga2" = yes ; then
4067 _dga=yes
4068 def_dga2='#define CONFIG_DGA2 1'
4069 res_comment="using DGA 2.0"
4071 if test "$_dga" = yes ; then
4072 def_dga='#define CONFIG_DGA 1'
4073 libs_mplayer="$libs_mplayer -lXxf86dga"
4074 vomodules="dga $vomodules"
4075 else
4076 novomodules="dga $novomodules"
4078 echores "$_dga"
4081 echocheck "3dfx"
4082 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4083 def_3dfx='#define CONFIG_3DFX 1'
4084 vomodules="3dfx $vomodules"
4085 else
4086 def_3dfx='#undef CONFIG_3DFX'
4087 novomodules="3dfx $novomodules"
4089 echores "$_3dfx"
4092 echocheck "GGI"
4093 if test "$_ggi" = auto ; then
4094 _ggi=no
4095 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4097 if test "$_ggi" = yes ; then
4098 def_ggi='#define CONFIG_GGI 1'
4099 libs_mplayer="$libs_mplayer -lggi"
4100 vomodules="ggi $vomodules"
4101 else
4102 def_ggi='#undef CONFIG_GGI'
4103 novomodules="ggi $novomodules"
4105 echores "$_ggi"
4107 echocheck "GGI extension: libggiwmh"
4108 if test "$_ggiwmh" = auto ; then
4109 _ggiwmh=no
4110 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4112 # needed to get right output on obscure combination
4113 # like --disable-ggi --enable-ggiwmh
4114 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4115 def_ggiwmh='#define CONFIG_GGIWMH 1'
4116 libs_mplayer="$libs_mplayer -lggiwmh"
4117 else
4118 _ggiwmh=no
4119 def_ggiwmh='#undef CONFIG_GGIWMH'
4121 echores "$_ggiwmh"
4124 echocheck "AA"
4125 if test "$_aa" = auto ; then
4126 cat > $TMPC << EOF
4127 #include <aalib.h>
4128 int main(void) {
4129 aa_context *c;
4130 aa_renderparams *p;
4131 aa_init(0, 0, 0);
4132 c = aa_autoinit(&aa_defparams);
4133 p = aa_getrenderparams();
4134 aa_autoinitkbd(c, 0);
4135 return 0; }
4137 _aa=no
4138 for _ld_tmp in "-laa" ; do
4139 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4140 done
4142 if test "$_aa" = yes ; then
4143 def_aa='#define CONFIG_AA 1'
4144 if cygwin ; then
4145 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4147 vomodules="aa $vomodules"
4148 else
4149 def_aa='#undef CONFIG_AA'
4150 novomodules="aa $novomodules"
4152 echores "$_aa"
4155 echocheck "CACA"
4156 if test "$_caca" = auto ; then
4157 _caca=no
4158 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4159 cat > $TMPC << EOF
4160 #include <caca.h>
4161 #ifdef CACA_API_VERSION_1
4162 #include <caca0.h>
4163 #endif
4164 int main(void) { caca_init(); return 0; }
4166 cc_check $(caca-config --libs) && _caca=yes
4169 if test "$_caca" = yes ; then
4170 def_caca='#define CONFIG_CACA 1'
4171 extra_cflags="$extra_cflags $(caca-config --cflags)"
4172 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4173 vomodules="caca $vomodules"
4174 else
4175 def_caca='#undef CONFIG_CACA'
4176 novomodules="caca $novomodules"
4178 echores "$_caca"
4181 echocheck "SVGAlib"
4182 if test "$_svga" = auto ; then
4183 _svga=no
4184 header_check vga.h -lvga $_ld_lm && _svga=yes
4186 if test "$_svga" = yes ; then
4187 def_svga='#define CONFIG_SVGALIB 1'
4188 libs_mplayer="$libs_mplayer -lvga"
4189 vomodules="svga $vomodules"
4190 else
4191 def_svga='#undef CONFIG_SVGALIB'
4192 novomodules="svga $novomodules"
4194 echores "$_svga"
4197 echocheck "FBDev"
4198 if test "$_fbdev" = auto ; then
4199 _fbdev=no
4200 linux && _fbdev=yes
4202 if test "$_fbdev" = yes ; then
4203 def_fbdev='#define CONFIG_FBDEV 1'
4204 vomodules="fbdev $vomodules"
4205 else
4206 def_fbdev='#undef CONFIG_FBDEV'
4207 novomodules="fbdev $novomodules"
4209 echores "$_fbdev"
4213 echocheck "DVB"
4214 if test "$_dvb" = auto ; then
4215 _dvb=no
4216 cat >$TMPC << EOF
4217 #include <poll.h>
4218 #include <sys/ioctl.h>
4219 #include <stdio.h>
4220 #include <time.h>
4221 #include <unistd.h>
4222 #include <linux/dvb/dmx.h>
4223 #include <linux/dvb/frontend.h>
4224 #include <linux/dvb/video.h>
4225 #include <linux/dvb/audio.h>
4226 int main(void) {return 0;}
4228 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4229 cc_check $_inc_tmp && _dvb=yes &&
4230 extra_cflags="$extra_cflags $_inc_tmp" && break
4231 done
4233 echores "$_dvb"
4234 if test "$_dvb" = yes ; then
4235 _dvbin=yes
4236 inputmodules="dvb $inputmodules"
4237 def_dvb='#define CONFIG_DVB 1'
4238 def_dvbin='#define CONFIG_DVBIN 1'
4239 aomodules="mpegpes(dvb) $aomodules"
4240 vomodules="mpegpes(dvb) $vomodules"
4241 else
4242 _dvbin=no
4243 noinputmodules="dvb $noinputmodules"
4244 def_dvb='#undef CONFIG_DVB'
4245 def_dvbin='#undef CONFIG_DVBIN '
4246 aomodules="mpegpes(file) $aomodules"
4247 vomodules="mpegpes(file) $vomodules"
4251 if darwin; then
4253 echocheck "QuickTime"
4254 if test "$quicktime" = auto ; then
4255 quicktime=no
4256 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4258 if test "$quicktime" = yes ; then
4259 extra_ldflags="$extra_ldflags -framework QuickTime"
4260 def_quicktime='#define CONFIG_QUICKTIME 1'
4261 else
4262 def_quicktime='#undef CONFIG_QUICKTIME'
4263 _quartz=no
4265 echores $quicktime
4267 echocheck "Quartz"
4268 if test "$_quartz" = auto ; then
4269 _quartz=no
4270 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4272 if test "$_quartz" = yes ; then
4273 libs_mplayer="$libs_mplayer -framework Carbon"
4274 def_quartz='#define CONFIG_QUARTZ 1'
4275 vomodules="quartz $vomodules"
4276 else
4277 def_quartz='#undef CONFIG_QUARTZ'
4278 novomodules="quartz $novomodules"
4280 echores $_quartz
4282 echocheck "CoreVideo"
4283 if test "$_corevideo" = auto ; then
4284 cat > $TMPC <<EOF
4285 #include <Carbon/Carbon.h>
4286 #include <CoreServices/CoreServices.h>
4287 #include <OpenGL/OpenGL.h>
4288 #include <QuartzCore/CoreVideo.h>
4289 int main(void) { return 0; }
4291 _corevideo=no
4292 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4294 if test "$_corevideo" = yes ; then
4295 vomodules="corevideo $vomodules"
4296 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4297 def_corevideo='#define CONFIG_COREVIDEO 1'
4298 else
4299 novomodules="corevideo $novomodules"
4300 def_corevideo='#undef CONFIG_COREVIDEO'
4302 echores "$_corevideo"
4304 fi #if darwin
4307 echocheck "PNG support"
4308 if test "$_png" = auto ; then
4309 _png=no
4310 if irix ; then
4311 # Don't check for -lpng on irix since it has its own libpng
4312 # incompatible with the GNU libpng
4313 res_comment="disabled on irix (not GNU libpng)"
4314 else
4315 cat > $TMPC << EOF
4316 #include <stdio.h>
4317 #include <string.h>
4318 #include <png.h>
4319 int main(void) {
4320 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4321 printf("libpng: %s\n", png_libpng_ver);
4322 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4325 cc_check -lpng -lz $_ld_lm && _png=yes
4328 echores "$_png"
4329 if test "$_png" = yes ; then
4330 def_png='#define CONFIG_PNG 1'
4331 extra_ldflags="$extra_ldflags -lpng -lz"
4332 else
4333 def_png='#undef CONFIG_PNG'
4336 echocheck "MNG support"
4337 if test "$_mng" = auto ; then
4338 _mng=no
4339 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4341 echores "$_mng"
4342 if test "$_mng" = yes ; then
4343 def_mng='#define CONFIG_MNG 1'
4344 extra_ldflags="$extra_ldflags -lmng -lz"
4345 else
4346 def_mng='#undef CONFIG_MNG'
4349 echocheck "JPEG support"
4350 if test "$_jpeg" = auto ; then
4351 _jpeg=no
4352 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4354 echores "$_jpeg"
4356 if test "$_jpeg" = yes ; then
4357 def_jpeg='#define CONFIG_JPEG 1'
4358 vomodules="jpeg $vomodules"
4359 extra_ldflags="$extra_ldflags -ljpeg"
4360 else
4361 def_jpeg='#undef CONFIG_JPEG'
4362 novomodules="jpeg $novomodules"
4367 echocheck "PNM support"
4368 if test "$_pnm" = yes; then
4369 def_pnm="#define CONFIG_PNM 1"
4370 vomodules="pnm $vomodules"
4371 else
4372 def_pnm="#undef CONFIG_PNM"
4373 novomodules="pnm $novomodules"
4375 echores "$_pnm"
4379 echocheck "GIF support"
4380 # This is to appease people who want to force gif support.
4381 # If it is forced to yes, then we still do checks to determine
4382 # which gif library to use.
4383 if test "$_gif" = yes ; then
4384 _force_gif=yes
4385 _gif=auto
4388 if test "$_gif" = auto ; then
4389 _gif=no
4390 for _ld_gif in "-lungif" "-lgif" ; do
4391 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4392 done
4395 # If no library was found, and the user wants support forced,
4396 # then we force it on with libgif, as this is the safest
4397 # assumption IMHO. (libungif & libregif both create symbolic
4398 # links to libgif. We also assume that no x11 support is needed,
4399 # because if you are forcing this, then you _should_ know what
4400 # you are doing. [ Besides, package maintainers should never
4401 # have compiled x11 deps into libungif in the first place. ] )
4402 # </rant>
4403 # --Joey
4404 if test "$_force_gif" = yes && test "$_gif" = no ; then
4405 _gif=yes
4406 _ld_gif="-lgif"
4409 if test "$_gif" = yes ; then
4410 def_gif='#define CONFIG_GIF 1'
4411 codecmodules="gif $codecmodules"
4412 vomodules="gif89a $vomodules"
4413 res_comment="old version, some encoding functions disabled"
4414 def_gif_4='#undef CONFIG_GIF_4'
4415 extra_ldflags="$extra_ldflags $_ld_gif"
4417 cat > $TMPC << EOF
4418 #include <signal.h>
4419 #include <stdio.h>
4420 #include <stdlib.h>
4421 #include <gif_lib.h>
4422 static void catch(int sig) { exit(1); }
4423 int main(void) {
4424 signal(SIGSEGV, catch); // catch segfault
4425 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4426 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4427 return 0;
4430 if cc_check "$_ld_gif" ; then
4431 def_gif_4='#define CONFIG_GIF_4 1'
4432 res_comment=""
4434 else
4435 def_gif='#undef CONFIG_GIF'
4436 def_gif_4='#undef CONFIG_GIF_4'
4437 novomodules="gif89a $novomodules"
4438 nocodecmodules="gif $nocodecmodules"
4440 echores "$_gif"
4443 case "$_gif" in yes*)
4444 echocheck "broken giflib workaround"
4445 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4447 cat > $TMPC << EOF
4448 #include <stdio.h>
4449 #include <gif_lib.h>
4450 int main(void) {
4451 GifFileType gif = {.UserData = NULL};
4452 printf("UserData is at address %p\n", gif.UserData);
4453 return 0;
4456 if cc_check "$_ld_gif" ; then
4457 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4458 echores "disabled"
4459 else
4460 echores "enabled"
4463 esac
4466 echocheck "VESA support"
4467 if test "$_vesa" = auto ; then
4468 _vesa=no
4469 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4471 if test "$_vesa" = yes ; then
4472 def_vesa='#define CONFIG_VESA 1'
4473 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4474 vomodules="vesa $vomodules"
4475 else
4476 def_vesa='#undef CONFIG_VESA'
4477 novomodules="vesa $novomodules"
4479 echores "$_vesa"
4481 #################
4482 # VIDEO + AUDIO #
4483 #################
4486 echocheck "SDL"
4487 _inc_tmp=""
4488 _ld_tmp=""
4489 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4490 if test -z "$_sdlconfig" ; then
4491 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4492 _sdlconfig="sdl-config"
4493 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4494 _sdlconfig="sdl11-config"
4495 else
4496 _sdlconfig=false
4499 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4500 cat > $TMPC << EOF
4501 #ifdef CONFIG_SDL_SDL_H
4502 #include <SDL/SDL.h>
4503 #else
4504 #include <SDL.h>
4505 #endif
4506 #ifndef __APPLE__
4507 // we allow SDL hacking our main() only on OSX
4508 #undef main
4509 #endif
4510 int main(int argc, char *argv[]) {
4511 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4512 return 0;
4515 _sdl=no
4516 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4517 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4518 _sdl=yes
4519 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4520 break
4522 done
4523 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4524 res_comment="using $_sdlconfig"
4525 if cygwin ; then
4526 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4527 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4528 elif mingw32 ; then
4529 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4530 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4531 else
4532 _inc_tmp="$($_sdlconfig --cflags)"
4533 _ld_tmp="$($_sdlconfig --libs)"
4535 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4536 _sdl=yes
4537 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4538 # HACK for BeOS/Haiku SDL
4539 _ld_tmp="$_ld_tmp -lstdc++"
4540 _sdl=yes
4544 if test "$_sdl" = yes ; then
4545 def_sdl='#define CONFIG_SDL 1'
4546 extra_cflags="$extra_cflags $_inc_tmp"
4547 libs_mplayer="$libs_mplayer $_ld_tmp"
4548 vomodules="sdl $vomodules"
4549 aomodules="sdl $aomodules"
4550 else
4551 def_sdl='#undef CONFIG_SDL'
4552 novomodules="sdl $novomodules"
4553 noaomodules="sdl $noaomodules"
4555 echores "$_sdl"
4558 # make sure this stays below CoreVideo to avoid issues due to namespace
4559 # conflicts between -lGL and -framework OpenGL
4560 echocheck "OpenGL"
4561 #Note: this test is run even with --enable-gl since we autodetect linker flags
4562 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
4563 cat > $TMPC << EOF
4564 #ifdef GL_WIN32
4565 #include <windows.h>
4566 #include <GL/gl.h>
4567 #elif defined(GL_SDL)
4568 #include <GL/gl.h>
4569 #ifdef CONFIG_SDL_SDL_H
4570 #include <SDL/SDL.h>
4571 #else
4572 #include <SDL.h>
4573 #endif
4574 #ifndef __APPLE__
4575 // we allow SDL hacking our main() only on OSX
4576 #undef main
4577 #endif
4578 #else
4579 #include <GL/gl.h>
4580 #include <X11/Xlib.h>
4581 #include <GL/glx.h>
4582 #endif
4583 int main(int argc, char *argv[]) {
4584 #ifdef GL_WIN32
4585 HDC dc;
4586 wglCreateContext(dc);
4587 #elif defined(GL_SDL)
4588 SDL_GL_SwapBuffers();
4589 #else
4590 glXCreateContext(NULL, NULL, NULL, True);
4591 #endif
4592 glFinish();
4593 return 0;
4596 _gl=no
4597 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4598 if cc_check $_ld_tmp $_ld_lm ; then
4599 _gl=yes
4600 _gl_x11=yes
4601 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4602 break
4604 done
4605 if cc_check -DGL_WIN32 -lopengl32 ; then
4606 _gl=yes
4607 _gl_win32=yes
4608 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4610 # last so it can reuse any linker etc. flags detected before
4611 if test "$_sdl" = yes ; then
4612 if cc_check -DGL_SDL ||
4613 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4614 _gl=yes
4615 _gl_sdl=yes
4616 elif cc_check -DGL_SDL -lGL ||
4617 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4618 _gl=yes
4619 _gl_sdl=yes
4620 libs_mplayer="$libs_mplayer -lGL"
4623 else
4624 _gl=no
4626 if test "$_gl" = yes ; then
4627 def_gl='#define CONFIG_GL 1'
4628 res_comment="backends:"
4629 if test "$_gl_win32" = yes ; then
4630 def_gl_win32='#define CONFIG_GL_WIN32 1'
4631 res_comment="$res_comment win32"
4633 if test "$_gl_x11" = yes ; then
4634 def_gl_x11='#define CONFIG_GL_X11 1'
4635 res_comment="$res_comment x11"
4637 if test "$_gl_sdl" = yes ; then
4638 def_gl_sdl='#define CONFIG_GL_SDL 1'
4639 res_comment="$res_comment sdl"
4641 vomodules="opengl $vomodules"
4642 else
4643 def_gl='#undef CONFIG_GL'
4644 def_gl_win32='#undef CONFIG_GL_WIN32'
4645 def_gl_x11='#undef CONFIG_GL_X11'
4646 def_gl_sdl='#undef CONFIG_GL_SDL'
4647 novomodules="opengl $novomodules"
4649 echores "$_gl"
4652 echocheck "MatrixView"
4653 if test "$_gl" = no ; then
4654 matrixview=no
4656 if test "$matrixview" = yes ; then
4657 vomodules="matrixview $vomodules"
4658 def_matrixview='#define CONFIG_MATRIXVIEW 1'
4659 else
4660 novomodules="matrixview $novomodules"
4661 def_matrixview='#undef CONFIG_MATRIXVIEW'
4663 echores "$matrixview"
4666 if os2 ; then
4667 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4668 if test "$_kva" = auto; then
4669 _kva=no;
4670 header_check_broken os2.h kva.h -lkva && _kva=yes
4672 if test "$_kva" = yes ; then
4673 def_kva='#define CONFIG_KVA 1'
4674 libs_mplayer="$libs_mplayer -lkva"
4675 vomodules="kva $vomodules"
4676 else
4677 def_kva='#undef CONFIG_KVA'
4678 novomodules="kva $novomodules"
4680 echores "$_kva"
4681 fi #if os2
4684 if win32; then
4686 echocheck "Windows waveout"
4687 if test "$_win32waveout" = auto ; then
4688 _win32waveout=no
4689 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4691 if test "$_win32waveout" = yes ; then
4692 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4693 libs_mplayer="$libs_mplayer -lwinmm"
4694 aomodules="win32 $aomodules"
4695 else
4696 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4697 noaomodules="win32 $noaomodules"
4699 echores "$_win32waveout"
4701 echocheck "Direct3D"
4702 if test "$_direct3d" = auto ; then
4703 _direct3d=no
4704 header_check d3d9.h && _direct3d=yes
4706 if test "$_direct3d" = yes ; then
4707 def_direct3d='#define CONFIG_DIRECT3D 1'
4708 vomodules="direct3d $vomodules"
4709 else
4710 def_direct3d='#undef CONFIG_DIRECT3D'
4711 novomodules="direct3d $novomodules"
4713 echores "$_direct3d"
4715 echocheck "Directx"
4716 if test "$_directx" = auto ; then
4717 cat > $TMPC << EOF
4718 #include <ddraw.h>
4719 #include <dsound.h>
4720 int main(void) { return 0; }
4722 _directx=no
4723 cc_check -lgdi32 && _directx=yes
4725 if test "$_directx" = yes ; then
4726 def_directx='#define CONFIG_DIRECTX 1'
4727 libs_mplayer="$libs_mplayer -lgdi32"
4728 vomodules="directx $vomodules"
4729 aomodules="dsound $aomodules"
4730 else
4731 def_directx='#undef CONFIG_DIRECTX'
4732 novomodules="directx $novomodules"
4733 noaomodules="dsound $noaomodules"
4735 echores "$_directx"
4737 fi #if win32; then
4740 echocheck "DXR3/H+"
4741 if test "$_dxr3" = auto ; then
4742 _dxr3=no
4743 header_check linux/em8300.h && _dxr3=yes
4745 if test "$_dxr3" = yes ; then
4746 def_dxr3='#define CONFIG_DXR3 1'
4747 vomodules="dxr3 $vomodules"
4748 else
4749 def_dxr3='#undef CONFIG_DXR3'
4750 novomodules="dxr3 $novomodules"
4752 echores "$_dxr3"
4755 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4756 if test "$_ivtv" = auto ; then
4757 cat > $TMPC << EOF
4758 #include <sys/time.h>
4759 #include <linux/videodev2.h>
4760 #include <linux/ivtv.h>
4761 #include <sys/ioctl.h>
4762 int main(void) {
4763 struct ivtv_cfg_stop_decode sd;
4764 struct ivtv_cfg_start_decode sd1;
4765 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4766 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4767 return 0; }
4769 _ivtv=no
4770 cc_check && _ivtv=yes
4772 if test "$_ivtv" = yes ; then
4773 def_ivtv='#define CONFIG_IVTV 1'
4774 vomodules="ivtv $vomodules"
4775 aomodules="ivtv $aomodules"
4776 else
4777 def_ivtv='#undef CONFIG_IVTV'
4778 novomodules="ivtv $novomodules"
4779 noaomodules="ivtv $noaomodules"
4781 echores "$_ivtv"
4784 echocheck "V4L2 MPEG Decoder"
4785 if test "$_v4l2" = auto ; then
4786 cat > $TMPC << EOF
4787 #include <sys/time.h>
4788 #include <linux/videodev2.h>
4789 #include <linux/version.h>
4790 int main(void) {
4791 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4792 #error kernel headers too old, need 2.6.22
4793 #endif
4794 struct v4l2_ext_controls ctrls;
4795 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4796 return 0;
4799 _v4l2=no
4800 cc_check && _v4l2=yes
4802 if test "$_v4l2" = yes ; then
4803 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4804 vomodules="v4l2 $vomodules"
4805 aomodules="v4l2 $aomodules"
4806 else
4807 def_v4l2='#undef CONFIG_V4L2_DECODER'
4808 novomodules="v4l2 $novomodules"
4809 noaomodules="v4l2 $noaomodules"
4811 echores "$_v4l2"
4815 #########
4816 # AUDIO #
4817 #########
4820 echocheck "OSS Audio"
4821 if test "$_ossaudio" = auto ; then
4822 _ossaudio=no
4823 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4825 if test "$_ossaudio" = yes ; then
4826 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4827 aomodules="oss $aomodules"
4828 cat > $TMPC << EOF
4829 #include <$_soundcard_header>
4830 #ifdef OPEN_SOUND_SYSTEM
4831 int main(void) { return 0; }
4832 #else
4833 #error Not the real thing
4834 #endif
4836 _real_ossaudio=no
4837 cc_check && _real_ossaudio=yes
4838 if test "$_real_ossaudio" = yes; then
4839 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4840 # Check for OSS4 headers (override default headers)
4841 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4842 if test -f /etc/oss.conf; then
4843 . /etc/oss.conf
4844 _ossinc="$OSSLIBDIR/include"
4845 if test -f "$_ossinc/sys/soundcard.h"; then
4846 extra_cflags="-I$_ossinc $extra_cflags"
4849 elif netbsd || openbsd ; then
4850 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4851 extra_ldflags="$extra_ldflags -lossaudio"
4852 else
4853 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4855 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4856 else
4857 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4858 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4859 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4860 noaomodules="oss $noaomodules"
4862 echores "$_ossaudio"
4865 echocheck "aRts"
4866 if test "$_arts" = auto ; then
4867 _arts=no
4868 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4869 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4870 _arts=yes
4874 if test "$_arts" = yes ; then
4875 def_arts='#define CONFIG_ARTS 1'
4876 aomodules="arts $aomodules"
4877 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4878 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4879 else
4880 noaomodules="arts $noaomodules"
4882 echores "$_arts"
4885 echocheck "EsounD"
4886 if test "$_esd" = auto ; then
4887 _esd=no
4888 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4889 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4892 echores "$_esd"
4894 if test "$_esd" = yes ; then
4895 def_esd='#define CONFIG_ESD 1'
4896 aomodules="esd $aomodules"
4897 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4898 extra_cflags="$extra_cflags $(esd-config --cflags)"
4900 echocheck "esd_get_latency()"
4901 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4902 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4903 echores "$_esd_latency"
4904 else
4905 def_esd='#undef CONFIG_ESD'
4906 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4907 noaomodules="esd $noaomodules"
4911 echocheck "NAS"
4912 if test "$_nas" = auto ; then
4913 _nas=no
4914 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4916 if test "$_nas" = yes ; then
4917 def_nas='#define CONFIG_NAS 1'
4918 libs_mplayer="$libs_mplayer -laudio -lXt"
4919 aomodules="nas $aomodules"
4920 else
4921 noaomodules="nas $noaomodules"
4922 def_nas='#undef CONFIG_NAS'
4924 echores "$_nas"
4927 echocheck "pulse"
4928 if test "$_pulse" = auto ; then
4929 _pulse=no
4930 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4931 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4932 _pulse=yes
4935 echores "$_pulse"
4937 if test "$_pulse" = yes ; then
4938 def_pulse='#define CONFIG_PULSE 1'
4939 aomodules="pulse $aomodules"
4940 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
4941 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
4942 else
4943 def_pulse='#undef CONFIG_PULSE'
4944 noaomodules="pulse $noaomodules"
4948 echocheck "JACK"
4949 if test "$_jack" = auto ; then
4950 _jack=yes
4951 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4952 libs_mplayer="$libs_mplayer -ljack"
4953 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
4954 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
4955 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
4956 else
4957 _jack=no
4961 if test "$_jack" = yes ; then
4962 def_jack='#define CONFIG_JACK 1'
4963 aomodules="jack $aomodules"
4964 else
4965 noaomodules="jack $noaomodules"
4967 echores "$_jack"
4969 echocheck "OpenAL"
4970 if test "$_openal" = auto ; then
4971 _openal=no
4972 cat > $TMPC << EOF
4973 #ifdef OPENAL_AL_H
4974 #include <OpenAL/al.h>
4975 #else
4976 #include <AL/al.h>
4977 #endif
4978 int main(void) {
4979 alSourceQueueBuffers(0, 0, 0);
4980 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4981 return 0;
4984 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4985 cc_check $I && _openal=yes && break
4986 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4987 done
4988 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4990 if test "$_openal" = yes ; then
4991 def_openal='#define CONFIG_OPENAL 1'
4992 aomodules="openal $aomodules"
4993 else
4994 noaomodules="openal $noaomodules"
4996 echores "$_openal"
4998 echocheck "ALSA audio"
4999 if test "$_alloca" != yes ; then
5000 _alsa=no
5001 res_comment="alloca missing"
5003 if test "$_alsa" != no ; then
5004 _alsa=no
5005 cat > $TMPC << EOF
5006 #include <sys/asoundlib.h>
5007 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5008 #error "alsa version != 0.5.x"
5009 #endif
5010 int main(void) { return 0; }
5012 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5014 cat > $TMPC << EOF
5015 #include <sys/asoundlib.h>
5016 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5017 #error "alsa version != 0.9.x"
5018 #endif
5019 int main(void) { return 0; }
5021 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5022 cat > $TMPC << EOF
5023 #include <alsa/asoundlib.h>
5024 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5025 #error "alsa version != 0.9.x"
5026 #endif
5027 int main(void) { return 0; }
5029 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5031 cat > $TMPC << EOF
5032 #include <sys/asoundlib.h>
5033 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5034 #error "alsa version != 1.0.x"
5035 #endif
5036 int main(void) { return 0; }
5038 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5039 cat > $TMPC << EOF
5040 #include <alsa/asoundlib.h>
5041 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5042 #error "alsa version != 1.0.x"
5043 #endif
5044 int main(void) { return 0; }
5046 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5048 def_alsa='#undef CONFIG_ALSA'
5049 def_alsa5='#undef CONFIG_ALSA5'
5050 def_alsa9='#undef CONFIG_ALSA9'
5051 def_alsa1x='#undef CONFIG_ALSA1X'
5052 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5053 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5054 if test "$_alsaver" ; then
5055 _alsa=yes
5056 if test "$_alsaver" = '0.5.x' ; then
5057 _alsa5=yes
5058 aomodules="alsa5 $aomodules"
5059 def_alsa5='#define CONFIG_ALSA5 1'
5060 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5061 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5062 elif test "$_alsaver" = '0.9.x-sys' ; then
5063 _alsa9=yes
5064 aomodules="alsa $aomodules"
5065 def_alsa='#define CONFIG_ALSA 1'
5066 def_alsa9='#define CONFIG_ALSA9 1'
5067 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5068 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5069 elif test "$_alsaver" = '0.9.x-alsa' ; then
5070 _alsa9=yes
5071 aomodules="alsa $aomodules"
5072 def_alsa='#define CONFIG_ALSA 1'
5073 def_alsa9='#define CONFIG_ALSA9 1'
5074 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5075 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5076 elif test "$_alsaver" = '1.0.x-sys' ; then
5077 _alsa1x=yes
5078 aomodules="alsa $aomodules"
5079 def_alsa='#define CONFIG_ALSA 1'
5080 def_alsa1x="#define CONFIG_ALSA1X 1"
5081 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5082 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5083 elif test "$_alsaver" = '1.0.x-alsa' ; then
5084 _alsa1x=yes
5085 aomodules="alsa $aomodules"
5086 def_alsa='#define CONFIG_ALSA 1'
5087 def_alsa1x="#define CONFIG_ALSA1X 1"
5088 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5089 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5090 else
5091 _alsa=no
5092 res_comment="unknown version"
5094 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5095 else
5096 noaomodules="alsa $noaomodules"
5098 echores "$_alsa"
5101 echocheck "Sun audio"
5102 if test "$_sunaudio" = auto ; then
5103 cat > $TMPC << EOF
5104 #include <sys/types.h>
5105 #include <sys/audioio.h>
5106 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5108 _sunaudio=no
5109 cc_check && _sunaudio=yes
5111 if test "$_sunaudio" = yes ; then
5112 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5113 aomodules="sun $aomodules"
5114 else
5115 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5116 noaomodules="sun $noaomodules"
5118 echores "$_sunaudio"
5121 if darwin; then
5122 echocheck "CoreAudio"
5123 if test "$_coreaudio" = auto ; then
5124 cat > $TMPC <<EOF
5125 #include <CoreAudio/CoreAudio.h>
5126 #include <AudioToolbox/AudioToolbox.h>
5127 #include <AudioUnit/AudioUnit.h>
5128 int main(void) { return 0; }
5130 _coreaudio=no
5131 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5133 if test "$_coreaudio" = yes ; then
5134 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5135 def_coreaudio='#define CONFIG_COREAUDIO 1'
5136 aomodules="coreaudio $aomodules"
5137 else
5138 def_coreaudio='#undef CONFIG_COREAUDIO'
5139 noaomodules="coreaudio $noaomodules"
5141 echores $_coreaudio
5142 fi #if darwin
5145 if irix; then
5146 echocheck "SGI audio"
5147 if test "$_sgiaudio" = auto ; then
5148 _sgiaudio=no
5149 header_check dmedia/audio.h && _sgiaudio=yes
5151 if test "$_sgiaudio" = "yes" ; then
5152 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5153 libs_mplayer="$libs_mplayer -laudio"
5154 aomodules="sgi $aomodules"
5155 else
5156 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5157 noaomodules="sgi $noaomodules"
5159 echores "$_sgiaudio"
5160 fi #if irix
5163 if os2 ; then
5164 echocheck "KAI (UNIAUD/DART)"
5165 if test "$_kai" = auto; then
5166 _kai=no;
5167 header_check_broken os2.h kai.h -lkai && _kai=yes
5169 if test "$_kai" = yes ; then
5170 def_kai='#define CONFIG_KAI 1'
5171 libs_mplayer="$libs_mplayer -lkai"
5172 aomodules="kai $aomodules"
5173 else
5174 def_kai='#undef CONFIG_KAI'
5175 noaomodules="kai $noaomodules"
5177 echores "$_kai"
5179 echocheck "DART"
5180 if test "$_dart" = auto; then
5181 _dart=no;
5182 header_check_broken os2.h dart.h -ldart && _dart=yes
5184 if test "$_dart" = yes ; then
5185 def_dart='#define CONFIG_DART 1'
5186 libs_mplayer="$libs_mplayer -ldart"
5187 aomodules="dart $aomodules"
5188 else
5189 def_dart='#undef CONFIG_DART'
5190 noaomodules="dart $noaomodules"
5192 echores "$_dart"
5193 fi #if os2
5196 # set default CD/DVD devices
5197 if win32 || os2 ; then
5198 default_cdrom_device="D:"
5199 elif darwin ; then
5200 default_cdrom_device="/dev/disk1"
5201 elif dragonfly ; then
5202 default_cdrom_device="/dev/cd0"
5203 elif freebsd ; then
5204 default_cdrom_device="/dev/acd0"
5205 elif openbsd ; then
5206 default_cdrom_device="/dev/rcd0c"
5207 elif sunos ; then
5208 default_cdrom_device="/vol/dev/aliases/cdrom0"
5209 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5210 # file system and the volfs service.
5211 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5212 elif amigaos ; then
5213 default_cdrom_device="a1ide.device:2"
5214 else
5215 default_cdrom_device="/dev/cdrom"
5218 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5219 default_dvd_device=$default_cdrom_device
5220 elif darwin ; then
5221 default_dvd_device="/dev/rdiskN"
5222 else
5223 default_dvd_device="/dev/dvd"
5227 echocheck "VCD support"
5228 if test "$_vcd" = auto; then
5229 _vcd=no
5230 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5231 _vcd=yes
5232 elif mingw32; then
5233 header_check ddk/ntddcdrm.h && _vcd=yes
5236 if test "$_vcd" = yes; then
5237 inputmodules="vcd $inputmodules"
5238 def_vcd='#define CONFIG_VCD 1'
5239 else
5240 def_vcd='#undef CONFIG_VCD'
5241 noinputmodules="vcd $noinputmodules"
5242 res_comment="not supported on this OS"
5244 echores "$_vcd"
5248 echocheck "Blu-ray support"
5249 if test "$_bluray" = auto ; then
5250 _bluray=no
5251 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0)' -lbluray && _bluray=yes
5253 if test "$_bluray" = yes ; then
5254 def_bluray='#define CONFIG_LIBBLURAY 1'
5255 extra_ldflags="$extra_ldflags -lbluray"
5256 inputmodules="bluray $inputmodules"
5257 else
5258 def_bluray='#undef CONFIG_LIBBLURAY'
5259 noinputmodules="bluray $noinputmodules"
5261 echores "$_bluray"
5263 echocheck "dvdread"
5264 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5265 _dvdread_internal=no
5267 if test "$_dvdread_internal" = auto ; then
5268 _dvdread_internal=no
5269 _dvdread=no
5270 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5271 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5272 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5273 darwin || win32 || os2; then
5274 _dvdread_internal=yes
5275 _dvdread=yes
5276 extra_cflags="-Ilibdvdread4 $extra_cflags"
5278 elif test "$_dvdread" = auto ; then
5279 _dvdread=no
5280 if test "$_dl" = yes; then
5281 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5282 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5283 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5284 _dvdread=yes
5285 extra_cflags="$extra_cflags $_dvdreadcflags"
5286 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5287 res_comment="external"
5292 if test "$_dvdread_internal" = yes; then
5293 def_dvdread='#define CONFIG_DVDREAD 1'
5294 inputmodules="dvdread(internal) $inputmodules"
5295 _largefiles=yes
5296 res_comment="internal"
5297 elif test "$_dvdread" = yes; then
5298 def_dvdread='#define CONFIG_DVDREAD 1'
5299 _largefiles=yes
5300 extra_ldflags="$extra_ldflags -ldvdread"
5301 inputmodules="dvdread(external) $inputmodules"
5302 res_comment="external"
5303 else
5304 def_dvdread='#undef CONFIG_DVDREAD'
5305 noinputmodules="dvdread $noinputmodules"
5307 echores "$_dvdread"
5310 echocheck "internal libdvdcss"
5311 if test "$_libdvdcss_internal" = auto ; then
5312 _libdvdcss_internal=no
5313 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5314 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5316 if test "$_libdvdcss_internal" = yes ; then
5317 if linux || netbsd || openbsd || bsdos ; then
5318 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5319 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5320 elif freebsd || dragonfly ; then
5321 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5322 elif darwin ; then
5323 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5324 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5325 elif cygwin ; then
5326 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5327 elif beos ; then
5328 cflags_libdvdcss="-DSYS_BEOS"
5329 elif os2 ; then
5330 cflags_libdvdcss="-DSYS_OS2"
5332 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5333 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5334 inputmodules="libdvdcss(internal) $inputmodules"
5335 _largefiles=yes
5336 else
5337 noinputmodules="libdvdcss(internal) $noinputmodules"
5339 echores "$_libdvdcss_internal"
5342 echocheck "cdparanoia"
5343 if test "$_cdparanoia" = auto ; then
5344 cat > $TMPC <<EOF
5345 #include <cdda_interface.h>
5346 #include <cdda_paranoia.h>
5347 // This need a better test. How ?
5348 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5350 _cdparanoia=no
5351 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5352 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5353 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5354 done
5356 if test "$_cdparanoia" = yes ; then
5357 _cdda='yes'
5358 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5359 openbsd && extra_ldflags="$extra_ldflags -lutil"
5361 echores "$_cdparanoia"
5364 echocheck "libcdio"
5365 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5366 cat > $TMPC << EOF
5367 #include <stdio.h>
5368 #include <cdio/version.h>
5369 #include <cdio/cdda.h>
5370 #include <cdio/paranoia.h>
5371 int main(void) {
5372 void *test = cdda_verbose_set;
5373 printf("%s\n", CDIO_VERSION);
5374 return test == (void *)1;
5377 _libcdio=no
5378 for _ld_tmp in "" "-lwinmm" ; do
5379 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5380 cc_check $_ld_tmp $_ld_lm && _libcdio=yes &&
5381 extra_ldflags="$extra_ldflags $_ld_tmp" && break
5382 done
5383 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5384 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5385 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5386 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes &&
5387 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5390 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5391 _cdda='yes'
5392 def_libcdio='#define CONFIG_LIBCDIO 1'
5393 def_havelibcdio='yes'
5394 else
5395 if test "$_cdparanoia" = yes ; then
5396 res_comment="using cdparanoia"
5398 def_libcdio='#undef CONFIG_LIBCDIO'
5399 def_havelibcdio='no'
5401 echores "$_libcdio"
5403 if test "$_cdda" = yes ; then
5404 test $_cddb = auto && test $networking = yes && _cddb=yes
5405 def_cdparanoia='#define CONFIG_CDDA 1'
5406 inputmodules="cdda $inputmodules"
5407 else
5408 def_cdparanoia='#undef CONFIG_CDDA'
5409 noinputmodules="cdda $noinputmodules"
5412 if test "$_cddb" = yes ; then
5413 def_cddb='#define CONFIG_CDDB 1'
5414 inputmodules="cddb $inputmodules"
5415 else
5416 _cddb=no
5417 def_cddb='#undef CONFIG_CDDB'
5418 noinputmodules="cddb $noinputmodules"
5421 echocheck "bitmap font support"
5422 if test "$_bitmap_font" = yes ; then
5423 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5424 else
5425 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5427 echores "$_bitmap_font"
5430 echocheck "freetype >= 2.0.9"
5432 # freetype depends on iconv
5433 if test "$_iconv" = no ; then
5434 _freetype=no
5435 res_comment="iconv support needed"
5438 if test "$_freetype" = auto ; then
5439 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5440 cat > $TMPC << EOF
5441 #include <stdio.h>
5442 #include <ft2build.h>
5443 #include FT_FREETYPE_H
5444 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5445 #error "Need FreeType 2.0.9 or newer"
5446 #endif
5447 int main(void) {
5448 FT_Library library;
5449 FT_Init_FreeType(&library);
5450 return 0;
5453 _freetype=no
5454 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5455 else
5456 _freetype=no
5459 if test "$_freetype" = yes ; then
5460 def_freetype='#define CONFIG_FREETYPE 1'
5461 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5462 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5463 else
5464 def_freetype='#undef CONFIG_FREETYPE'
5466 echores "$_freetype"
5468 if test "$_freetype" = no ; then
5469 _fontconfig=no
5470 res_comment="FreeType support needed"
5472 echocheck "fontconfig"
5473 if test "$_fontconfig" = auto ; then
5474 cat > $TMPC << EOF
5475 #include <stdio.h>
5476 #include <stdlib.h>
5477 #include <fontconfig/fontconfig.h>
5478 #if FC_VERSION < 20402
5479 #error At least version 2.4.2 of fontconfig required
5480 #endif
5481 int main(void) {
5482 int err = FcInit();
5483 if (err == FcFalse) {
5484 printf("Couldn't initialize fontconfig lib\n");
5485 exit(err);
5487 return 0;
5490 _fontconfig=no
5491 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5492 _ld_tmp="-lfontconfig $_ld_tmp"
5493 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5494 done
5495 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5496 _inc_tmp=$($_pkg_config --cflags fontconfig)
5497 _ld_tmp=$($_pkg_config --libs fontconfig)
5498 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes &&
5499 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5502 if test "$_fontconfig" = yes ; then
5503 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5504 else
5505 def_fontconfig='#undef CONFIG_FONTCONFIG'
5507 echores "$_fontconfig"
5510 echocheck "SSA/ASS support"
5511 if test "$_ass" = auto -o "$_ass" = yes ; then
5512 if $_pkg_config libass; then
5513 _ass=yes
5514 def_ass='#define CONFIG_ASS 1'
5515 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5516 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5517 else
5518 _ass=no
5519 def_ass='#undef CONFIG_ASS'
5521 else
5522 def_ass='#undef CONFIG_ASS'
5524 echores "$_ass"
5527 echocheck "fribidi with charsets"
5528 _inc_tmp=""
5529 _ld_tmp=""
5530 if test "$_fribidi" = auto ; then
5531 cat > $TMPC << EOF
5532 #include <stdlib.h>
5533 /* workaround for fribidi 0.10.4 and below */
5534 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5535 #include <fribidi/fribidi.h>
5536 int main(void) {
5537 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5538 exit(1);
5539 return 0;
5542 _fribidi=no
5543 _inc_tmp=""
5544 _ld_tmp="-lfribidi"
5545 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5546 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5547 test "$_fribidi" = no ; then
5548 _inc_tmp="$($_pkg_config --cflags)"
5549 _ld_tmp="$($_pkg_config --libs)"
5550 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5553 if test "$_fribidi" = yes ; then
5554 def_fribidi='#define CONFIG_FRIBIDI 1'
5555 extra_cflags="$extra_cflags $_inc_tmp"
5556 extra_ldflags="$extra_ldflags $_ld_tmp"
5557 else
5558 def_fribidi='#undef CONFIG_FRIBIDI'
5560 echores "$_fribidi"
5563 echocheck "ENCA"
5564 if test "$_enca" = auto ; then
5565 _enca=no
5566 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5568 if test "$_enca" = yes ; then
5569 def_enca='#define CONFIG_ENCA 1'
5570 extra_ldflags="$extra_ldflags -lenca"
5571 else
5572 def_enca='#undef CONFIG_ENCA'
5574 echores "$_enca"
5577 echocheck "zlib"
5578 _zlib=no
5579 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5580 if test "$_zlib" = yes ; then
5581 def_zlib='#define CONFIG_ZLIB 1'
5582 extra_ldflags="$extra_ldflags -lz"
5583 else
5584 def_zlib='#define CONFIG_ZLIB 0'
5586 echores "$_zlib"
5589 echocheck "RTC"
5590 if test "$_rtc" = auto ; then
5591 cat > $TMPC << EOF
5592 #include <sys/ioctl.h>
5593 #ifdef __linux__
5594 #include <linux/rtc.h>
5595 #else
5596 #include <rtc.h>
5597 #define RTC_PIE_ON RTCIO_PIE_ON
5598 #endif
5599 int main(void) { return RTC_PIE_ON; }
5601 _rtc=no
5602 cc_check && _rtc=yes
5603 ppc && _rtc=no
5605 if test "$_rtc" = yes ; then
5606 def_rtc='#define HAVE_RTC 1'
5607 else
5608 def_rtc='#undef HAVE_RTC'
5610 echores "$_rtc"
5613 echocheck "mad support"
5614 if test "$_mad" = auto ; then
5615 _mad=no
5616 header_check mad.h -lmad && _mad=yes
5618 if test "$_mad" = yes ; then
5619 def_mad='#define CONFIG_LIBMAD 1'
5620 extra_ldflags="$extra_ldflags -lmad"
5621 codecmodules="libmad $codecmodules"
5622 else
5623 def_mad='#undef CONFIG_LIBMAD'
5624 nocodecmodules="libmad $nocodecmodules"
5626 echores "$_mad"
5628 echocheck "OggVorbis support"
5629 if test "$_libvorbis" = auto; then
5630 _libvorbis=no
5631 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5633 if test "$_tremor" = auto; then
5634 _tremor=no
5635 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5637 if test "$_tremor" = yes ; then
5638 _vorbis=yes
5639 def_vorbis='#define CONFIG_OGGVORBIS 1'
5640 def_tremor='#define CONFIG_TREMOR 1'
5641 codecmodules="tremor(external) $codecmodules"
5642 res_comment="external Tremor"
5643 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5644 elif test "$_libvorbis" = yes ; then
5645 _vorbis=yes
5646 def_vorbis='#define CONFIG_OGGVORBIS 1'
5647 codecmodules="libvorbis $codecmodules"
5648 res_comment="libvorbis"
5649 extra_ldflags="$extra_ldflags -lvorbis -logg"
5650 else
5651 _vorbis=no
5652 nocodecmodules="libvorbis $nocodecmodules"
5654 echores "$_vorbis"
5656 echocheck "libspeex (version >= 1.1 required)"
5657 if test "$_speex" = auto ; then
5658 _speex=no
5659 cat > $TMPC << EOF
5660 #include <stddef.h>
5661 #include <speex/speex.h>
5662 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5664 cc_check -lspeex $_ld_lm && _speex=yes
5666 if test "$_speex" = yes ; then
5667 def_speex='#define CONFIG_SPEEX 1'
5668 extra_ldflags="$extra_ldflags -lspeex"
5669 codecmodules="speex $codecmodules"
5670 else
5671 def_speex='#undef CONFIG_SPEEX'
5672 nocodecmodules="speex $nocodecmodules"
5674 echores "$_speex"
5676 echocheck "OggTheora support"
5677 if test "$_theora" = auto ; then
5678 _theora=no
5679 cat > $TMPC << EOF
5680 #include <theora/theora.h>
5681 #include <string.h>
5682 int main(void) {
5683 /* Theora is in flux, make sure that all interface routines and datatypes
5684 * exist and work the way we expect it, so we don't break MPlayer. */
5685 ogg_packet op;
5686 theora_comment tc;
5687 theora_info inf;
5688 theora_state st;
5689 yuv_buffer yuv;
5690 int r;
5691 double t;
5693 theora_info_init(&inf);
5694 theora_comment_init(&tc);
5696 return 0;
5698 /* we don't want to execute this kind of nonsense; just for making sure
5699 * that compilation works... */
5700 memset(&op, 0, sizeof(op));
5701 r = theora_decode_header(&inf, &tc, &op);
5702 r = theora_decode_init(&st, &inf);
5703 t = theora_granule_time(&st, op.granulepos);
5704 r = theora_decode_packetin(&st, &op);
5705 r = theora_decode_YUVout(&st, &yuv);
5706 theora_clear(&st);
5708 return 0;
5711 _ld_theora=$($_pkg_config --silence-errors --libs theora)
5712 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
5713 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
5714 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
5715 if test _theora = no; then
5716 _ld_theora="-ltheora -logg"
5717 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
5720 if test "$_theora" = yes ; then
5721 def_theora='#define CONFIG_OGGTHEORA 1'
5722 codecmodules="libtheora $codecmodules"
5723 # when --enable-theora is forced, we'd better provide a probably sane
5724 # $_ld_theora than nothing
5725 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
5726 else
5727 def_theora='#undef CONFIG_OGGTHEORA'
5728 nocodecmodules="libtheora $nocodecmodules"
5730 echores "$_theora"
5732 echocheck "mp3lib support"
5733 if test "$_mp3lib" = auto ; then
5734 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
5736 if test "$_mp3lib" = yes ; then
5737 def_mp3lib='#define CONFIG_MP3LIB 1'
5738 codecmodules="mp3lib(internal) $codecmodules"
5739 else
5740 def_mp3lib='#undef CONFIG_MP3LIB'
5741 nocodecmodules="mp3lib(internal) $nocodecmodules"
5743 echores "$_mp3lib"
5745 # Any version of libmpg123 shall be fine.
5746 echocheck "mpg123 support"
5747 def_mpg123='#undef CONFIG_MPG123'
5748 if test "$_mpg123" = auto; then
5749 _mpg123=no
5750 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5752 if test "$_mpg123" = yes ; then
5753 def_mpg123='#define CONFIG_MPG123 1'
5754 codecmodules="mpg123 $codecmodules"
5755 else
5756 nocodecmodules="mpg123 $nocodecmodules"
5758 echores "$_mpg123"
5760 echocheck "liba52 support"
5761 def_liba52='#undef CONFIG_LIBA52'
5762 if test "$_liba52" = auto ; then
5763 _liba52=no
5764 cat > $TMPC << EOF
5765 #include <inttypes.h>
5766 #include <a52dec/a52.h>
5767 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5769 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5771 if test "$_liba52" = yes ; then
5772 def_liba52='#define CONFIG_LIBA52 1'
5773 codecmodules="liba52 $codecmodules"
5774 else
5775 nocodecmodules="liba52 $nocodecmodules"
5777 echores "$_liba52"
5779 echocheck "libdca support"
5780 if test "$_libdca" = auto ; then
5781 _libdca=no
5782 for _ld_dca in -ldca -ldts ; do
5783 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5784 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5785 done
5787 if test "$_libdca" = yes ; then
5788 def_libdca='#define CONFIG_LIBDCA 1'
5789 codecmodules="libdca $codecmodules"
5790 else
5791 def_libdca='#undef CONFIG_LIBDCA'
5792 nocodecmodules="libdca $nocodecmodules"
5794 echores "$_libdca"
5796 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5797 if test "$_musepack" = auto ; then
5798 _musepack=no
5799 cat > $TMPC << EOF
5800 #include <stddef.h>
5801 #include <mpcdec/mpcdec.h>
5802 int main(void) {
5803 mpc_streaminfo info;
5804 mpc_decoder decoder;
5805 mpc_decoder_set_streaminfo(&decoder, &info);
5806 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5807 return 0;
5810 cc_check -lmpcdec $_ld_lm && _musepack=yes
5812 if test "$_musepack" = yes ; then
5813 def_musepack='#define CONFIG_MUSEPACK 1'
5814 extra_ldflags="$extra_ldflags -lmpcdec"
5815 codecmodules="musepack $codecmodules"
5816 else
5817 def_musepack='#undef CONFIG_MUSEPACK'
5818 nocodecmodules="musepack $nocodecmodules"
5820 echores "$_musepack"
5823 echocheck "FAAD2 support"
5824 if test "$_faad" = auto ; then
5825 _faad=no
5826 cat > $TMPC << EOF
5827 #include <faad.h>
5828 #ifndef FAAD_MIN_STREAMSIZE
5829 #error Too old version
5830 #endif
5831 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5832 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5834 cc_check -lfaad $_ld_lm && _faad=yes
5837 def_faad='#undef CONFIG_FAAD'
5838 if test "$_faad" = yes ; then
5839 def_faad='#define CONFIG_FAAD 1'
5840 extra_ldflags="$extra_ldflags -lfaad"
5841 codecmodules="faad2 $codecmodules"
5842 else
5843 nocodecmodules="faad2 $nocodecmodules"
5845 echores "$_faad"
5848 echocheck "LADSPA plugin support"
5849 if test "$_ladspa" = auto ; then
5850 _ladspa=no
5851 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5853 if test "$_ladspa" = yes; then
5854 def_ladspa="#define CONFIG_LADSPA 1"
5855 else
5856 def_ladspa="#undef CONFIG_LADSPA"
5858 echores "$_ladspa"
5861 echocheck "libbs2b audio filter support"
5862 if test "$_libbs2b" = auto ; then
5863 cat > $TMPC <<EOF
5864 #include <bs2b.h>
5865 #if BS2B_VERSION_MAJOR < 3
5866 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5867 #endif
5868 int main(void) {
5869 t_bs2bdp filter;
5870 filter=bs2b_open();
5871 bs2b_close(filter);
5872 return 0;
5875 _libbs2b=no
5876 if $_pkg_config --exists libbs2b ; then
5877 _inc_tmp=$($_pkg_config --cflags libbs2b)
5878 _ld_tmp=$($_pkg_config --libs libbs2b)
5879 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
5880 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
5881 else
5882 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
5883 -I/usr/local/include/bs2b ; do
5884 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
5885 extra_ldflags="$extra_ldflags -lbs2b"
5886 extra_cflags="$extra_cflags $_inc_tmp"
5887 _libbs2b=yes
5888 break
5890 done
5893 def_libbs2b="#undef CONFIG_LIBBS2B"
5894 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5895 echores "$_libbs2b"
5898 if test -z "$_codecsdir" ; then
5899 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5900 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5901 if test -d "$dir" ; then
5902 _codecsdir="$dir"
5903 break;
5905 done
5907 # Fall back on default directory.
5908 if test -z "$_codecsdir" ; then
5909 _codecsdir="$_libdir/codecs"
5910 mingw32 || os2 && _codecsdir="codecs"
5914 echocheck "Win32 codecs"
5915 if test "$_win32dll" = auto ; then
5916 _win32dll=no
5917 if x86_32 && ! qnx; then
5918 _win32dll=yes
5921 if test "$_win32dll" = yes ; then
5922 def_win32dll='#define CONFIG_WIN32DLL 1'
5923 if ! win32 ; then
5924 def_win32_loader='#define WIN32_LOADER 1'
5925 _win32_emulation=yes
5926 else
5927 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5928 res_comment="using native windows"
5930 codecmodules="win32 $codecmodules"
5931 else
5932 def_win32dll='#undef CONFIG_WIN32DLL'
5933 def_win32_loader='#undef WIN32_LOADER'
5934 nocodecmodules="win32 $nocodecmodules"
5936 echores "$_win32dll"
5939 echocheck "XAnim codecs"
5940 if test "$_xanim" = auto ; then
5941 _xanim=no
5942 res_comment="dynamic loader support needed"
5943 if test "$_dl" = yes ; then
5944 _xanim=yes
5947 if test "$_xanim" = yes ; then
5948 def_xanim='#define CONFIG_XANIM 1'
5949 codecmodules="xanim $codecmodules"
5950 else
5951 def_xanim='#undef CONFIG_XANIM'
5952 nocodecmodules="xanim $nocodecmodules"
5954 echores "$_xanim"
5957 echocheck "RealPlayer codecs"
5958 if test "$_real" = auto ; then
5959 _real=no
5960 res_comment="dynamic loader support needed"
5961 if test "$_dl" = yes || test "$_win32dll" = yes &&
5962 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
5963 _real=yes
5966 if test "$_real" = yes ; then
5967 def_real='#define CONFIG_REALCODECS 1'
5968 codecmodules="real $codecmodules"
5969 else
5970 def_real='#undef CONFIG_REALCODECS'
5971 nocodecmodules="real $nocodecmodules"
5973 echores "$_real"
5976 echocheck "QuickTime codecs"
5977 _qtx_emulation=no
5978 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5979 if test "$_qtx" = auto ; then
5980 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5982 if test "$_qtx" = yes ; then
5983 def_qtx='#define CONFIG_QTX_CODECS 1'
5984 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5985 codecmodules="qtx $codecmodules"
5986 darwin || win32 || _qtx_emulation=yes
5987 else
5988 def_qtx='#undef CONFIG_QTX_CODECS'
5989 nocodecmodules="qtx $nocodecmodules"
5991 echores "$_qtx"
5993 echocheck "Nemesi Streaming Media libraries"
5994 if test "$_nemesi" = auto && test "$networking" = yes ; then
5995 _nemesi=no
5996 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
5997 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
5998 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
5999 _nemesi=yes
6002 if test "$_nemesi" = yes; then
6003 _native_rtsp=no
6004 def_nemesi='#define CONFIG_LIBNEMESI 1'
6005 inputmodules="nemesi $inputmodules"
6006 else
6007 _native_rtsp="$networking"
6008 _nemesi=no
6009 def_nemesi='#undef CONFIG_LIBNEMESI'
6010 noinputmodules="nemesi $noinputmodules"
6012 echores "$_nemesi"
6014 echocheck "LIVE555 Streaming Media libraries"
6015 if test "$_live" = auto && test "$networking" = yes ; then
6016 cat > $TMPCPP << EOF
6017 #include <liveMedia.hh>
6018 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6019 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6020 #endif
6021 int main(void) { return 0; }
6024 _live=no
6025 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
6026 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
6027 _livelibdir=$(echo $I| sed s/-I//) &&
6028 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6029 $_livelibdir/groupsock/libgroupsock.a \
6030 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6031 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6032 $extra_ldflags -lstdc++" \
6033 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6034 -I$_livelibdir/UsageEnvironment/include \
6035 -I$_livelibdir/BasicUsageEnvironment/include \
6036 -I$_livelibdir/groupsock/include" &&
6037 _live=yes && break
6038 done
6039 if test "$_live" != yes ; then
6040 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6041 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6042 _live_dist=yes
6046 if test "$_live" = yes && test "$networking" = yes; then
6047 test $_livelibdir && res_comment="using $_livelibdir"
6048 def_live='#define CONFIG_LIVE555 1'
6049 inputmodules="live555 $inputmodules"
6050 elif test "$_live_dist" = yes && test "$networking" = yes; then
6051 res_comment="using distribution version"
6052 _live="yes"
6053 def_live='#define CONFIG_LIVE555 1'
6054 extra_ldflags="$extra_ldflags $ld_tmp"
6055 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6056 inputmodules="live555 $inputmodules"
6057 else
6058 _live=no
6059 def_live='#undef CONFIG_LIVE555'
6060 noinputmodules="live555 $noinputmodules"
6062 echores "$_live"
6066 all_ffmpeg_libs="libavutil libavcodec libavformat libswscale libpostproc"
6067 echocheck "FFmpeg ($all_ffmpeg_libs)"
6068 if test "$ffmpeg" = auto ; then
6069 ffmpeg=no
6070 if $_pkg_config --exists $all_ffmpeg_libs ; then
6071 inc_ffmpeg=$($_pkg_config --cflags $all_ffmpeg_libs)
6072 _ld_tmp=$($_pkg_config --libs $all_ffmpeg_libs)
6073 extra_ldflags="$extra_ldflags $_ld_tmp"
6074 extra_cflags="$extra_cflags $inc_ffmpeg"
6075 ffmpeg=yes
6076 elif header_check libavutil/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
6077 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
6078 ffmpeg=yes
6079 else
6080 die "Unable to find development files for some of the FFmpeg libraries above. Aborting. If you really mean to compile without FFmpeg support use --disable-ffmpeg."
6084 ffmpeg_eval_api=no
6085 def_ffmpeg_eval_api="#undef CONFIG_FFMPEG_EVAL_API"
6086 if test "$ffmpeg" = yes; then
6087 def_ffmpeg='#define CONFIG_FFMPEG 1'
6088 codecmodules="ffmpeg $codecmodules"
6089 if $_pkg_config --atleast-version=50.18.0 libavutil ; then
6090 ffmpeg_eval_api=yes
6091 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6093 else
6094 def_ffmpeg='#undef CONFIG_FFMPEG'
6095 nocodecmodules="ffmpeg $nocodecmodules"
6097 echores "$ffmpeg"
6099 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6100 if ! test -z "$_ffmpeg_source" ; then
6101 test "$ffmpeg" = yes && def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6106 echocheck "libdv-0.9.5+"
6107 if test "$_libdv" = auto ; then
6108 _libdv=no
6109 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6111 if test "$_libdv" = yes ; then
6112 def_libdv='#define CONFIG_LIBDV095 1'
6113 extra_ldflags="$extra_ldflags -ldv"
6114 codecmodules="libdv $codecmodules"
6115 else
6116 def_libdv='#undef CONFIG_LIBDV095'
6117 nocodecmodules="libdv $nocodecmodules"
6119 echores "$_libdv"
6122 echocheck "Xvid"
6123 if test "$_xvid" = auto ; then
6124 _xvid=no
6125 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6126 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6127 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6128 done
6131 if test "$_xvid" = yes ; then
6132 def_xvid='#define CONFIG_XVID4 1'
6133 codecmodules="xvid $codecmodules"
6134 else
6135 def_xvid='#undef CONFIG_XVID4'
6136 nocodecmodules="xvid $nocodecmodules"
6138 echores "$_xvid"
6141 echocheck "libnut"
6142 if test "$_libnut" = auto ; then
6143 _libnut=no
6144 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
6147 if test "$_libnut" = yes ; then
6148 def_libnut='#define CONFIG_LIBNUT 1'
6149 extra_ldflags="$extra_ldflags -lnut"
6150 else
6151 def_libnut='#undef CONFIG_LIBNUT'
6153 echores "$_libnut"
6155 # These VO checks must be done after the FFmpeg one
6156 echocheck "/dev/mga_vid"
6157 if test "$_mga" = auto ; then
6158 _mga=no
6159 test -c /dev/mga_vid && _mga=yes
6161 if test "$_mga" = yes ; then
6162 def_mga='#define CONFIG_MGA 1'
6163 vomodules="mga $vomodules"
6164 else
6165 def_mga='#undef CONFIG_MGA'
6166 novomodules="mga $novomodules"
6168 echores "$_mga"
6171 echocheck "xmga"
6172 if test "$_xmga" = auto ; then
6173 _xmga=no
6174 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6176 if test "$_xmga" = yes ; then
6177 def_xmga='#define CONFIG_XMGA 1'
6178 vomodules="xmga $vomodules"
6179 else
6180 def_xmga='#undef CONFIG_XMGA'
6181 novomodules="xmga $novomodules"
6183 echores "$_xmga"
6186 echocheck "UnRAR executable"
6187 if test "$_unrar_exec" = auto ; then
6188 _unrar_exec="yes"
6189 mingw32 && _unrar_exec="no"
6191 if test "$_unrar_exec" = yes ; then
6192 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6193 else
6194 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6196 echores "$_unrar_exec"
6198 echocheck "TV interface"
6199 if test "$_tv" = yes ; then
6200 def_tv='#define CONFIG_TV 1'
6201 inputmodules="tv $inputmodules"
6202 else
6203 noinputmodules="tv $noinputmodules"
6204 def_tv='#undef CONFIG_TV'
6206 echores "$_tv"
6209 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6210 echocheck "*BSD BT848 bt8xx header"
6211 _ioctl_bt848_h=no
6212 for file in "machine/ioctl_bt848.h" \
6213 "dev/bktr/ioctl_bt848.h" \
6214 "dev/video/bktr/ioctl_bt848.h" \
6215 "dev/ic/bt8xx.h" ; do
6216 cat > $TMPC <<EOF
6217 #include <sys/types.h>
6218 #include <sys/ioctl.h>
6219 #include <$file>
6220 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6222 if cc_check ; then
6223 _ioctl_bt848_h=yes
6224 _ioctl_bt848_h_name="$file"
6225 break;
6227 done
6228 if test "$_ioctl_bt848_h" = yes ; then
6229 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6230 res_comment="using $_ioctl_bt848_h_name"
6231 else
6232 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6234 echores "$_ioctl_bt848_h"
6236 echocheck "*BSD ioctl_meteor.h"
6237 _ioctl_meteor_h=no
6238 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6239 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6240 _ioctl_meteor_h=yes && break
6241 done
6242 if test "$_ioctl_meteor_h" = yes ; then
6243 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6244 res_comment="using $ioctl_meteor_h_path"
6245 else
6246 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6248 echores "$_ioctl_meteor_h"
6250 echocheck "*BSD BrookTree 848 TV interface"
6251 if test "$_tv_bsdbt848" = auto ; then
6252 _tv_bsdbt848=no
6253 if test "$_tv" = yes ; then
6254 cat > $TMPC <<EOF
6255 #include <sys/types.h>
6256 $def_ioctl_meteor_h_name
6257 $def_ioctl_bt848_h_name
6258 #ifdef IOCTL_METEOR_H_NAME
6259 #include IOCTL_METEOR_H_NAME
6260 #endif
6261 #ifdef IOCTL_BT848_H_NAME
6262 #include IOCTL_BT848_H_NAME
6263 #endif
6264 int main(void) {
6265 ioctl(0, METEORSINPUT, 0);
6266 ioctl(0, TVTUNER_GETFREQ, 0);
6267 return 0;
6270 cc_check && _tv_bsdbt848=yes
6273 if test "$_tv_bsdbt848" = yes ; then
6274 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6275 inputmodules="tv-bsdbt848 $inputmodules"
6276 else
6277 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6278 noinputmodules="tv-bsdbt848 $noinputmodules"
6280 echores "$_tv_bsdbt848"
6281 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6284 echocheck "DirectShow TV interface"
6285 if test "$_tv_dshow" = auto ; then
6286 _tv_dshow=no
6287 if test "$_tv" = yes && win32 ; then
6288 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
6291 if test "$_tv_dshow" = yes ; then
6292 inputmodules="tv-dshow $inputmodules"
6293 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6294 extra_ldflags="$extra_ldflags -lole32 -luuid"
6295 else
6296 noinputmodules="tv-dshow $noinputmodules"
6297 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6299 echores "$_tv_dshow"
6302 echocheck "Video 4 Linux TV interface"
6303 if test "$_tv_v4l1" = auto ; then
6304 _tv_v4l1=no
6305 if test "$_tv" = yes && linux ; then
6306 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
6309 if test "$_tv_v4l1" = yes ; then
6310 _audio_input=yes
6311 _tv_v4l=yes
6312 def_tv_v4l='#define CONFIG_TV_V4L 1'
6313 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6314 inputmodules="tv-v4l $inputmodules"
6315 else
6316 noinputmodules="tv-v4l1 $noinputmodules"
6317 def_tv_v4l='#undef CONFIG_TV_V4L'
6319 echores "$_tv_v4l1"
6322 echocheck "Video 4 Linux 2 TV interface"
6323 if test "$_tv_v4l2" = auto ; then
6324 _tv_v4l2=no
6325 if test "$_tv" = yes && linux ; then
6326 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
6329 if test "$_tv_v4l2" = yes ; then
6330 _audio_input=yes
6331 _tv_v4l=yes
6332 def_tv_v4l='#define CONFIG_TV_V4L 1'
6333 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6334 inputmodules="tv-v4l2 $inputmodules"
6335 else
6336 noinputmodules="tv-v4l2 $noinputmodules"
6337 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6339 echores "$_tv_v4l2"
6342 echocheck "Radio interface"
6343 if test "$_radio" = yes ; then
6344 def_radio='#define CONFIG_RADIO 1'
6345 inputmodules="radio $inputmodules"
6346 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6347 _radio_capture=no
6349 if test "$_radio_capture" = yes ; then
6350 _audio_input=yes
6351 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6352 else
6353 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6355 else
6356 noinputmodules="radio $noinputmodules"
6357 def_radio='#undef CONFIG_RADIO'
6358 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6359 _radio_capture=no
6361 echores "$_radio"
6362 echocheck "Capture for Radio interface"
6363 echores "$_radio_capture"
6365 echocheck "Video 4 Linux 2 Radio interface"
6366 if test "$_radio_v4l2" = auto ; then
6367 _radio_v4l2=no
6368 if test "$_radio" = yes && linux ; then
6369 header_check linux/videodev2.h && _radio_v4l2=yes
6372 if test "$_radio_v4l2" = yes ; then
6373 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6374 else
6375 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6377 echores "$_radio_v4l2"
6379 echocheck "Video 4 Linux Radio interface"
6380 if test "$_radio_v4l" = auto ; then
6381 _radio_v4l=no
6382 if test "$_radio" = yes && linux ; then
6383 header_check linux/videodev.h && _radio_v4l=yes
6386 if test "$_radio_v4l" = yes ; then
6387 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6388 else
6389 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6391 echores "$_radio_v4l"
6393 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6394 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6395 echocheck "*BSD BrookTree 848 Radio interface"
6396 _radio_bsdbt848=no
6397 cat > $TMPC <<EOF
6398 #include <sys/types.h>
6399 $def_ioctl_bt848_h_name
6400 #ifdef IOCTL_BT848_H_NAME
6401 #include IOCTL_BT848_H_NAME
6402 #endif
6403 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6405 cc_check && _radio_bsdbt848=yes
6406 echores "$_radio_bsdbt848"
6407 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6409 if test "$_radio_bsdbt848" = yes ; then
6410 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6411 else
6412 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6415 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6416 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6417 die "Radio driver requires BSD BT848, V4L or V4L2!"
6420 echocheck "Video 4 Linux 2 MPEG PVR interface"
6421 if test "$_pvr" = auto ; then
6422 _pvr=no
6423 if test "$_tv_v4l2" = yes && linux ; then
6424 cat > $TMPC <<EOF
6425 #include <sys/time.h>
6426 #include <linux/videodev2.h>
6427 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6429 cc_check && _pvr=yes
6432 if test "$_pvr" = yes ; then
6433 def_pvr='#define CONFIG_PVR 1'
6434 inputmodules="pvr $inputmodules"
6435 else
6436 noinputmodules="pvr $noinputmodules"
6437 def_pvr='#undef CONFIG_PVR'
6439 echores "$_pvr"
6442 echocheck "ftp"
6443 if test "$_ftp" = "auto" ; then
6444 test "$networking" = "yes" && ! beos && _ftp=yes
6446 if test "$_ftp" = yes ; then
6447 def_ftp='#define CONFIG_FTP 1'
6448 inputmodules="ftp $inputmodules"
6449 else
6450 noinputmodules="ftp $noinputmodules"
6451 def_ftp='#undef CONFIG_FTP'
6453 echores "$_ftp"
6455 echocheck "vstream client"
6456 if test "$_vstream" = auto ; then
6457 _vstream=no
6458 cat > $TMPC <<EOF
6459 #include <vstream-client.h>
6460 void vstream_error(const char *format, ... ) {}
6461 int main(void) { vstream_start(); return 0; }
6463 cc_check -lvstream-client && _vstream=yes
6465 if test "$_vstream" = yes ; then
6466 def_vstream='#define CONFIG_VSTREAM 1'
6467 inputmodules="vstream $inputmodules"
6468 extra_ldflags="$extra_ldflags -lvstream-client"
6469 else
6470 noinputmodules="vstream $noinputmodules"
6471 def_vstream='#undef CONFIG_VSTREAM'
6473 echores "$_vstream"
6476 echocheck "OSD menu"
6477 if test "$_menu" = yes ; then
6478 def_menu='#define CONFIG_MENU 1'
6479 test $_dvbin = "yes" && _menu_dvbin=yes
6480 else
6481 def_menu='#undef CONFIG_MENU'
6482 _menu_dvbin=no
6484 echores "$_menu"
6487 echocheck "Subtitles sorting"
6488 if test "$_sortsub" = yes ; then
6489 def_sortsub='#define CONFIG_SORTSUB 1'
6490 else
6491 def_sortsub='#undef CONFIG_SORTSUB'
6493 echores "$_sortsub"
6496 echocheck "XMMS inputplugin support"
6497 if test "$_xmms" = yes ; then
6498 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6499 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6500 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6501 else
6502 _xmmsplugindir=/usr/lib/xmms/Input
6503 _xmmslibdir=/usr/lib
6506 def_xmms='#define CONFIG_XMMS 1'
6507 if darwin ; then
6508 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6509 else
6510 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6512 else
6513 def_xmms='#undef CONFIG_XMMS'
6515 echores "$_xmms"
6517 if test "$_charset" != "noconv" ; then
6518 def_charset="#define MSG_CHARSET \"$_charset\""
6519 else
6520 def_charset="#undef MSG_CHARSET"
6521 _charset="UTF-8"
6524 #############################################################################
6526 echocheck "automatic gdb attach"
6527 if test "$_crash_debug" = yes ; then
6528 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6529 else
6530 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6531 _crash_debug=no
6533 echores "$_crash_debug"
6535 echocheck "compiler support for noexecstack"
6536 if cflag_check -Wl,-z,noexecstack ; then
6537 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6538 echores "yes"
6539 else
6540 echores "no"
6543 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6544 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6545 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6546 echores "yes"
6547 else
6548 echores "no"
6552 # Dynamic linking flags
6553 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6554 _ld_dl_dynamic=''
6555 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6556 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
6557 _ld_dl_dynamic='-rdynamic'
6560 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6561 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6562 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6564 def_debug='#undef MP_DEBUG'
6565 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6568 echocheck "joystick"
6569 def_joystick='#undef CONFIG_JOYSTICK'
6570 if test "$_joystick" = yes ; then
6571 if linux || freebsd ; then
6572 # TODO add some check
6573 def_joystick='#define CONFIG_JOYSTICK 1'
6574 else
6575 _joystick="no"
6576 res_comment="unsupported under $system_name"
6579 echores "$_joystick"
6581 echocheck "lirc"
6582 if test "$_lirc" = auto ; then
6583 _lirc=no
6584 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6586 if test "$_lirc" = yes ; then
6587 def_lirc='#define CONFIG_LIRC 1'
6588 libs_mplayer="$libs_mplayer -llirc_client"
6589 else
6590 def_lirc='#undef CONFIG_LIRC'
6592 echores "$_lirc"
6594 echocheck "lircc"
6595 if test "$_lircc" = auto ; then
6596 _lircc=no
6597 header_check lirc/lircc.h -llircc && _lircc=yes
6599 if test "$_lircc" = yes ; then
6600 def_lircc='#define CONFIG_LIRCC 1'
6601 libs_mplayer="$libs_mplayer -llircc"
6602 else
6603 def_lircc='#undef CONFIG_LIRCC'
6605 echores "$_lircc"
6607 #############################################################################
6609 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6610 # the OMF format needs to come after the 'extern symbol prefix' check, which
6611 # uses nm.
6612 if os2 ; then
6613 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6616 #############################################################################
6617 # 64 bit file offsets?
6618 if test "$_largefiles" = yes || freebsd ; then
6619 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6620 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
6621 # dvdread support requires this (for off64_t)
6622 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6626 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6628 # This must be the last test to be performed. Any other tests following it
6629 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6630 # against libdvdread (to permit MPlayer to use its own copy of the library).
6631 # So any compilation using the flags added here but not linking against
6632 # libdvdread can fail.
6633 echocheck "DVD support (libdvdnav)"
6634 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6635 _dvdnav=no
6637 dvdnav_internal=no
6638 if test "$_dvdnav" = auto ; then
6639 if test "$_dvdread_internal" = yes ; then
6640 _dvdnav=yes
6641 dvdnav_internal=yes
6642 res_comment="internal"
6643 else
6644 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6647 if test "$_dvdnav" = auto ; then
6648 _dvdnav=no
6649 _dvdnavdir=$($_dvdnavconfig --cflags)
6650 _dvdnavlibs=$($_dvdnavconfig --libs)
6651 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6653 if test "$_dvdnav" = yes ; then
6654 _largefiles=yes
6655 def_dvdnav='#define CONFIG_DVDNAV 1'
6656 if test "$dvdnav_internal" = yes ; then
6657 cflags_libdvdnav="-Ilibdvdnav"
6658 inputmodules="dvdnav(internal) $inputmodules"
6659 else
6660 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6661 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6662 inputmodules="dvdnav $inputmodules"
6664 else
6665 def_dvdnav='#undef CONFIG_DVDNAV'
6666 noinputmodules="dvdnav $noinputmodules"
6668 echores "$_dvdnav"
6670 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6671 # Read dvdnav comment above.
6673 mak_enable () {
6674 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6675 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6676 nprefix=$3;
6677 for part in $list; do
6678 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6679 echo "${nprefix}_$part = yes"
6681 done
6684 #############################################################################
6685 echo "Creating config.mak"
6686 cat > config.mak << EOF
6687 # -------- Generated by configure -----------
6689 # Ensure that locale settings do not interfere with shell commands.
6690 export LC_ALL = C
6692 CONFIGURATION = $configuration
6694 CHARSET = $_charset
6695 DOC_LANGS = $language_doc
6696 DOC_LANG_ALL = $doc_lang_all
6697 MAN_LANGS = $language_man
6698 MAN_LANG_ALL = $man_lang_all
6699 MSG_LANGS = $language_msg
6700 MSG_LANG_ALL = $msg_lang_all
6702 prefix = \$(DESTDIR)$_prefix
6703 BINDIR = \$(DESTDIR)$_bindir
6704 DATADIR = \$(DESTDIR)$_datadir
6705 LIBDIR = \$(DESTDIR)$_libdir
6706 MANDIR = \$(DESTDIR)$_mandir
6707 CONFDIR = \$(DESTDIR)$_confdir
6708 LOCALEDIR = \$(DESTDIR)$_localedir
6710 AR = $_ar
6711 AS = $_cc
6712 CC = $_cc
6713 CXX = $_cc
6714 HOST_CC = $_host_cc
6715 INSTALL = $_install
6716 INSTALLSTRIP = $_install_strip
6717 WINDRES = $_windres
6719 CFLAGS = $WARNFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6720 CXXFLAGS = $WARNFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6721 DEPFLAGS = $DEPFLAGS
6723 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6724 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6725 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6726 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6727 CFLAGS_STACKREALIGN = $cflags_stackrealign
6729 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6730 EXTRALIBS_MPLAYER = $libs_mplayer
6732 GETCH = $_getch
6733 TIMER = $_timer
6735 EXESUF = $_exesuf
6736 EXESUFS_ALL = .exe
6738 ARCH = $arch
6739 $(mak_enable "$arch_all" "$arch" ARCH)
6740 $(mak_enable "$subarch_all" "$subarch" ARCH)
6741 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6743 MPLAYER = $_mplayer
6745 NEED_GETTIMEOFDAY = $need_gettimeofday
6746 NEED_GLOB = $need_glob
6747 NEED_MMAP = $need_mmap
6748 NEED_SETENV = $need_setenv
6749 NEED_SHMEM = $need_shmem
6750 NEED_STRSEP = $need_strsep
6751 NEED_SWAB = $need_swab
6752 NEED_VSSCANF = $need_vsscanf
6754 # features
6755 3DFX = $_3dfx
6756 AA = $_aa
6757 ALSA1X = $_alsa1x
6758 ALSA9 = $_alsa9
6759 ALSA5 = $_alsa5
6760 APPLE_IR = $_apple_ir
6761 APPLE_REMOTE = $_apple_remote
6762 ARTS = $_arts
6763 AUDIO_INPUT = $_audio_input
6764 BITMAP_FONT = $_bitmap_font
6765 BL = $_bl
6766 CACA = $_caca
6767 CDDA = $_cdda
6768 CDDB = $_cddb
6769 COREAUDIO = $_coreaudio
6770 COREVIDEO = $_corevideo
6771 DART = $_dart
6772 DGA = $_dga
6773 DIRECT3D = $_direct3d
6774 DIRECTFB = $_directfb
6775 DIRECTX = $_directx
6776 DVBIN = $_dvbin
6777 DVDNAV = $_dvdnav
6778 DVDNAV_INTERNAL = $dvdnav_internal
6779 DVDREAD = $_dvdread
6780 DVDREAD_INTERNAL = $_dvdread_internal
6781 DXR3 = $_dxr3
6782 ESD = $_esd
6783 FAAD = $_faad
6784 FASTMEMCPY = $_fastmemcpy
6785 FBDEV = $_fbdev
6786 FREETYPE = $_freetype
6787 FTP = $_ftp
6788 GIF = $_gif
6789 GGI = $_ggi
6790 GL = $_gl
6791 GL_WIN32 = $_gl_win32
6792 GL_X11 = $_gl_x11
6793 GL_SDL = $_gl_sdl
6794 MATRIXVIEW = $matrixview
6795 HAVE_POSIX_SELECT = $_posix_select
6796 HAVE_SYS_MMAN_H = $_mman
6797 IVTV = $_ivtv
6798 JACK = $_jack
6799 JOYSTICK = $_joystick
6800 JPEG = $_jpeg
6801 KAI = $_kai
6802 KVA = $_kva
6803 LADSPA = $_ladspa
6804 LIBA52 = $_liba52
6805 LIBASS = $_ass
6806 LIBBLURAY = $_bluray
6807 LIBBS2B = $_libbs2b
6808 LIBDCA = $_libdca
6809 LIBDV = $_libdv
6810 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6811 LIBMAD = $_mad
6812 LIBMENU = $_menu
6813 LIBMENU_DVBIN = $_menu_dvbin
6814 LIBNEMESI = $_nemesi
6815 LIBNUT = $_libnut
6816 LIBSMBCLIENT = $_smb
6817 LIBTHEORA = $_theora
6818 LIRC = $_lirc
6819 LIVE555 = $_live
6820 MACOSX_FINDER = $_macosx_finder
6821 MD5SUM = $_md5sum
6822 MGA = $_mga
6823 MNG = $_mng
6824 MP3LIB = $_mp3lib
6825 MPG123 = $_mpg123
6826 MUSEPACK = $_musepack
6827 NAS = $_nas
6828 NATIVE_RTSP = $_native_rtsp
6829 NETWORKING = $networking
6830 OPENAL = $_openal
6831 OSS = $_ossaudio
6832 PE_EXECUTABLE = $_pe_executable
6833 PNG = $_png
6834 PNM = $_pnm
6835 PRIORITY = $_priority
6836 PULSE = $_pulse
6837 PVR = $_pvr
6838 QTX_CODECS = $_qtx
6839 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6840 QTX_EMULATION = $_qtx_emulation
6841 QUARTZ = $_quartz
6842 RADIO=$_radio
6843 RADIO_CAPTURE=$_radio_capture
6844 REAL_CODECS = $_real
6845 S3FB = $_s3fb
6846 SDL = $_sdl
6847 SPEEX = $_speex
6848 STREAM_CACHE = $_stream_cache
6849 SGIAUDIO = $_sgiaudio
6850 SUNAUDIO = $_sunaudio
6851 SVGA = $_svga
6852 TDFXFB = $_tdfxfb
6853 TDFXVID = $_tdfxvid
6854 TGA = $_tga
6855 TV = $_tv
6856 TV_BSDBT848 = $_tv_bsdbt848
6857 TV_DSHOW = $_tv_dshow
6858 TV_V4L = $_tv_v4l
6859 TV_V4L1 = $_tv_v4l1
6860 TV_V4L2 = $_tv_v4l2
6861 UNRAR_EXEC = $_unrar_exec
6862 V4L2 = $_v4l2
6863 VCD = $_vcd
6864 VDPAU = $_vdpau
6865 VESA = $_vesa
6866 VORBIS = $_vorbis
6867 VSTREAM = $_vstream
6868 WII = $_wii
6869 WIN32DLL = $_win32dll
6870 WIN32WAVEOUT = $_win32waveout
6871 WIN32_EMULATION = $_win32_emulation
6872 X11 = $_x11
6873 XANIM_CODECS = $_xanim
6874 XMGA = $_xmga
6875 XMMS_PLUGINS = $_xmms
6876 XV = $_xv
6877 XVID4 = $_xvid
6878 XVMC = $_xvmc
6879 XVR100 = $_xvr100
6880 YUV4MPEG = $_yuv4mpeg
6882 # FFmpeg
6883 FFMPEG = $ffmpeg
6884 FFMPEG_EVAL_API = $ffmpeg_eval_api
6885 FFMPEG_INTERNALS = $ffmpeg_internals
6886 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6888 RANLIB = $_ranlib
6889 YASM = $_yasm
6890 YASMFLAGS = $YASMFLAGS
6892 CONFIG_VDPAU = $_vdpau
6893 CONFIG_XVMC = $_xvmc
6894 CONFIG_ZLIB = $_zlib
6896 HAVE_PTHREADS = $_pthreads
6897 HAVE_SHM = $_shm
6898 HAVE_W32THREADS = $_w32threads
6899 HAVE_YASM = $have_yasm
6903 #############################################################################
6905 ff_config_enable () {
6906 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6907 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6908 _nprefix=$3;
6909 test -z "$_nprefix" && _nprefix='CONFIG'
6910 for part in $list; do
6911 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6912 echo "#define ${_nprefix}_$part 1"
6913 else
6914 echo "#define ${_nprefix}_$part 0"
6916 done
6919 echo "Creating config.h"
6920 cat > $TMPH << EOF
6921 /*----------------------------------------------------------------------------
6922 ** This file has been automatically generated by configure any changes in it
6923 ** will be lost when you run configure again.
6924 ** Instead of modifying definitions here, use the --enable/--disable options
6925 ** of the configure script! See ./configure --help for details.
6926 *---------------------------------------------------------------------------*/
6928 #ifndef MPLAYER_CONFIG_H
6929 #define MPLAYER_CONFIG_H
6931 /* Undefine this if you do not want to select mono audio (left or right)
6932 with a stereo MPEG layer 2/3 audio stream. The command line option
6933 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6934 right-only), with 0 being the default.
6936 #define CONFIG_FAKE_MONO 1
6938 /* set up audio OUTBURST. Do not change this! */
6939 #define OUTBURST 512
6941 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6942 #undef FAST_OSD
6943 #undef FAST_OSD_TABLE
6947 #define CONFIGURATION "$configuration"
6949 #define MPLAYER_DATADIR "$_datadir"
6950 #define MPLAYER_CONFDIR "$_confdir"
6951 #define MPLAYER_LIBDIR "$_libdir"
6952 #define MPLAYER_LOCALEDIR "$_localedir"
6954 $def_translation
6956 /* definitions needed by included libraries */
6957 #define HAVE_INTTYPES_H 1
6958 /* libdvdcss */
6959 #define HAVE_ERRNO_H 1
6960 /* libdvdcss + libdvdread */
6961 #define HAVE_LIMITS_H 1
6962 /* libdvdcss */
6963 #define HAVE_UNISTD_H 1
6964 /* libdvdread */
6965 #define STDC_HEADERS 1
6966 #define HAVE_MEMCPY 1
6967 /* libdvdnav */
6968 #define READ_CACHE_TRACE 0
6969 /* libdvdread */
6970 #define HAVE_DLFCN_H 1
6971 $def_dvdcss
6974 /* system headers */
6975 $def_alloca_h
6976 $def_alsa_asoundlib_h
6977 $def_altivec_h
6978 $def_malloc_h
6979 $def_mman_h
6980 $def_mman_has_map_failed
6981 $def_soundcard_h
6982 $def_sys_asoundlib_h
6983 $def_sys_soundcard_h
6984 $def_sys_sysinfo_h
6985 $def_termios_h
6986 $def_termios_sys_h
6987 $def_winsock2_h
6990 /* system functions */
6991 $def_gethostbyname2
6992 $def_gettimeofday
6993 $def_glob
6994 $def_langinfo
6995 $def_lrintf
6996 $def_map_memalign
6997 $def_memalign
6998 $def_nanosleep
6999 $def_posix_select
7000 $def_select
7001 $def_setenv
7002 $def_setmode
7003 $def_shm
7004 $def_strsep
7005 $def_swab
7006 $def_sysi86
7007 $def_sysi86_iv
7008 $def_termcap
7009 $def_termios
7010 $def_vsscanf
7013 /* system-specific features */
7014 $def_asmalign_pot
7015 $def_builtin_expect
7016 $def_dl
7017 $def_dos_paths
7018 $def_extern_asm
7019 $def_extern_prefix
7020 $def_iconv
7021 $def_kstat
7022 $def_macosx_bundle
7023 $def_macosx_finder
7024 $def_named_asm_args
7025 $def_priority
7026 $def_quicktime
7027 $def_restrict_keyword
7028 $def_rtc
7029 $def_unrar_exec
7032 /* configurable options */
7033 $def_charset
7034 $def_crash_debug
7035 $def_debug
7036 $def_dynamic_plugins
7037 $def_fastmemcpy
7038 $def_menu
7039 $def_runtime_cpudetection
7040 $def_sighandler
7041 $def_sortsub
7042 $def_stream_cache
7043 $def_pthread_cache
7046 /* CPU stuff */
7047 #define __CPU__ $iproc
7048 $def_ebx_available
7049 $def_words_endian
7050 $def_bigendian
7051 $(ff_config_enable "$arch_all" "$arch" "ARCH")
7052 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
7053 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
7056 /* Blu-ray/DVD/VCD/CD */
7057 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
7058 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
7059 $def_bluray
7060 $def_bsdi_dvd
7061 $def_cddb
7062 $def_cdio
7063 $def_cdparanoia
7064 $def_cdrom
7065 $def_dvd
7066 $def_dvd_bsd
7067 $def_dvd_darwin
7068 $def_dvd_linux
7069 $def_dvd_openbsd
7070 $def_dvdio
7071 $def_dvdnav
7072 $def_dvdread
7073 $def_hpux_scsi_h
7074 $def_libcdio
7075 $def_sol_scsi_h
7076 $def_vcd
7079 /* codec libraries */
7080 $def_faad
7081 $def_liba52
7082 $def_libdca
7083 $def_libdv
7084 $def_mad
7085 $def_mp3lib
7086 $def_mpg123
7087 $def_musepack
7088 $def_speex
7089 $def_theora
7090 $def_tremor
7091 $def_vorbis
7092 $def_xvid
7093 $def_zlib
7095 $def_libnut
7098 /* binary codecs */
7099 $def_qtx
7100 $def_qtx_win32
7101 $def_real
7102 $def_win32_loader
7103 $def_win32dll
7104 $def_xanim
7105 $def_xmms
7106 #define BINARY_CODECS_PATH "$_codecsdir"
7107 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7110 /* Audio output drivers */
7111 $def_alsa
7112 $def_alsa1x
7113 $def_alsa5
7114 $def_alsa9
7115 $def_arts
7116 $def_coreaudio
7117 $def_dart
7118 $def_esd
7119 $def_esd_latency
7120 $def_jack
7121 $def_kai
7122 $def_nas
7123 $def_openal
7124 $def_openal_h
7125 $def_ossaudio
7126 $def_ossaudio_devdsp
7127 $def_ossaudio_devmixer
7128 $def_pulse
7129 $def_sgiaudio
7130 $def_sunaudio
7131 $def_win32waveout
7133 $def_ladspa
7134 $def_libbs2b
7137 /* input */
7138 $def_apple_ir
7139 $def_apple_remote
7140 $def_ioctl_bt848_h_name
7141 $def_ioctl_meteor_h_name
7142 $def_joystick
7143 $def_lirc
7144 $def_lircc
7145 $def_pvr
7146 $def_radio
7147 $def_radio_bsdbt848
7148 $def_radio_capture
7149 $def_radio_v4l
7150 $def_radio_v4l2
7151 $def_tv
7152 $def_tv_bsdbt848
7153 $def_tv_dshow
7154 $def_tv_v4l
7155 $def_tv_v4l1
7156 $def_tv_v4l2
7159 /* font stuff */
7160 $def_ass
7161 $def_bitmap_font
7162 $def_enca
7163 $def_fontconfig
7164 $def_freetype
7165 $def_fribidi
7168 /* networking */
7169 $def_closesocket
7170 $def_ftp
7171 $def_inet6
7172 $def_inet_aton
7173 $def_inet_pton
7174 $def_live
7175 $def_nemesi
7176 $def_networking
7177 $def_smb
7178 $def_socklen_t
7179 $def_vstream
7182 /* libvo options */
7183 $def_3dfx
7184 $def_aa
7185 $def_bl
7186 $def_caca
7187 $def_corevideo
7188 $def_dga
7189 $def_dga1
7190 $def_dga2
7191 $def_direct3d
7192 $def_directfb
7193 $def_directx
7194 $def_dvb
7195 $def_dvbin
7196 $def_dxr3
7197 $def_fbdev
7198 $def_ggi
7199 $def_ggiwmh
7200 $def_gif
7201 $def_gif_4
7202 $def_gif_tvt_hack
7203 $def_gl
7204 $def_gl_win32
7205 $def_gl_x11
7206 $def_gl_sdl
7207 $def_matrixview
7208 $def_ivtv
7209 $def_jpeg
7210 $def_kva
7211 $def_md5sum
7212 $def_mga
7213 $def_mng
7214 $def_png
7215 $def_pnm
7216 $def_quartz
7217 $def_s3fb
7218 $def_sdl
7219 $def_sdl_sdl_h
7220 $def_svga
7221 $def_tdfxfb
7222 $def_tdfxvid
7223 $def_tga
7224 $def_v4l2
7225 $def_vdpau
7226 $def_vesa
7227 $def_vm
7228 $def_wii
7229 $def_x11
7230 $def_xdpms
7231 $def_xf86keysym
7232 $def_xinerama
7233 $def_xmga
7234 $def_xss
7235 $def_xv
7236 $def_xvmc
7237 $def_xvr100
7238 $def_yuv4mpeg
7241 /* FFmpeg */
7242 $def_ffmpeg
7243 $def_ffmpeg_eval_api
7244 $def_ffmpeg_internals
7246 $def_arpa_inet_h
7247 $def_bswap
7248 $def_dcbzl
7249 $def_exp2
7250 $def_exp2f
7251 $def_fast_64bit
7252 $def_fast_unaligned
7253 $def_llrint
7254 $def_log2
7255 $def_log2f
7256 $def_lrint
7257 $def_memalign_hack
7258 $def_mkstemp
7259 $def_posix_memalign
7260 $def_pthreads
7261 $def_round
7262 $def_roundf
7263 $def_ten_operands
7264 $def_threads
7265 $def_truncf
7266 $def_xform_asm
7267 $def_yasm
7269 #define HAVE_INLINE_ASM 1
7271 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7272 #ifndef MP_DEBUG
7273 #define HAVE_EBP_AVAILABLE 1
7274 #else
7275 #define HAVE_EBP_AVAILABLE 0
7276 #endif
7278 #endif /* MPLAYER_CONFIG_H */
7281 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7282 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
7284 #############################################################################
7286 ./version.sh `$_cc -dumpversion`
7288 cat << EOF
7290 Config files successfully generated by ./configure $configuration !
7292 Install prefix: $_prefix
7293 Data directory: $_datadir
7294 Config direct.: $_confdir
7296 Byte order: $_byte_order
7297 Optimizing for: $_optimizing
7299 Languages:
7300 Messages (in addition to English): $language_msg
7301 Manual pages: $language_man
7302 Documentation: $language_doc
7304 Enabled optional drivers:
7305 Input: $inputmodules
7306 Codecs: $codecmodules
7307 Audio output: $aomodules
7308 Video output: $vomodules
7310 Disabled optional drivers:
7311 Input: $noinputmodules
7312 Codecs: $nocodecmodules
7313 Audio output: $noaomodules
7314 Video output: $novomodules
7316 'config.h' and 'config.mak' contain your configuration options.
7317 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7318 compile *** DO NOT REPORT BUGS if you tweak these files ***
7320 'make' will now compile MPlayer and 'make install' will install it.
7321 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7326 if test "$_mtrr" = yes ; then
7327 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7328 echo
7331 if ! x86_32; then
7332 cat <<EOF
7333 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7334 operating system ($system_name). You may encounter a few files that cannot
7335 be played due to missing open source video/audio codec support.
7341 cat <<EOF
7342 Check $TMPLOG if you wonder why an autodetection failed (make sure
7343 development headers/packages are installed).
7345 NOTE: The --enable-* parameters unconditionally force options on, completely
7346 skipping autodetection. This behavior is unlike what you may be used to from
7347 autoconf-based configure scripts that can decide to override you. This greater
7348 level of control comes at a price. You may have to provide the correct compiler
7349 and linker flags yourself.
7350 If you used one of these options (except --enable-menu and similar ones that
7351 turn on internal features) and experience a compilation or linking failure,
7352 make sure you have passed the necessary compiler/linker flags to configure.
7354 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7358 if test "$warn_cflags" = yes; then
7359 cat <<EOF
7361 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7362 but:
7364 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7366 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7367 To do so, execute 'CFLAGS= ./configure <options>'
7372 # Last move:
7373 rm -rf "$mplayer_tmpdir"