vo_gl: remove mesa-buffer suboption
[mplayer.git] / configure
blobf79b8cec085d5adc7a71ed06e338b4b3349d38b8
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, look at the existing checks
23 # and try to use helper functions where you can.
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
32 # _feature : should have a value of yes/no/auto
33 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
34 # _ld_feature : '-L/path/dir -lfeature' GCC options
36 #############################################################################
38 # Prevent locale nonsense from breaking basic text processing utils
39 export LC_ALL=C
41 # Store the configure line that was used
42 configuration="$*"
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
46 compile_check() {
47 source="$1"
48 shift
49 echo >> "$TMPLOG"
50 cat "$source" >> "$TMPLOG"
51 echo >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
55 TMPRES="$?"
56 echo >> "$TMPLOG"
57 echo >> "$TMPLOG"
58 return "$TMPRES"
61 cc_check() {
62 compile_check $TMPC $@
65 cxx_check() {
66 compile_check $TMPCPP $@ -lstdc++
69 cflag_check() {
70 cat > $TMPC << EOF
71 int main(void) { return 0; }
72 EOF
73 compile_check $TMPC $@
76 header_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { return 0; }
80 EOF
81 shift
82 compile_check $TMPC $@
85 return_check() {
86 cat > $TMPC << EOF
87 #include <$1>
88 int main(void) { return $2; }
89 EOF
90 shift 2
91 compile_check $TMPC $@
94 statement_check() {
95 cat > $TMPC << EOF
96 #include <$1>
97 int main(void) { $2; return 0; }
98 EOF
99 shift
100 shift
101 compile_check $TMPC $@
104 define_statement_check() {
105 cat > $TMPC << EOF
106 #define $1
107 #include <$2>
108 int main(void) { $3; return 0; }
110 shift 3
111 compile_check $TMPC $@
114 return_statement_check() {
115 cat > $TMPC << EOF
116 #include <$1>
117 int main(void) { $2; return $3; }
119 shift 3
120 compile_check $TMPC $@
123 inline_asm_check() {
124 cat > $TMPC << EOF
125 int main(void) { __asm__ volatile ($1); return 0; }
127 shift
128 compile_check $TMPC $@
131 # The following checks are special and should only be used with broken and
132 # non-selfsufficient headers that do not include all of their dependencies.
134 header_check_broken() {
135 cat > $TMPC << EOF
136 #include <$1>
137 #include <$2>
138 int main(void) { return 0; }
140 shift
141 shift
142 compile_check $TMPC $@
145 statement_check_broken() {
146 cat > $TMPC << EOF
147 #include <$1>
148 #include <$2>
149 int main(void) { $3; return 0; }
151 shift 3
152 compile_check $TMPC $@
155 yasm_check() {
156 echo >> "$TMPLOG"
157 cat "$TMPS" >> "$TMPLOG"
158 echo >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
160 rm -f "$TMPEXE"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
162 TMPRES="$?"
163 echo >> "$TMPLOG"
164 echo >> "$TMPLOG"
165 return "$TMPRES"
168 tmp_run() {
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
173 die () {
174 echo
175 echo "Error: $@" >&2
176 echo >&2
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
179 exit 1
182 # OS test booleans functions
183 issystem() {
184 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
186 aix() { issystem "AIX"; }
187 amigaos() { issystem "AmigaOS"; }
188 beos() { issystem "BEOS"; }
189 bsdos() { issystem "BSD/OS"; }
190 cygwin() { issystem "CYGWIN"; }
191 darwin() { issystem "Darwin"; }
192 dragonfly() { issystem "DragonFly"; }
193 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
194 gnu() { issystem "GNU"; }
195 hpux() { issystem "HP-UX"; }
196 irix() { issystem "IRIX"; }
197 linux() { issystem "Linux"; }
198 mingw32() { issystem "MINGW32"; }
199 morphos() { issystem "MorphOS"; }
200 netbsd() { issystem "NetBSD"; }
201 openbsd() { issystem "OpenBSD"; }
202 os2() { issystem "OS/2"; }
203 qnx() { issystem "QNX"; }
204 sunos() { issystem "SunOS"; }
205 win32() { cygwin || mingw32; }
207 # arch test boolean functions
208 # x86/x86pc is used by QNX
209 x86_32() {
210 case "$host_arch" in
211 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
212 *) return 1 ;;
213 esac
216 x86_64() {
217 case "$host_arch" in
218 x86_64|amd64) return 0 ;;
219 *) return 1 ;;
220 esac
223 x86() {
224 x86_32 || x86_64
227 ppc() {
228 case "$host_arch" in
229 ppc|ppc64|powerpc|powerpc64) return 0;;
230 *) return 1;;
231 esac
234 alpha() {
235 case "$host_arch" in
236 alpha*) return 0;;
237 *) return 1;;
238 esac
241 arm() {
242 case "$host_arch" in
243 arm*) return 0;;
244 *) return 1;;
245 esac
248 # Use this before starting a check
249 echocheck() {
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
255 echores() {
256 if test "$res_comment" ; then
257 res_comment="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
261 echo "" >> "$TMPLOG"
262 echo "$@ $res_comment"
263 res_comment=""
265 #############################################################################
267 # Check how echo works in this /bin/sh
268 case $(echo -n) in
269 -n) _echo_n= _echo_c='\c' ;; # SysV echo
270 *) _echo_n='-n ' _echo_c= ;; # BSD echo
271 esac
273 msg_lang_all=''
274 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
275 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
276 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
278 show_help(){
279 cat << EOF
280 Usage: $0 [OPTIONS]...
282 Configuration:
283 -h, --help display this help and exit
285 Installation directories:
286 --prefix=DIR prefix directory for installation [/usr/local]
287 --bindir=DIR directory for installing binaries [PREFIX/bin]
288 --datadir=DIR directory for installing machine independent
289 data files (skins, etc) [PREFIX/share/mplayer]
290 --mandir=DIR directory for installing man pages [PREFIX/share/man]
291 --confdir=DIR directory for installing configuration files
292 [PREFIX/etc/mplayer]
293 --localedir=DIR directory for locale tree [PREFIX/share/locale]
294 --libdir=DIR directory for object code libraries [PREFIX/lib]
295 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
297 Optional features:
298 --disable-mplayer disable MPlayer compilation [enable]
299 --enable-termcap use termcap database for key codes [autodetect]
300 --enable-termios use termios database for key codes [autodetect]
301 --disable-iconv disable iconv for encoding conversion [autodetect]
302 --disable-langinfo do not use langinfo [autodetect]
303 --enable-lirc enable LIRC (remote control) support [autodetect]
304 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
305 --enable-joystick enable joystick support [disable]
306 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
307 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
308 --disable-vm disable X video mode extensions [autodetect]
309 --disable-xf86keysym disable support for multimedia keys [autodetect]
310 --enable-radio enable radio interface [disable]
311 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
312 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
313 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
314 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
315 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
316 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
317 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
318 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
319 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
320 --disable-networking disable networking [enable]
321 --enable-winsock2_h enable winsock2_h [autodetect]
322 --enable-smb enable Samba (SMB) input [autodetect]
323 --enable-live enable LIVE555 Streaming Media [autodetect]
324 --enable-nemesi enable Nemesi Streaming Media [autodetect]
325 --disable-vcd disable VCD support [autodetect]
326 --disable-bluray disable Blu-ray support [autodetect]
327 --disable-dvdnav disable libdvdnav [autodetect]
328 --disable-dvdread disable libdvdread [autodetect]
329 --disable-dvdread-internal disable internal libdvdread [autodetect]
330 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
331 --disable-cdparanoia disable cdparanoia [autodetect]
332 --disable-cddb disable cddb [autodetect]
333 --disable-bitmap-font disable bitmap font support [enable]
334 --disable-freetype disable FreeType 2 font rendering [autodetect]
335 --disable-fontconfig disable fontconfig font lookup [autodetect]
336 --disable-unrarexec disable using of UnRAR executable [enabled]
337 --enable-menu enable OSD menu (not DVD menu) [disabled]
338 --disable-sortsub disable subtitle sorting [enabled]
339 --enable-fribidi enable the FriBiDi libs [autodetect]
340 --disable-enca disable ENCA charset oracle library [autodetect]
341 --enable-macosx-finder enable Mac OS X Finder invocation parameter
342 parsing [disabled]
343 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
344 --disable-inet6 disable IPv6 support [autodetect]
345 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
346 --disable-ftp disable FTP support [enabled]
347 --disable-vstream disable TiVo vstream client support [autodetect]
348 --disable-pthreads disable Posix threads support [autodetect]
349 --disable-w32threads disable Win32 threads support [autodetect]
350 --disable-libass disable subtitle rendering with libass [autodetect]
351 --enable-rpath enable runtime linker path for extra libs [disabled]
353 Codecs:
354 --enable-gif enable GIF support [autodetect]
355 --enable-png enable PNG input/output support [autodetect]
356 --enable-mng enable MNG input support [autodetect]
357 --enable-jpeg enable JPEG input/output support [autodetect]
358 --enable-libcdio enable libcdio support [autodetect]
359 --disable-win32dll disable Win32 DLL support [autodetect]
360 --disable-qtx disable QuickTime codecs support [enabled]
361 --disable-xanim disable XAnim codecs support [enabled]
362 --disable-real disable RealPlayer codecs support [enabled]
363 --disable-xvid disable Xvid [autodetect]
364 --disable-libnut disable libnut [autodetect]
365 --disable-libav disable Libav [autodetect]
366 --disable-libvorbis disable libvorbis support [autodetect]
367 --disable-tremor disable Tremor [autodetect if no libvorbis]
368 --disable-speex disable Speex support [autodetect]
369 --enable-theora enable OggTheora libraries [autodetect]
370 --enable-faad enable FAAD2 (AAC) [autodetect]
371 --disable-ladspa disable LADSPA plugin support [autodetect]
372 --disable-libbs2b disable libbs2b audio filter support [autodetect]
373 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
374 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
375 --disable-mad disable libmad (MPEG audio) support [autodetect]
376 --enable-xmms enable XMMS input plugin support [disabled]
377 --enable-libdca enable libdca support [autodetect]
378 --disable-liba52 disable liba52 [autodetect]
379 --enable-musepack enable libmpcdec support (deprecated, libavcodec
380 Musepack decoder is preferred) [disabled]
382 Video output:
383 --enable-gl enable OpenGL video output [autodetect]
384 --enable-dga2 enable DGA 2 support [autodetect]
385 --enable-dga1 enable DGA 1 support [autodetect]
386 --enable-vesa enable VESA video output [autodetect]
387 --enable-svga enable SVGAlib video output [autodetect]
388 --enable-sdl enable SDL video output [autodetect]
389 --enable-kva enable KVA video output [autodetect]
390 --enable-aa enable AAlib video output [autodetect]
391 --enable-caca enable CACA video output [autodetect]
392 --enable-ggi enable GGI video output [autodetect]
393 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
394 --enable-direct3d enable Direct3D video output [autodetect]
395 --enable-directx enable DirectX video output [autodetect]
396 --enable-dxr3 enable DXR3/H+ video output [autodetect]
397 --enable-ivtv enable IVTV TV-Out video output [autodetect]
398 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
399 --enable-dvb enable DVB video output [autodetect]
400 --enable-mga enable mga_vid video output [autodetect]
401 --enable-xmga enable mga_vid X11 video output [autodetect]
402 --enable-xv enable Xv video output [autodetect]
403 --enable-vdpau enable VDPAU acceleration [autodetect]
404 --enable-vm enable XF86VidMode support [autodetect]
405 --enable-xinerama enable Xinerama support [autodetect]
406 --enable-x11 enable X11 video output [autodetect]
407 --enable-xshape enable XShape support [autodetect]
408 --disable-xss disable screensaver support via xss [autodetect]
409 --enable-fbdev enable FBDev video output [autodetect]
410 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
411 --enable-tdfxfb enable tdfxfb video output [disable]
412 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
413 --enable-wii enable Nintendo Wii/GameCube video output [disable]
414 --enable-directfb enable DirectFB video output [autodetect]
415 --enable-bl enable Blinkenlights video output [disable]
416 --enable-tdfxvid enable tdfx_vid video output [disable]
417 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
418 --disable-tga disable Targa video output [enable]
419 --disable-pnm disable PNM video output [enable]
420 --disable-md5sum disable md5sum video output [enable]
421 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
422 --disable-corevideo disable CoreVideo video output [autodetect]
423 --disable-quartz disable Quartz video output [autodetect]
425 Audio output:
426 --disable-alsa disable ALSA audio output [autodetect]
427 --disable-ossaudio disable OSS audio output [autodetect]
428 --disable-arts disable aRts audio output [autodetect]
429 --disable-esd disable esd audio output [autodetect]
430 --disable-rsound disable RSound audio output [autodetect]
431 --disable-pulse disable Pulseaudio audio output [autodetect]
432 --disable-jack disable JACK audio output [autodetect]
433 --enable-openal enable OpenAL audio output [disable]
434 --disable-nas disable NAS audio output [autodetect]
435 --disable-sgiaudio disable SGI audio output [autodetect]
436 --disable-sunaudio disable Sun audio output [autodetect]
437 --disable-kai disable KAI audio output [autodetect]
438 --disable-dart disable DART audio output [autodetect]
439 --disable-win32waveout disable Windows waveout audio output [autodetect]
440 --disable-coreaudio disable CoreAudio audio output [autodetect]
441 --disable-select disable using select() on the audio device [enable]
443 Language options:
444 --enable-translation enable support for translated output [disable]
445 --charset=charset convert the console messages to this character set
446 --language-doc=lang language to use for the documentation [en]
447 --language-man=lang language to use for the man pages [en]
448 --language-msg=lang extra languages for program messages [all]
449 --language=lang default language to use [en]
450 Specific options override --language. You can pass a list of languages separated
451 by whitespace or commas instead of a single language. Nonexisting translations
452 will be dropped from each list. All translations available in the list will be
453 installed. The value "all" will activate all translations. The LINGUAS
454 environment variable is honored. In all cases the fallback is English.
455 The program always supports English-language output; additional message
456 languages are only installed if --enable-translation is also specified.
457 Available values for --language-doc are: all $doc_lang_all
458 Available values for --language-man are: all $man_lang_all
459 Available values for --language-msg are: all $msg_lang_all
461 Miscellaneous options:
462 --enable-runtime-cpudetection enable runtime CPU detection [disable]
463 --enable-cross-compile enable cross-compilation [autodetect]
464 --cc=COMPILER C compiler to build MPlayer [gcc]
465 --host-cc=COMPILER C compiler for tools needed while building [gcc]
466 --as=ASSEMBLER assembler to build MPlayer [as]
467 --nm=NM nm tool to build MPlayer [nm]
468 --yasm=YASM Yasm assembler to build MPlayer [yasm]
469 --ar=AR librarian to build MPlayer [ar]
470 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
471 --windres=WINDRES windres to build MPlayer [windres]
472 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
473 --enable-static build a statically linked binary
474 --with-install=PATH path to a custom install program
476 Advanced options:
477 --enable-mmx enable MMX [autodetect]
478 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
479 --enable-3dnow enable 3DNow! [autodetect]
480 --enable-3dnowext enable extended 3DNow! [autodetect]
481 --enable-sse enable SSE [autodetect]
482 --enable-sse2 enable SSE2 [autodetect]
483 --enable-ssse3 enable SSSE3 [autodetect]
484 --enable-shm enable shm [autodetect]
485 --enable-altivec enable AltiVec (PowerPC) [autodetect]
486 --enable-armv5te enable DSP extensions (ARM) [autodetect]
487 --enable-armv6 enable ARMv6 (ARM) [autodetect]
488 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
489 --enable-armvfp enable ARM VFP (ARM) [autodetect]
490 --enable-neon enable NEON (ARM) [autodetect]
491 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
492 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
493 --enable-big-endian force byte order to big-endian [autodetect]
494 --enable-debug[=1-3] compile-in debugging information [disable]
495 --enable-profile compile-in profiling information [disable]
496 --disable-sighandler disable sighandler for crashes [enable]
497 --enable-crash-debug enable automatic gdb attach on crash [disable]
499 Use these options if autodetection fails:
500 --extra-cflags=FLAGS extra CFLAGS
501 --extra-ldflags=FLAGS extra LDFLAGS
502 --extra-libs=FLAGS extra linker flags
503 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
505 --with-freetype-config=PATH path to freetype-config
506 --with-sdl-config=PATH path to sdl*-config
507 --with-dvdnav-config=PATH path to dvdnav-config
508 --with-dvdread-config=PATH path to dvdread-config
510 This configure script is NOT autoconf-based, even though its output is similar.
511 It will try to autodetect all configuration options. If you --enable an option
512 it will be forcefully turned on, skipping autodetection. This can break
513 compilation, so you need to know what you are doing.
515 exit 0
516 } #show_help()
518 # GOTCHA: the variables below defines the default behavior for autodetection
519 # and have - unless stated otherwise - at least 2 states : yes no
520 # If autodetection is available then the third state is: auto
521 _mmx=auto
522 _3dnow=auto
523 _3dnowext=auto
524 _mmxext=auto
525 _sse=auto
526 _sse2=auto
527 _ssse3=auto
528 _cmov=auto
529 _fast_cmov=auto
530 _fast_clz=auto
531 _armv5te=auto
532 _armv6=auto
533 _armv6t2=auto
534 _armvfp=auto
535 neon=auto
536 _iwmmxt=auto
537 _mtrr=auto
538 _altivec=auto
539 _install=install
540 _ranlib=ranlib
541 _windres=windres
542 _cc=cc
543 _ar=ar
544 test "$CC" && _cc="$CC"
545 _as=auto
546 _nm=auto
547 _yasm=yasm
548 _runtime_cpudetection=no
549 _cross_compile=auto
550 _prefix="/usr/local"
551 ffmpeg=auto
552 ffmpeg_internals=no
553 _mplayer=yes
554 _x11=auto
555 _xshape=auto
556 _xss=auto
557 _dga1=auto
558 _dga2=auto
559 _xv=auto
560 _vdpau=auto
561 _sdl=auto
562 _kva=auto
563 _direct3d=auto
564 _directx=auto
565 _win32waveout=auto
566 _nas=auto
567 _png=auto
568 _mng=auto
569 _jpeg=auto
570 _pnm=yes
571 _md5sum=yes
572 _yuv4mpeg=yes
573 _gif=auto
574 _gl=auto
575 _ggi=auto
576 _ggiwmh=auto
577 _aa=auto
578 _caca=auto
579 _svga=auto
580 _vesa=auto
581 _fbdev=auto
582 _dvb=auto
583 _dxr3=auto
584 _ivtv=auto
585 _v4l2=auto
586 _iconv=auto
587 _langinfo=auto
588 _rtc=auto
589 _ossaudio=auto
590 _arts=auto
591 _esd=auto
592 _rsound=auto
593 _pulse=auto
594 _jack=auto
595 _kai=auto
596 _dart=auto
597 _openal=no
598 _libcdio=auto
599 _mad=auto
600 _tremor=auto
601 _libvorbis=auto
602 _speex=auto
603 _theora=auto
604 _mpg123=auto
605 _liba52=auto
606 _libdca=auto
607 _faad=auto
608 _ladspa=auto
609 _libbs2b=auto
610 _xmms=no
611 _vcd=auto
612 _bluray=auto
613 _dvdnav=auto
614 _dvdnavconfig=dvdnav-config
615 _dvdreadconfig=dvdread-config
616 _dvdread=auto
617 _dvdread_internal=auto
618 _libdvdcss_internal=auto
619 _xanim=auto
620 _real=auto
621 _live=auto
622 _nemesi=auto
623 _native_rtsp=yes
624 _xinerama=auto
625 _mga=auto
626 _xmga=auto
627 _vm=auto
628 _xf86keysym=auto
629 _sgiaudio=auto
630 _sunaudio=auto
631 _alsa=auto
632 _fastmemcpy=yes
633 _unrar_exec=auto
634 _win32dll=auto
635 _select=yes
636 _radio=no
637 _radio_capture=no
638 _radio_v4l=auto
639 _radio_v4l2=auto
640 _radio_bsdbt848=auto
641 _tv=yes
642 _tv_v4l1=auto
643 _tv_v4l2=auto
644 _tv_bsdbt848=auto
645 _tv_dshow=auto
646 _pvr=auto
647 networking=yes
648 _winsock2_h=auto
649 _smb=auto
650 _joystick=no
651 _xvid=auto
652 _libnut=auto
653 _lirc=auto
654 _lircc=auto
655 _apple_remote=auto
656 _apple_ir=auto
657 _termcap=auto
658 _termios=auto
659 _3dfx=no
660 _s3fb=no
661 _wii=no
662 _tdfxfb=no
663 _tdfxvid=no
664 _xvr100=auto
665 _tga=yes
666 _directfb=auto
667 _bl=no
668 #language=en
669 _shm=auto
670 _translation=no
671 _charset="UTF-8"
672 _crash_debug=no
673 _sighandler=yes
674 _libdv=auto
675 _cdparanoia=auto
676 _cddb=auto
677 _big_endian=auto
678 _bitmap_font=yes
679 _freetype=auto
680 _fontconfig=auto
681 _menu=no
682 _qtx=auto
683 _coreaudio=auto
684 _corevideo=auto
685 _quartz=auto
686 quicktime=auto
687 _macosx_finder=no
688 _macosx_bundle=auto
689 _sortsub=yes
690 _freetypeconfig='freetype-config'
691 _fribidi=auto
692 _enca=auto
693 _inet6=auto
694 _gethostbyname2=auto
695 _ftp=auto
696 _musepack=no
697 _vstream=auto
698 _pthreads=auto
699 _w32threads=auto
700 _ass=auto
701 _rpath=no
702 _asmalign_pot=auto
703 _stream_cache=yes
704 _priority=no
705 def_dos_paths="#define HAVE_DOS_PATHS 0"
706 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
707 def_priority="#undef CONFIG_PRIORITY"
708 def_pthread_cache="#undef PTHREAD_CACHE"
709 need_shmem=yes
710 for ac_option do
711 case "$ac_option" in
712 --help|-help|-h)
713 show_help
715 --prefix=*)
716 _prefix=$(echo $ac_option | cut -d '=' -f 2)
718 --bindir=*)
719 _bindir=$(echo $ac_option | cut -d '=' -f 2)
721 --datadir=*)
722 _datadir=$(echo $ac_option | cut -d '=' -f 2)
724 --mandir=*)
725 _mandir=$(echo $ac_option | cut -d '=' -f 2)
727 --confdir=*)
728 _confdir=$(echo $ac_option | cut -d '=' -f 2)
730 --libdir=*)
731 _libdir=$(echo $ac_option | cut -d '=' -f 2)
733 --codecsdir=*)
734 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
736 --localedir=*)
737 _localedir=$(echo $ac_option | cut -d '=' -f 2)
740 --with-install=*)
741 _install=$(echo $ac_option | cut -d '=' -f 2 )
744 --with-sdl-config=*)
745 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
747 --with-freetype-config=*)
748 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
750 --with-dvdnav-config=*)
751 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
753 --with-dvdread-config=*)
754 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
757 --extra-cflags=*)
758 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
760 --extra-ldflags=*)
761 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
763 --extra-libs=*)
764 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
766 --extra-libs-mplayer=*)
767 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
770 --target=*)
771 _target=$(echo $ac_option | cut -d '=' -f 2)
773 --cc=*)
774 _cc=$(echo $ac_option | cut -d '=' -f 2)
776 --host-cc=*)
777 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
779 --as=*)
780 _as=$(echo $ac_option | cut -d '=' -f 2)
782 --nm=*)
783 _nm=$(echo $ac_option | cut -d '=' -f 2)
785 --yasm=*)
786 _yasm=$(echo $ac_option | cut -d '=' -f 2)
788 --ar=*)
789 _ar=$(echo $ac_option | cut -d '=' -f 2)
791 --ranlib=*)
792 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
794 --windres=*)
795 _windres=$(echo $ac_option | cut -d '=' -f 2)
797 --charset=*)
798 _charset=$(echo $ac_option | cut -d '=' -f 2)
800 --language-doc=*)
801 language_doc=$(echo $ac_option | cut -d '=' -f 2)
803 --language-man=*)
804 language_man=$(echo $ac_option | cut -d '=' -f 2)
806 --language-msg=*)
807 language_msg=$(echo $ac_option | cut -d '=' -f 2)
809 --language=*)
810 language=$(echo $ac_option | cut -d '=' -f 2)
813 --enable-static)
814 _ld_static='-static'
816 --disable-static)
817 _ld_static=''
819 --enable-profile)
820 _profile='-p'
822 --disable-profile)
823 _profile=
825 --enable-debug)
826 _debug='-g'
828 --enable-debug=*)
829 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
831 --disable-debug)
832 _debug=
834 --enable-translation) _translation=yes ;;
835 --disable-translation) _translation=no ;;
836 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
837 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
838 --enable-cross-compile) _cross_compile=yes ;;
839 --disable-cross-compile) _cross_compile=no ;;
840 --enable-mplayer) _mplayer=yes ;;
841 --disable-mplayer) _mplayer=no ;;
842 --enable-x11) _x11=yes ;;
843 --disable-x11) _x11=no ;;
844 --enable-xshape) _xshape=yes ;;
845 --disable-xshape) _xshape=no ;;
846 --enable-xss) _xss=yes ;;
847 --disable-xss) _xss=no ;;
848 --enable-xv) _xv=yes ;;
849 --disable-xv) _xv=no ;;
850 --enable-vdpau) _vdpau=yes ;;
851 --disable-vdpau) _vdpau=no ;;
852 --enable-sdl) _sdl=yes ;;
853 --disable-sdl) _sdl=no ;;
854 --enable-kva) _kva=yes ;;
855 --disable-kva) _kva=no ;;
856 --enable-direct3d) _direct3d=yes ;;
857 --disable-direct3d) _direct3d=no ;;
858 --enable-directx) _directx=yes ;;
859 --disable-directx) _directx=no ;;
860 --enable-win32waveout) _win32waveout=yes ;;
861 --disable-win32waveout) _win32waveout=no ;;
862 --enable-nas) _nas=yes ;;
863 --disable-nas) _nas=no ;;
864 --enable-png) _png=yes ;;
865 --disable-png) _png=no ;;
866 --enable-mng) _mng=yes ;;
867 --disable-mng) _mng=no ;;
868 --enable-jpeg) _jpeg=yes ;;
869 --disable-jpeg) _jpeg=no ;;
870 --enable-pnm) _pnm=yes ;;
871 --disable-pnm) _pnm=no ;;
872 --enable-md5sum) _md5sum=yes ;;
873 --disable-md5sum) _md5sum=no ;;
874 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
875 --disable-yuv4mpeg) _yuv4mpeg=no ;;
876 --enable-gif) _gif=yes ;;
877 --disable-gif) _gif=no ;;
878 --enable-gl) _gl=yes ;;
879 --disable-gl) _gl=no ;;
880 --enable-ggi) _ggi=yes ;;
881 --disable-ggi) _ggi=no ;;
882 --enable-ggiwmh) _ggiwmh=yes ;;
883 --disable-ggiwmh) _ggiwmh=no ;;
884 --enable-aa) _aa=yes ;;
885 --disable-aa) _aa=no ;;
886 --enable-caca) _caca=yes ;;
887 --disable-caca) _caca=no ;;
888 --enable-svga) _svga=yes ;;
889 --disable-svga) _svga=no ;;
890 --enable-vesa) _vesa=yes ;;
891 --disable-vesa) _vesa=no ;;
892 --enable-fbdev) _fbdev=yes ;;
893 --disable-fbdev) _fbdev=no ;;
894 --enable-dvb) _dvb=yes ;;
895 --disable-dvb) _dvb=no ;;
896 --enable-dxr3) _dxr3=yes ;;
897 --disable-dxr3) _dxr3=no ;;
898 --enable-ivtv) _ivtv=yes ;;
899 --disable-ivtv) _ivtv=no ;;
900 --enable-v4l2) _v4l2=yes ;;
901 --disable-v4l2) _v4l2=no ;;
902 --enable-iconv) _iconv=yes ;;
903 --disable-iconv) _iconv=no ;;
904 --enable-langinfo) _langinfo=yes ;;
905 --disable-langinfo) _langinfo=no ;;
906 --enable-rtc) _rtc=yes ;;
907 --disable-rtc) _rtc=no ;;
908 --enable-libdv) _libdv=yes ;;
909 --disable-libdv) _libdv=no ;;
910 --enable-ossaudio) _ossaudio=yes ;;
911 --disable-ossaudio) _ossaudio=no ;;
912 --enable-arts) _arts=yes ;;
913 --disable-arts) _arts=no ;;
914 --enable-esd) _esd=yes ;;
915 --disable-esd) _esd=no ;;
916 --enable-rsound) _rsound=yes ;;
917 --disable-rsound) _rsound=no ;;
918 --enable-pulse) _pulse=yes ;;
919 --disable-pulse) _pulse=no ;;
920 --enable-jack) _jack=yes ;;
921 --disable-jack) _jack=no ;;
922 --enable-openal) _openal=yes ;;
923 --disable-openal) _openal=no ;;
924 --enable-kai) _kai=yes ;;
925 --disable-kai) _kai=no ;;
926 --enable-dart) _dart=yes ;;
927 --disable-dart) _dart=no ;;
928 --enable-mad) _mad=yes ;;
929 --disable-mad) _mad=no ;;
930 --enable-libcdio) _libcdio=yes ;;
931 --disable-libcdio) _libcdio=no ;;
932 --enable-libvorbis) _libvorbis=yes ;;
933 --disable-libvorbis) _libvorbis=no ;;
934 --enable-speex) _speex=yes ;;
935 --disable-speex) _speex=no ;;
936 --enable-tremor) _tremor=yes ;;
937 --disable-tremor) _tremor=no ;;
938 --enable-theora) _theora=yes ;;
939 --disable-theora) _theora=no ;;
940 --enable-mpg123) _mpg123=yes ;;
941 --disable-mpg123) _mpg123=no ;;
942 --enable-liba52) _liba52=yes ;;
943 --disable-liba52) _liba52=no ;;
944 --enable-libdca) _libdca=yes ;;
945 --disable-libdca) _libdca=no ;;
946 --enable-musepack) _musepack=yes ;;
947 --disable-musepack) _musepack=no ;;
948 --enable-faad) _faad=yes ;;
949 --disable-faad) _faad=no ;;
950 --enable-ladspa) _ladspa=yes ;;
951 --disable-ladspa) _ladspa=no ;;
952 --enable-libbs2b) _libbs2b=yes ;;
953 --disable-libbs2b) _libbs2b=no ;;
954 --enable-xmms) _xmms=yes ;;
955 --disable-xmms) _xmms=no ;;
956 --enable-vcd) _vcd=yes ;;
957 --disable-vcd) _vcd=no ;;
958 --enable-bluray) _bluray=yes ;;
959 --disable-bluray) _bluray=no ;;
960 --enable-dvdread) _dvdread=yes ;;
961 --disable-dvdread) _dvdread=no ;;
962 --enable-dvdread-internal) _dvdread_internal=yes ;;
963 --disable-dvdread-internal) _dvdread_internal=no ;;
964 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
965 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
966 --enable-dvdnav) _dvdnav=yes ;;
967 --disable-dvdnav) _dvdnav=no ;;
968 --enable-xanim) _xanim=yes ;;
969 --disable-xanim) _xanim=no ;;
970 --enable-real) _real=yes ;;
971 --disable-real) _real=no ;;
972 --enable-live) _live=yes ;;
973 --disable-live) _live=no ;;
974 --enable-nemesi) _nemesi=yes ;;
975 --disable-nemesi) _nemesi=no ;;
976 --enable-xinerama) _xinerama=yes ;;
977 --disable-xinerama) _xinerama=no ;;
978 --enable-mga) _mga=yes ;;
979 --disable-mga) _mga=no ;;
980 --enable-xmga) _xmga=yes ;;
981 --disable-xmga) _xmga=no ;;
982 --enable-vm) _vm=yes ;;
983 --disable-vm) _vm=no ;;
984 --enable-xf86keysym) _xf86keysym=yes ;;
985 --disable-xf86keysym) _xf86keysym=no ;;
986 --enable-sunaudio) _sunaudio=yes ;;
987 --disable-sunaudio) _sunaudio=no ;;
988 --enable-sgiaudio) _sgiaudio=yes ;;
989 --disable-sgiaudio) _sgiaudio=no ;;
990 --enable-alsa) _alsa=yes ;;
991 --disable-alsa) _alsa=no ;;
992 --enable-tv) _tv=yes ;;
993 --disable-tv) _tv=no ;;
994 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
995 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
996 --enable-tv-v4l1) _tv_v4l1=yes ;;
997 --disable-tv-v4l1) _tv_v4l1=no ;;
998 --enable-tv-v4l2) _tv_v4l2=yes ;;
999 --disable-tv-v4l2) _tv_v4l2=no ;;
1000 --enable-tv-dshow) _tv_dshow=yes ;;
1001 --disable-tv-dshow) _tv_dshow=no ;;
1002 --enable-radio) _radio=yes ;;
1003 --enable-radio-capture) _radio_capture=yes ;;
1004 --disable-radio-capture) _radio_capture=no ;;
1005 --disable-radio) _radio=no ;;
1006 --enable-radio-v4l) _radio_v4l=yes ;;
1007 --disable-radio-v4l) _radio_v4l=no ;;
1008 --enable-radio-v4l2) _radio_v4l2=yes ;;
1009 --disable-radio-v4l2) _radio_v4l2=no ;;
1010 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1011 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1012 --enable-pvr) _pvr=yes ;;
1013 --disable-pvr) _pvr=no ;;
1014 --enable-fastmemcpy) _fastmemcpy=yes ;;
1015 --disable-fastmemcpy) _fastmemcpy=no ;;
1016 --enable-networking) networking=yes ;;
1017 --disable-networking) networking=no ;;
1018 --enable-winsock2_h) _winsock2_h=yes ;;
1019 --disable-winsock2_h) _winsock2_h=no ;;
1020 --enable-smb) _smb=yes ;;
1021 --disable-smb) _smb=no ;;
1022 --enable-joystick) _joystick=yes ;;
1023 --disable-joystick) _joystick=no ;;
1024 --enable-xvid) _xvid=yes ;;
1025 --disable-xvid) _xvid=no ;;
1026 --enable-libnut) _libnut=yes ;;
1027 --disable-libnut) _libnut=no ;;
1028 --enable-libav) ffmpeg=yes ;;
1029 --disable-libav) ffmpeg=no ;;
1030 --ffmpeg-source-dir=*)
1031 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1033 --enable-lirc) _lirc=yes ;;
1034 --disable-lirc) _lirc=no ;;
1035 --enable-lircc) _lircc=yes ;;
1036 --disable-lircc) _lircc=no ;;
1037 --enable-apple-remote) _apple_remote=yes ;;
1038 --disable-apple-remote) _apple_remote=no ;;
1039 --enable-apple-ir) _apple_ir=yes ;;
1040 --disable-apple-ir) _apple_ir=no ;;
1041 --enable-termcap) _termcap=yes ;;
1042 --disable-termcap) _termcap=no ;;
1043 --enable-termios) _termios=yes ;;
1044 --disable-termios) _termios=no ;;
1045 --enable-3dfx) _3dfx=yes ;;
1046 --disable-3dfx) _3dfx=no ;;
1047 --enable-s3fb) _s3fb=yes ;;
1048 --disable-s3fb) _s3fb=no ;;
1049 --enable-wii) _wii=yes ;;
1050 --disable-wii) _wii=no ;;
1051 --enable-tdfxfb) _tdfxfb=yes ;;
1052 --disable-tdfxfb) _tdfxfb=no ;;
1053 --disable-tdfxvid) _tdfxvid=no ;;
1054 --enable-tdfxvid) _tdfxvid=yes ;;
1055 --disable-xvr100) _xvr100=no ;;
1056 --enable-xvr100) _xvr100=yes ;;
1057 --disable-tga) _tga=no ;;
1058 --enable-tga) _tga=yes ;;
1059 --enable-directfb) _directfb=yes ;;
1060 --disable-directfb) _directfb=no ;;
1061 --enable-bl) _bl=yes ;;
1062 --disable-bl) _bl=no ;;
1063 --enable-mtrr) _mtrr=yes ;;
1064 --disable-mtrr) _mtrr=no ;;
1065 --enable-shm) _shm=yes ;;
1066 --disable-shm) _shm=no ;;
1067 --enable-select) _select=yes ;;
1068 --disable-select) _select=no ;;
1069 --enable-cdparanoia) _cdparanoia=yes ;;
1070 --disable-cdparanoia) _cdparanoia=no ;;
1071 --enable-cddb) _cddb=yes ;;
1072 --disable-cddb) _cddb=no ;;
1073 --enable-big-endian) _big_endian=yes ;;
1074 --disable-big-endian) _big_endian=no ;;
1075 --enable-bitmap-font) _bitmap_font=yes ;;
1076 --disable-bitmap-font) _bitmap_font=no ;;
1077 --enable-freetype) _freetype=yes ;;
1078 --disable-freetype) _freetype=no ;;
1079 --enable-fontconfig) _fontconfig=yes ;;
1080 --disable-fontconfig) _fontconfig=no ;;
1081 --enable-unrarexec) _unrar_exec=yes ;;
1082 --disable-unrarexec) _unrar_exec=no ;;
1083 --enable-ftp) _ftp=yes ;;
1084 --disable-ftp) _ftp=no ;;
1085 --enable-vstream) _vstream=yes ;;
1086 --disable-vstream) _vstream=no ;;
1087 --enable-pthreads) _pthreads=yes ;;
1088 --disable-pthreads) _pthreads=no ;;
1089 --enable-w32threads) _w32threads=yes ;;
1090 --disable-w32threads) _w32threads=no ;;
1091 --enable-libass) _ass=yes ;;
1092 --disable-libass) _ass=no ;;
1093 --enable-rpath) _rpath=yes ;;
1094 --disable-rpath) _rpath=no ;;
1096 --enable-fribidi) _fribidi=yes ;;
1097 --disable-fribidi) _fribidi=no ;;
1099 --enable-enca) _enca=yes ;;
1100 --disable-enca) _enca=no ;;
1102 --enable-inet6) _inet6=yes ;;
1103 --disable-inet6) _inet6=no ;;
1105 --enable-gethostbyname2) _gethostbyname2=yes ;;
1106 --disable-gethostbyname2) _gethostbyname2=no ;;
1108 --enable-dga1) _dga1=yes ;;
1109 --disable-dga1) _dga1=no ;;
1110 --enable-dga2) _dga2=yes ;;
1111 --disable-dga2) _dga2=no ;;
1113 --enable-menu) _menu=yes ;;
1114 --disable-menu) _menu=no ;;
1116 --enable-qtx) _qtx=yes ;;
1117 --disable-qtx) _qtx=no ;;
1119 --enable-coreaudio) _coreaudio=yes ;;
1120 --disable-coreaudio) _coreaudio=no ;;
1121 --enable-corevideo) _corevideo=yes ;;
1122 --disable-corevideo) _corevideo=no ;;
1123 --enable-quartz) _quartz=yes ;;
1124 --disable-quartz) _quartz=no ;;
1125 --enable-macosx-finder) _macosx_finder=yes ;;
1126 --disable-macosx-finder) _macosx_finder=no ;;
1127 --enable-macosx-bundle) _macosx_bundle=yes ;;
1128 --disable-macosx-bundle) _macosx_bundle=no ;;
1130 --enable-sortsub) _sortsub=yes ;;
1131 --disable-sortsub) _sortsub=no ;;
1133 --enable-crash-debug) _crash_debug=yes ;;
1134 --disable-crash-debug) _crash_debug=no ;;
1135 --enable-sighandler) _sighandler=yes ;;
1136 --disable-sighandler) _sighandler=no ;;
1137 --enable-win32dll) _win32dll=yes ;;
1138 --disable-win32dll) _win32dll=no ;;
1140 --enable-sse) _sse=yes ;;
1141 --disable-sse) _sse=no ;;
1142 --enable-sse2) _sse2=yes ;;
1143 --disable-sse2) _sse2=no ;;
1144 --enable-ssse3) _ssse3=yes ;;
1145 --disable-ssse3) _ssse3=no ;;
1146 --enable-mmxext) _mmxext=yes ;;
1147 --disable-mmxext) _mmxext=no ;;
1148 --enable-3dnow) _3dnow=yes ;;
1149 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1150 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1151 --disable-3dnowext) _3dnowext=no ;;
1152 --enable-cmov) _cmov=yes ;;
1153 --disable-cmov) _cmov=no ;;
1154 --enable-fast-cmov) _fast_cmov=yes ;;
1155 --disable-fast-cmov) _fast_cmov=no ;;
1156 --enable-fast-clz) _fast_clz=yes ;;
1157 --disable-fast-clz) _fast_clz=no ;;
1158 --enable-altivec) _altivec=yes ;;
1159 --disable-altivec) _altivec=no ;;
1160 --enable-armv5te) _armv5te=yes ;;
1161 --disable-armv5te) _armv5te=no ;;
1162 --enable-armv6) _armv6=yes ;;
1163 --disable-armv6) _armv6=no ;;
1164 --enable-armv6t2) _armv6t2=yes ;;
1165 --disable-armv6t2) _armv6t2=no ;;
1166 --enable-armvfp) _armvfp=yes ;;
1167 --disable-armvfp) _armvfp=no ;;
1168 --enable-neon) neon=yes ;;
1169 --disable-neon) neon=no ;;
1170 --enable-iwmmxt) _iwmmxt=yes ;;
1171 --disable-iwmmxt) _iwmmxt=no ;;
1172 --enable-mmx) _mmx=yes ;;
1173 --disable-mmx) # 3Dnow! and MMX2 require MMX
1174 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1177 echo "Unknown parameter: $ac_option" >&2
1178 exit 1
1181 esac
1182 done
1184 # Atmos: moved this here, to be correct, if --prefix is specified
1185 test -z "$_bindir" && _bindir="$_prefix/bin"
1186 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1187 test -z "$_mandir" && _mandir="$_prefix/share/man"
1188 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1189 test -z "$_libdir" && _libdir="$_prefix/lib"
1190 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1192 # Determine our OS name and CPU architecture
1193 if test -z "$_target" ; then
1194 # OS name
1195 system_name=$(uname -s 2>&1)
1196 case "$system_name" in
1197 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1199 Haiku)
1200 system_name=BeOS
1202 IRIX*)
1203 system_name=IRIX
1205 GNU/kFreeBSD)
1206 system_name=FreeBSD
1208 HP-UX*)
1209 system_name=HP-UX
1211 [cC][yY][gG][wW][iI][nN]*)
1212 system_name=CYGWIN
1214 MINGW32*)
1215 system_name=MINGW32
1217 OS/2*)
1218 system_name=OS/2
1221 system_name="$system_name-UNKNOWN"
1223 esac
1226 # host's CPU/instruction set
1227 host_arch=$(uname -p 2>&1)
1228 case "$host_arch" in
1229 i386|sparc|ppc|alpha|arm|mips|vax)
1231 powerpc) # Darwin returns 'powerpc'
1232 host_arch=ppc
1234 *) # uname -p on Linux returns 'unknown' for the processor type,
1235 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1237 # Maybe uname -m (machine hardware name) returns something we
1238 # recognize.
1240 # x86/x86pc is used by QNX
1241 case "$(uname -m 2>&1)" in
1242 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1243 ia64) host_arch=ia64 ;;
1244 macppc|ppc) host_arch=ppc ;;
1245 ppc64) host_arch=ppc64 ;;
1246 alpha) host_arch=alpha ;;
1247 sparc) host_arch=sparc ;;
1248 sparc64) host_arch=sparc64 ;;
1249 parisc*|hppa*|9000*) host_arch=hppa ;;
1250 arm*|zaurus|cats) host_arch=arm ;;
1251 sh3|sh4|sh4a) host_arch=sh ;;
1252 s390) host_arch=s390 ;;
1253 s390x) host_arch=s390x ;;
1254 *mips*) host_arch=mips ;;
1255 vax) host_arch=vax ;;
1256 xtensa*) host_arch=xtensa ;;
1257 *) host_arch=UNKNOWN ;;
1258 esac
1260 esac
1261 else # if test -z "$_target"
1262 system_name=$(echo $_target | cut -d '-' -f 2)
1263 case "$(echo $system_name | tr A-Z a-z)" in
1264 linux) system_name=Linux ;;
1265 freebsd) system_name=FreeBSD ;;
1266 gnu/kfreebsd) system_name=FreeBSD ;;
1267 netbsd) system_name=NetBSD ;;
1268 bsd/os) system_name=BSD/OS ;;
1269 openbsd) system_name=OpenBSD ;;
1270 dragonfly) system_name=DragonFly ;;
1271 sunos) system_name=SunOS ;;
1272 qnx) system_name=QNX ;;
1273 morphos) system_name=MorphOS ;;
1274 amigaos) system_name=AmigaOS ;;
1275 mingw32*) system_name=MINGW32 ;;
1276 esac
1277 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1278 host_arch=$(echo $_target | cut -d '-' -f 1)
1279 if test $(echo $host_arch) != "x86_64" ; then
1280 host_arch=$(echo $host_arch | tr '_' '-')
1284 extra_cflags="-I. $extra_cflags"
1285 _timer=timer-linux.c
1286 _getch=getch2.c
1287 if freebsd ; then
1288 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1289 extra_cflags="$extra_cflags -I/usr/local/include"
1292 if netbsd || dragonfly ; then
1293 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1294 extra_cflags="$extra_cflags -I/usr/pkg/include"
1297 if darwin; then
1298 extra_cflags="-mdynamic-no-pic $extra_cflags"
1299 if test "$(basename $_cc)" != "clang" ; then
1300 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1302 _timer=timer-darwin.c
1305 if aix ; then
1306 extra_ldflags="$extra_ldflags -lC"
1309 if irix ; then
1310 _ranlib='ar -r'
1311 elif linux ; then
1312 _ranlib='true'
1315 if win32 ; then
1316 _exesuf=".exe"
1317 extra_cflags="$extra_cflags -fno-common"
1318 # -lwinmm is always needed for osdep/timer-win2.c
1319 extra_ldflags="$extra_ldflags -lwinmm"
1320 _pe_executable=yes
1321 _timer=timer-win2.c
1322 _priority=yes
1323 def_dos_paths="#define HAVE_DOS_PATHS 1"
1324 def_priority="#define CONFIG_PRIORITY 1"
1327 if mingw32 ; then
1328 _getch=getch2-win.c
1329 need_shmem=no
1332 if amigaos ; then
1333 _select=no
1334 _sighandler=no
1335 _stream_cache=no
1336 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1337 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1340 if qnx ; then
1341 extra_ldflags="$extra_ldflags -lph"
1344 if os2 ; then
1345 _exesuf=".exe"
1346 _getch=getch2-os2.c
1347 need_shmem=no
1348 _priority=yes
1349 def_dos_paths="#define HAVE_DOS_PATHS 1"
1350 def_priority="#define CONFIG_PRIORITY 1"
1353 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1354 test "$tmpdir" && break
1355 done
1357 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1358 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1360 TMPLOG="config.log"
1361 TMPC="$mplayer_tmpdir/tmp.c"
1362 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1363 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1364 TMPH="$mplayer_tmpdir/tmp.h"
1365 TMPS="$mplayer_tmpdir/tmp.S"
1367 rm -f "$TMPLOG"
1368 echo configuration: $configuration > "$TMPLOG"
1369 echo >> "$TMPLOG"
1372 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1373 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1377 # Checking CC version...
1378 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1379 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1380 echocheck "$_cc version"
1381 cc_vendor=intel
1382 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1383 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1384 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1385 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1386 # TODO verify older icc/ecc compatibility
1387 case $cc_version in
1389 cc_version="v. ?.??, bad"
1390 cc_fail=yes
1392 10.1|11.0|11.1)
1393 cc_version="$cc_version, ok"
1396 cc_version="$cc_version, bad"
1397 cc_fail=yes
1399 esac
1400 echores "$cc_version"
1401 else
1402 for _cc in "$_cc" gcc cc ; do
1403 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1404 if test "$cc_name_tmp" = "gcc"; then
1405 cc_name=$cc_name_tmp
1406 echocheck "$_cc version"
1407 cc_vendor=gnu
1408 cc_version=$($_cc -dumpversion 2>&1)
1409 case $cc_version in
1410 2.96*)
1411 cc_fail=yes
1414 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1415 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1416 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1418 esac
1419 echores "$cc_version"
1420 break
1422 if $_cc -v 2>&1 | grep -q "clang"; then
1423 echocheck "$_cc version"
1424 cc_vendor=clang
1425 cc_version=$($_cc -dumpversion 2>&1)
1426 res_comment="experimental support only"
1427 echores "clang $cc_version"
1428 break
1430 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1431 if test "$cc_name_tmp" = "Sun C"; then
1432 echocheck "$_cc version"
1433 cc_vendor=sun
1434 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1435 res_comment="experimental support only"
1436 echores "Sun C $cc_version"
1437 break
1439 done
1440 fi # icc
1441 test "$cc_fail" = yes && die "unsupported compiler version"
1443 echocheck "working compiler"
1444 cflag_check "" || die "Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1445 echo "yes"
1447 if test -z "$_target" && x86 ; then
1448 cat > $TMPC << EOF
1449 int main(void) {
1450 int test[(int)sizeof(char *)-7];
1451 return 0;
1454 cc_check && host_arch=x86_64 || host_arch=i386
1457 echo "Detected operating system: $system_name"
1458 echo "Detected host architecture: $host_arch"
1460 echocheck "cross compilation"
1461 if test $_cross_compile = auto ; then
1462 _cross_compile=yes
1463 cflag_check "" && "$TMPEXE" && _cross_compile=no
1465 echores $_cross_compile
1467 if test $_cross_compile = yes; then
1468 tmp_run() {
1469 return 0
1471 test "$_host_cc" || _host_cc=cc
1474 echocheck "host cc"
1475 test "$_host_cc" || _host_cc=$_cc
1476 echores $_host_cc
1478 # ---
1480 # now that we know what compiler should be used for compilation, try to find
1481 # out which assembler is used by the $_cc compiler
1482 if test "$_as" = auto ; then
1483 _as=$($_cc -print-prog-name=as)
1484 test -z "$_as" && _as=as
1487 if test "$_nm" = auto ; then
1488 _nm=$($_cc -print-prog-name=nm)
1489 test -z "$_nm" && _nm=nm
1492 # XXX: this should be ok..
1493 _cpuinfo="echo"
1495 if test "$_runtime_cpudetection" = no ; then
1497 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1498 # FIXME: Remove the cygwin check once AMD CPUs are supported
1499 if test -r /proc/cpuinfo && ! cygwin; then
1500 # Linux with /proc mounted, extract CPU information from it
1501 _cpuinfo="cat /proc/cpuinfo"
1502 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1503 # FreeBSD with Linux emulation /proc mounted,
1504 # extract CPU information from it
1505 # Don't use it on x86 though, it never reports 3Dnow
1506 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1507 elif darwin && ! x86 ; then
1508 # use hostinfo on Darwin
1509 _cpuinfo="hostinfo"
1510 elif aix; then
1511 # use 'lsattr' on AIX
1512 _cpuinfo="lsattr -E -l proc0 -a type"
1513 elif x86; then
1514 # all other OSes try to extract CPU information from a small helper
1515 # program cpuinfo instead
1516 $_cc -o cpuinfo$_exesuf cpuinfo.c
1517 _cpuinfo="./cpuinfo$_exesuf"
1520 if x86 ; then
1521 # gather more CPU information
1522 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1523 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1524 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1525 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1526 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1528 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1530 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1531 -e s/xmm/sse/ -e s/kni/sse/)
1532 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1533 pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/')
1535 for ext in $pparam ; do
1536 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1537 done
1539 echocheck "CPU vendor"
1540 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1542 echocheck "CPU type"
1543 echores "$pname"
1546 fi # test "$_runtime_cpudetection" = no
1548 if x86 && test "$_runtime_cpudetection" = no ; then
1549 extcheck() {
1550 if test "$1" = kernel_check ; then
1551 echocheck "kernel support of $2"
1552 cat > $TMPC <<EOF
1553 #include <stdlib.h>
1554 #include <signal.h>
1555 static void catch(int sig) { exit(1); }
1556 int main(void) {
1557 signal(SIGILL, catch);
1558 __asm__ volatile ("$3":::"memory"); return 0;
1562 if cc_check && tmp_run ; then
1563 eval _$2=yes
1564 echores "yes"
1565 _optimizing="$_optimizing $2"
1566 return 0
1567 else
1568 eval _$2=no
1569 echores "failed"
1570 echo "It seems that your kernel does not correctly support $2."
1571 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1572 return 1
1575 return 0
1578 extcheck $_mmx "mmx" "emms"
1579 extcheck $_mmxext "mmxext" "sfence"
1580 extcheck $_3dnow "3dnow" "femms"
1581 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1582 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1583 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1584 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1585 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1587 echocheck "mtrr support"
1588 if test "$_mtrr" = kernel_check ; then
1589 _mtrr="yes"
1590 _optimizing="$_optimizing mtrr"
1592 echores "$_mtrr"
1594 if test "$_gcc3_ext" != ""; then
1595 # if we had to disable sse/sse2 because the active kernel does not
1596 # support this instruction set extension, we also have to tell
1597 # gcc3 to not generate sse/sse2 instructions for normal C code
1598 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1604 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1605 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1606 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1607 subarch_all='X86_32 X86_64 PPC64'
1608 case "$host_arch" in
1609 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1610 arch='x86'
1611 subarch='x86_32'
1612 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1613 iproc=486
1614 proc=i486
1617 if test "$_runtime_cpudetection" = no ; then
1618 case "$pvendor" in
1619 AuthenticAMD)
1620 case "$pfamily" in
1621 3) proc=i386 iproc=386 ;;
1622 4) proc=i486 iproc=486 ;;
1623 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1624 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1625 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1626 proc=k6-3
1627 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1628 proc=geode
1629 elif test "$pmodel" -ge 8; then
1630 proc=k6-2
1631 elif test "$pmodel" -ge 6; then
1632 proc=k6
1633 else
1634 proc=i586
1637 6) iproc=686
1638 # It's a bit difficult to determine the correct type of Family 6
1639 # AMD CPUs just from their signature. Instead, we check directly
1640 # whether it supports SSE.
1641 if test "$_sse" = yes; then
1642 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1643 proc=athlon-xp
1644 else
1645 # Again, gcc treats athlon and athlon-tbird similarly.
1646 proc=athlon
1649 15) iproc=686
1650 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1651 # caught and remedied in the optimization tests below.
1652 proc=k8
1655 *) proc=amdfam10 iproc=686
1656 test $_fast_clz = "auto" && _fast_clz=yes
1658 esac
1660 GenuineIntel)
1661 case "$pfamily" in
1662 3) proc=i386 iproc=386 ;;
1663 4) proc=i486 iproc=486 ;;
1664 5) iproc=586
1665 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1666 proc=pentium-mmx # 4 is desktop, 8 is mobile
1667 else
1668 proc=i586
1671 6) iproc=686
1672 if test "$pmodel" -ge 15; then
1673 proc=core2
1674 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1675 proc=pentium-m
1676 elif test "$pmodel" -ge 7; then
1677 proc=pentium3
1678 elif test "$pmodel" -ge 3; then
1679 proc=pentium2
1680 else
1681 proc=i686
1683 test $_fast_clz = "auto" && _fast_clz=yes
1685 15) iproc=686
1686 # A nocona in 32-bit mode has no more capabilities than a prescott.
1687 if test "$pmodel" -ge 3; then
1688 proc=prescott
1689 else
1690 proc=pentium4
1691 test $_fast_clz = "auto" && _fast_clz=yes
1693 test $_fast_cmov = "auto" && _fast_cmov=no
1695 *) proc=prescott iproc=686 ;;
1696 esac
1698 CentaurHauls)
1699 case "$pfamily" in
1700 5) iproc=586
1701 if test "$pmodel" -ge 8; then
1702 proc=winchip2
1703 elif test "$pmodel" -ge 4; then
1704 proc=winchip-c6
1705 else
1706 proc=i586
1709 6) iproc=686
1710 if test "$pmodel" -ge 9; then
1711 proc=c3-2
1712 else
1713 proc=c3
1714 iproc=586
1717 *) proc=i686 iproc=i686 ;;
1718 esac
1720 unknown)
1721 case "$pfamily" in
1722 3) proc=i386 iproc=386 ;;
1723 4) proc=i486 iproc=486 ;;
1724 *) proc=i586 iproc=586 ;;
1725 esac
1728 proc=i586 iproc=586 ;;
1729 esac
1730 test $_fast_clz = "auto" && _fast_clz=no
1731 fi # test "$_runtime_cpudetection" = no
1734 # check that gcc supports our CPU, if not, fall back to earlier ones
1735 # LGB: check -mcpu and -march swithing step by step with enabling
1736 # to fall back till 386.
1738 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1740 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1741 cpuopt=-mtune
1742 else
1743 cpuopt=-mcpu
1746 echocheck "GCC & CPU optimization abilities"
1747 if test "$_runtime_cpudetection" = no ; then
1748 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1749 cflag_check -march=native && proc=native
1751 if test "$proc" = "amdfam10"; then
1752 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1754 if test "$proc" = "k8"; then
1755 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1757 if test "$proc" = "athlon-xp"; then
1758 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1760 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1761 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1763 if test "$proc" = "k6" || test "$proc" = "c3"; then
1764 if ! cflag_check -march=$proc $cpuopt=$proc; then
1765 if cflag_check -march=i586 $cpuopt=i686; then
1766 proc=i586-i686
1767 else
1768 proc=i586
1772 if test "$proc" = "prescott" ; then
1773 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1775 if test "$proc" = "core2" ; then
1776 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1778 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then
1779 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1781 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1782 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1784 if test "$proc" = "i586"; then
1785 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1787 if test "$proc" = "i486" ; then
1788 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1790 if test "$proc" = "i386" ; then
1791 cflag_check -march=$proc $cpuopt=$proc || proc=error
1793 if test "$proc" = "error" ; then
1794 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1795 _mcpu=""
1796 _march=""
1797 _optimizing=""
1798 elif test "$proc" = "i586-i686"; then
1799 _march="-march=i586"
1800 _mcpu="$cpuopt=i686"
1801 _optimizing="$proc"
1802 else
1803 _march="-march=$proc"
1804 _mcpu="$cpuopt=$proc"
1805 _optimizing="$proc"
1807 else # if test "$_runtime_cpudetection" = no
1808 _mcpu="$cpuopt=generic"
1809 # at least i486 required, for bswap instruction
1810 _march="-march=i486"
1811 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1812 cflag_check $_mcpu || _mcpu=""
1813 cflag_check $_march $_mcpu || _march=""
1816 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1817 ## autodetected mcpu/march parameters
1818 if test "$_target" ; then
1819 # TODO: it may be a good idea to check GCC and fall back in all cases
1820 if test "$host_arch" = "i586-i686"; then
1821 _march="-march=i586"
1822 _mcpu="$cpuopt=i686"
1823 else
1824 _march="-march=$host_arch"
1825 _mcpu="$cpuopt=$host_arch"
1828 proc="$host_arch"
1830 case "$proc" in
1831 i386) iproc=386 ;;
1832 i486) iproc=486 ;;
1833 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1834 i686|athlon*|pentium*) iproc=686 ;;
1835 *) iproc=586 ;;
1836 esac
1839 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1840 _fast_cmov="yes"
1841 else
1842 _fast_cmov="no"
1844 test $_fast_clz = "auto" && _fast_clz=yes
1846 echores "$proc"
1849 ia64)
1850 arch='ia64'
1851 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1852 iproc='ia64'
1855 x86_64|amd64)
1856 arch='x86'
1857 subarch='x86_64'
1858 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1859 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1860 iproc='x86_64'
1862 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1863 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1864 cpuopt=-mtune
1865 else
1866 cpuopt=-mcpu
1868 if test "$_runtime_cpudetection" = no ; then
1869 case "$pvendor" in
1870 AuthenticAMD)
1871 case "$pfamily" in
1872 15) proc=k8
1873 test $_fast_clz = "auto" && _fast_clz=no
1875 *) proc=amdfam10;;
1876 esac
1878 GenuineIntel)
1879 case "$pfamily" in
1880 6) proc=core2;;
1882 # 64-bit prescotts exist, but as far as GCC is concerned they
1883 # have the same capabilities as a nocona.
1884 proc=nocona
1885 test $_fast_cmov = "auto" && _fast_cmov=no
1886 test $_fast_clz = "auto" && _fast_clz=no
1888 esac
1891 proc=error;;
1892 esac
1893 fi # test "$_runtime_cpudetection" = no
1895 echocheck "GCC & CPU optimization abilities"
1896 # This is a stripped-down version of the i386 fallback.
1897 if test "$_runtime_cpudetection" = no ; then
1898 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1899 cflag_check -march=native && proc=native
1901 # --- AMD processors ---
1902 if test "$proc" = "amdfam10"; then
1903 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1905 if test "$proc" = "k8"; then
1906 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1908 # This will fail if gcc version < 3.3, which is ok because earlier
1909 # versions don't really support 64-bit on amd64.
1910 # Is this a valid assumption? -Corey
1911 if test "$proc" = "athlon-xp"; then
1912 cflag_check -march=$proc $cpuopt=$proc || proc=error
1914 # --- Intel processors ---
1915 if test "$proc" = "core2"; then
1916 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1918 if test "$proc" = "x86-64"; then
1919 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1921 if test "$proc" = "nocona"; then
1922 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1924 if test "$proc" = "pentium4"; then
1925 cflag_check -march=$proc $cpuopt=$proc || proc=error
1928 _march="-march=$proc"
1929 _mcpu="$cpuopt=$proc"
1930 if test "$proc" = "error" ; then
1931 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1932 _mcpu=""
1933 _march=""
1935 else # if test "$_runtime_cpudetection" = no
1936 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1937 _march="-march=x86-64"
1938 _mcpu="$cpuopt=generic"
1939 cflag_check $_mcpu || _mcpu="x86-64"
1940 cflag_check $_mcpu || _mcpu=""
1941 cflag_check $_march $_mcpu || _march=""
1944 _optimizing="$proc"
1945 test $_fast_cmov = "auto" && _fast_cmov=yes
1946 test $_fast_clz = "auto" && _fast_clz=yes
1948 echores "$proc"
1951 sparc|sparc64)
1952 arch='sparc'
1953 iproc='sparc'
1954 if test "$host_arch" = "sparc64" ; then
1955 _vis='yes'
1956 proc='ultrasparc'
1957 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1958 elif sunos ; then
1959 echocheck "CPU type"
1960 karch=$(uname -m)
1961 case "$(echo $karch)" in
1962 sun4) proc=v7 ;;
1963 sun4c) proc=v7 ;;
1964 sun4d) proc=v8 ;;
1965 sun4m) proc=v8 ;;
1966 sun4u) proc=ultrasparc _vis='yes' ;;
1967 sun4v) proc=v9 ;;
1968 *) proc=v8 ;;
1969 esac
1970 echores "$proc"
1971 else
1972 proc=v8
1974 _mcpu="-mcpu=$proc"
1975 _optimizing="$proc"
1978 arm*)
1979 arch='arm'
1980 iproc='arm'
1983 avr32)
1984 arch='avr32'
1985 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1986 iproc='avr32'
1987 test $_fast_clz = "auto" && _fast_clz=yes
1990 sh|sh4)
1991 arch='sh4'
1992 iproc='sh4'
1995 ppc|ppc64|powerpc|powerpc64)
1996 arch='ppc'
1997 def_dcbzl='#define HAVE_DCBZL 0'
1998 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1999 iproc='ppc'
2001 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2002 subarch='ppc64'
2003 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2005 echocheck "CPU type"
2006 case $system_name in
2007 Linux)
2008 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2009 if test -n "$($_cpuinfo | grep altivec)"; then
2010 test $_altivec = auto && _altivec=yes
2013 Darwin)
2014 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2015 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2016 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2017 test $_altivec = auto && _altivec=yes
2020 NetBSD)
2021 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2022 case $cc_version in
2023 2*|3.0*|3.1*|3.2*|3.3*)
2026 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2027 test $_altivec = auto && _altivec=yes
2030 esac
2032 AIX)
2033 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2035 esac
2036 if test "$_altivec" = yes; then
2037 echores "$proc altivec"
2038 else
2039 _altivec=no
2040 echores "$proc"
2043 echocheck "GCC & CPU optimization abilities"
2045 if test -n "$proc"; then
2046 case "$proc" in
2047 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2048 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2049 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2050 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2051 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2052 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2053 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2054 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2055 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2056 *) ;;
2057 esac
2058 # gcc 3.1(.1) and up supports 7400 and 7450
2059 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2060 case "$proc" in
2061 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2062 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2063 *) ;;
2064 esac
2066 # gcc 3.2 and up supports 970
2067 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2068 case "$proc" in
2069 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2070 def_dcbzl='#define HAVE_DCBZL 1' ;;
2071 *) ;;
2072 esac
2074 # gcc 3.3 and up supports POWER4
2075 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2076 case "$proc" in
2077 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2078 *) ;;
2079 esac
2081 # gcc 3.4 and up supports 440*
2082 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2083 case "$proc" in
2084 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2085 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2086 *) ;;
2087 esac
2089 # gcc 4.0 and up supports POWER5
2090 if test "$_cc_major" -ge "4"; then
2091 case "$proc" in
2092 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2093 *) ;;
2094 esac
2098 if test -n "$_mcpu"; then
2099 _optimizing=$(echo $_mcpu | cut -c 8-)
2100 echores "$_optimizing"
2101 else
2102 echores "none"
2105 test $_fast_clz = "auto" && _fast_clz=yes
2109 alpha*)
2110 arch='alpha'
2111 iproc='alpha'
2112 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2114 echocheck "CPU type"
2115 cat > $TMPC << EOF
2116 int main(void) {
2117 unsigned long ver, mask;
2118 __asm__ ("implver %0" : "=r" (ver));
2119 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2120 printf("%ld-%x\n", ver, ~mask);
2121 return 0;
2124 $_cc -o "$TMPEXE" "$TMPC"
2125 case $("$TMPEXE") in
2127 0-0) proc="ev4"; _mvi="0";;
2128 1-0) proc="ev5"; _mvi="0";;
2129 1-1) proc="ev56"; _mvi="0";;
2130 1-101) proc="pca56"; _mvi="1";;
2131 2-303) proc="ev6"; _mvi="1";;
2132 2-307) proc="ev67"; _mvi="1";;
2133 2-1307) proc="ev68"; _mvi="1";;
2134 esac
2135 echores "$proc"
2137 echocheck "GCC & CPU optimization abilities"
2138 if test "$proc" = "ev68" ; then
2139 cc_check -mcpu=$proc || proc=ev67
2141 if test "$proc" = "ev67" ; then
2142 cc_check -mcpu=$proc || proc=ev6
2144 _mcpu="-mcpu=$proc"
2145 echores "$proc"
2147 test $_fast_clz = "auto" && _fast_clz=yes
2149 _optimizing="$proc"
2152 mips*)
2153 arch='mips'
2154 iproc='mips'
2156 if irix ; then
2157 echocheck "CPU type"
2158 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2159 case "$(echo $proc)" in
2160 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2161 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2162 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2163 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2164 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2165 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2166 esac
2167 # gcc < 3.x does not support -mtune.
2168 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2169 _mcpu=''
2171 echores "$proc"
2174 test $_fast_clz = "auto" && _fast_clz=yes
2178 hppa)
2179 arch='pa_risc'
2180 iproc='PA-RISC'
2183 s390)
2184 arch='s390'
2185 iproc='390'
2188 s390x)
2189 arch='s390x'
2190 iproc='390x'
2193 vax)
2194 arch='vax'
2195 iproc='vax'
2198 xtensa)
2199 arch='xtensa'
2200 iproc='xtensa'
2203 generic)
2204 arch='generic'
2208 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2209 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2210 die "unsupported architecture $host_arch"
2212 esac # case "$host_arch" in
2214 if test "$_runtime_cpudetection" = yes ; then
2215 if x86 ; then
2216 test "$_cmov" != no && _cmov=yes
2217 x86_32 && _cmov=no
2218 test "$_mmx" != no && _mmx=yes
2219 test "$_3dnow" != no && _3dnow=yes
2220 test "$_3dnowext" != no && _3dnowext=yes
2221 test "$_mmxext" != no && _mmxext=yes
2222 test "$_sse" != no && _sse=yes
2223 test "$_sse2" != no && _sse2=yes
2224 test "$_ssse3" != no && _ssse3=yes
2225 test "$_mtrr" != no && _mtrr=yes
2227 if ppc; then
2228 _altivec=yes
2233 # endian testing
2234 echocheck "byte order"
2235 if test "$_big_endian" = auto ; then
2236 cat > $TMPC <<EOF
2237 short ascii_name[] = {
2238 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2239 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2240 int main(void) { return (long)ascii_name; }
2242 if cc_check ; then
2243 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2244 _big_endian=yes
2245 else
2246 _big_endian=no
2248 else
2249 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2252 if test "$_big_endian" = yes ; then
2253 _byte_order='big-endian'
2254 def_words_endian='#define WORDS_BIGENDIAN 1'
2255 def_bigendian='#define HAVE_BIGENDIAN 1'
2256 else
2257 _byte_order='little-endian'
2258 def_words_endian='#undef WORDS_BIGENDIAN'
2259 def_bigendian='#define HAVE_BIGENDIAN 0'
2261 echores "$_byte_order"
2264 echocheck "extern symbol prefix"
2265 cat > $TMPC << EOF
2266 int ff_extern;
2268 cc_check -c || die "Symbol mangling check failed."
2269 sym=$($_nm -P -g $TMPEXE)
2270 extern_prefix=${sym%%ff_extern*}
2271 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2272 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2273 echores $extern_prefix
2276 echocheck "assembler support of -pipe option"
2277 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2278 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2281 if darwin && test "$cc_vendor" = "gnu" ; then
2282 echocheck "GCC support of -mstackrealign"
2283 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2284 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2285 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2286 # wrong code with this flag, but this can be worked around by adding
2287 # -fno-unit-at-a-time as described in the blog post at
2288 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2289 cat > $TMPC << EOF
2290 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2291 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2293 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2294 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2295 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2296 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2297 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2300 # Checking for CFLAGS
2301 _install_strip="-s"
2302 if test "$_profile" != "" || test "$_debug" != "" ; then
2303 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2304 WARNFLAGS="-W -Wall"
2305 _install_strip=
2306 elif test -z "$CFLAGS" ; then
2307 if test "$cc_vendor" = "intel" ; then
2308 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2309 WARNFLAGS="-wd167 -wd556 -wd144"
2310 elif test "$cc_vendor" = "sun" ; then
2311 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2312 elif test "$cc_vendor" = "clang"; then
2313 CFLAGS="-O2 $_march $_pipe"
2314 WARNFLAGS="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2315 ERRORFLAGS="-Werror=implicit-function-declaration"
2316 elif test "$cc_vendor" != "gnu" ; then
2317 CFLAGS="-O2 $_march $_mcpu $_pipe"
2318 else
2319 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2320 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2321 ERRORFLAGS="-Werror-implicit-function-declaration"
2322 extra_ldflags="$extra_ldflags -ffast-math"
2324 else
2325 warn_cflags=yes
2328 if test "$cc_vendor" = "gnu" ; then
2329 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2330 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2331 # that's the only variable specific to C now, and this option is not valid
2332 # for C++.
2333 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2334 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2335 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2336 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2337 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2338 else
2339 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2342 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2343 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2346 if test -n "$LDFLAGS" ; then
2347 extra_ldflags="$extra_ldflags $LDFLAGS"
2348 warn_cflags=yes
2349 elif test "$cc_vendor" = "intel" ; then
2350 extra_ldflags="$extra_ldflags -i-static"
2352 if test -n "$CPPFLAGS" ; then
2353 extra_cflags="$extra_cflags $CPPFLAGS"
2354 warn_cflags=yes
2359 if x86_32 ; then
2360 # Checking assembler (_as) compatibility...
2361 # Added workaround for older as that reads from stdin by default - atmos
2362 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2363 echocheck "assembler ($_as $as_version)"
2365 _pref_as_version='2.9.1'
2366 echo 'nop' > $TMPS
2367 if test "$_mmx" = yes ; then
2368 echo 'emms' >> $TMPS
2370 if test "$_3dnow" = yes ; then
2371 _pref_as_version='2.10.1'
2372 echo 'femms' >> $TMPS
2374 if test "$_3dnowext" = yes ; then
2375 _pref_as_version='2.10.1'
2376 echo 'pswapd %mm0, %mm0' >> $TMPS
2378 if test "$_mmxext" = yes ; then
2379 _pref_as_version='2.10.1'
2380 echo 'movntq %mm0, (%eax)' >> $TMPS
2382 if test "$_sse" = yes ; then
2383 _pref_as_version='2.10.1'
2384 echo 'xorps %xmm0, %xmm0' >> $TMPS
2386 #if test "$_sse2" = yes ; then
2387 # _pref_as_version='2.11'
2388 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2390 if test "$_cmov" = yes ; then
2391 _pref_as_version='2.10.1'
2392 echo 'cmovb %eax, %ebx' >> $TMPS
2394 if test "$_ssse3" = yes ; then
2395 _pref_as_version='2.16.92'
2396 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2398 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2400 if test "$as_verc_fail" != yes ; then
2401 echores "ok"
2402 else
2403 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2404 echores "failed"
2405 die "obsolete binutils version"
2408 fi #if x86_32
2411 echocheck "PIC"
2412 pic=no
2413 cat > $TMPC << EOF
2414 int main(void) {
2415 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2416 #error PIC not enabled
2417 #endif
2418 return 0;
2421 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2422 echores $pic
2425 if x86 ; then
2427 echocheck ".align is a power of two"
2428 if test "$_asmalign_pot" = auto ; then
2429 _asmalign_pot=no
2430 inline_asm_check '".align 3"' && _asmalign_pot=yes
2432 if test "$_asmalign_pot" = "yes" ; then
2433 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2434 else
2435 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2437 echores $_asmalign_pot
2440 echocheck "ebx availability"
2441 ebx_available=no
2442 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2443 cat > $TMPC << EOF
2444 int main(void) {
2445 int x;
2446 __asm__ volatile(
2447 "xor %0, %0"
2448 :"=b"(x)
2449 // just adding ebx to clobber list seems unreliable with some
2450 // compilers, e.g. Haiku's gcc 2.95
2452 // and the above check does not work for OSX 64 bit...
2453 __asm__ volatile("":::"%ebx");
2454 return 0;
2457 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2458 echores $ebx_available
2461 echocheck "yasm"
2462 if test -z "$YASMFLAGS" ; then
2463 if darwin ; then
2464 x86_64 && objformat="macho64" || objformat="macho"
2465 elif win32 ; then
2466 objformat="win32"
2467 else
2468 objformat="elf"
2470 # currently tested for Linux x86, x86_64
2471 YASMFLAGS="-f $objformat"
2472 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2473 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2474 case "$objformat" in
2475 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2476 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2477 esac
2478 else
2479 warn_cflags=yes
2482 echo "pabsw xmm0, xmm0" > $TMPS
2483 yasm_check || _yasm=""
2484 if test $_yasm ; then
2485 def_yasm='#define HAVE_YASM 1'
2486 have_yasm="yes"
2487 echores "$_yasm"
2488 else
2489 def_yasm='#define HAVE_YASM 0'
2490 have_yasm="no"
2491 echores "no"
2494 echocheck "bswap"
2495 def_bswap='#define HAVE_BSWAP 0'
2496 echo 'bswap %eax' > $TMPS
2497 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2498 echores "$bswap"
2499 fi #if x86
2502 #FIXME: This should happen before the check for CFLAGS..
2503 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2504 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2506 # check if AltiVec is supported by the compiler, and how to enable it
2507 echocheck "GCC AltiVec flags"
2508 if $(cflag_check -maltivec -mabi=altivec) ; then
2509 _altivec_gcc_flags="-maltivec -mabi=altivec"
2510 # check if <altivec.h> should be included
2511 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2512 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2513 inc_altivec_h='#include <altivec.h>'
2514 else
2515 if $(cflag_check -faltivec) ; then
2516 _altivec_gcc_flags="-faltivec"
2517 else
2518 _altivec=no
2519 _altivec_gcc_flags="none, AltiVec disabled"
2523 echores "$_altivec_gcc_flags"
2525 # check if the compiler supports braces for vector declarations
2526 cat > $TMPC << EOF
2527 $inc_altivec_h
2528 int main(void) { (vector int) {1}; return 0; }
2530 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2532 # Disable runtime cpudetection if we cannot generate AltiVec code or
2533 # AltiVec is disabled by the user.
2534 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2535 && _runtime_cpudetection=no
2537 # Show that we are optimizing for AltiVec (if enabled and supported).
2538 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2539 && _optimizing="$_optimizing altivec"
2541 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2542 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2545 if ppc ; then
2546 def_xform_asm='#define HAVE_XFORM_ASM 0'
2547 xform_asm=no
2548 echocheck "XFORM ASM support"
2549 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2550 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2551 echores "$xform_asm"
2554 if arm ; then
2555 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2556 if test $_armv5te = "auto" ; then
2557 _armv5te=no
2558 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2560 echores "$_armv5te"
2562 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2564 echocheck "ARMv6 (SIMD instructions)"
2565 if test $_armv6 = "auto" ; then
2566 _armv6=no
2567 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2569 echores "$_armv6"
2571 echocheck "ARMv6t2 (SIMD instructions)"
2572 if test $_armv6t2 = "auto" ; then
2573 _armv6t2=no
2574 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2576 echores "$_armv6t2"
2578 echocheck "ARM VFP"
2579 if test $_armvfp = "auto" ; then
2580 _armvfp=no
2581 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2583 echores "$_armvfp"
2585 echocheck "ARM NEON"
2586 if test $neon = "auto" ; then
2587 neon=no
2588 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2590 echores "$neon"
2592 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2593 if test $_iwmmxt = "auto" ; then
2594 _iwmmxt=no
2595 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2597 echores "$_iwmmxt"
2600 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2601 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2602 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2603 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2604 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2605 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2606 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2607 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2608 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2609 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2610 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2611 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2612 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2613 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2614 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2615 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2616 test "$neon" = yes && cpuexts="NEON $cpuexts"
2617 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2618 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2619 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2621 # Checking kernel version...
2622 if x86_32 && linux ; then
2623 _k_verc_problem=no
2624 kernel_version=$(uname -r 2>&1)
2625 echocheck "$system_name kernel version"
2626 case "$kernel_version" in
2627 '') kernel_version="?.??"; _k_verc_fail=yes;;
2628 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2629 _k_verc_problem=yes;;
2630 esac
2631 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2632 _k_verc_fail=yes
2634 if test "$_k_verc_fail" ; then
2635 echores "$kernel_version, fail"
2636 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2637 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2638 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2639 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2640 echo "2.2.x you must upgrade it to get SSE support!"
2641 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2642 else
2643 echores "$kernel_version, ok"
2647 ######################
2648 # MAIN TESTS GO HERE #
2649 ######################
2652 echocheck "-lposix"
2653 if cflag_check -lposix ; then
2654 extra_ldflags="$extra_ldflags -lposix"
2655 echores "yes"
2656 else
2657 echores "no"
2660 echocheck "-lm"
2661 if cflag_check -lm ; then
2662 _ld_lm="-lm"
2663 echores "yes"
2664 else
2665 _ld_lm=""
2666 echores "no"
2670 echocheck "langinfo"
2671 if test "$_langinfo" = auto ; then
2672 _langinfo=no
2673 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2675 if test "$_langinfo" = yes ; then
2676 def_langinfo='#define HAVE_LANGINFO 1'
2677 else
2678 def_langinfo='#undef HAVE_LANGINFO'
2680 echores "$_langinfo"
2683 echocheck "translation support"
2684 if test "$_translation" = yes; then
2685 def_translation="#define CONFIG_TRANSLATION 1"
2686 else
2687 def_translation="#undef CONFIG_TRANSLATION"
2689 echores "$_translation"
2691 echocheck "language"
2692 # Set preferred languages, "all" uses English as main language.
2693 test -z "$language" && language=$LINGUAS
2694 test -z "$language_doc" && language_doc=$language
2695 test -z "$language_man" && language_man=$language
2696 test -z "$language_msg" && language_msg=$language
2697 test -z "$language_msg" && language_msg="all"
2698 language_doc=$(echo $language_doc | tr , " ")
2699 language_man=$(echo $language_man | tr , " ")
2700 language_msg=$(echo $language_msg | tr , " ")
2702 test "$language_doc" = "all" && language_doc=$doc_lang_all
2703 test "$language_man" = "all" && language_man=$man_lang_all
2704 test "$language_msg" = "all" && language_msg=$msg_lang_all
2706 if test "$_translation" != yes ; then
2707 language_msg=""
2710 # Prune non-existing translations from language lists.
2711 # Set message translation to the first available language.
2712 # Fall back on English.
2713 for lang in $language_doc ; do
2714 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2715 done
2716 language_doc=$tmp_language_doc
2717 test -z "$language_doc" && language_doc=en
2719 for lang in $language_man ; do
2720 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2721 done
2722 language_man=$tmp_language_man
2723 test -z "$language_man" && language_man=en
2725 for lang in $language_msg ; do
2726 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2727 done
2728 language_msg=$tmp_language_msg
2730 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2733 echocheck "enable sighandler"
2734 if test "$_sighandler" = yes ; then
2735 def_sighandler='#define CONFIG_SIGHANDLER 1'
2736 else
2737 def_sighandler='#undef CONFIG_SIGHANDLER'
2739 echores "$_sighandler"
2741 echocheck "runtime cpudetection"
2742 if test "$_runtime_cpudetection" = yes ; then
2743 _optimizing="Runtime CPU-Detection enabled"
2744 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2745 else
2746 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2748 echores "$_runtime_cpudetection"
2751 echocheck "restrict keyword"
2752 for restrict_keyword in restrict __restrict __restrict__ ; do
2753 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2754 if cc_check; then
2755 def_restrict_keyword=$restrict_keyword
2756 break;
2758 done
2759 if [ -n "$def_restrict_keyword" ]; then
2760 echores "$def_restrict_keyword"
2761 else
2762 echores "none"
2764 # Avoid infinite recursion loop ("#define restrict restrict")
2765 if [ "$def_restrict_keyword" != "restrict" ]; then
2766 def_restrict_keyword="#define restrict $def_restrict_keyword"
2767 else
2768 def_restrict_keyword=""
2772 echocheck "__builtin_expect"
2773 # GCC branch prediction hint
2774 cat > $TMPC << EOF
2775 static int foo(int a) {
2776 a = __builtin_expect(a, 10);
2777 return a == 10 ? 0 : 1;
2779 int main(void) { return foo(10) && foo(0); }
2781 _builtin_expect=no
2782 cc_check && _builtin_expect=yes
2783 if test "$_builtin_expect" = yes ; then
2784 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2785 else
2786 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2788 echores "$_builtin_expect"
2791 echocheck "kstat"
2792 _kstat=no
2793 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2794 if test "$_kstat" = yes ; then
2795 def_kstat="#define HAVE_LIBKSTAT 1"
2796 extra_ldflags="$extra_ldflags -lkstat"
2797 else
2798 def_kstat="#undef HAVE_LIBKSTAT"
2800 echores "$_kstat"
2803 echocheck "posix4"
2804 # required for nanosleep on some systems
2805 _posix4=no
2806 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2807 if test "$_posix4" = yes ; then
2808 extra_ldflags="$extra_ldflags -lposix4"
2810 echores "$_posix4"
2812 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2813 echocheck $func
2814 eval _$func=no
2815 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2816 if eval test "x\$_$func" = "xyes"; then
2817 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2818 echores yes
2819 else
2820 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2821 echores no
2823 done
2826 echocheck "mkstemp"
2827 _mkstemp=no
2828 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2829 if test "$_mkstemp" = yes ; then
2830 def_mkstemp='#define HAVE_MKSTEMP 1'
2831 else
2832 def_mkstemp='#define HAVE_MKSTEMP 0'
2834 echores "$_mkstemp"
2837 echocheck "nanosleep"
2838 _nanosleep=no
2839 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2840 if test "$_nanosleep" = yes ; then
2841 def_nanosleep='#define HAVE_NANOSLEEP 1'
2842 else
2843 def_nanosleep='#undef HAVE_NANOSLEEP'
2845 echores "$_nanosleep"
2848 echocheck "socklib"
2849 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2850 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2851 cat > $TMPC << EOF
2852 #include <netdb.h>
2853 #include <sys/socket.h>
2854 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2856 _socklib=no
2857 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2858 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2859 done
2860 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2861 if test $_winsock2_h = auto ; then
2862 _winsock2_h=no
2863 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2865 test "$_ld_sock" && res_comment="using $_ld_sock"
2866 echores "$_socklib"
2869 if test $_winsock2_h = yes ; then
2870 _ld_sock="-lws2_32"
2871 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2872 else
2873 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2877 echocheck "arpa/inet.h"
2878 arpa_inet_h=no
2879 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2880 header_check arpa/inet.h && arpa_inet_h=yes &&
2881 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2882 echores "$arpa_inet_h"
2885 echocheck "inet_pton()"
2886 def_inet_pton='#define HAVE_INET_PTON 0'
2887 inet_pton=no
2888 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2889 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2890 done
2891 if test $inet_pton = yes ; then
2892 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2893 def_inet_pton='#define HAVE_INET_PTON 1'
2895 echores "$inet_pton"
2898 echocheck "inet_aton()"
2899 def_inet_aton='#define HAVE_INET_ATON 0'
2900 inet_aton=no
2901 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2902 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2903 done
2904 if test $inet_aton = yes ; then
2905 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2906 def_inet_aton='#define HAVE_INET_ATON 1'
2908 echores "$inet_aton"
2911 echocheck "socklen_t"
2912 _socklen_t=no
2913 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2914 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2915 done
2916 if test "$_socklen_t" = yes ; then
2917 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2918 else
2919 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2921 echores "$_socklen_t"
2924 echocheck "closesocket()"
2925 _closesocket=no
2926 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2927 if test "$_closesocket" = yes ; then
2928 def_closesocket='#define HAVE_CLOSESOCKET 1'
2929 else
2930 def_closesocket='#define HAVE_CLOSESOCKET 0'
2932 echores "$_closesocket"
2935 echocheck "networking"
2936 test $_winsock2_h = no && test $inet_pton = no &&
2937 test $inet_aton = no && networking=no
2938 if test "$networking" = yes ; then
2939 def_network='#define CONFIG_NETWORK 1'
2940 def_networking='#define CONFIG_NETWORKING 1'
2941 extra_ldflags="$extra_ldflags $_ld_sock"
2942 inputmodules="networking $inputmodules"
2943 else
2944 noinputmodules="networking $noinputmodules"
2945 def_network='#define CONFIG_NETWORK 0'
2946 def_networking='#undef CONFIG_NETWORKING'
2948 echores "$networking"
2951 echocheck "inet6"
2952 if test "$_inet6" = auto ; then
2953 cat > $TMPC << EOF
2954 #include <sys/types.h>
2955 #if !defined(_WIN32)
2956 #include <sys/socket.h>
2957 #include <netinet/in.h>
2958 #else
2959 #include <ws2tcpip.h>
2960 #endif
2961 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2963 _inet6=no
2964 if cc_check $_ld_sock ; then
2965 _inet6=yes
2968 if test "$_inet6" = yes ; then
2969 def_inet6='#define HAVE_AF_INET6 1'
2970 else
2971 def_inet6='#undef HAVE_AF_INET6'
2973 echores "$_inet6"
2976 echocheck "gethostbyname2"
2977 if test "$_gethostbyname2" = auto ; then
2978 cat > $TMPC << EOF
2979 #include <sys/types.h>
2980 #include <sys/socket.h>
2981 #include <netdb.h>
2982 int main(void) { gethostbyname2("", AF_INET); return 0; }
2984 _gethostbyname2=no
2985 if cc_check ; then
2986 _gethostbyname2=yes
2989 if test "$_gethostbyname2" = yes ; then
2990 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
2991 else
2992 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
2994 echores "$_gethostbyname2"
2997 echocheck "inttypes.h (required)"
2998 _inttypes=no
2999 header_check inttypes.h && _inttypes=yes
3000 echores "$_inttypes"
3002 if test "$_inttypes" = no ; then
3003 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3004 header_check sys/bitypes.h && _inttypes=yes
3005 if test "$_inttypes" = yes ; then
3006 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
3007 else
3008 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3013 echocheck "malloc.h"
3014 _malloc=no
3015 header_check malloc.h && _malloc=yes
3016 if test "$_malloc" = yes ; then
3017 def_malloc_h='#define HAVE_MALLOC_H 1'
3018 else
3019 def_malloc_h='#define HAVE_MALLOC_H 0'
3021 echores "$_malloc"
3024 echocheck "memalign()"
3025 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3026 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3027 _memalign=no
3028 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3029 if test "$_memalign" = yes ; then
3030 def_memalign='#define HAVE_MEMALIGN 1'
3031 else
3032 def_memalign='#define HAVE_MEMALIGN 0'
3033 def_map_memalign='#define memalign(a, b) malloc(b)'
3034 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3036 echores "$_memalign"
3039 echocheck "posix_memalign()"
3040 posix_memalign=no
3041 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3042 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3043 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3044 echores "$posix_memalign"
3047 echocheck "alloca.h"
3048 _alloca=no
3049 statement_check alloca.h 'alloca(0)' && _alloca=yes
3050 if cc_check ; then
3051 def_alloca_h='#define HAVE_ALLOCA_H 1'
3052 else
3053 def_alloca_h='#undef HAVE_ALLOCA_H'
3055 echores "$_alloca"
3058 echocheck "fastmemcpy"
3059 if test "$_fastmemcpy" = yes ; then
3060 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3061 else
3062 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3064 echores "$_fastmemcpy"
3067 echocheck "mman.h"
3068 _mman=no
3069 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3070 if test "$_mman" = yes ; then
3071 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3072 else
3073 def_mman_h='#undef HAVE_SYS_MMAN_H'
3074 os2 && need_mmap=yes
3076 echores "$_mman"
3078 _mman_has_map_failed=no
3079 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3080 if test "$_mman_has_map_failed" = yes ; then
3081 def_mman_has_map_failed=''
3082 else
3083 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3086 echocheck "dynamic loader"
3087 _dl=no
3088 for _ld_tmp in "" "-ldl"; do
3089 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3090 done
3091 if test "$_dl" = yes ; then
3092 def_dl='#define HAVE_LIBDL 1'
3093 else
3094 def_dl='#undef HAVE_LIBDL'
3096 echores "$_dl"
3099 def_threads='#define HAVE_THREADS 0'
3101 echocheck "pthread"
3102 if linux ; then
3103 THREAD_CFLAGS=-D_REENTRANT
3104 elif freebsd || netbsd || openbsd || bsdos ; then
3105 THREAD_CFLAGS=-D_THREAD_SAFE
3107 if test "$_pthreads" = auto ; then
3108 cat > $TMPC << EOF
3109 #include <pthread.h>
3110 static void *func(void *arg) { return arg; }
3111 int main(void) {
3112 pthread_t tid;
3113 #ifdef PTW32_STATIC_LIB
3114 pthread_win32_process_attach_np();
3115 pthread_win32_thread_attach_np();
3116 #endif
3117 return pthread_create (&tid, 0, func, 0) != 0;
3120 _pthreads=no
3121 if ! hpux ; then
3122 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3123 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3124 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3125 done
3126 if test "$_pthreads" = no && mingw32 ; then
3127 _ld_tmp="-lpthreadGC2 -lws2_32"
3128 cc_check $_ld_tmp -DPTW32_STATIC_LIB && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
3132 if test "$_pthreads" = yes ; then
3133 test $_ld_pthread && res_comment="using $_ld_pthread"
3134 def_pthreads='#define HAVE_PTHREADS 1'
3135 def_threads='#define HAVE_THREADS 1'
3136 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3137 else
3138 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3139 def_pthreads='#undef HAVE_PTHREADS'
3140 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3141 mingw32 || _win32dll=no
3143 echores "$_pthreads"
3145 if cygwin ; then
3146 if test "$_pthreads" = yes ; then
3147 def_pthread_cache="#define PTHREAD_CACHE 1"
3148 else
3149 _stream_cache=no
3150 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3154 echocheck "w32threads"
3155 if test "$_pthreads" = yes ; then
3156 res_comment="using pthread instead"
3157 _w32threads=no
3159 if test "$_w32threads" = auto ; then
3160 _w32threads=no
3161 mingw32 && _w32threads=yes
3163 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3164 echores "$_w32threads"
3166 echocheck "rpath"
3167 if test "$_rpath" = yes ; then
3168 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3169 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3170 done
3171 extra_ldflags=$tmp
3173 echores "$_rpath"
3175 echocheck "iconv"
3176 if test "$_iconv" = auto ; then
3177 cat > $TMPC << EOF
3178 #include <stdio.h>
3179 #include <unistd.h>
3180 #include <iconv.h>
3181 #define INBUFSIZE 1024
3182 #define OUTBUFSIZE 4096
3184 char inbuffer[INBUFSIZE];
3185 char outbuffer[OUTBUFSIZE];
3187 int main(void) {
3188 size_t numread;
3189 iconv_t icdsc;
3190 char *tocode="UTF-8";
3191 char *fromcode="cp1250";
3192 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3193 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3194 char *iptr=inbuffer;
3195 char *optr=outbuffer;
3196 size_t inleft=numread;
3197 size_t outleft=OUTBUFSIZE;
3198 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3199 != (size_t)(-1)) {
3200 write(1, outbuffer, OUTBUFSIZE - outleft);
3203 if (iconv_close(icdsc) == -1)
3206 return 0;
3209 _iconv=no
3210 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3211 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3212 _iconv=yes && break
3213 done
3214 if test "$_iconv" != yes ; then
3215 die "Unable to find iconv which should be part of standard compilation environment. Aborting. If you really mean to compile without iconv support use --disable-iconv."
3218 if test "$_iconv" = yes ; then
3219 def_iconv='#define CONFIG_ICONV 1'
3220 else
3221 def_iconv='#undef CONFIG_ICONV'
3223 echores "$_iconv"
3226 echocheck "soundcard.h"
3227 _soundcard_h=no
3228 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3229 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3230 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3231 header_check $_soundcard_header && _soundcard_h=yes &&
3232 res_comment="$_soundcard_header" && break
3233 done
3235 if test "$_soundcard_h" = yes ; then
3236 if test $_soundcard_header = "sys/soundcard.h"; then
3237 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3238 else
3239 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3242 echores "$_soundcard_h"
3245 echocheck "sys/videoio.h"
3246 sys_videoio_h=no
3247 def_sys_videoio_h='#undef HAVE_SYS_VIDEOIO_H'
3248 header_check sys/videoio.h && sys_videoio_h=yes &&
3249 def_sys_videoio_h='#define HAVE_SYS_VIDEOIO_H 1'
3250 echores "$sys_videoio_h"
3253 echocheck "sys/dvdio.h"
3254 _dvdio=no
3255 # FreeBSD 8.1 has broken dvdio.h
3256 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3257 if test "$_dvdio" = yes ; then
3258 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3259 else
3260 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3262 echores "$_dvdio"
3265 echocheck "sys/cdio.h"
3266 _cdio=no
3267 # at least OpenSolaris has a broken cdio.h
3268 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3269 if test "$_cdio" = yes ; then
3270 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3271 else
3272 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3274 echores "$_cdio"
3277 echocheck "linux/cdrom.h"
3278 _cdrom=no
3279 header_check linux/cdrom.h && _cdrom=yes
3280 if test "$_cdrom" = yes ; then
3281 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3282 else
3283 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3285 echores "$_cdrom"
3288 echocheck "dvd.h"
3289 _dvd=no
3290 header_check dvd.h && _dvd=yes
3291 if test "$_dvd" = yes ; then
3292 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3293 else
3294 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3296 echores "$_dvd"
3299 if bsdos; then
3300 echocheck "BSDI dvd.h"
3301 _bsdi_dvd=no
3302 header_check dvd.h && _bsdi_dvd=yes
3303 if test "$_bsdi_dvd" = yes ; then
3304 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3305 else
3306 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3308 echores "$_bsdi_dvd"
3309 fi #if bsdos
3312 if hpux; then
3313 # also used by AIX, but AIX does not support VCD and/or libdvdread
3314 echocheck "HP-UX SCSI header"
3315 _hpux_scsi_h=no
3316 header_check sys/scsi.h && _hpux_scsi_h=yes
3317 if test "$_hpux_scsi_h" = yes ; then
3318 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3319 else
3320 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3322 echores "$_hpux_scsi_h"
3323 fi #if hpux
3326 if sunos; then
3327 echocheck "userspace SCSI headers (Solaris)"
3328 _sol_scsi_h=no
3329 header_check sys/scsi/scsi_types.h &&
3330 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3331 _sol_scsi_h=yes
3332 if test "$_sol_scsi_h" = yes ; then
3333 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3334 else
3335 def_sol_scsi_h='#undef SOLARIS_USCSI'
3337 echores "$_sol_scsi_h"
3338 fi #if sunos
3341 echocheck "termcap"
3342 if test "$_termcap" = auto ; then
3343 _termcap=no
3344 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3345 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3346 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3347 done
3349 if test "$_termcap" = yes ; then
3350 def_termcap='#define HAVE_TERMCAP 1'
3351 test $_ld_tmp && res_comment="using $_ld_tmp"
3352 else
3353 def_termcap='#undef HAVE_TERMCAP'
3355 echores "$_termcap"
3358 echocheck "termios"
3359 def_termios='#undef HAVE_TERMIOS'
3360 def_termios_h='#undef HAVE_TERMIOS_H'
3361 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3362 if test "$_termios" = auto ; then
3363 _termios=no
3364 for _termios_header in "termios.h" "sys/termios.h"; do
3365 header_check $_termios_header && _termios=yes &&
3366 res_comment="using $_termios_header" && break
3367 done
3370 if test "$_termios" = yes ; then
3371 def_termios='#define HAVE_TERMIOS 1'
3372 if test "$_termios_header" = "termios.h" ; then
3373 def_termios_h='#define HAVE_TERMIOS_H 1'
3374 else
3375 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3378 echores "$_termios"
3381 echocheck "shm"
3382 if test "$_shm" = auto ; then
3383 _shm=no
3384 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3386 if test "$_shm" = yes ; then
3387 def_shm='#define HAVE_SHM 1'
3388 else
3389 def_shm='#undef HAVE_SHM'
3391 echores "$_shm"
3394 echocheck "strsep()"
3395 _strsep=no
3396 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3397 if test "$_strsep" = yes ; then
3398 def_strsep='#define HAVE_STRSEP 1'
3399 need_strsep=no
3400 else
3401 def_strsep='#undef HAVE_STRSEP'
3402 need_strsep=yes
3404 echores "$_strsep"
3407 echocheck "vsscanf()"
3408 cat > $TMPC << EOF
3409 #define _ISOC99_SOURCE
3410 #include <stdarg.h>
3411 #include <stdio.h>
3412 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3414 _vsscanf=no
3415 cc_check && _vsscanf=yes
3416 if test "$_vsscanf" = yes ; then
3417 def_vsscanf='#define HAVE_VSSCANF 1'
3418 need_vsscanf=no
3419 else
3420 def_vsscanf='#undef HAVE_VSSCANF'
3421 need_vsscanf=yes
3423 echores "$_vsscanf"
3426 echocheck "swab()"
3427 _swab=no
3428 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3429 statement_check "string.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3430 if test "$_swab" = yes ; then
3431 def_swab='#define HAVE_SWAB 1'
3432 need_swab=no
3433 else
3434 def_swab='#undef HAVE_SWAB'
3435 need_swab=yes
3437 echores "$_swab"
3439 echocheck "POSIX select()"
3440 cat > $TMPC << EOF
3441 #include <stdio.h>
3442 #include <stdlib.h>
3443 #include <sys/types.h>
3444 #include <string.h>
3445 #include <sys/time.h>
3446 #include <unistd.h>
3447 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3449 _posix_select=no
3450 def_posix_select='#undef HAVE_POSIX_SELECT'
3451 #select() of kLIBC (OS/2) supports socket only
3452 ! os2 && cc_check && _posix_select=yes &&
3453 def_posix_select='#define HAVE_POSIX_SELECT 1'
3454 echores "$_posix_select"
3457 echocheck "audio select()"
3458 if test "$_select" = no ; then
3459 def_select='#undef HAVE_AUDIO_SELECT'
3460 elif test "$_select" = yes ; then
3461 def_select='#define HAVE_AUDIO_SELECT 1'
3463 echores "$_select"
3466 echocheck "gettimeofday()"
3467 _gettimeofday=no
3468 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3469 if test "$_gettimeofday" = yes ; then
3470 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3471 need_gettimeofday=no
3472 else
3473 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3474 need_gettimeofday=yes
3476 echores "$_gettimeofday"
3479 echocheck "glob()"
3480 _glob=no
3481 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3482 need_glob=no
3483 if test "$_glob" = yes ; then
3484 def_glob='#define HAVE_GLOB 1'
3485 else
3486 def_glob='#undef HAVE_GLOB'
3487 # HACK! need_glob currently enables compilation of a
3488 # win32-specific glob()-replacement.
3489 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3490 win32 && need_glob=yes
3492 echores "$_glob"
3495 echocheck "setenv()"
3496 _setenv=no
3497 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3498 if test "$_setenv" = yes ; then
3499 def_setenv='#define HAVE_SETENV 1'
3500 need_setenv=no
3501 else
3502 def_setenv='#undef HAVE_SETENV'
3503 need_setenv=yes
3505 echores "$_setenv"
3508 echocheck "setmode()"
3509 _setmode=no
3510 def_setmode='#define HAVE_SETMODE 0'
3511 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3512 echores "$_setmode"
3515 if sunos; then
3516 echocheck "sysi86()"
3517 _sysi86=no
3518 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3519 if test "$_sysi86" = yes ; then
3520 def_sysi86='#define HAVE_SYSI86 1'
3521 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3522 else
3523 def_sysi86='#undef HAVE_SYSI86'
3525 echores "$_sysi86"
3526 fi #if sunos
3529 echocheck "sys/sysinfo.h"
3530 _sys_sysinfo=no
3531 statement_check sys/sysinfo.h 'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo=yes
3532 if test "$_sys_sysinfo" = yes ; then
3533 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3534 else
3535 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3537 echores "$_sys_sysinfo"
3540 if darwin; then
3542 echocheck "Mac OS X Finder Support"
3543 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3544 if test "$_macosx_finder" = yes ; then
3545 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3546 extra_ldflags="$extra_ldflags -framework Carbon"
3548 echores "$_macosx_finder"
3550 echocheck "Mac OS X Bundle file locations"
3551 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3552 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3553 if test "$_macosx_bundle" = yes ; then
3554 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3555 extra_ldflags="$extra_ldflags -framework Carbon"
3557 echores "$_macosx_bundle"
3559 echocheck "Apple Remote"
3560 if test "$_apple_remote" = auto ; then
3561 _apple_remote=no
3562 cat > $TMPC <<EOF
3563 #include <stdio.h>
3564 #include <IOKit/IOCFPlugIn.h>
3565 int main(void) {
3566 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3567 CFMutableDictionaryRef hidMatchDictionary;
3568 IOReturn ioReturnValue;
3570 // Set up a matching dictionary to search the I/O Registry by class.
3571 // name for all HID class devices
3572 hidMatchDictionary = IOServiceMatching("AppleIRController");
3574 // Now search I/O Registry for matching devices.
3575 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3576 hidMatchDictionary, &hidObjectIterator);
3578 // If search is unsuccessful, return nonzero.
3579 if (ioReturnValue != kIOReturnSuccess ||
3580 !IOIteratorIsValid(hidObjectIterator)) {
3581 return 1;
3583 return 0;
3586 cc_check -framework IOKit && _apple_remote=yes
3588 if test "$_apple_remote" = yes ; then
3589 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3590 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3591 else
3592 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3594 echores "$_apple_remote"
3596 fi #if darwin
3598 if linux; then
3600 echocheck "Apple IR"
3601 if test "$_apple_ir" = auto ; then
3602 _apple_ir=no
3603 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3605 if test "$_apple_ir" = yes ; then
3606 def_apple_ir='#define CONFIG_APPLE_IR 1'
3607 else
3608 def_apple_ir='#undef CONFIG_APPLE_IR'
3610 echores "$_apple_ir"
3611 fi #if linux
3613 echocheck "pkg-config"
3614 _pkg_config=pkg-config
3615 if $($_pkg_config --version > /dev/null 2>&1); then
3616 if test "$_ld_static"; then
3617 _pkg_config="$_pkg_config --static"
3619 echores "yes"
3620 else
3621 _pkg_config=false
3622 echores "no"
3626 echocheck "Samba support (libsmbclient)"
3627 if test "$_smb" = yes; then
3628 extra_ldflags="$extra_ldflags -lsmbclient"
3630 if test "$_smb" = auto; then
3631 _smb=no
3632 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3633 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3634 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3635 done
3638 if test "$_smb" = yes; then
3639 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3640 inputmodules="smb $inputmodules"
3641 else
3642 def_smb="#undef CONFIG_LIBSMBCLIENT"
3643 noinputmodules="smb $noinputmodules"
3645 echores "$_smb"
3648 #########
3649 # VIDEO #
3650 #########
3653 echocheck "tdfxfb"
3654 if test "$_tdfxfb" = yes ; then
3655 def_tdfxfb='#define CONFIG_TDFXFB 1'
3656 vomodules="tdfxfb $vomodules"
3657 else
3658 def_tdfxfb='#undef CONFIG_TDFXFB'
3659 novomodules="tdfxfb $novomodules"
3661 echores "$_tdfxfb"
3663 echocheck "s3fb"
3664 if test "$_s3fb" = yes ; then
3665 def_s3fb='#define CONFIG_S3FB 1'
3666 vomodules="s3fb $vomodules"
3667 else
3668 def_s3fb='#undef CONFIG_S3FB'
3669 novomodules="s3fb $novomodules"
3671 echores "$_s3fb"
3673 echocheck "wii"
3674 if test "$_wii" = yes ; then
3675 def_wii='#define CONFIG_WII 1'
3676 vomodules="wii $vomodules"
3677 else
3678 def_wii='#undef CONFIG_WII'
3679 novomodules="wii $novomodules"
3681 echores "$_wii"
3683 echocheck "tdfxvid"
3684 if test "$_tdfxvid" = yes ; then
3685 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3686 vomodules="tdfx_vid $vomodules"
3687 else
3688 def_tdfxvid='#undef CONFIG_TDFX_VID'
3689 novomodules="tdfx_vid $novomodules"
3691 echores "$_tdfxvid"
3693 echocheck "xvr100"
3694 if test "$_xvr100" = auto ; then
3695 cat > $TMPC << EOF
3696 #include <unistd.h>
3697 #include <sys/fbio.h>
3698 #include <sys/visual_io.h>
3699 int main(void) {
3700 struct vis_identifier ident;
3701 struct fbgattr attr;
3702 ioctl(0, VIS_GETIDENTIFIER, &ident);
3703 ioctl(0, FBIOGATTR, &attr);
3704 return 0;
3707 _xvr100=no
3708 cc_check && _xvr100=yes
3710 if test "$_xvr100" = yes ; then
3711 def_xvr100='#define CONFIG_XVR100 1'
3712 vomodules="xvr100 $vomodules"
3713 else
3714 def_tdfxvid='#undef CONFIG_XVR100'
3715 novomodules="xvr100 $novomodules"
3717 echores "$_xvr100"
3719 echocheck "tga"
3720 if test "$_tga" = yes ; then
3721 def_tga='#define CONFIG_TGA 1'
3722 vomodules="tga $vomodules"
3723 else
3724 def_tga='#undef CONFIG_TGA'
3725 novomodules="tga $novomodules"
3727 echores "$_tga"
3730 echocheck "md5sum support"
3731 if test "$_md5sum" = yes; then
3732 def_md5sum="#define CONFIG_MD5SUM 1"
3733 vomodules="md5sum $vomodules"
3734 else
3735 def_md5sum="#undef CONFIG_MD5SUM"
3736 novomodules="md5sum $novomodules"
3738 echores "$_md5sum"
3741 echocheck "yuv4mpeg support"
3742 if test "$_yuv4mpeg" = yes; then
3743 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3744 vomodules="yuv4mpeg $vomodules"
3745 else
3746 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3747 novomodules="yuv4mpeg $novomodules"
3749 echores "$_yuv4mpeg"
3752 echocheck "bl"
3753 if test "$_bl" = yes ; then
3754 def_bl='#define CONFIG_BL 1'
3755 vomodules="bl $vomodules"
3756 else
3757 def_bl='#undef CONFIG_BL'
3758 novomodules="bl $novomodules"
3760 echores "$_bl"
3763 echocheck "DirectFB"
3764 if test "$_directfb" = auto ; then
3765 _directfb=no
3766 cat > $TMPC << EOF
3767 #include <directfb.h>
3768 #include <directfb_version.h>
3769 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3770 #error "DirectFB version too old."
3771 #endif
3772 int main(void) { DirectFBInit(0, 0); return 0; }
3774 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3775 cc_check $_inc_tmp -ldirectfb &&
3776 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3777 done
3779 if test "$_directfb" = yes ; then
3780 def_directfb='#define CONFIG_DIRECTFB 1'
3781 vomodules="directfb dfbmga $vomodules"
3782 libs_mplayer="$libs_mplayer -ldirectfb"
3783 else
3784 def_directfb='#undef CONFIG_DIRECTFB'
3785 novomodules="directfb dfbmga $novomodules"
3787 echores "$_directfb"
3790 echocheck "X11 headers presence"
3791 _x11_headers="no"
3792 res_comment="check if the dev(el) packages are installed"
3793 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3794 if test -f "$I/X11/Xlib.h" ; then
3795 _x11_headers="yes"
3796 res_comment=""
3797 break
3799 done
3800 if test $_cross_compile = no; then
3801 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3802 /usr/include/X11R6 /usr/openwin/include ; do
3803 if test -f "$I/X11/Xlib.h" ; then
3804 extra_cflags="$extra_cflags -I$I"
3805 _x11_headers="yes"
3806 res_comment="using $I"
3807 break
3809 done
3811 echores "$_x11_headers"
3814 echocheck "X11"
3815 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3816 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3817 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3818 -L/usr/lib ; do
3819 if netbsd; then
3820 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3821 else
3822 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3824 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3825 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3826 done
3828 if test "$_x11" = yes ; then
3829 def_x11='#define CONFIG_X11 1'
3830 vomodules="x11 xover $vomodules"
3831 else
3832 _x11=no
3833 def_x11='#undef CONFIG_X11'
3834 novomodules="x11 $novomodules"
3835 res_comment="check if the dev(el) packages are installed"
3837 echores "$_x11"
3839 echocheck "Xss screensaver extensions"
3840 if test "$_xss" = auto ; then
3841 _xss=no
3842 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3844 if test "$_xss" = yes ; then
3845 def_xss='#define CONFIG_XSS 1'
3846 libs_mplayer="$libs_mplayer -lXss"
3847 else
3848 def_xss='#undef CONFIG_XSS'
3850 echores "$_xss"
3852 echocheck "DPMS"
3853 _xdpms3=no
3854 _xdpms4=no
3855 if test "$_x11" = yes ; then
3856 cat > $TMPC <<EOF
3857 #include <X11/Xmd.h>
3858 #include <X11/Xlib.h>
3859 #include <X11/Xutil.h>
3860 #include <X11/Xatom.h>
3861 #include <X11/extensions/dpms.h>
3862 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3864 cc_check -lXdpms && _xdpms3=yes
3865 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3867 if test "$_xdpms4" = yes ; then
3868 def_xdpms='#define CONFIG_XDPMS 1'
3869 res_comment="using Xdpms 4"
3870 echores "yes"
3871 elif test "$_xdpms3" = yes ; then
3872 def_xdpms='#define CONFIG_XDPMS 1'
3873 libs_mplayer="$libs_mplayer -lXdpms"
3874 res_comment="using Xdpms 3"
3875 echores "yes"
3876 else
3877 def_xdpms='#undef CONFIG_XDPMS'
3878 echores "no"
3882 echocheck "Xv"
3883 if test "$_xv" = auto && test "$_x11" = yes ; then
3884 _xv=no
3885 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3888 if test "$_xv" = yes ; then
3889 def_xv='#define CONFIG_XV 1'
3890 libs_mplayer="$libs_mplayer -lXv"
3891 vomodules="xv $vomodules"
3892 else
3893 def_xv='#undef CONFIG_XV'
3894 novomodules="xv $novomodules"
3896 echores "$_xv"
3899 echocheck "VDPAU"
3900 if test "$_vdpau" = auto && test "$_x11" = yes ; then
3901 _vdpau=no
3902 if test "$_dl" = yes ; then
3903 return_statement_check vdpau/vdpau_x11.h 'vdp_device_create_x11(0, 0, 0, 0)' VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 -lvdpau && _vdpau=yes
3906 if test "$_vdpau" = yes ; then
3907 def_vdpau='#define CONFIG_VDPAU 1'
3908 libs_mplayer="$libs_mplayer -lvdpau"
3909 vomodules="vdpau $vomodules"
3910 else
3911 def_vdpau='#define CONFIG_VDPAU 0'
3912 novomodules="vdpau $novomodules"
3914 echores "$_vdpau"
3917 echocheck "Xinerama"
3918 if test "$_xinerama" = auto && test "$_x11" = yes ; then
3919 _xinerama=no
3920 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
3923 if test "$_xinerama" = yes ; then
3924 def_xinerama='#define CONFIG_XINERAMA 1'
3925 libs_mplayer="$libs_mplayer -lXinerama"
3926 else
3927 def_xinerama='#undef CONFIG_XINERAMA'
3929 echores "$_xinerama"
3932 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3933 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3934 # named 'X extensions' or something similar.
3935 # This check may be useful for future mplayer versions (to change resolution)
3936 # If you run into problems, remove '-lXxf86vm'.
3937 echocheck "Xxf86vm"
3938 if test "$_vm" = auto && test "$_x11" = yes ; then
3939 _vm=no
3940 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
3942 if test "$_vm" = yes ; then
3943 def_vm='#define CONFIG_XF86VM 1'
3944 libs_mplayer="$libs_mplayer -lXxf86vm"
3945 else
3946 def_vm='#undef CONFIG_XF86VM'
3948 echores "$_vm"
3950 # Check for the presence of special keycodes, like audio control buttons
3951 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3952 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3953 # have these new keycodes.
3954 echocheck "XF86keysym"
3955 if test "$_xf86keysym" = auto && test "$_x11" = yes ; then
3956 _xf86keysym=no
3957 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
3959 if test "$_xf86keysym" = yes ; then
3960 def_xf86keysym='#define CONFIG_XF86XK 1'
3961 else
3962 def_xf86keysym='#undef CONFIG_XF86XK'
3964 echores "$_xf86keysym"
3966 echocheck "DGA"
3967 if test "$_dga2" = auto && test "$_x11" = yes ; then
3968 _dga2=no
3969 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
3971 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
3972 _dga1=no
3973 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
3976 _dga=no
3977 def_dga='#undef CONFIG_DGA'
3978 def_dga1='#undef CONFIG_DGA1'
3979 def_dga2='#undef CONFIG_DGA2'
3980 if test "$_dga1" = yes ; then
3981 _dga=yes
3982 def_dga1='#define CONFIG_DGA1 1'
3983 res_comment="using DGA 1.0"
3984 elif test "$_dga2" = yes ; then
3985 _dga=yes
3986 def_dga2='#define CONFIG_DGA2 1'
3987 res_comment="using DGA 2.0"
3989 if test "$_dga" = yes ; then
3990 def_dga='#define CONFIG_DGA 1'
3991 libs_mplayer="$libs_mplayer -lXxf86dga"
3992 vomodules="dga $vomodules"
3993 else
3994 novomodules="dga $novomodules"
3996 echores "$_dga"
3999 echocheck "3dfx"
4000 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4001 def_3dfx='#define CONFIG_3DFX 1'
4002 vomodules="3dfx $vomodules"
4003 else
4004 _3dfx=no
4005 def_3dfx='#undef CONFIG_3DFX'
4006 novomodules="3dfx $novomodules"
4008 echores "$_3dfx"
4011 echocheck "GGI"
4012 if test "$_ggi" = auto ; then
4013 _ggi=no
4014 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4016 if test "$_ggi" = yes ; then
4017 def_ggi='#define CONFIG_GGI 1'
4018 libs_mplayer="$libs_mplayer -lggi"
4019 vomodules="ggi $vomodules"
4020 else
4021 def_ggi='#undef CONFIG_GGI'
4022 novomodules="ggi $novomodules"
4024 echores "$_ggi"
4026 echocheck "GGI extension: libggiwmh"
4027 if test "$_ggiwmh" = auto ; then
4028 _ggiwmh=no
4029 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4031 # needed to get right output on obscure combination
4032 # like --disable-ggi --enable-ggiwmh
4033 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4034 def_ggiwmh='#define CONFIG_GGIWMH 1'
4035 libs_mplayer="$libs_mplayer -lggiwmh"
4036 else
4037 _ggiwmh=no
4038 def_ggiwmh='#undef CONFIG_GGIWMH'
4040 echores "$_ggiwmh"
4043 echocheck "AA"
4044 if test "$_aa" = auto ; then
4045 cat > $TMPC << EOF
4046 #include <aalib.h>
4047 int main(void) {
4048 aa_context *c;
4049 aa_renderparams *p;
4050 aa_init(0, 0, 0);
4051 c = aa_autoinit(&aa_defparams);
4052 p = aa_getrenderparams();
4053 aa_autoinitkbd(c, 0);
4054 return 0; }
4056 _aa=no
4057 for _ld_tmp in "-laa" ; do
4058 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4059 done
4061 if test "$_aa" = yes ; then
4062 def_aa='#define CONFIG_AA 1'
4063 if cygwin ; then
4064 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4066 vomodules="aa $vomodules"
4067 else
4068 def_aa='#undef CONFIG_AA'
4069 novomodules="aa $novomodules"
4071 echores "$_aa"
4074 echocheck "CACA"
4075 if test "$_caca" = auto ; then
4076 _caca=no
4077 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4078 cat > $TMPC << EOF
4079 #include <caca.h>
4080 #ifdef CACA_API_VERSION_1
4081 #include <caca0.h>
4082 #endif
4083 int main(void) { caca_init(); return 0; }
4085 cc_check $(caca-config --libs) && _caca=yes
4088 if test "$_caca" = yes ; then
4089 def_caca='#define CONFIG_CACA 1'
4090 extra_cflags="$extra_cflags $(caca-config --cflags)"
4091 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4092 vomodules="caca $vomodules"
4093 else
4094 def_caca='#undef CONFIG_CACA'
4095 novomodules="caca $novomodules"
4097 echores "$_caca"
4100 echocheck "SVGAlib"
4101 if test "$_svga" = auto ; then
4102 _svga=no
4103 header_check vga.h -lvga $_ld_lm && _svga=yes
4105 if test "$_svga" = yes ; then
4106 def_svga='#define CONFIG_SVGALIB 1'
4107 libs_mplayer="$libs_mplayer -lvga"
4108 vomodules="svga $vomodules"
4109 else
4110 def_svga='#undef CONFIG_SVGALIB'
4111 novomodules="svga $novomodules"
4113 echores "$_svga"
4116 echocheck "FBDev"
4117 if test "$_fbdev" = auto ; then
4118 _fbdev=no
4119 linux && _fbdev=yes
4121 if test "$_fbdev" = yes ; then
4122 def_fbdev='#define CONFIG_FBDEV 1'
4123 vomodules="fbdev $vomodules"
4124 else
4125 def_fbdev='#undef CONFIG_FBDEV'
4126 novomodules="fbdev $novomodules"
4128 echores "$_fbdev"
4132 echocheck "DVB"
4133 if test "$_dvb" = auto ; then
4134 _dvb=no
4135 cat >$TMPC << EOF
4136 #include <poll.h>
4137 #include <sys/ioctl.h>
4138 #include <stdio.h>
4139 #include <time.h>
4140 #include <unistd.h>
4141 #include <linux/dvb/dmx.h>
4142 #include <linux/dvb/frontend.h>
4143 #include <linux/dvb/video.h>
4144 #include <linux/dvb/audio.h>
4145 int main(void) {return 0;}
4147 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4148 cc_check $_inc_tmp && _dvb=yes &&
4149 extra_cflags="$extra_cflags $_inc_tmp" && break
4150 done
4152 echores "$_dvb"
4153 if test "$_dvb" = yes ; then
4154 _dvbin=yes
4155 inputmodules="dvb $inputmodules"
4156 def_dvb='#define CONFIG_DVB 1'
4157 def_dvbin='#define CONFIG_DVBIN 1'
4158 aomodules="mpegpes(dvb) $aomodules"
4159 vomodules="mpegpes(dvb) $vomodules"
4160 else
4161 _dvbin=no
4162 noinputmodules="dvb $noinputmodules"
4163 def_dvb='#undef CONFIG_DVB'
4164 def_dvbin='#undef CONFIG_DVBIN '
4165 aomodules="mpegpes(file) $aomodules"
4166 vomodules="mpegpes(file) $vomodules"
4170 if darwin; then
4172 echocheck "QuickTime"
4173 if test "$quicktime" = auto ; then
4174 quicktime=no
4175 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4177 if test "$quicktime" = yes ; then
4178 extra_ldflags="$extra_ldflags -framework QuickTime"
4179 def_quicktime='#define CONFIG_QUICKTIME 1'
4180 else
4181 def_quicktime='#undef CONFIG_QUICKTIME'
4182 _quartz=no
4184 echores $quicktime
4186 echocheck "Quartz"
4187 if test "$_quartz" = auto ; then
4188 _quartz=no
4189 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4191 if test "$_quartz" = yes ; then
4192 libs_mplayer="$libs_mplayer -framework Carbon"
4193 def_quartz='#define CONFIG_QUARTZ 1'
4194 vomodules="quartz $vomodules"
4195 else
4196 def_quartz='#undef CONFIG_QUARTZ'
4197 novomodules="quartz $novomodules"
4199 echores $_quartz
4201 echocheck "CoreVideo"
4202 if test "$_corevideo" = auto ; then
4203 cat > $TMPC <<EOF
4204 #include <Carbon/Carbon.h>
4205 #include <CoreServices/CoreServices.h>
4206 #include <OpenGL/OpenGL.h>
4207 #include <QuartzCore/CoreVideo.h>
4208 int main(void) { return 0; }
4210 _corevideo=no
4211 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4213 if test "$_corevideo" = yes ; then
4214 vomodules="corevideo $vomodules"
4215 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4216 def_corevideo='#define CONFIG_COREVIDEO 1'
4217 else
4218 novomodules="corevideo $novomodules"
4219 def_corevideo='#undef CONFIG_COREVIDEO'
4221 echores "$_corevideo"
4223 fi #if darwin
4226 echocheck "PNG support"
4227 if test "$_png" = auto ; then
4228 _png=no
4229 if irix ; then
4230 # Don't check for -lpng on irix since it has its own libpng
4231 # incompatible with the GNU libpng
4232 res_comment="disabled on irix (not GNU libpng)"
4233 else
4234 cat > $TMPC << EOF
4235 #include <stdio.h>
4236 #include <string.h>
4237 #include <png.h>
4238 int main(void) {
4239 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4240 printf("libpng: %s\n", png_libpng_ver);
4241 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4244 cc_check -lpng -lz $_ld_lm && _png=yes
4247 echores "$_png"
4248 if test "$_png" = yes ; then
4249 def_png='#define CONFIG_PNG 1'
4250 extra_ldflags="$extra_ldflags -lpng -lz"
4251 else
4252 def_png='#undef CONFIG_PNG'
4255 echocheck "MNG support"
4256 if test "$_mng" = auto ; then
4257 _mng=no
4258 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4260 echores "$_mng"
4261 if test "$_mng" = yes ; then
4262 def_mng='#define CONFIG_MNG 1'
4263 extra_ldflags="$extra_ldflags -lmng -lz"
4264 else
4265 def_mng='#undef CONFIG_MNG'
4268 echocheck "JPEG support"
4269 if test "$_jpeg" = auto ; then
4270 _jpeg=no
4271 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4273 echores "$_jpeg"
4275 if test "$_jpeg" = yes ; then
4276 def_jpeg='#define CONFIG_JPEG 1'
4277 vomodules="jpeg $vomodules"
4278 extra_ldflags="$extra_ldflags -ljpeg"
4279 else
4280 def_jpeg='#undef CONFIG_JPEG'
4281 novomodules="jpeg $novomodules"
4286 echocheck "PNM support"
4287 if test "$_pnm" = yes; then
4288 def_pnm="#define CONFIG_PNM 1"
4289 vomodules="pnm $vomodules"
4290 else
4291 def_pnm="#undef CONFIG_PNM"
4292 novomodules="pnm $novomodules"
4294 echores "$_pnm"
4298 echocheck "GIF support"
4299 # This is to appease people who want to force gif support.
4300 # If it is forced to yes, then we still do checks to determine
4301 # which gif library to use.
4302 if test "$_gif" = yes ; then
4303 _force_gif=yes
4304 _gif=auto
4307 if test "$_gif" = auto ; then
4308 _gif=no
4309 for _ld_gif in "-lungif" "-lgif" ; do
4310 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4311 done
4314 # If no library was found, and the user wants support forced,
4315 # then we force it on with libgif, as this is the safest
4316 # assumption IMHO. (libungif & libregif both create symbolic
4317 # links to libgif. We also assume that no x11 support is needed,
4318 # because if you are forcing this, then you _should_ know what
4319 # you are doing. [ Besides, package maintainers should never
4320 # have compiled x11 deps into libungif in the first place. ] )
4321 # </rant>
4322 # --Joey
4323 if test "$_force_gif" = yes && test "$_gif" = no ; then
4324 _gif=yes
4325 _ld_gif="-lgif"
4328 if test "$_gif" = yes ; then
4329 def_gif='#define CONFIG_GIF 1'
4330 codecmodules="gif $codecmodules"
4331 vomodules="gif89a $vomodules"
4332 res_comment="old version, some encoding functions disabled"
4333 def_gif_4='#undef CONFIG_GIF_4'
4334 extra_ldflags="$extra_ldflags $_ld_gif"
4336 cat > $TMPC << EOF
4337 #include <signal.h>
4338 #include <stdio.h>
4339 #include <stdlib.h>
4340 #include <gif_lib.h>
4341 static void catch(int sig) { exit(1); }
4342 int main(void) {
4343 signal(SIGSEGV, catch); // catch segfault
4344 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4345 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4346 return 0;
4349 if cc_check "$_ld_gif" ; then
4350 def_gif_4='#define CONFIG_GIF_4 1'
4351 res_comment=""
4353 else
4354 def_gif='#undef CONFIG_GIF'
4355 def_gif_4='#undef CONFIG_GIF_4'
4356 novomodules="gif89a $novomodules"
4357 nocodecmodules="gif $nocodecmodules"
4359 echores "$_gif"
4362 case "$_gif" in yes*)
4363 echocheck "broken giflib workaround"
4364 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4366 cat > $TMPC << EOF
4367 #include <stdio.h>
4368 #include <gif_lib.h>
4369 int main(void) {
4370 GifFileType gif = {.UserData = NULL};
4371 printf("UserData is at address %p\n", gif.UserData);
4372 return 0;
4375 if cc_check "$_ld_gif" ; then
4376 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4377 echores "disabled"
4378 else
4379 echores "enabled"
4382 esac
4385 echocheck "VESA support"
4386 if test "$_vesa" = auto ; then
4387 _vesa=no
4388 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4390 if test "$_vesa" = yes ; then
4391 def_vesa='#define CONFIG_VESA 1'
4392 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4393 vomodules="vesa $vomodules"
4394 else
4395 def_vesa='#undef CONFIG_VESA'
4396 novomodules="vesa $novomodules"
4398 echores "$_vesa"
4400 #################
4401 # VIDEO + AUDIO #
4402 #################
4405 echocheck "SDL"
4406 _inc_tmp=""
4407 _ld_tmp=""
4408 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4409 if test -z "$_sdlconfig" ; then
4410 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4411 _sdlconfig="sdl-config"
4412 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4413 _sdlconfig="sdl11-config"
4414 else
4415 _sdlconfig=false
4418 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4419 cat > $TMPC << EOF
4420 #ifdef CONFIG_SDL_SDL_H
4421 #include <SDL/SDL.h>
4422 #else
4423 #include <SDL.h>
4424 #endif
4425 #ifndef __APPLE__
4426 // we allow SDL hacking our main() only on OSX
4427 #undef main
4428 #endif
4429 int main(int argc, char *argv[]) {
4430 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4431 return 0;
4434 _sdl=no
4435 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4436 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4437 _sdl=yes
4438 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4439 break
4441 done
4442 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4443 res_comment="using $_sdlconfig"
4444 if cygwin ; then
4445 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4446 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4447 elif mingw32 ; then
4448 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4449 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4450 else
4451 _inc_tmp="$($_sdlconfig --cflags)"
4452 _ld_tmp="$($_sdlconfig --libs)"
4454 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4455 _sdl=yes
4456 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4457 # HACK for BeOS/Haiku SDL
4458 _ld_tmp="$_ld_tmp -lstdc++"
4459 _sdl=yes
4463 if test "$_sdl" = yes ; then
4464 def_sdl='#define CONFIG_SDL 1'
4465 extra_cflags="$extra_cflags $_inc_tmp"
4466 libs_mplayer="$libs_mplayer $_ld_tmp"
4467 vomodules="sdl $vomodules"
4468 aomodules="sdl $aomodules"
4469 else
4470 def_sdl='#undef CONFIG_SDL'
4471 novomodules="sdl $novomodules"
4472 noaomodules="sdl $noaomodules"
4474 echores "$_sdl"
4477 # make sure this stays below CoreVideo to avoid issues due to namespace
4478 # conflicts between -lGL and -framework OpenGL
4479 echocheck "OpenGL"
4480 #Note: this test is run even with --enable-gl since we autodetect linker flags
4481 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
4482 cat > $TMPC << EOF
4483 #ifdef GL_WIN32
4484 #include <windows.h>
4485 #include <GL/gl.h>
4486 #elif defined(GL_SDL)
4487 #include <GL/gl.h>
4488 #ifdef CONFIG_SDL_SDL_H
4489 #include <SDL/SDL.h>
4490 #else
4491 #include <SDL.h>
4492 #endif
4493 #ifndef __APPLE__
4494 // we allow SDL hacking our main() only on OSX
4495 #undef main
4496 #endif
4497 #else
4498 #include <GL/gl.h>
4499 #include <X11/Xlib.h>
4500 #include <GL/glx.h>
4501 #endif
4502 int main(int argc, char *argv[]) {
4503 #ifdef GL_WIN32
4504 HDC dc;
4505 wglCreateContext(dc);
4506 #elif defined(GL_SDL)
4507 SDL_GL_SwapBuffers();
4508 #else
4509 glXCreateContext(NULL, NULL, NULL, True);
4510 #endif
4511 glFinish();
4512 return 0;
4515 _gl=no
4516 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4517 if cc_check $_ld_tmp $_ld_lm ; then
4518 _gl=yes
4519 _gl_x11=yes
4520 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4521 break
4523 done
4524 if cc_check -DGL_WIN32 -lopengl32 ; then
4525 _gl=yes
4526 _gl_win32=yes
4527 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4529 # last so it can reuse any linker etc. flags detected before
4530 if test "$_sdl" = yes ; then
4531 if cc_check -DGL_SDL ||
4532 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4533 _gl=yes
4534 _gl_sdl=yes
4535 elif cc_check -DGL_SDL -lGL ||
4536 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4537 _gl=yes
4538 _gl_sdl=yes
4539 libs_mplayer="$libs_mplayer -lGL"
4542 else
4543 _gl=no
4545 if test "$_gl" = yes ; then
4546 def_gl='#define CONFIG_GL 1'
4547 res_comment="backends:"
4548 if test "$_gl_win32" = yes ; then
4549 def_gl_win32='#define CONFIG_GL_WIN32 1'
4550 res_comment="$res_comment win32"
4552 if test "$_gl_x11" = yes ; then
4553 def_gl_x11='#define CONFIG_GL_X11 1'
4554 res_comment="$res_comment x11"
4556 if test "$_gl_sdl" = yes ; then
4557 def_gl_sdl='#define CONFIG_GL_SDL 1'
4558 res_comment="$res_comment sdl"
4560 vomodules="opengl $vomodules"
4561 else
4562 def_gl='#undef CONFIG_GL'
4563 def_gl_win32='#undef CONFIG_GL_WIN32'
4564 def_gl_x11='#undef CONFIG_GL_X11'
4565 def_gl_sdl='#undef CONFIG_GL_SDL'
4566 novomodules="opengl $novomodules"
4568 echores "$_gl"
4571 if os2 ; then
4572 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4573 if test "$_kva" = auto; then
4574 _kva=no;
4575 header_check_broken os2.h kva.h -lkva && _kva=yes
4577 if test "$_kva" = yes ; then
4578 def_kva='#define CONFIG_KVA 1'
4579 libs_mplayer="$libs_mplayer -lkva"
4580 vomodules="kva $vomodules"
4581 else
4582 def_kva='#undef CONFIG_KVA'
4583 novomodules="kva $novomodules"
4585 echores "$_kva"
4586 fi #if os2
4589 if win32; then
4591 echocheck "Windows waveout"
4592 if test "$_win32waveout" = auto ; then
4593 _win32waveout=no
4594 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4596 if test "$_win32waveout" = yes ; then
4597 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4598 libs_mplayer="$libs_mplayer -lwinmm"
4599 aomodules="win32 $aomodules"
4600 else
4601 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4602 noaomodules="win32 $noaomodules"
4604 echores "$_win32waveout"
4606 echocheck "Direct3D"
4607 if test "$_direct3d" = auto ; then
4608 _direct3d=no
4609 header_check d3d9.h && _direct3d=yes
4611 if test "$_direct3d" = yes ; then
4612 def_direct3d='#define CONFIG_DIRECT3D 1'
4613 vomodules="direct3d $vomodules"
4614 else
4615 def_direct3d='#undef CONFIG_DIRECT3D'
4616 novomodules="direct3d $novomodules"
4618 echores "$_direct3d"
4620 echocheck "Directx"
4621 if test "$_directx" = auto ; then
4622 cat > $TMPC << EOF
4623 #include <ddraw.h>
4624 #include <dsound.h>
4625 int main(void) { return 0; }
4627 _directx=no
4628 cc_check -lgdi32 && _directx=yes
4630 if test "$_directx" = yes ; then
4631 def_directx='#define CONFIG_DIRECTX 1'
4632 libs_mplayer="$libs_mplayer -lgdi32"
4633 vomodules="directx $vomodules"
4634 aomodules="dsound $aomodules"
4635 else
4636 def_directx='#undef CONFIG_DIRECTX'
4637 novomodules="directx $novomodules"
4638 noaomodules="dsound $noaomodules"
4640 echores "$_directx"
4642 fi #if win32; then
4645 echocheck "DXR3/H+"
4646 if test "$_dxr3" = auto ; then
4647 _dxr3=no
4648 header_check linux/em8300.h && _dxr3=yes
4650 if test "$_dxr3" = yes ; then
4651 def_dxr3='#define CONFIG_DXR3 1'
4652 vomodules="dxr3 $vomodules"
4653 else
4654 def_dxr3='#undef CONFIG_DXR3'
4655 novomodules="dxr3 $novomodules"
4657 echores "$_dxr3"
4660 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4661 if test "$_ivtv" = auto ; then
4662 cat > $TMPC << EOF
4663 #include <sys/time.h>
4664 #include <linux/videodev2.h>
4665 #include <linux/ivtv.h>
4666 #include <sys/ioctl.h>
4667 int main(void) {
4668 struct ivtv_cfg_stop_decode sd;
4669 struct ivtv_cfg_start_decode sd1;
4670 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4671 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4672 return 0; }
4674 _ivtv=no
4675 cc_check && _ivtv=yes
4677 if test "$_ivtv" = yes ; then
4678 def_ivtv='#define CONFIG_IVTV 1'
4679 vomodules="ivtv $vomodules"
4680 aomodules="ivtv $aomodules"
4681 else
4682 def_ivtv='#undef CONFIG_IVTV'
4683 novomodules="ivtv $novomodules"
4684 noaomodules="ivtv $noaomodules"
4686 echores "$_ivtv"
4689 echocheck "V4L2 MPEG Decoder"
4690 if test "$_v4l2" = auto ; then
4691 cat > $TMPC << EOF
4692 #include <sys/time.h>
4693 #include <linux/videodev2.h>
4694 #include <linux/version.h>
4695 int main(void) {
4696 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4697 #error kernel headers too old, need 2.6.22
4698 #endif
4699 struct v4l2_ext_controls ctrls;
4700 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4701 return 0;
4704 _v4l2=no
4705 cc_check && _v4l2=yes
4707 if test "$_v4l2" = yes ; then
4708 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4709 vomodules="v4l2 $vomodules"
4710 aomodules="v4l2 $aomodules"
4711 else
4712 def_v4l2='#undef CONFIG_V4L2_DECODER'
4713 novomodules="v4l2 $novomodules"
4714 noaomodules="v4l2 $noaomodules"
4716 echores "$_v4l2"
4720 #########
4721 # AUDIO #
4722 #########
4725 echocheck "OSS Audio"
4726 if test "$_ossaudio" = auto ; then
4727 _ossaudio=no
4728 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4730 if test "$_ossaudio" = yes ; then
4731 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4732 aomodules="oss $aomodules"
4733 cat > $TMPC << EOF
4734 #include <$_soundcard_header>
4735 #ifdef OPEN_SOUND_SYSTEM
4736 int main(void) { return 0; }
4737 #else
4738 #error Not the real thing
4739 #endif
4741 _real_ossaudio=no
4742 cc_check && _real_ossaudio=yes
4743 if test "$_real_ossaudio" = yes; then
4744 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4745 # Check for OSS4 headers (override default headers)
4746 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4747 if test -f /etc/oss.conf; then
4748 . /etc/oss.conf
4749 _ossinc="$OSSLIBDIR/include"
4750 if test -f "$_ossinc/sys/soundcard.h"; then
4751 extra_cflags="-I$_ossinc $extra_cflags"
4754 elif netbsd || openbsd ; then
4755 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4756 extra_ldflags="$extra_ldflags -lossaudio"
4757 else
4758 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4760 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4761 else
4762 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4763 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4764 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4765 noaomodules="oss $noaomodules"
4767 echores "$_ossaudio"
4770 echocheck "aRts"
4771 if test "$_arts" = auto ; then
4772 _arts=no
4773 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4774 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4775 _arts=yes
4779 if test "$_arts" = yes ; then
4780 def_arts='#define CONFIG_ARTS 1'
4781 aomodules="arts $aomodules"
4782 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4783 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4784 else
4785 noaomodules="arts $noaomodules"
4787 echores "$_arts"
4790 echocheck "EsounD"
4791 if test "$_esd" = auto ; then
4792 _esd=no
4793 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4794 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4797 echores "$_esd"
4799 if test "$_esd" = yes ; then
4800 def_esd='#define CONFIG_ESD 1'
4801 aomodules="esd $aomodules"
4802 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4803 extra_cflags="$extra_cflags $(esd-config --cflags)"
4805 echocheck "esd_get_latency()"
4806 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4807 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4808 echores "$_esd_latency"
4809 else
4810 def_esd='#undef CONFIG_ESD'
4811 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4812 noaomodules="esd $noaomodules"
4815 echocheck "RSound"
4816 if test "$_rsound" = auto ; then
4817 _rsound=no
4818 statement_check rsound.h 'rsd_init(NULL);' -lrsound && _rsound=yes
4820 echores "$_rsound"
4822 if test "$_rsound" = yes ; then
4823 def_rsound='#define CONFIG_RSOUND 1'
4824 aomodules="rsound $aomodules"
4825 libs_mplayer="$libs_mplayer -lrsound"
4826 else
4827 def_rsound='#undef CONFIG_RSOUND'
4828 noaomodules="rsound $noaomodules"
4832 echocheck "NAS"
4833 if test "$_nas" = auto ; then
4834 _nas=no
4835 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4837 if test "$_nas" = yes ; then
4838 def_nas='#define CONFIG_NAS 1'
4839 libs_mplayer="$libs_mplayer -laudio -lXt"
4840 aomodules="nas $aomodules"
4841 else
4842 noaomodules="nas $noaomodules"
4843 def_nas='#undef CONFIG_NAS'
4845 echores "$_nas"
4848 echocheck "pulse"
4849 if test "$_pulse" = auto ; then
4850 _pulse=no
4851 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4852 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4853 _pulse=yes
4856 echores "$_pulse"
4858 if test "$_pulse" = yes ; then
4859 def_pulse='#define CONFIG_PULSE 1'
4860 aomodules="pulse $aomodules"
4861 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
4862 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
4863 else
4864 def_pulse='#undef CONFIG_PULSE'
4865 noaomodules="pulse $noaomodules"
4869 echocheck "JACK"
4870 if test "$_jack" = auto ; then
4871 _jack=yes
4872 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4873 libs_mplayer="$libs_mplayer -ljack"
4874 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
4875 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
4876 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
4877 else
4878 _jack=no
4882 if test "$_jack" = yes ; then
4883 def_jack='#define CONFIG_JACK 1'
4884 aomodules="jack $aomodules"
4885 else
4886 noaomodules="jack $noaomodules"
4888 echores "$_jack"
4890 echocheck "OpenAL"
4891 if test "$_openal" = auto ; then
4892 _openal=no
4893 cat > $TMPC << EOF
4894 #ifdef OPENAL_AL_H
4895 #include <OpenAL/al.h>
4896 #else
4897 #include <AL/al.h>
4898 #endif
4899 int main(void) {
4900 alSourceQueueBuffers(0, 0, 0);
4901 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4902 return 0;
4905 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4906 cc_check $I && _openal=yes && break
4907 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4908 done
4909 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4911 if test "$_openal" = yes ; then
4912 def_openal='#define CONFIG_OPENAL 1'
4913 aomodules="openal $aomodules"
4914 else
4915 noaomodules="openal $noaomodules"
4917 echores "$_openal"
4919 echocheck "ALSA audio"
4920 if test "$_alloca" != yes ; then
4921 _alsa=no
4922 res_comment="alloca missing"
4924 if test "$_alsa" != no ; then
4925 _alsa=no
4926 cat > $TMPC << EOF
4927 #include <sys/asoundlib.h>
4928 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4929 #error "alsa version != 0.5.x"
4930 #endif
4931 int main(void) { return 0; }
4933 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4935 cat > $TMPC << EOF
4936 #include <sys/asoundlib.h>
4937 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4938 #error "alsa version != 0.9.x"
4939 #endif
4940 int main(void) { return 0; }
4942 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4943 cat > $TMPC << EOF
4944 #include <alsa/asoundlib.h>
4945 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4946 #error "alsa version != 0.9.x"
4947 #endif
4948 int main(void) { return 0; }
4950 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4952 cat > $TMPC << EOF
4953 #include <sys/asoundlib.h>
4954 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4955 #error "alsa version != 1.0.x"
4956 #endif
4957 int main(void) { return 0; }
4959 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4960 cat > $TMPC << EOF
4961 #include <alsa/asoundlib.h>
4962 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4963 #error "alsa version != 1.0.x"
4964 #endif
4965 int main(void) { return 0; }
4967 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
4969 def_alsa='#undef CONFIG_ALSA'
4970 def_alsa5='#undef CONFIG_ALSA5'
4971 def_alsa9='#undef CONFIG_ALSA9'
4972 def_alsa1x='#undef CONFIG_ALSA1X'
4973 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4974 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4975 if test "$_alsaver" ; then
4976 _alsa=yes
4977 if test "$_alsaver" = '0.5.x' ; then
4978 _alsa5=yes
4979 aomodules="alsa5 $aomodules"
4980 def_alsa5='#define CONFIG_ALSA5 1'
4981 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4982 res_comment="using alsa 0.5.x and sys/asoundlib.h"
4983 elif test "$_alsaver" = '0.9.x-sys' ; then
4984 _alsa9=yes
4985 aomodules="alsa $aomodules"
4986 def_alsa='#define CONFIG_ALSA 1'
4987 def_alsa9='#define CONFIG_ALSA9 1'
4988 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4989 res_comment="using alsa 0.9.x and sys/asoundlib.h"
4990 elif test "$_alsaver" = '0.9.x-alsa' ; then
4991 _alsa9=yes
4992 aomodules="alsa $aomodules"
4993 def_alsa='#define CONFIG_ALSA 1'
4994 def_alsa9='#define CONFIG_ALSA9 1'
4995 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4996 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
4997 elif test "$_alsaver" = '1.0.x-sys' ; then
4998 _alsa1x=yes
4999 aomodules="alsa $aomodules"
5000 def_alsa='#define CONFIG_ALSA 1'
5001 def_alsa1x="#define CONFIG_ALSA1X 1"
5002 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5003 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5004 elif test "$_alsaver" = '1.0.x-alsa' ; then
5005 _alsa1x=yes
5006 aomodules="alsa $aomodules"
5007 def_alsa='#define CONFIG_ALSA 1'
5008 def_alsa1x="#define CONFIG_ALSA1X 1"
5009 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5010 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5011 else
5012 _alsa=no
5013 res_comment="unknown version"
5015 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5016 else
5017 noaomodules="alsa $noaomodules"
5019 echores "$_alsa"
5022 echocheck "Sun audio"
5023 if test "$_sunaudio" = auto ; then
5024 cat > $TMPC << EOF
5025 #include <sys/types.h>
5026 #include <sys/audioio.h>
5027 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5029 _sunaudio=no
5030 cc_check && _sunaudio=yes
5032 if test "$_sunaudio" = yes ; then
5033 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5034 aomodules="sun $aomodules"
5035 else
5036 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5037 noaomodules="sun $noaomodules"
5039 echores "$_sunaudio"
5042 if darwin; then
5043 echocheck "CoreAudio"
5044 if test "$_coreaudio" = auto ; then
5045 cat > $TMPC <<EOF
5046 #include <CoreAudio/CoreAudio.h>
5047 #include <AudioToolbox/AudioToolbox.h>
5048 #include <AudioUnit/AudioUnit.h>
5049 int main(void) { return 0; }
5051 _coreaudio=no
5052 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5054 if test "$_coreaudio" = yes ; then
5055 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5056 def_coreaudio='#define CONFIG_COREAUDIO 1'
5057 aomodules="coreaudio $aomodules"
5058 else
5059 def_coreaudio='#undef CONFIG_COREAUDIO'
5060 noaomodules="coreaudio $noaomodules"
5062 echores $_coreaudio
5063 fi #if darwin
5066 if irix; then
5067 echocheck "SGI audio"
5068 if test "$_sgiaudio" = auto ; then
5069 _sgiaudio=no
5070 header_check dmedia/audio.h && _sgiaudio=yes
5072 if test "$_sgiaudio" = "yes" ; then
5073 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5074 libs_mplayer="$libs_mplayer -laudio"
5075 aomodules="sgi $aomodules"
5076 else
5077 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5078 noaomodules="sgi $noaomodules"
5080 echores "$_sgiaudio"
5081 fi #if irix
5084 if os2 ; then
5085 echocheck "KAI (UNIAUD/DART)"
5086 if test "$_kai" = auto; then
5087 _kai=no;
5088 header_check_broken os2.h kai.h -lkai && _kai=yes
5090 if test "$_kai" = yes ; then
5091 def_kai='#define CONFIG_KAI 1'
5092 libs_mplayer="$libs_mplayer -lkai"
5093 aomodules="kai $aomodules"
5094 else
5095 def_kai='#undef CONFIG_KAI'
5096 noaomodules="kai $noaomodules"
5098 echores "$_kai"
5100 echocheck "DART"
5101 if test "$_dart" = auto; then
5102 _dart=no;
5103 header_check_broken os2.h dart.h -ldart && _dart=yes
5105 if test "$_dart" = yes ; then
5106 def_dart='#define CONFIG_DART 1'
5107 libs_mplayer="$libs_mplayer -ldart"
5108 aomodules="dart $aomodules"
5109 else
5110 def_dart='#undef CONFIG_DART'
5111 noaomodules="dart $noaomodules"
5113 echores "$_dart"
5114 fi #if os2
5117 # set default CD/DVD devices
5118 if win32 || os2 ; then
5119 default_cdrom_device="D:"
5120 elif darwin ; then
5121 default_cdrom_device="/dev/disk1"
5122 elif dragonfly ; then
5123 default_cdrom_device="/dev/cd0"
5124 elif freebsd ; then
5125 default_cdrom_device="/dev/acd0"
5126 elif openbsd ; then
5127 default_cdrom_device="/dev/rcd0c"
5128 elif sunos ; then
5129 default_cdrom_device="/vol/dev/aliases/cdrom0"
5130 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5131 # file system and the volfs service.
5132 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5133 elif amigaos ; then
5134 default_cdrom_device="a1ide.device:2"
5135 else
5136 default_cdrom_device="/dev/cdrom"
5139 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5140 default_dvd_device=$default_cdrom_device
5141 elif darwin ; then
5142 default_dvd_device="/dev/rdiskN"
5143 else
5144 default_dvd_device="/dev/dvd"
5148 echocheck "VCD support"
5149 if test "$_vcd" = auto; then
5150 _vcd=no
5151 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5152 _vcd=yes
5153 elif mingw32; then
5154 header_check ddk/ntddcdrm.h && _vcd=yes
5157 if test "$_vcd" = yes; then
5158 inputmodules="vcd $inputmodules"
5159 def_vcd='#define CONFIG_VCD 1'
5160 else
5161 def_vcd='#undef CONFIG_VCD'
5162 noinputmodules="vcd $noinputmodules"
5163 res_comment="not supported on this OS"
5165 echores "$_vcd"
5169 echocheck "Blu-ray support"
5170 if test "$_bluray" = auto ; then
5171 _bluray=no
5172 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0, 0)' -lbluray && _bluray=yes
5174 if test "$_bluray" = yes ; then
5175 def_bluray='#define CONFIG_LIBBLURAY 1'
5176 extra_ldflags="$extra_ldflags -lbluray"
5177 inputmodules="bluray $inputmodules"
5178 else
5179 def_bluray='#undef CONFIG_LIBBLURAY'
5180 noinputmodules="bluray $noinputmodules"
5182 echores "$_bluray"
5184 echocheck "dvdread"
5185 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5186 _dvdread_internal=no
5188 if test "$_dvdread_internal" = auto ; then
5189 _dvdread_internal=no
5190 _dvdread=no
5191 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5192 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5193 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5194 darwin || win32 || os2; then
5195 _dvdread_internal=yes
5196 _dvdread=yes
5197 extra_cflags="-Ilibdvdread4 $extra_cflags"
5199 elif test "$_dvdread" = auto ; then
5200 _dvdread=no
5201 if test "$_dl" = yes; then
5202 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5203 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5204 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5205 _dvdread=yes
5206 extra_cflags="$extra_cflags $_dvdreadcflags"
5207 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5208 res_comment="external"
5213 if test "$_dvdread_internal" = yes; then
5214 def_dvdread='#define CONFIG_DVDREAD 1'
5215 inputmodules="dvdread(internal) $inputmodules"
5216 res_comment="internal"
5217 elif test "$_dvdread" = yes; then
5218 def_dvdread='#define CONFIG_DVDREAD 1'
5219 extra_ldflags="$extra_ldflags -ldvdread"
5220 inputmodules="dvdread(external) $inputmodules"
5221 res_comment="external"
5222 else
5223 def_dvdread='#undef CONFIG_DVDREAD'
5224 noinputmodules="dvdread $noinputmodules"
5226 echores "$_dvdread"
5229 echocheck "internal libdvdcss"
5230 if test "$_libdvdcss_internal" = auto ; then
5231 _libdvdcss_internal=no
5232 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5233 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5235 if test "$_libdvdcss_internal" = yes ; then
5236 if linux || netbsd || openbsd || bsdos ; then
5237 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5238 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5239 elif freebsd || dragonfly ; then
5240 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5241 elif darwin ; then
5242 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5243 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5244 elif cygwin ; then
5245 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5246 elif beos ; then
5247 cflags_libdvdcss="-DSYS_BEOS"
5248 elif os2 ; then
5249 cflags_libdvdcss="-DSYS_OS2"
5251 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5252 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5253 inputmodules="libdvdcss(internal) $inputmodules"
5254 else
5255 noinputmodules="libdvdcss(internal) $noinputmodules"
5257 echores "$_libdvdcss_internal"
5260 echocheck "cdparanoia"
5261 if test "$_cdparanoia" = auto ; then
5262 cat > $TMPC <<EOF
5263 #include <cdda_interface.h>
5264 #include <cdda_paranoia.h>
5265 // This need a better test. How ?
5266 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5268 _cdparanoia=no
5269 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5270 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5271 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5272 done
5274 if test "$_cdparanoia" = yes ; then
5275 _cdda='yes'
5276 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5277 openbsd && extra_ldflags="$extra_ldflags -lutil"
5279 echores "$_cdparanoia"
5282 echocheck "libcdio"
5283 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5284 cat > $TMPC << EOF
5285 #include <stdio.h>
5286 #include <cdio/version.h>
5287 #include <cdio/cdda.h>
5288 #include <cdio/paranoia.h>
5289 int main(void) {
5290 void *test = cdda_verbose_set;
5291 printf("%s\n", CDIO_VERSION);
5292 return test == (void *)1;
5295 _libcdio=no
5296 for _ld_tmp in "" "-lwinmm" ; do
5297 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5298 cc_check $_ld_tmp $_ld_lm && _libcdio=yes &&
5299 extra_ldflags="$extra_ldflags $_ld_tmp" && break
5300 done
5301 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5302 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5303 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5304 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes &&
5305 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5308 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5309 _cdda='yes'
5310 def_libcdio='#define CONFIG_LIBCDIO 1'
5311 def_havelibcdio='yes'
5312 else
5313 _libcdio=no
5314 if test "$_cdparanoia" = yes ; then
5315 res_comment="using cdparanoia"
5317 def_libcdio='#undef CONFIG_LIBCDIO'
5318 def_havelibcdio='no'
5320 echores "$_libcdio"
5322 if test "$_cdda" = yes ; then
5323 test $_cddb = auto && test $networking = yes && _cddb=yes
5324 def_cdparanoia='#define CONFIG_CDDA 1'
5325 inputmodules="cdda $inputmodules"
5326 else
5327 def_cdparanoia='#undef CONFIG_CDDA'
5328 noinputmodules="cdda $noinputmodules"
5331 if test "$_cddb" = yes ; then
5332 def_cddb='#define CONFIG_CDDB 1'
5333 inputmodules="cddb $inputmodules"
5334 else
5335 _cddb=no
5336 def_cddb='#undef CONFIG_CDDB'
5337 noinputmodules="cddb $noinputmodules"
5340 echocheck "bitmap font support"
5341 if test "$_bitmap_font" = yes ; then
5342 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5343 else
5344 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5346 echores "$_bitmap_font"
5349 echocheck "freetype >= 2.0.9"
5351 # freetype depends on iconv
5352 if test "$_iconv" = no ; then
5353 _freetype=no
5354 res_comment="iconv support needed"
5357 if test "$_freetype" = auto ; then
5358 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5359 cat > $TMPC << EOF
5360 #include <stdio.h>
5361 #include <ft2build.h>
5362 #include FT_FREETYPE_H
5363 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5364 #error "Need FreeType 2.0.9 or newer"
5365 #endif
5366 int main(void) {
5367 FT_Library library;
5368 FT_Init_FreeType(&library);
5369 return 0;
5372 _freetype=no
5373 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5374 else
5375 _freetype=no
5377 if test "$_freetype" != yes ; then
5378 die "Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5381 if test "$_freetype" = yes ; then
5382 def_freetype='#define CONFIG_FREETYPE 1'
5383 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5384 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5385 else
5386 def_freetype='#undef CONFIG_FREETYPE'
5388 echores "$_freetype"
5390 if test "$_freetype" = no ; then
5391 _fontconfig=no
5392 res_comment="FreeType support needed"
5394 echocheck "fontconfig"
5395 if test "$_fontconfig" = auto ; then
5396 cat > $TMPC << EOF
5397 #include <stdio.h>
5398 #include <stdlib.h>
5399 #include <fontconfig/fontconfig.h>
5400 #if FC_VERSION < 20402
5401 #error At least version 2.4.2 of fontconfig required
5402 #endif
5403 int main(void) {
5404 int err = FcInit();
5405 if (err == FcFalse) {
5406 printf("Couldn't initialize fontconfig lib\n");
5407 exit(err);
5409 return 0;
5412 _fontconfig=no
5413 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5414 _ld_tmp="-lfontconfig $_ld_tmp"
5415 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5416 done
5417 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5418 _inc_tmp=$($_pkg_config --cflags fontconfig)
5419 _ld_tmp=$($_pkg_config --libs fontconfig)
5420 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes &&
5421 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5423 if test "$_fontconfig" != yes ; then
5424 die "Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5427 if test "$_fontconfig" = yes ; then
5428 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5429 else
5430 def_fontconfig='#undef CONFIG_FONTCONFIG'
5432 echores "$_fontconfig"
5435 echocheck "SSA/ASS support"
5436 if test "$_ass" = auto -o "$_ass" = yes ; then
5437 if $_pkg_config libass; then
5438 _ass=yes
5439 def_ass='#define CONFIG_ASS 1'
5440 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5441 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5442 else
5443 die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5445 else
5446 def_ass='#undef CONFIG_ASS'
5448 echores "$_ass"
5451 echocheck "fribidi with charsets"
5452 _inc_tmp=""
5453 _ld_tmp=""
5454 if test "$_fribidi" = auto ; then
5455 cat > $TMPC << EOF
5456 #include <stdlib.h>
5457 /* workaround for fribidi 0.10.4 and below */
5458 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5459 #include <fribidi/fribidi.h>
5460 int main(void) {
5461 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5462 exit(1);
5463 return 0;
5466 _fribidi=no
5467 _inc_tmp=""
5468 _ld_tmp="-lfribidi"
5469 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5470 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5471 test "$_fribidi" = no ; then
5472 _inc_tmp="$($_pkg_config --cflags)"
5473 _ld_tmp="$($_pkg_config --libs)"
5474 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5477 if test "$_fribidi" = yes ; then
5478 def_fribidi='#define CONFIG_FRIBIDI 1'
5479 extra_cflags="$extra_cflags $_inc_tmp"
5480 extra_ldflags="$extra_ldflags $_ld_tmp"
5481 else
5482 def_fribidi='#undef CONFIG_FRIBIDI'
5484 echores "$_fribidi"
5487 echocheck "ENCA"
5488 if test "$_enca" = auto ; then
5489 _enca=no
5490 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5492 if test "$_enca" = yes ; then
5493 def_enca='#define CONFIG_ENCA 1'
5494 extra_ldflags="$extra_ldflags -lenca"
5495 else
5496 def_enca='#undef CONFIG_ENCA'
5498 echores "$_enca"
5501 echocheck "zlib"
5502 _zlib=no
5503 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5504 if test "$_zlib" = yes ; then
5505 def_zlib='#define CONFIG_ZLIB 1'
5506 extra_ldflags="$extra_ldflags -lz"
5507 else
5508 def_zlib='#define CONFIG_ZLIB 0'
5510 echores "$_zlib"
5513 echocheck "RTC"
5514 if test "$_rtc" = auto ; then
5515 cat > $TMPC << EOF
5516 #include <sys/ioctl.h>
5517 #ifdef __linux__
5518 #include <linux/rtc.h>
5519 #else
5520 #include <rtc.h>
5521 #define RTC_PIE_ON RTCIO_PIE_ON
5522 #endif
5523 int main(void) { return RTC_PIE_ON; }
5525 _rtc=no
5526 cc_check && _rtc=yes
5527 ppc && _rtc=no
5529 if test "$_rtc" = yes ; then
5530 def_rtc='#define HAVE_RTC 1'
5531 else
5532 def_rtc='#undef HAVE_RTC'
5534 echores "$_rtc"
5537 echocheck "mad support"
5538 if test "$_mad" = auto ; then
5539 _mad=no
5540 header_check mad.h -lmad && _mad=yes
5542 if test "$_mad" = yes ; then
5543 def_mad='#define CONFIG_LIBMAD 1'
5544 extra_ldflags="$extra_ldflags -lmad"
5545 codecmodules="libmad $codecmodules"
5546 else
5547 def_mad='#undef CONFIG_LIBMAD'
5548 nocodecmodules="libmad $nocodecmodules"
5550 echores "$_mad"
5552 echocheck "OggVorbis support"
5553 if test "$_libvorbis" = auto; then
5554 _libvorbis=no
5555 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5556 elif test "$_libvorbis" = yes ; then
5557 _tremor=no
5559 if test "$_tremor" = auto; then
5560 _tremor=no
5561 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5563 if test "$_tremor" = yes ; then
5564 _vorbis=yes
5565 def_vorbis='#define CONFIG_OGGVORBIS 1'
5566 def_tremor='#define CONFIG_TREMOR 1'
5567 codecmodules="tremor(external) $codecmodules"
5568 res_comment="external Tremor"
5569 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5570 elif test "$_libvorbis" = yes ; then
5571 _vorbis=yes
5572 def_vorbis='#define CONFIG_OGGVORBIS 1'
5573 codecmodules="libvorbis $codecmodules"
5574 res_comment="libvorbis"
5575 extra_ldflags="$extra_ldflags -lvorbis -logg"
5576 else
5577 _vorbis=no
5578 nocodecmodules="libvorbis $nocodecmodules"
5580 echores "$_vorbis"
5582 echocheck "libspeex (version >= 1.1 required)"
5583 if test "$_speex" = auto ; then
5584 _speex=no
5585 cat > $TMPC << EOF
5586 #include <stddef.h>
5587 #include <speex/speex.h>
5588 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5590 cc_check -lspeex $_ld_lm && _speex=yes
5592 if test "$_speex" = yes ; then
5593 def_speex='#define CONFIG_SPEEX 1'
5594 extra_ldflags="$extra_ldflags -lspeex"
5595 codecmodules="speex $codecmodules"
5596 else
5597 def_speex='#undef CONFIG_SPEEX'
5598 nocodecmodules="speex $nocodecmodules"
5600 echores "$_speex"
5602 echocheck "OggTheora support"
5603 if test "$_theora" = auto ; then
5604 _theora=no
5605 cat > $TMPC << EOF
5606 #include <theora/theora.h>
5607 #include <string.h>
5608 int main(void) {
5609 /* Theora is in flux, make sure that all interface routines and datatypes
5610 * exist and work the way we expect it, so we don't break MPlayer. */
5611 ogg_packet op;
5612 theora_comment tc;
5613 theora_info inf;
5614 theora_state st;
5615 yuv_buffer yuv;
5616 int r;
5617 double t;
5619 theora_info_init(&inf);
5620 theora_comment_init(&tc);
5622 return 0;
5624 /* we don't want to execute this kind of nonsense; just for making sure
5625 * that compilation works... */
5626 memset(&op, 0, sizeof(op));
5627 r = theora_decode_header(&inf, &tc, &op);
5628 r = theora_decode_init(&st, &inf);
5629 t = theora_granule_time(&st, op.granulepos);
5630 r = theora_decode_packetin(&st, &op);
5631 r = theora_decode_YUVout(&st, &yuv);
5632 theora_clear(&st);
5634 return 0;
5637 _ld_theora=$($_pkg_config --silence-errors --libs theora)
5638 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
5639 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
5640 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
5641 if test _theora = no; then
5642 _ld_theora="-ltheora -logg"
5643 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
5646 if test "$_theora" = yes ; then
5647 def_theora='#define CONFIG_OGGTHEORA 1'
5648 codecmodules="libtheora $codecmodules"
5649 # when --enable-theora is forced, we'd better provide a probably sane
5650 # $_ld_theora than nothing
5651 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
5652 else
5653 def_theora='#undef CONFIG_OGGTHEORA'
5654 nocodecmodules="libtheora $nocodecmodules"
5656 echores "$_theora"
5658 # Any version of libmpg123 shall be fine.
5659 echocheck "mpg123 support"
5660 def_mpg123='#undef CONFIG_MPG123'
5661 if test "$_mpg123" = auto; then
5662 _mpg123=no
5663 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5665 if test "$_mpg123" = yes ; then
5666 def_mpg123='#define CONFIG_MPG123 1'
5667 codecmodules="mpg123 $codecmodules"
5668 else
5669 nocodecmodules="mpg123 $nocodecmodules"
5671 echores "$_mpg123"
5673 echocheck "liba52 support"
5674 def_liba52='#undef CONFIG_LIBA52'
5675 if test "$_liba52" = auto ; then
5676 _liba52=no
5677 cat > $TMPC << EOF
5678 #include <inttypes.h>
5679 #include <a52dec/a52.h>
5680 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5682 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5684 if test "$_liba52" = yes ; then
5685 def_liba52='#define CONFIG_LIBA52 1'
5686 codecmodules="liba52 $codecmodules"
5687 else
5688 nocodecmodules="liba52 $nocodecmodules"
5690 echores "$_liba52"
5692 echocheck "libdca support"
5693 if test "$_libdca" = auto ; then
5694 _libdca=no
5695 for _ld_dca in -ldca -ldts ; do
5696 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5697 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5698 done
5700 if test "$_libdca" = yes ; then
5701 def_libdca='#define CONFIG_LIBDCA 1'
5702 codecmodules="libdca $codecmodules"
5703 else
5704 def_libdca='#undef CONFIG_LIBDCA'
5705 nocodecmodules="libdca $nocodecmodules"
5707 echores "$_libdca"
5709 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5710 if test "$_musepack" = yes ; then
5711 _musepack=no
5712 cat > $TMPC << EOF
5713 #include <stddef.h>
5714 #include <mpcdec/mpcdec.h>
5715 int main(void) {
5716 mpc_streaminfo info;
5717 mpc_decoder decoder;
5718 mpc_decoder_set_streaminfo(&decoder, &info);
5719 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5720 return 0;
5723 cc_check -lmpcdec $_ld_lm && _musepack=yes
5725 if test "$_musepack" = yes ; then
5726 def_musepack='#define CONFIG_MUSEPACK 1'
5727 extra_ldflags="$extra_ldflags -lmpcdec"
5728 codecmodules="musepack $codecmodules"
5729 else
5730 def_musepack='#undef CONFIG_MUSEPACK'
5731 nocodecmodules="musepack $nocodecmodules"
5733 echores "$_musepack"
5736 echocheck "FAAD2 support"
5737 if test "$_faad" = auto ; then
5738 _faad=no
5739 cat > $TMPC << EOF
5740 #include <faad.h>
5741 #ifndef FAAD_MIN_STREAMSIZE
5742 #error Too old version
5743 #endif
5744 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5745 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5747 cc_check -lfaad $_ld_lm && _faad=yes
5750 def_faad='#undef CONFIG_FAAD'
5751 if test "$_faad" = yes ; then
5752 def_faad='#define CONFIG_FAAD 1'
5753 extra_ldflags="$extra_ldflags -lfaad"
5754 codecmodules="faad2 $codecmodules"
5755 else
5756 nocodecmodules="faad2 $nocodecmodules"
5758 echores "$_faad"
5761 echocheck "LADSPA plugin support"
5762 if test "$_ladspa" = auto ; then
5763 _ladspa=no
5764 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5766 if test "$_ladspa" = yes; then
5767 def_ladspa="#define CONFIG_LADSPA 1"
5768 else
5769 def_ladspa="#undef CONFIG_LADSPA"
5771 echores "$_ladspa"
5774 echocheck "libbs2b audio filter support"
5775 if test "$_libbs2b" = auto ; then
5776 cat > $TMPC <<EOF
5777 #include <bs2b.h>
5778 #if BS2B_VERSION_MAJOR < 3
5779 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5780 #endif
5781 int main(void) {
5782 t_bs2bdp filter;
5783 filter=bs2b_open();
5784 bs2b_close(filter);
5785 return 0;
5788 _libbs2b=no
5789 if $_pkg_config --exists libbs2b ; then
5790 _inc_tmp=$($_pkg_config --cflags libbs2b)
5791 _ld_tmp=$($_pkg_config --libs libbs2b)
5792 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
5793 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
5794 else
5795 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
5796 -I/usr/local/include/bs2b ; do
5797 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
5798 extra_ldflags="$extra_ldflags -lbs2b"
5799 extra_cflags="$extra_cflags $_inc_tmp"
5800 _libbs2b=yes
5801 break
5803 done
5806 def_libbs2b="#undef CONFIG_LIBBS2B"
5807 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5808 echores "$_libbs2b"
5811 if test -z "$_codecsdir" ; then
5812 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5813 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5814 if test -d "$dir" ; then
5815 _codecsdir="$dir"
5816 break;
5818 done
5820 # Fall back on default directory.
5821 if test -z "$_codecsdir" ; then
5822 _codecsdir="$_libdir/codecs"
5823 mingw32 || os2 && _codecsdir="codecs"
5827 echocheck "Win32 codecs"
5828 if test "$_win32dll" = auto ; then
5829 _win32dll=no
5830 if x86_32 && ! qnx; then
5831 _win32dll=yes
5834 if test "$_win32dll" = yes ; then
5835 def_win32dll='#define CONFIG_WIN32DLL 1'
5836 if ! win32 ; then
5837 def_win32_loader='#define WIN32_LOADER 1'
5838 _win32_emulation=yes
5839 else
5840 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5841 res_comment="using native windows"
5843 codecmodules="win32 $codecmodules"
5844 else
5845 def_win32dll='#undef CONFIG_WIN32DLL'
5846 def_win32_loader='#undef WIN32_LOADER'
5847 nocodecmodules="win32 $nocodecmodules"
5849 echores "$_win32dll"
5852 echocheck "XAnim codecs"
5853 if test "$_xanim" = auto ; then
5854 _xanim=no
5855 res_comment="dynamic loader support needed"
5856 if test "$_dl" = yes ; then
5857 _xanim=yes
5860 if test "$_xanim" = yes ; then
5861 def_xanim='#define CONFIG_XANIM 1'
5862 codecmodules="xanim $codecmodules"
5863 else
5864 def_xanim='#undef CONFIG_XANIM'
5865 nocodecmodules="xanim $nocodecmodules"
5867 echores "$_xanim"
5870 echocheck "RealPlayer codecs"
5871 if test "$_real" = auto ; then
5872 _real=no
5873 res_comment="dynamic loader support needed"
5874 if test "$_dl" = yes || test "$_win32dll" = yes &&
5875 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
5876 _real=yes
5879 if test "$_real" = yes ; then
5880 def_real='#define CONFIG_REALCODECS 1'
5881 codecmodules="real $codecmodules"
5882 else
5883 def_real='#undef CONFIG_REALCODECS'
5884 nocodecmodules="real $nocodecmodules"
5886 echores "$_real"
5889 echocheck "QuickTime codecs"
5890 _qtx_emulation=no
5891 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5892 if test "$_qtx" = auto ; then
5893 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5895 if test "$_qtx" = yes ; then
5896 def_qtx='#define CONFIG_QTX_CODECS 1'
5897 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5898 codecmodules="qtx $codecmodules"
5899 darwin || win32 || _qtx_emulation=yes
5900 else
5901 def_qtx='#undef CONFIG_QTX_CODECS'
5902 nocodecmodules="qtx $nocodecmodules"
5904 echores "$_qtx"
5906 echocheck "Nemesi Streaming Media libraries"
5907 if test "$_nemesi" = auto && test "$networking" = yes ; then
5908 _nemesi=no
5909 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
5910 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
5911 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
5912 _nemesi=yes
5915 if test "$_nemesi" = yes; then
5916 _native_rtsp=no
5917 def_nemesi='#define CONFIG_LIBNEMESI 1'
5918 inputmodules="nemesi $inputmodules"
5919 else
5920 _native_rtsp="$networking"
5921 _nemesi=no
5922 def_nemesi='#undef CONFIG_LIBNEMESI'
5923 noinputmodules="nemesi $noinputmodules"
5925 echores "$_nemesi"
5927 echocheck "LIVE555 Streaming Media libraries"
5928 if test "$_live" = auto && test "$networking" = yes ; then
5929 cat > $TMPCPP << EOF
5930 #include <liveMedia.hh>
5931 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5932 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5933 #endif
5934 int main(void) { return 0; }
5937 _live=no
5938 for I in $extra_cflags "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/lib64/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
5939 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
5940 _livelibdir=$(echo $I| sed s/-I//) &&
5941 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
5942 $_livelibdir/groupsock/libgroupsock.a \
5943 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5944 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5945 $extra_ldflags -lstdc++" \
5946 extra_cxxflags="-I$_livelibdir/liveMedia/include \
5947 -I$_livelibdir/UsageEnvironment/include \
5948 -I$_livelibdir/BasicUsageEnvironment/include \
5949 -I$_livelibdir/groupsock/include" &&
5950 _live=yes && break
5951 done
5952 if test "$_live" != yes ; then
5953 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5954 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
5955 _live_dist=yes
5959 if test "$_live" = yes && test "$networking" = yes; then
5960 test $_livelibdir && res_comment="using $_livelibdir"
5961 def_live='#define CONFIG_LIVE555 1'
5962 inputmodules="live555 $inputmodules"
5963 elif test "$_live_dist" = yes && test "$networking" = yes; then
5964 res_comment="using distribution version"
5965 _live="yes"
5966 def_live='#define CONFIG_LIVE555 1'
5967 extra_ldflags="$extra_ldflags $ld_tmp"
5968 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5969 inputmodules="live555 $inputmodules"
5970 else
5971 _live=no
5972 def_live='#undef CONFIG_LIVE555'
5973 noinputmodules="live555 $noinputmodules"
5975 echores "$_live"
5979 all_libav_libs="libavutil libavcodec libavformat libswscale libpostproc"
5980 echocheck "Libav ($all_libav_libs)"
5981 if test "$ffmpeg" = auto ; then
5982 ffmpeg=no
5983 if $_pkg_config --exists --print-errors $all_libav_libs ; then
5984 inc_ffmpeg=$($_pkg_config --cflags $all_libav_libs)
5985 _ld_tmp=$($_pkg_config --libs $all_libav_libs)
5986 extra_ldflags="$extra_ldflags $_ld_tmp"
5987 extra_cflags="$extra_cflags $inc_ffmpeg"
5988 ffmpeg=yes
5989 elif header_check libavutil/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
5990 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
5991 ffmpeg=yes
5992 else
5993 die "Unable to find development files for some of the Libav libraries above. Aborting. If you really mean to compile without Libav support use --disable-libav."
5997 ffmpeg_eval_api=no
5998 def_ffmpeg_eval_api="#undef CONFIG_FFMPEG_EVAL_API"
5999 if test "$ffmpeg" = yes; then
6000 def_ffmpeg='#define CONFIG_FFMPEG 1'
6001 codecmodules="ffmpeg $codecmodules"
6002 if $_pkg_config --atleast-version=50.33.0 libavutil ; then
6003 ffmpeg_eval_api=yes
6004 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6006 else
6007 def_ffmpeg='#undef CONFIG_FFMPEG'
6008 nocodecmodules="ffmpeg $nocodecmodules"
6010 echores "$ffmpeg"
6012 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6013 if ! test -z "$_ffmpeg_source" ; then
6014 test "$ffmpeg" = yes && def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6019 echocheck "libdv-0.9.5+"
6020 if test "$_libdv" = auto ; then
6021 _libdv=no
6022 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6024 if test "$_libdv" = yes ; then
6025 def_libdv='#define CONFIG_LIBDV095 1'
6026 extra_ldflags="$extra_ldflags -ldv"
6027 codecmodules="libdv $codecmodules"
6028 else
6029 def_libdv='#undef CONFIG_LIBDV095'
6030 nocodecmodules="libdv $nocodecmodules"
6032 echores "$_libdv"
6035 echocheck "Xvid"
6036 if test "$_xvid" = auto ; then
6037 _xvid=no
6038 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6039 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6040 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6041 done
6044 if test "$_xvid" = yes ; then
6045 def_xvid='#define CONFIG_XVID4 1'
6046 codecmodules="xvid $codecmodules"
6047 else
6048 def_xvid='#undef CONFIG_XVID4'
6049 nocodecmodules="xvid $nocodecmodules"
6051 echores "$_xvid"
6054 echocheck "libnut"
6055 if test "$_libnut" = auto ; then
6056 _libnut=no
6057 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
6060 if test "$_libnut" = yes ; then
6061 def_libnut='#define CONFIG_LIBNUT 1'
6062 extra_ldflags="$extra_ldflags -lnut"
6063 else
6064 def_libnut='#undef CONFIG_LIBNUT'
6066 echores "$_libnut"
6068 # These VO checks must be done after the FFmpeg one
6069 echocheck "/dev/mga_vid"
6070 if test "$_mga" = auto ; then
6071 _mga=no
6072 test -c /dev/mga_vid && _mga=yes
6074 if test "$_mga" = yes ; then
6075 def_mga='#define CONFIG_MGA 1'
6076 vomodules="mga $vomodules"
6077 else
6078 def_mga='#undef CONFIG_MGA'
6079 novomodules="mga $novomodules"
6081 echores "$_mga"
6084 echocheck "xmga"
6085 if test "$_xmga" = auto ; then
6086 _xmga=no
6087 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6089 if test "$_xmga" = yes ; then
6090 def_xmga='#define CONFIG_XMGA 1'
6091 vomodules="xmga $vomodules"
6092 else
6093 def_xmga='#undef CONFIG_XMGA'
6094 novomodules="xmga $novomodules"
6096 echores "$_xmga"
6099 echocheck "UnRAR executable"
6100 if test "$_unrar_exec" = auto ; then
6101 _unrar_exec="yes"
6102 mingw32 && _unrar_exec="no"
6104 if test "$_unrar_exec" = yes ; then
6105 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6106 else
6107 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6109 echores "$_unrar_exec"
6111 echocheck "TV interface"
6112 if test "$_tv" = yes ; then
6113 def_tv='#define CONFIG_TV 1'
6114 inputmodules="tv $inputmodules"
6115 else
6116 noinputmodules="tv $noinputmodules"
6117 def_tv='#undef CONFIG_TV'
6119 echores "$_tv"
6122 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6123 echocheck "*BSD BT848 bt8xx header"
6124 _ioctl_bt848_h=no
6125 for file in "machine/ioctl_bt848.h" \
6126 "dev/bktr/ioctl_bt848.h" \
6127 "dev/video/bktr/ioctl_bt848.h" \
6128 "dev/ic/bt8xx.h" ; do
6129 cat > $TMPC <<EOF
6130 #include <sys/types.h>
6131 #include <sys/ioctl.h>
6132 #include <$file>
6133 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6135 if cc_check ; then
6136 _ioctl_bt848_h=yes
6137 _ioctl_bt848_h_name="$file"
6138 break;
6140 done
6141 if test "$_ioctl_bt848_h" = yes ; then
6142 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6143 res_comment="using $_ioctl_bt848_h_name"
6144 else
6145 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6147 echores "$_ioctl_bt848_h"
6149 echocheck "*BSD ioctl_meteor.h"
6150 _ioctl_meteor_h=no
6151 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6152 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6153 _ioctl_meteor_h=yes && break
6154 done
6155 if test "$_ioctl_meteor_h" = yes ; then
6156 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6157 res_comment="using $ioctl_meteor_h_path"
6158 else
6159 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6161 echores "$_ioctl_meteor_h"
6163 echocheck "*BSD BrookTree 848 TV interface"
6164 if test "$_tv_bsdbt848" = auto ; then
6165 _tv_bsdbt848=no
6166 if test "$_tv" = yes ; then
6167 cat > $TMPC <<EOF
6168 #include <sys/types.h>
6169 $def_ioctl_meteor_h_name
6170 $def_ioctl_bt848_h_name
6171 #ifdef IOCTL_METEOR_H_NAME
6172 #include IOCTL_METEOR_H_NAME
6173 #endif
6174 #ifdef IOCTL_BT848_H_NAME
6175 #include IOCTL_BT848_H_NAME
6176 #endif
6177 int main(void) {
6178 ioctl(0, METEORSINPUT, 0);
6179 ioctl(0, TVTUNER_GETFREQ, 0);
6180 return 0;
6183 cc_check && _tv_bsdbt848=yes
6186 if test "$_tv_bsdbt848" = yes ; then
6187 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6188 inputmodules="tv-bsdbt848 $inputmodules"
6189 else
6190 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6191 noinputmodules="tv-bsdbt848 $noinputmodules"
6193 echores "$_tv_bsdbt848"
6194 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6197 echocheck "DirectShow TV interface"
6198 if test "$_tv_dshow" = auto ; then
6199 _tv_dshow=no
6200 if test "$_tv" = yes && win32 ; then
6201 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
6204 if test "$_tv_dshow" = yes ; then
6205 inputmodules="tv-dshow $inputmodules"
6206 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6207 extra_ldflags="$extra_ldflags -lole32 -luuid"
6208 else
6209 noinputmodules="tv-dshow $noinputmodules"
6210 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6212 echores "$_tv_dshow"
6215 echocheck "Video 4 Linux TV interface"
6216 if test "$_tv_v4l1" = auto ; then
6217 _tv_v4l1=no
6218 if test "$_tv" = yes && linux ; then
6219 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
6222 if test "$_tv_v4l1" = yes ; then
6223 _audio_input=yes
6224 _tv_v4l=yes
6225 def_tv_v4l='#define CONFIG_TV_V4L 1'
6226 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6227 inputmodules="tv-v4l $inputmodules"
6228 else
6229 noinputmodules="tv-v4l1 $noinputmodules"
6230 def_tv_v4l='#undef CONFIG_TV_V4L'
6232 echores "$_tv_v4l1"
6235 echocheck "Video 4 Linux 2 TV interface"
6236 if test "$_tv_v4l2" = auto ; then
6237 _tv_v4l2=no
6238 if test "$_tv" = yes && linux ; then
6239 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
6240 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
6241 _tv_v4l2=yes
6244 if test "$_tv_v4l2" = yes ; then
6245 _audio_input=yes
6246 _tv_v4l=yes
6247 def_tv_v4l='#define CONFIG_TV_V4L 1'
6248 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6249 inputmodules="tv-v4l2 $inputmodules"
6250 else
6251 noinputmodules="tv-v4l2 $noinputmodules"
6252 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6254 echores "$_tv_v4l2"
6257 echocheck "Radio interface"
6258 if test "$_radio" = yes ; then
6259 def_radio='#define CONFIG_RADIO 1'
6260 inputmodules="radio $inputmodules"
6261 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6262 _radio_capture=no
6264 if test "$_radio_capture" = yes ; then
6265 _audio_input=yes
6266 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6267 else
6268 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6270 else
6271 noinputmodules="radio $noinputmodules"
6272 def_radio='#undef CONFIG_RADIO'
6273 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6274 _radio_capture=no
6276 echores "$_radio"
6277 echocheck "Capture for Radio interface"
6278 echores "$_radio_capture"
6280 echocheck "Video 4 Linux 2 Radio interface"
6281 if test "$_radio_v4l2" = auto ; then
6282 _radio_v4l2=no
6283 if test "$_radio" = yes && linux ; then
6284 header_check linux/videodev2.h && _radio_v4l2=yes
6287 if test "$_radio_v4l2" = yes ; then
6288 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6289 else
6290 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6292 echores "$_radio_v4l2"
6294 echocheck "Video 4 Linux Radio interface"
6295 if test "$_radio_v4l" = auto ; then
6296 _radio_v4l=no
6297 if test "$_radio" = yes && linux ; then
6298 header_check linux/videodev.h && _radio_v4l=yes
6301 if test "$_radio_v4l" = yes ; then
6302 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6303 else
6304 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6306 echores "$_radio_v4l"
6308 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6309 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6310 echocheck "*BSD BrookTree 848 Radio interface"
6311 _radio_bsdbt848=no
6312 cat > $TMPC <<EOF
6313 #include <sys/types.h>
6314 $def_ioctl_bt848_h_name
6315 #ifdef IOCTL_BT848_H_NAME
6316 #include IOCTL_BT848_H_NAME
6317 #endif
6318 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6320 cc_check && _radio_bsdbt848=yes
6321 echores "$_radio_bsdbt848"
6322 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6324 if test "$_radio_bsdbt848" = yes ; then
6325 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6326 else
6327 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6330 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6331 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6332 die "Radio driver requires BSD BT848, V4L or V4L2!"
6335 echocheck "Video 4 Linux 2 MPEG PVR interface"
6336 if test "$_pvr" = auto ; then
6337 _pvr=no
6338 if test "$_tv_v4l2" = yes && linux ; then
6339 cat > $TMPC <<EOF
6340 #include <sys/time.h>
6341 #include <linux/videodev2.h>
6342 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6344 cc_check && _pvr=yes
6347 if test "$_pvr" = yes ; then
6348 def_pvr='#define CONFIG_PVR 1'
6349 inputmodules="pvr $inputmodules"
6350 else
6351 noinputmodules="pvr $noinputmodules"
6352 def_pvr='#undef CONFIG_PVR'
6354 echores "$_pvr"
6357 echocheck "ftp"
6358 if test "$_ftp" = "auto" ; then
6359 test "$networking" = "yes" && ! beos && _ftp=yes
6361 if test "$_ftp" = yes ; then
6362 def_ftp='#define CONFIG_FTP 1'
6363 inputmodules="ftp $inputmodules"
6364 else
6365 noinputmodules="ftp $noinputmodules"
6366 def_ftp='#undef CONFIG_FTP'
6368 echores "$_ftp"
6370 echocheck "vstream client"
6371 if test "$_vstream" = auto ; then
6372 _vstream=no
6373 cat > $TMPC <<EOF
6374 #include <vstream-client.h>
6375 void vstream_error(const char *format, ... ) {}
6376 int main(void) { vstream_start(); return 0; }
6378 cc_check -lvstream-client && _vstream=yes
6380 if test "$_vstream" = yes ; then
6381 def_vstream='#define CONFIG_VSTREAM 1'
6382 inputmodules="vstream $inputmodules"
6383 extra_ldflags="$extra_ldflags -lvstream-client"
6384 else
6385 noinputmodules="vstream $noinputmodules"
6386 def_vstream='#undef CONFIG_VSTREAM'
6388 echores "$_vstream"
6391 echocheck "OSD menu"
6392 if test "$_menu" = yes ; then
6393 def_menu='#define CONFIG_MENU 1'
6394 test $_dvbin = "yes" && _menu_dvbin=yes
6395 else
6396 def_menu='#undef CONFIG_MENU'
6397 _menu_dvbin=no
6399 echores "$_menu"
6402 echocheck "Subtitles sorting"
6403 if test "$_sortsub" = yes ; then
6404 def_sortsub='#define CONFIG_SORTSUB 1'
6405 else
6406 def_sortsub='#undef CONFIG_SORTSUB'
6408 echores "$_sortsub"
6411 echocheck "XMMS inputplugin support"
6412 if test "$_xmms" = yes ; then
6413 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6414 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6415 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6416 else
6417 _xmmsplugindir=/usr/lib/xmms/Input
6418 _xmmslibdir=/usr/lib
6421 def_xmms='#define CONFIG_XMMS 1'
6422 if darwin ; then
6423 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6424 else
6425 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6427 else
6428 def_xmms='#undef CONFIG_XMMS'
6430 echores "$_xmms"
6432 if test "$_charset" != "noconv" ; then
6433 def_charset="#define MSG_CHARSET \"$_charset\""
6434 else
6435 def_charset="#undef MSG_CHARSET"
6436 _charset="UTF-8"
6439 #############################################################################
6441 echocheck "automatic gdb attach"
6442 if test "$_crash_debug" = yes ; then
6443 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6444 else
6445 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6446 _crash_debug=no
6448 echores "$_crash_debug"
6450 echocheck "compiler support for noexecstack"
6451 if cflag_check -Wl,-z,noexecstack ; then
6452 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6453 echores "yes"
6454 else
6455 echores "no"
6458 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6459 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6460 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6461 echores "yes"
6462 else
6463 echores "no"
6467 # Dynamic linking flags
6468 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6469 _ld_dl_dynamic=''
6470 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6471 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
6472 _ld_dl_dynamic='-rdynamic'
6475 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6476 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6477 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6479 def_debug='#undef MP_DEBUG'
6480 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6483 echocheck "joystick"
6484 def_joystick='#undef CONFIG_JOYSTICK'
6485 if test "$_joystick" = yes ; then
6486 if linux || freebsd ; then
6487 # TODO add some check
6488 def_joystick='#define CONFIG_JOYSTICK 1'
6489 else
6490 _joystick="no"
6491 res_comment="unsupported under $system_name"
6494 echores "$_joystick"
6496 echocheck "lirc"
6497 if test "$_lirc" = auto ; then
6498 _lirc=no
6499 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6501 if test "$_lirc" = yes ; then
6502 def_lirc='#define CONFIG_LIRC 1'
6503 libs_mplayer="$libs_mplayer -llirc_client"
6504 else
6505 def_lirc='#undef CONFIG_LIRC'
6507 echores "$_lirc"
6509 echocheck "lircc"
6510 if test "$_lircc" = auto ; then
6511 _lircc=no
6512 header_check lirc/lircc.h -llircc && _lircc=yes
6514 if test "$_lircc" = yes ; then
6515 def_lircc='#define CONFIG_LIRCC 1'
6516 libs_mplayer="$libs_mplayer -llircc"
6517 else
6518 def_lircc='#undef CONFIG_LIRCC'
6520 echores "$_lircc"
6522 #############################################################################
6524 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6525 # the OMF format needs to come after the 'extern symbol prefix' check, which
6526 # uses nm.
6527 if os2 ; then
6528 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6531 #############################################################################
6533 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6535 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6537 # This must be the last test to be performed. Any other tests following it
6538 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6539 # against libdvdread (to permit MPlayer to use its own copy of the library).
6540 # So any compilation using the flags added here but not linking against
6541 # libdvdread can fail.
6542 echocheck "DVD support (libdvdnav)"
6543 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6544 _dvdnav=no
6546 dvdnav_internal=no
6547 if test "$_dvdnav" = auto ; then
6548 if test "$_dvdread_internal" = yes ; then
6549 _dvdnav=yes
6550 dvdnav_internal=yes
6551 res_comment="internal"
6552 else
6553 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6556 if test "$_dvdnav" = auto ; then
6557 _dvdnav=no
6558 _dvdnavdir=$($_dvdnavconfig --cflags)
6559 _dvdnavlibs=$($_dvdnavconfig --libs)
6560 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6562 if test "$_dvdnav" = yes ; then
6563 def_dvdnav='#define CONFIG_DVDNAV 1'
6564 if test "$dvdnav_internal" = yes ; then
6565 cflags_libdvdnav="-Ilibdvdnav"
6566 inputmodules="dvdnav(internal) $inputmodules"
6567 else
6568 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6569 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6570 inputmodules="dvdnav $inputmodules"
6572 else
6573 def_dvdnav='#undef CONFIG_DVDNAV'
6574 noinputmodules="dvdnav $noinputmodules"
6576 echores "$_dvdnav"
6578 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6579 # Read dvdnav comment above.
6581 mak_enable () {
6582 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6583 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6584 nprefix=$3;
6585 for part in $list; do
6586 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6587 echo "${nprefix}_$part = yes"
6589 done
6592 #############################################################################
6593 echo "Creating config.mak"
6594 cat > config.mak << EOF
6595 # -------- Generated by configure -----------
6597 # Ensure that locale settings do not interfere with shell commands.
6598 export LC_ALL = C
6600 CONFIGURATION = $configuration
6602 CHARSET = $_charset
6603 DOC_LANGS = $language_doc
6604 DOC_LANG_ALL = $doc_lang_all
6605 MAN_LANGS = $language_man
6606 MAN_LANG_ALL = $man_lang_all
6607 MSG_LANGS = $language_msg
6608 MSG_LANG_ALL = $msg_lang_all
6610 prefix = \$(DESTDIR)$_prefix
6611 BINDIR = \$(DESTDIR)$_bindir
6612 DATADIR = \$(DESTDIR)$_datadir
6613 LIBDIR = \$(DESTDIR)$_libdir
6614 MANDIR = \$(DESTDIR)$_mandir
6615 CONFDIR = \$(DESTDIR)$_confdir
6616 LOCALEDIR = \$(DESTDIR)$_localedir
6618 AR = $_ar
6619 AS = $_cc
6620 CC = $_cc
6621 CXX = $_cc
6622 HOST_CC = $_host_cc
6623 INSTALL = $_install
6624 INSTALLSTRIP = $_install_strip
6625 WINDRES = $_windres
6627 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6628 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6629 DEPFLAGS = $DEPFLAGS
6631 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6632 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6633 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6634 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6635 CFLAGS_STACKREALIGN = $cflags_stackrealign
6637 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6638 EXTRALIBS_MPLAYER = $libs_mplayer
6640 GETCH = $_getch
6641 TIMER = $_timer
6643 EXESUF = $_exesuf
6644 EXESUFS_ALL = .exe
6646 ARCH = $arch
6647 $(mak_enable "$arch_all" "$arch" ARCH)
6648 $(mak_enable "$subarch_all" "$subarch" ARCH)
6649 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6651 MPLAYER = $_mplayer
6653 NEED_GETTIMEOFDAY = $need_gettimeofday
6654 NEED_GLOB = $need_glob
6655 NEED_MMAP = $need_mmap
6656 NEED_SETENV = $need_setenv
6657 NEED_SHMEM = $need_shmem
6658 NEED_STRSEP = $need_strsep
6659 NEED_SWAB = $need_swab
6660 NEED_VSSCANF = $need_vsscanf
6662 # features
6663 3DFX = $_3dfx
6664 AA = $_aa
6665 ALSA1X = $_alsa1x
6666 ALSA9 = $_alsa9
6667 ALSA5 = $_alsa5
6668 APPLE_IR = $_apple_ir
6669 APPLE_REMOTE = $_apple_remote
6670 ARTS = $_arts
6671 AUDIO_INPUT = $_audio_input
6672 BITMAP_FONT = $_bitmap_font
6673 BL = $_bl
6674 CACA = $_caca
6675 CDDA = $_cdda
6676 CDDB = $_cddb
6677 COREAUDIO = $_coreaudio
6678 COREVIDEO = $_corevideo
6679 DART = $_dart
6680 DGA = $_dga
6681 DIRECT3D = $_direct3d
6682 DIRECTFB = $_directfb
6683 DIRECTX = $_directx
6684 DVBIN = $_dvbin
6685 DVDNAV = $_dvdnav
6686 DVDNAV_INTERNAL = $dvdnav_internal
6687 DVDREAD = $_dvdread
6688 DVDREAD_INTERNAL = $_dvdread_internal
6689 DXR3 = $_dxr3
6690 ESD = $_esd
6691 FAAD = $_faad
6692 FASTMEMCPY = $_fastmemcpy
6693 FBDEV = $_fbdev
6694 FREETYPE = $_freetype
6695 FTP = $_ftp
6696 GIF = $_gif
6697 GGI = $_ggi
6698 GL = $_gl
6699 GL_WIN32 = $_gl_win32
6700 GL_X11 = $_gl_x11
6701 GL_SDL = $_gl_sdl
6702 HAVE_POSIX_SELECT = $_posix_select
6703 HAVE_SYS_MMAN_H = $_mman
6704 IVTV = $_ivtv
6705 JACK = $_jack
6706 JOYSTICK = $_joystick
6707 JPEG = $_jpeg
6708 KAI = $_kai
6709 KVA = $_kva
6710 LADSPA = $_ladspa
6711 LIBA52 = $_liba52
6712 LIBASS = $_ass
6713 LIBBLURAY = $_bluray
6714 LIBBS2B = $_libbs2b
6715 LIBDCA = $_libdca
6716 LIBDV = $_libdv
6717 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6718 LIBMAD = $_mad
6719 LIBMENU = $_menu
6720 LIBMENU_DVBIN = $_menu_dvbin
6721 LIBNEMESI = $_nemesi
6722 LIBNUT = $_libnut
6723 LIBSMBCLIENT = $_smb
6724 LIBTHEORA = $_theora
6725 LIRC = $_lirc
6726 LIVE555 = $_live
6727 MACOSX_FINDER = $_macosx_finder
6728 MD5SUM = $_md5sum
6729 MGA = $_mga
6730 MNG = $_mng
6731 MPG123 = $_mpg123
6732 MUSEPACK = $_musepack
6733 NAS = $_nas
6734 NATIVE_RTSP = $_native_rtsp
6735 NETWORKING = $networking
6736 OPENAL = $_openal
6737 OSS = $_ossaudio
6738 PE_EXECUTABLE = $_pe_executable
6739 PNG = $_png
6740 PNM = $_pnm
6741 PRIORITY = $_priority
6742 PULSE = $_pulse
6743 PVR = $_pvr
6744 QTX_CODECS = $_qtx
6745 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6746 QTX_EMULATION = $_qtx_emulation
6747 QUARTZ = $_quartz
6748 RADIO=$_radio
6749 RADIO_CAPTURE=$_radio_capture
6750 REAL_CODECS = $_real
6751 RSOUND = $_rsound
6752 S3FB = $_s3fb
6753 SDL = $_sdl
6754 SPEEX = $_speex
6755 STREAM_CACHE = $_stream_cache
6756 SGIAUDIO = $_sgiaudio
6757 SUNAUDIO = $_sunaudio
6758 SVGA = $_svga
6759 TDFXFB = $_tdfxfb
6760 TDFXVID = $_tdfxvid
6761 TGA = $_tga
6762 TV = $_tv
6763 TV_BSDBT848 = $_tv_bsdbt848
6764 TV_DSHOW = $_tv_dshow
6765 TV_V4L = $_tv_v4l
6766 TV_V4L1 = $_tv_v4l1
6767 TV_V4L2 = $_tv_v4l2
6768 UNRAR_EXEC = $_unrar_exec
6769 V4L2 = $_v4l2
6770 VCD = $_vcd
6771 VDPAU = $_vdpau
6772 VESA = $_vesa
6773 VORBIS = $_vorbis
6774 VSTREAM = $_vstream
6775 WII = $_wii
6776 WIN32DLL = $_win32dll
6777 WIN32WAVEOUT = $_win32waveout
6778 WIN32_EMULATION = $_win32_emulation
6779 X11 = $_x11
6780 XANIM_CODECS = $_xanim
6781 XMGA = $_xmga
6782 XMMS_PLUGINS = $_xmms
6783 XV = $_xv
6784 XVID4 = $_xvid
6785 XVR100 = $_xvr100
6786 YUV4MPEG = $_yuv4mpeg
6788 # FFmpeg
6789 FFMPEG = $ffmpeg
6790 FFMPEG_EVAL_API = $ffmpeg_eval_api
6791 FFMPEG_INTERNALS = $ffmpeg_internals
6792 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6794 RANLIB = $_ranlib
6795 YASM = $_yasm
6796 YASMFLAGS = $YASMFLAGS
6798 CONFIG_VDPAU = $_vdpau
6799 CONFIG_ZLIB = $_zlib
6801 HAVE_PTHREADS = $_pthreads
6802 HAVE_SHM = $_shm
6803 HAVE_W32THREADS = $_w32threads
6804 HAVE_YASM = $have_yasm
6808 #############################################################################
6810 ff_config_enable () {
6811 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6812 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6813 _nprefix=$3;
6814 test -z "$_nprefix" && _nprefix='CONFIG'
6815 for part in $list; do
6816 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6817 echo "#define ${_nprefix}_$part 1"
6818 else
6819 echo "#define ${_nprefix}_$part 0"
6821 done
6824 echo "Creating config.h"
6825 cat > $TMPH << EOF
6826 /*----------------------------------------------------------------------------
6827 ** This file has been automatically generated by configure any changes in it
6828 ** will be lost when you run configure again.
6829 ** Instead of modifying definitions here, use the --enable/--disable options
6830 ** of the configure script! See ./configure --help for details.
6831 *---------------------------------------------------------------------------*/
6833 #ifndef MPLAYER_CONFIG_H
6834 #define MPLAYER_CONFIG_H
6836 /* Undefine this if you do not want to select mono audio (left or right)
6837 with a stereo MPEG layer 2/3 audio stream. The command line option
6838 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6839 right-only), with 0 being the default.
6841 #define CONFIG_FAKE_MONO 1
6843 /* set up audio OUTBURST. Do not change this! */
6844 #define OUTBURST 512
6846 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6847 #undef FAST_OSD
6848 #undef FAST_OSD_TABLE
6852 #define CONFIGURATION "$configuration"
6854 #define MPLAYER_DATADIR "$_datadir"
6855 #define MPLAYER_CONFDIR "$_confdir"
6856 #define MPLAYER_LOCALEDIR "$_localedir"
6858 $def_translation
6860 /* definitions needed by included libraries */
6861 #define HAVE_INTTYPES_H 1
6862 /* libdvdcss */
6863 #define HAVE_ERRNO_H 1
6864 /* libdvdcss + libdvdread */
6865 #define HAVE_LIMITS_H 1
6866 /* libdvdcss */
6867 #define HAVE_UNISTD_H 1
6868 /* libdvdread */
6869 #define STDC_HEADERS 1
6870 #define HAVE_MEMCPY 1
6871 /* libdvdnav */
6872 #define READ_CACHE_TRACE 0
6873 /* libdvdread */
6874 #define HAVE_DLFCN_H 1
6875 $def_dvdcss
6878 /* system headers */
6879 $def_alloca_h
6880 $def_alsa_asoundlib_h
6881 $def_altivec_h
6882 $def_malloc_h
6883 $def_mman_h
6884 $def_mman_has_map_failed
6885 $def_soundcard_h
6886 $def_sys_asoundlib_h
6887 $def_sys_soundcard_h
6888 $def_sys_sysinfo_h
6889 $def_sys_videoio_h
6890 $def_termios_h
6891 $def_termios_sys_h
6892 $def_winsock2_h
6895 /* system functions */
6896 $def_gethostbyname2
6897 $def_gettimeofday
6898 $def_glob
6899 $def_langinfo
6900 $def_lrintf
6901 $def_map_memalign
6902 $def_memalign
6903 $def_nanosleep
6904 $def_posix_select
6905 $def_select
6906 $def_setenv
6907 $def_setmode
6908 $def_shm
6909 $def_strsep
6910 $def_swab
6911 $def_sysi86
6912 $def_sysi86_iv
6913 $def_termcap
6914 $def_termios
6915 $def_vsscanf
6918 /* system-specific features */
6919 $def_asmalign_pot
6920 $def_builtin_expect
6921 $def_dl
6922 $def_dos_paths
6923 $def_extern_asm
6924 $def_extern_prefix
6925 $def_iconv
6926 $def_kstat
6927 $def_macosx_bundle
6928 $def_macosx_finder
6929 $def_priority
6930 $def_quicktime
6931 $def_restrict_keyword
6932 $def_rtc
6933 $def_unrar_exec
6936 /* configurable options */
6937 $def_charset
6938 $def_crash_debug
6939 $def_debug
6940 $def_fastmemcpy
6941 $def_menu
6942 $def_runtime_cpudetection
6943 $def_sighandler
6944 $def_sortsub
6945 $def_stream_cache
6946 $def_pthread_cache
6949 /* CPU stuff */
6950 #define __CPU__ $iproc
6951 $def_ebx_available
6952 $def_words_endian
6953 $def_bigendian
6954 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6955 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6956 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6959 /* Blu-ray/DVD/VCD/CD */
6960 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6961 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6962 $def_bluray
6963 $def_bsdi_dvd
6964 $def_cddb
6965 $def_cdio
6966 $def_cdparanoia
6967 $def_cdrom
6968 $def_dvd
6969 $def_dvd_bsd
6970 $def_dvd_darwin
6971 $def_dvd_linux
6972 $def_dvd_openbsd
6973 $def_dvdio
6974 $def_dvdnav
6975 $def_dvdread
6976 $def_hpux_scsi_h
6977 $def_libcdio
6978 $def_sol_scsi_h
6979 $def_vcd
6982 /* codec libraries */
6983 $def_faad
6984 $def_liba52
6985 $def_libdca
6986 $def_libdv
6987 $def_mad
6988 $def_mpg123
6989 $def_musepack
6990 $def_speex
6991 $def_theora
6992 $def_tremor
6993 $def_vorbis
6994 $def_xvid
6995 $def_zlib
6997 $def_libnut
7000 /* binary codecs */
7001 $def_qtx
7002 $def_qtx_win32
7003 $def_real
7004 $def_win32_loader
7005 $def_win32dll
7006 $def_xanim
7007 $def_xmms
7008 #define BINARY_CODECS_PATH "$_codecsdir"
7009 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7012 /* Audio output drivers */
7013 $def_alsa
7014 $def_alsa1x
7015 $def_alsa5
7016 $def_alsa9
7017 $def_arts
7018 $def_coreaudio
7019 $def_dart
7020 $def_esd
7021 $def_esd_latency
7022 $def_jack
7023 $def_kai
7024 $def_nas
7025 $def_openal
7026 $def_openal_h
7027 $def_ossaudio
7028 $def_ossaudio_devdsp
7029 $def_ossaudio_devmixer
7030 $def_pulse
7031 $def_rsound
7032 $def_sgiaudio
7033 $def_sunaudio
7034 $def_win32waveout
7036 $def_ladspa
7037 $def_libbs2b
7040 /* input */
7041 $def_apple_ir
7042 $def_apple_remote
7043 $def_ioctl_bt848_h_name
7044 $def_ioctl_meteor_h_name
7045 $def_joystick
7046 $def_lirc
7047 $def_lircc
7048 $def_pvr
7049 $def_radio
7050 $def_radio_bsdbt848
7051 $def_radio_capture
7052 $def_radio_v4l
7053 $def_radio_v4l2
7054 $def_tv
7055 $def_tv_bsdbt848
7056 $def_tv_dshow
7057 $def_tv_v4l
7058 $def_tv_v4l1
7059 $def_tv_v4l2
7062 /* font stuff */
7063 $def_ass
7064 $def_bitmap_font
7065 $def_enca
7066 $def_fontconfig
7067 $def_freetype
7068 $def_fribidi
7071 /* networking */
7072 $def_closesocket
7073 $def_ftp
7074 $def_inet6
7075 $def_inet_aton
7076 $def_inet_pton
7077 $def_live
7078 $def_nemesi
7079 $def_networking
7080 $def_smb
7081 $def_socklen_t
7082 $def_vstream
7085 /* libvo options */
7086 $def_3dfx
7087 $def_aa
7088 $def_bl
7089 $def_caca
7090 $def_corevideo
7091 $def_dga
7092 $def_dga1
7093 $def_dga2
7094 $def_direct3d
7095 $def_directfb
7096 $def_directx
7097 $def_dvb
7098 $def_dvbin
7099 $def_dxr3
7100 $def_fbdev
7101 $def_ggi
7102 $def_ggiwmh
7103 $def_gif
7104 $def_gif_4
7105 $def_gif_tvt_hack
7106 $def_gl
7107 $def_gl_win32
7108 $def_gl_x11
7109 $def_gl_sdl
7110 $def_ivtv
7111 $def_jpeg
7112 $def_kva
7113 $def_md5sum
7114 $def_mga
7115 $def_mng
7116 $def_png
7117 $def_pnm
7118 $def_quartz
7119 $def_s3fb
7120 $def_sdl
7121 $def_sdl_sdl_h
7122 $def_svga
7123 $def_tdfxfb
7124 $def_tdfxvid
7125 $def_tga
7126 $def_v4l2
7127 $def_vdpau
7128 $def_vesa
7129 $def_vm
7130 $def_wii
7131 $def_x11
7132 $def_xdpms
7133 $def_xf86keysym
7134 $def_xinerama
7135 $def_xmga
7136 $def_xss
7137 $def_xv
7138 $def_xvr100
7139 $def_yuv4mpeg
7142 /* FFmpeg */
7143 $def_ffmpeg
7144 $def_ffmpeg_eval_api
7145 $def_ffmpeg_internals
7147 $def_arpa_inet_h
7148 $def_bswap
7149 $def_dcbzl
7150 $def_exp2
7151 $def_exp2f
7152 $def_fast_64bit
7153 $def_fast_unaligned
7154 $def_llrint
7155 $def_log2
7156 $def_log2f
7157 $def_lrint
7158 $def_memalign_hack
7159 $def_mkstemp
7160 $def_posix_memalign
7161 $def_pthreads
7162 $def_round
7163 $def_roundf
7164 $def_threads
7165 $def_truncf
7166 $def_xform_asm
7167 $def_yasm
7169 #define HAVE_INLINE_ASM 1
7171 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7172 #ifndef MP_DEBUG
7173 #define HAVE_EBP_AVAILABLE 1
7174 #else
7175 #define HAVE_EBP_AVAILABLE 0
7176 #endif
7178 #endif /* MPLAYER_CONFIG_H */
7181 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7182 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
7184 #############################################################################
7186 cat << EOF
7188 Config files successfully generated by ./configure $configuration !
7190 Install prefix: $_prefix
7191 Data directory: $_datadir
7192 Config direct.: $_confdir
7194 Byte order: $_byte_order
7195 Optimizing for: $_optimizing
7197 Languages:
7198 Messages (in addition to English): $language_msg
7199 Manual pages: $language_man
7200 Documentation: $language_doc
7202 Enabled optional drivers:
7203 Input: $inputmodules
7204 Codecs: $codecmodules
7205 Audio output: $aomodules
7206 Video output: $vomodules
7208 Disabled optional drivers:
7209 Input: $noinputmodules
7210 Codecs: $nocodecmodules
7211 Audio output: $noaomodules
7212 Video output: $novomodules
7214 'config.h' and 'config.mak' contain your configuration options.
7215 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7216 compile *** DO NOT REPORT BUGS if you tweak these files ***
7218 'make' will now compile MPlayer and 'make install' will install it.
7219 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7224 if test "$_mtrr" = yes ; then
7225 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7226 echo
7229 if ! x86_32; then
7230 cat <<EOF
7231 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7232 operating system ($system_name). You may encounter a few files that cannot
7233 be played due to missing open source video/audio codec support.
7239 cat <<EOF
7240 Check $TMPLOG if you wonder why an autodetection failed (make sure
7241 development headers/packages are installed).
7243 NOTE: The --enable-* parameters unconditionally force options on, completely
7244 skipping autodetection. This behavior is unlike what you may be used to from
7245 autoconf-based configure scripts that can decide to override you. This greater
7246 level of control comes at a price. You may have to provide the correct compiler
7247 and linker flags yourself.
7248 If you used one of these options (except --enable-menu and similar ones that
7249 turn on internal features) and experience a compilation or linking failure,
7250 make sure you have passed the necessary compiler/linker flags to configure.
7252 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7256 if test "$warn_cflags" = yes; then
7257 cat <<EOF
7259 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7260 but:
7262 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7264 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7265 To do so, execute 'CFLAGS= ./configure <options>'
7270 # Last move:
7271 rm -rf "$mplayer_tmpdir"