ao_pulse: support native mute control
[mplayer.git] / configure
blob12f5e9db311c12f62e7eb8991cd1bcdc2e15220d
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 pkg_config_add() {
169 unset IFS # shell should not be used for programming
170 echo >> "$TMPLOG"
171 echo "$_pkg_config --cflags $@" >> "$TMPLOG"
172 ctmp=$($_pkg_config --cflags "$@" 2>> "$TMPLOG") || return $?
173 echo >> "$TMPLOG"
174 echo "$_pkg_config --libs $@" >> "$TMPLOG"
175 ltmp=$($_pkg_config --libs "$@" 2>> "$TMPLOG") || return $?
176 echo >> "$TMPLOG"
177 echo "cflags: $ctmp" >> "$TMPLOG"
178 echo "libs: $ltmp" >> "$TMPLOG"
179 echo >> "$TMPLOG"
180 extra_cflags="$extra_cflags $ctmp"
181 extra_ldflags="$extra_ldflags $ltmp"
184 tmp_run() {
185 "$TMPEXE" >> "$TMPLOG" 2>&1
188 # Display error message, flushes tempfile, exit
189 die () {
190 echo
191 echo "Error: $@" >&2
192 echo >&2
193 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
194 echo "Check \"$TMPLOG\" if you do not understand why it failed."
195 exit 1
198 # OS test booleans functions
199 issystem() {
200 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
202 aix() { issystem "AIX"; }
203 amigaos() { issystem "AmigaOS"; }
204 beos() { issystem "BEOS"; }
205 bsdos() { issystem "BSD/OS"; }
206 cygwin() { issystem "CYGWIN"; }
207 darwin() { issystem "Darwin"; }
208 dragonfly() { issystem "DragonFly"; }
209 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
210 gnu() { issystem "GNU"; }
211 hpux() { issystem "HP-UX"; }
212 irix() { issystem "IRIX"; }
213 linux() { issystem "Linux"; }
214 mingw32() { issystem "MINGW32"; }
215 morphos() { issystem "MorphOS"; }
216 netbsd() { issystem "NetBSD"; }
217 openbsd() { issystem "OpenBSD"; }
218 qnx() { issystem "QNX"; }
219 sunos() { issystem "SunOS"; }
220 win32() { cygwin || mingw32; }
222 # arch test boolean functions
223 # x86/x86pc is used by QNX
224 x86_32() {
225 case "$host_arch" in
226 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
227 *) return 1 ;;
228 esac
231 x86_64() {
232 case "$host_arch" in
233 x86_64|amd64) return 0 ;;
234 *) return 1 ;;
235 esac
238 x86() {
239 x86_32 || x86_64
242 ppc() {
243 case "$host_arch" in
244 ppc|ppc64|powerpc|powerpc64) return 0;;
245 *) return 1;;
246 esac
249 alpha() {
250 case "$host_arch" in
251 alpha*) return 0;;
252 *) return 1;;
253 esac
256 arm() {
257 case "$host_arch" in
258 arm*) return 0;;
259 *) return 1;;
260 esac
263 # Use this before starting a check
264 echocheck() {
265 echo "============ Checking for $@ ============" >> "$TMPLOG"
266 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
269 # Use this to echo the results of a check
270 echores() {
271 if test "$res_comment" ; then
272 res_comment="($res_comment)"
274 echo "Result is: $@ $res_comment" >> "$TMPLOG"
275 echo "##########################################" >> "$TMPLOG"
276 echo "" >> "$TMPLOG"
277 echo "$@ $res_comment"
278 res_comment=""
280 #############################################################################
282 # Check how echo works in this /bin/sh
283 case $(echo -n) in
284 -n) _echo_n= _echo_c='\c' ;; # SysV echo
285 *) _echo_n='-n ' _echo_c= ;; # BSD echo
286 esac
288 msg_lang_all=''
289 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
290 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")
291 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
293 show_help(){
294 cat << EOF
295 Usage: $0 [OPTIONS]...
297 Configuration:
298 -h, --help display this help and exit
300 Installation directories:
301 --prefix=DIR prefix directory for installation [/usr/local]
302 --bindir=DIR directory for installing binaries [PREFIX/bin]
303 --datadir=DIR directory for installing machine independent
304 data files (skins, etc) [PREFIX/share/mplayer]
305 --mandir=DIR directory for installing man pages [PREFIX/share/man]
306 --confdir=DIR directory for installing configuration files
307 [PREFIX/etc/mplayer]
308 --localedir=DIR directory for locale tree [PREFIX/share/locale]
309 --libdir=DIR directory for object code libraries [PREFIX/lib]
310 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
312 Optional features:
313 --disable-mplayer disable MPlayer compilation [enable]
314 --enable-termcap use termcap database for key codes [autodetect]
315 --enable-termios use termios database for key codes [autodetect]
316 --disable-iconv disable iconv for encoding conversion [autodetect]
317 --disable-langinfo do not use langinfo [autodetect]
318 --enable-lirc enable LIRC (remote control) support [autodetect]
319 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
320 --enable-joystick enable joystick support [disable]
321 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
322 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
323 --disable-vm disable X video mode extensions [autodetect]
324 --disable-xf86keysym disable support for multimedia keys [autodetect]
325 --enable-radio enable radio interface [disable]
326 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
327 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
328 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
329 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
330 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
331 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
332 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
333 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
334 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
335 --disable-networking disable networking [enable]
336 --enable-winsock2_h enable winsock2_h [autodetect]
337 --enable-smb enable Samba (SMB) input [autodetect]
338 --enable-live enable LIVE555 Streaming Media [disable]
339 --enable-nemesi enable Nemesi Streaming Media [autodetect]
340 --disable-vcd disable VCD support [autodetect]
341 --disable-bluray disable Blu-ray support [autodetect]
342 --disable-dvdnav disable libdvdnav [autodetect]
343 --disable-dvdread disable libdvdread [autodetect]
344 --disable-dvdread-internal disable internal libdvdread [autodetect]
345 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
346 --disable-cdparanoia disable cdparanoia [autodetect]
347 --disable-cddb disable cddb [autodetect]
348 --disable-bitmap-font disable bitmap font support [enable]
349 --disable-freetype disable FreeType 2 font rendering [autodetect]
350 --disable-fontconfig disable fontconfig font lookup [autodetect]
351 --disable-unrarexec disable using of UnRAR executable [enabled]
352 --disable-sortsub disable subtitle sorting [enabled]
353 --enable-fribidi enable the FriBiDi libs [autodetect]
354 --disable-enca disable ENCA charset oracle library [autodetect]
355 --enable-macosx-finder enable Mac OS X Finder invocation parameter
356 parsing [disabled]
357 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
358 --disable-inet6 disable IPv6 support [autodetect]
359 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
360 --disable-ftp disable FTP support [enabled]
361 --disable-vstream disable TiVo vstream client support [autodetect]
362 --disable-pthreads disable Posix threads support [autodetect]
363 --disable-w32threads disable Win32 threads support [autodetect]
364 --disable-libass disable subtitle rendering with libass [autodetect]
365 --enable-rpath enable runtime linker path for extra libs [disabled]
366 --disable-libpostproc disable postprocess filter (vf_pp) [autodetect]
368 Codecs:
369 --enable-gif enable GIF support [autodetect]
370 --enable-png enable PNG input/output support [autodetect]
371 --enable-mng enable MNG input support [autodetect]
372 --enable-jpeg enable JPEG input/output support [autodetect]
373 --enable-libcdio enable libcdio support [autodetect]
374 --disable-win32dll disable Win32 DLL support [autodetect]
375 --disable-qtx disable QuickTime codecs support [enabled]
376 --disable-xanim disable XAnim codecs support [enabled]
377 --disable-real disable RealPlayer codecs support [enabled]
378 --disable-xvid disable Xvid [autodetect]
379 --disable-libnut disable libnut [autodetect]
380 --enable-libav skip Libav autodetection [autodetect]
381 --disable-libvorbis disable libvorbis support [autodetect]
382 --disable-tremor disable Tremor [autodetect if no libvorbis]
383 --disable-speex disable Speex support [autodetect]
384 --enable-theora enable OggTheora libraries [autodetect]
385 --enable-faad enable FAAD2 (AAC) [autodetect]
386 --disable-ladspa disable LADSPA plugin support [autodetect]
387 --disable-libbs2b disable libbs2b audio filter support [autodetect]
388 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
389 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
390 --disable-mad disable libmad (MPEG audio) support [autodetect]
391 --enable-xmms enable XMMS input plugin support [disabled]
392 --enable-libdca enable libdca support [autodetect]
393 --disable-liba52 disable liba52 [autodetect]
394 --enable-musepack enable libmpcdec support (deprecated, libavcodec
395 Musepack decoder is preferred) [disabled]
397 Video output:
398 --enable-gl enable OpenGL video output [autodetect]
399 --enable-dga2 enable DGA 2 support [autodetect]
400 --enable-dga1 enable DGA 1 support [autodetect]
401 --enable-vesa enable VESA video output [autodetect]
402 --enable-svga enable SVGAlib video output [autodetect]
403 --enable-sdl enable SDL video output [autodetect]
404 --enable-aa enable AAlib video output [autodetect]
405 --enable-caca enable CACA video output [autodetect]
406 --enable-ggi enable GGI video output [autodetect]
407 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
408 --enable-direct3d enable Direct3D video output [autodetect]
409 --enable-directx enable DirectX video output [autodetect]
410 --enable-dxr3 enable DXR3/H+ video output [autodetect]
411 --enable-ivtv enable IVTV TV-Out video output [autodetect]
412 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
413 --enable-dvb enable DVB video output [autodetect]
414 --enable-mga enable mga_vid video output [autodetect]
415 --enable-xmga enable mga_vid X11 video output [autodetect]
416 --enable-xv enable Xv video output [autodetect]
417 --enable-vdpau enable VDPAU acceleration [autodetect]
418 --enable-vm enable XF86VidMode support [autodetect]
419 --enable-xinerama enable Xinerama support [autodetect]
420 --enable-x11 enable X11 video output [autodetect]
421 --enable-xshape enable XShape support [autodetect]
422 --disable-xss disable screensaver support via xss [autodetect]
423 --enable-fbdev enable FBDev video output [autodetect]
424 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
425 --enable-tdfxfb enable tdfxfb video output [disable]
426 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
427 --enable-wii enable Nintendo Wii/GameCube video output [disable]
428 --enable-directfb enable DirectFB video output [autodetect]
429 --enable-bl enable Blinkenlights video output [disable]
430 --enable-tdfxvid enable tdfx_vid video output [disable]
431 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
432 --disable-tga disable Targa video output [enable]
433 --disable-pnm disable PNM video output [enable]
434 --disable-md5sum disable md5sum video output [enable]
435 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
436 --disable-corevideo disable CoreVideo video output [autodetect]
437 --disable-cocoa disable Cocoa OpenGL backend [autodetect]
439 Audio output:
440 --disable-alsa disable ALSA audio output [autodetect]
441 --disable-ossaudio disable OSS audio output [autodetect]
442 --disable-arts disable aRts audio output [autodetect]
443 --disable-esd disable esd audio output [autodetect]
444 --disable-rsound disable RSound audio output [autodetect]
445 --disable-pulse disable Pulseaudio audio output [autodetect]
446 --disable-jack disable JACK audio output [autodetect]
447 --enable-openal enable OpenAL audio output [disable]
448 --disable-nas disable NAS audio output [autodetect]
449 --disable-sgiaudio disable SGI audio output [autodetect]
450 --disable-sunaudio disable Sun audio output [autodetect]
451 --disable-win32waveout disable Windows waveout audio output [autodetect]
452 --disable-coreaudio disable CoreAudio audio output [autodetect]
453 --disable-select disable using select() on the audio device [enable]
455 Language options:
456 --enable-translation enable support for translated output [disable]
457 --charset=charset convert the console messages to this character set
458 --language-doc=lang language to use for the documentation [en]
459 --language-man=lang language to use for the man pages [en]
460 --language-msg=lang extra languages for program messages [all]
461 --language=lang default language to use [en]
462 Specific options override --language. You can pass a list of languages separated
463 by whitespace or commas instead of a single language. Nonexisting translations
464 will be dropped from each list. All translations available in the list will be
465 installed. The value "all" will activate all translations. The LINGUAS
466 environment variable is honored. In all cases the fallback is English.
467 The program always supports English-language output; additional message
468 languages are only installed if --enable-translation is also specified.
469 Available values for --language-doc are: all $doc_lang_all
470 Available values for --language-man are: all $man_lang_all
471 Available values for --language-msg are: all $msg_lang_all
473 Miscellaneous options:
474 --enable-runtime-cpudetection enable runtime CPU detection [disable]
475 --enable-cross-compile enable cross-compilation [disable]
476 --cc=COMPILER C compiler to build MPlayer [gcc]
477 --host-cc=COMPILER C compiler for tools needed while building [gcc]
478 --as=ASSEMBLER assembler to build MPlayer [as]
479 --nm=NM nm tool to build MPlayer [nm]
480 --yasm=YASM Yasm assembler to build MPlayer [yasm]
481 --ar=AR librarian to build MPlayer [ar]
482 --pkg-config=PKGCONFIG pkg-config to find some libraries [pkg-config]
483 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
484 --windres=WINDRES windres to build MPlayer [windres]
485 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
486 --enable-static build a statically linked binary
487 --with-install=PATH path to a custom install program
489 Advanced options:
490 --enable-mmx enable MMX [autodetect]
491 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
492 --enable-3dnow enable 3DNow! [autodetect]
493 --enable-3dnowext enable extended 3DNow! [autodetect]
494 --enable-sse enable SSE [autodetect]
495 --enable-sse2 enable SSE2 [autodetect]
496 --enable-ssse3 enable SSSE3 [autodetect]
497 --enable-shm enable shm [autodetect]
498 --enable-altivec enable AltiVec (PowerPC) [autodetect]
499 --enable-armv5te enable DSP extensions (ARM) [autodetect]
500 --enable-armv6 enable ARMv6 (ARM) [autodetect]
501 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
502 --enable-armvfp enable ARM VFP (ARM) [autodetect]
503 --enable-neon enable NEON (ARM) [autodetect]
504 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
505 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
506 --enable-big-endian force byte order to big-endian [autodetect]
507 --enable-debug[=1-3] compile-in debugging information [disable]
508 --enable-profile compile-in profiling information [disable]
509 --disable-sighandler disable sighandler for crashes [enable]
510 --enable-crash-debug enable automatic gdb attach on crash [disable]
512 Use these options if autodetection fails:
513 --extra-cflags=FLAGS extra CFLAGS
514 --extra-ldflags=FLAGS extra LDFLAGS
515 --extra-libs=FLAGS extra linker flags
516 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
518 --with-sdl-config=PATH path to sdl*-config
519 --with-dvdnav-config=PATH path to dvdnav-config
520 --with-dvdread-config=PATH path to dvdread-config
522 This configure script is NOT autoconf-based, even though its output is similar.
523 It will try to autodetect all configuration options. If you --enable an option
524 it will be forcefully turned on, skipping autodetection. This can break
525 compilation, so you need to know what you are doing.
527 exit 0
528 } #show_help()
530 # GOTCHA: the variables below defines the default behavior for autodetection
531 # and have - unless stated otherwise - at least 2 states : yes no
532 # If autodetection is available then the third state is: auto
533 _mmx=auto
534 _3dnow=auto
535 _3dnowext=auto
536 _mmxext=auto
537 _sse=auto
538 _sse2=auto
539 _ssse3=auto
540 _cmov=auto
541 _fast_cmov=auto
542 _fast_clz=auto
543 _armv5te=auto
544 _armv6=auto
545 _armv6t2=auto
546 _armvfp=auto
547 neon=auto
548 _iwmmxt=auto
549 _altivec=auto
550 _install=install
551 _pkg_config=auto
552 _ranlib=auto
553 _windres=auto
554 _cc=auto
555 _ar=auto
556 test "$CC" && _cc="$CC"
557 _as=auto
558 _nm=auto
559 _yasm=auto
560 _runtime_cpudetection=no
561 _cross_compile=no
562 _prefix="/usr/local"
563 ffmpeg=auto
564 ffmpeg_internals=no
565 _mplayer=yes
566 _x11=auto
567 _xshape=auto
568 _xss=auto
569 _dga1=auto
570 _dga2=auto
571 _xv=auto
572 _vdpau=auto
573 _sdl=auto
574 _direct3d=auto
575 _directx=auto
576 _win32waveout=auto
577 _nas=auto
578 _png=auto
579 _mng=auto
580 _jpeg=auto
581 _pnm=yes
582 _md5sum=yes
583 _yuv4mpeg=yes
584 _gif=auto
585 _gl=auto
586 _ggi=auto
587 _ggiwmh=auto
588 _aa=auto
589 _caca=auto
590 _svga=auto
591 _vesa=auto
592 _fbdev=auto
593 _dvb=auto
594 _dxr3=auto
595 _ivtv=auto
596 _v4l2=auto
597 _iconv=auto
598 _langinfo=auto
599 _rtc=auto
600 _ossaudio=auto
601 _arts=auto
602 _esd=auto
603 _rsound=auto
604 _pulse=auto
605 _jack=auto
606 _openal=no
607 _libcdio=auto
608 _mad=auto
609 _tremor=auto
610 _libvorbis=auto
611 _speex=auto
612 _theora=auto
613 _mpg123=auto
614 _liba52=auto
615 _libdca=auto
616 _faad=auto
617 _ladspa=auto
618 _libbs2b=auto
619 _xmms=no
620 _vcd=auto
621 _bluray=auto
622 _dvdnav=auto
623 _dvdnavconfig=dvdnav-config
624 _dvdreadconfig=dvdread-config
625 _dvdread=auto
626 _dvdread_internal=auto
627 _libdvdcss_internal=auto
628 _xanim=auto
629 _real=auto
630 _live=no
631 _nemesi=auto
632 _native_rtsp=yes
633 _xinerama=auto
634 _mga=auto
635 _xmga=auto
636 _vm=auto
637 _xf86keysym=auto
638 _sgiaudio=auto
639 _sunaudio=auto
640 _alsa=auto
641 _fastmemcpy=yes
642 _unrar_exec=auto
643 _win32dll=auto
644 _select=yes
645 _radio=no
646 _radio_capture=no
647 _radio_v4l=auto
648 _radio_v4l2=auto
649 _radio_bsdbt848=auto
650 _tv=yes
651 _tv_v4l1=auto
652 _tv_v4l2=auto
653 _tv_bsdbt848=auto
654 _tv_dshow=auto
655 _pvr=auto
656 networking=yes
657 _winsock2_h=auto
658 _smb=auto
659 _joystick=no
660 _xvid=auto
661 _libnut=auto
662 _lirc=auto
663 _lircc=auto
664 _apple_remote=auto
665 _apple_ir=auto
666 _termcap=auto
667 _termios=auto
668 _3dfx=no
669 _s3fb=no
670 _wii=no
671 _tdfxfb=no
672 _tdfxvid=no
673 _xvr100=auto
674 _tga=yes
675 _directfb=auto
676 _bl=no
677 #language=en
678 _shm=auto
679 _translation=no
680 _charset="UTF-8"
681 _crash_debug=no
682 _sighandler=yes
683 _libdv=auto
684 _cdparanoia=auto
685 _cddb=auto
686 _big_endian=auto
687 _bitmap_font=yes
688 _freetype=auto
689 _fontconfig=auto
690 _qtx=auto
691 _coreaudio=auto
692 _corevideo=auto
693 _cocoa=auto
694 quicktime=auto
695 _macosx_finder=no
696 _macosx_bundle=auto
697 _sortsub=yes
698 _fribidi=auto
699 _enca=auto
700 _inet6=auto
701 _gethostbyname2=auto
702 _ftp=auto
703 _musepack=no
704 _vstream=auto
705 _pthreads=auto
706 _w32threads=auto
707 _ass=auto
708 _rpath=no
709 libpostproc=auto
710 _asmalign_pot=auto
711 _stream_cache=yes
712 _priority=no
713 def_dos_paths="#define HAVE_DOS_PATHS 0"
714 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
715 def_priority="#undef CONFIG_PRIORITY"
716 def_pthread_cache="#undef PTHREAD_CACHE"
717 need_shmem=yes
718 for ac_option do
719 case "$ac_option" in
720 --help|-help|-h)
721 show_help
723 --prefix=*)
724 _prefix=$(echo $ac_option | cut -d '=' -f 2)
726 --bindir=*)
727 _bindir=$(echo $ac_option | cut -d '=' -f 2)
729 --datadir=*)
730 _datadir=$(echo $ac_option | cut -d '=' -f 2)
732 --mandir=*)
733 _mandir=$(echo $ac_option | cut -d '=' -f 2)
735 --confdir=*)
736 _confdir=$(echo $ac_option | cut -d '=' -f 2)
738 --libdir=*)
739 _libdir=$(echo $ac_option | cut -d '=' -f 2)
741 --codecsdir=*)
742 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
744 --localedir=*)
745 _localedir=$(echo $ac_option | cut -d '=' -f 2)
748 --with-install=*)
749 _install=$(echo $ac_option | cut -d '=' -f 2 )
752 --with-sdl-config=*)
753 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
755 --with-dvdnav-config=*)
756 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
758 --with-dvdread-config=*)
759 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
762 --extra-cflags=*)
763 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
765 --extra-ldflags=*)
766 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
768 --extra-libs=*)
769 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
771 --extra-libs-mplayer=*)
772 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
775 --target=*)
776 _target=$(echo $ac_option | cut -d '=' -f 2)
778 --cc=*)
779 _cc=$(echo $ac_option | cut -d '=' -f 2)
781 --host-cc=*)
782 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
784 --as=*)
785 _as=$(echo $ac_option | cut -d '=' -f 2)
787 --nm=*)
788 _nm=$(echo $ac_option | cut -d '=' -f 2)
790 --yasm=*)
791 _yasm=$(echo $ac_option | cut -d '=' -f 2)
793 --ar=*)
794 _ar=$(echo $ac_option | cut -d '=' -f 2)
796 --pkg-config=*)
797 _pkg_config=$(echo $ac_option | cut -d '=' -f 2)
799 --ranlib=*)
800 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
802 --windres=*)
803 _windres=$(echo $ac_option | cut -d '=' -f 2)
805 --charset=*)
806 _charset=$(echo $ac_option | cut -d '=' -f 2)
808 --language-doc=*)
809 language_doc=$(echo $ac_option | cut -d '=' -f 2)
811 --language-man=*)
812 language_man=$(echo $ac_option | cut -d '=' -f 2)
814 --language-msg=*)
815 language_msg=$(echo $ac_option | cut -d '=' -f 2)
817 --language=*)
818 language=$(echo $ac_option | cut -d '=' -f 2)
821 --enable-static)
822 _ld_static='-static'
824 --disable-static)
825 _ld_static=''
827 --enable-profile)
828 _profile='-p'
830 --disable-profile)
831 _profile=
833 --enable-debug)
834 _debug='-g'
836 --enable-debug=*)
837 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
839 --disable-debug)
840 _debug=
842 --enable-translation) _translation=yes ;;
843 --disable-translation) _translation=no ;;
844 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
845 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
846 --enable-cross-compile) _cross_compile=yes ;;
847 --disable-cross-compile) _cross_compile=no ;;
848 --enable-mplayer) _mplayer=yes ;;
849 --disable-mplayer) _mplayer=no ;;
850 --enable-x11) _x11=yes ;;
851 --disable-x11) _x11=no ;;
852 --enable-xshape) _xshape=yes ;;
853 --disable-xshape) _xshape=no ;;
854 --enable-xss) _xss=yes ;;
855 --disable-xss) _xss=no ;;
856 --enable-xv) _xv=yes ;;
857 --disable-xv) _xv=no ;;
858 --enable-vdpau) _vdpau=yes ;;
859 --disable-vdpau) _vdpau=no ;;
860 --enable-sdl) _sdl=yes ;;
861 --disable-sdl) _sdl=no ;;
862 --enable-direct3d) _direct3d=yes ;;
863 --disable-direct3d) _direct3d=no ;;
864 --enable-directx) _directx=yes ;;
865 --disable-directx) _directx=no ;;
866 --enable-win32waveout) _win32waveout=yes ;;
867 --disable-win32waveout) _win32waveout=no ;;
868 --enable-nas) _nas=yes ;;
869 --disable-nas) _nas=no ;;
870 --enable-png) _png=yes ;;
871 --disable-png) _png=no ;;
872 --enable-mng) _mng=yes ;;
873 --disable-mng) _mng=no ;;
874 --enable-jpeg) _jpeg=yes ;;
875 --disable-jpeg) _jpeg=no ;;
876 --enable-pnm) _pnm=yes ;;
877 --disable-pnm) _pnm=no ;;
878 --enable-md5sum) _md5sum=yes ;;
879 --disable-md5sum) _md5sum=no ;;
880 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
881 --disable-yuv4mpeg) _yuv4mpeg=no ;;
882 --enable-gif) _gif=yes ;;
883 --disable-gif) _gif=no ;;
884 --enable-gl) _gl=yes ;;
885 --disable-gl) _gl=no ;;
886 --enable-ggi) _ggi=yes ;;
887 --disable-ggi) _ggi=no ;;
888 --enable-ggiwmh) _ggiwmh=yes ;;
889 --disable-ggiwmh) _ggiwmh=no ;;
890 --enable-aa) _aa=yes ;;
891 --disable-aa) _aa=no ;;
892 --enable-caca) _caca=yes ;;
893 --disable-caca) _caca=no ;;
894 --enable-svga) _svga=yes ;;
895 --disable-svga) _svga=no ;;
896 --enable-vesa) _vesa=yes ;;
897 --disable-vesa) _vesa=no ;;
898 --enable-fbdev) _fbdev=yes ;;
899 --disable-fbdev) _fbdev=no ;;
900 --enable-dvb) _dvb=yes ;;
901 --disable-dvb) _dvb=no ;;
902 --enable-dxr3) _dxr3=yes ;;
903 --disable-dxr3) _dxr3=no ;;
904 --enable-ivtv) _ivtv=yes ;;
905 --disable-ivtv) _ivtv=no ;;
906 --enable-v4l2) _v4l2=yes ;;
907 --disable-v4l2) _v4l2=no ;;
908 --enable-iconv) _iconv=yes ;;
909 --disable-iconv) _iconv=no ;;
910 --enable-langinfo) _langinfo=yes ;;
911 --disable-langinfo) _langinfo=no ;;
912 --enable-rtc) _rtc=yes ;;
913 --disable-rtc) _rtc=no ;;
914 --enable-libdv) _libdv=yes ;;
915 --disable-libdv) _libdv=no ;;
916 --enable-ossaudio) _ossaudio=yes ;;
917 --disable-ossaudio) _ossaudio=no ;;
918 --enable-arts) _arts=yes ;;
919 --disable-arts) _arts=no ;;
920 --enable-esd) _esd=yes ;;
921 --disable-esd) _esd=no ;;
922 --enable-rsound) _rsound=yes ;;
923 --disable-rsound) _rsound=no ;;
924 --enable-pulse) _pulse=yes ;;
925 --disable-pulse) _pulse=no ;;
926 --enable-jack) _jack=yes ;;
927 --disable-jack) _jack=no ;;
928 --enable-openal) _openal=yes ;;
929 --disable-openal) _openal=no ;;
930 --enable-mad) _mad=yes ;;
931 --disable-mad) _mad=no ;;
932 --enable-libcdio) _libcdio=yes ;;
933 --disable-libcdio) _libcdio=no ;;
934 --enable-libvorbis) _libvorbis=yes ;;
935 --disable-libvorbis) _libvorbis=no ;;
936 --enable-speex) _speex=yes ;;
937 --disable-speex) _speex=no ;;
938 --enable-tremor) _tremor=yes ;;
939 --disable-tremor) _tremor=no ;;
940 --enable-theora) _theora=yes ;;
941 --disable-theora) _theora=no ;;
942 --enable-mpg123) _mpg123=yes ;;
943 --disable-mpg123) _mpg123=no ;;
944 --enable-liba52) _liba52=yes ;;
945 --disable-liba52) _liba52=no ;;
946 --enable-libdca) _libdca=yes ;;
947 --disable-libdca) _libdca=no ;;
948 --enable-musepack) _musepack=yes ;;
949 --disable-musepack) _musepack=no ;;
950 --enable-faad) _faad=yes ;;
951 --disable-faad) _faad=no ;;
952 --enable-ladspa) _ladspa=yes ;;
953 --disable-ladspa) _ladspa=no ;;
954 --enable-libbs2b) _libbs2b=yes ;;
955 --disable-libbs2b) _libbs2b=no ;;
956 --enable-xmms) _xmms=yes ;;
957 --disable-xmms) _xmms=no ;;
958 --enable-vcd) _vcd=yes ;;
959 --disable-vcd) _vcd=no ;;
960 --enable-bluray) _bluray=yes ;;
961 --disable-bluray) _bluray=no ;;
962 --enable-dvdread) _dvdread=yes ;;
963 --disable-dvdread) _dvdread=no ;;
964 --enable-dvdread-internal) _dvdread_internal=yes ;;
965 --disable-dvdread-internal) _dvdread_internal=no ;;
966 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
967 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
968 --enable-dvdnav) _dvdnav=yes ;;
969 --disable-dvdnav) _dvdnav=no ;;
970 --enable-xanim) _xanim=yes ;;
971 --disable-xanim) _xanim=no ;;
972 --enable-real) _real=yes ;;
973 --disable-real) _real=no ;;
974 --enable-live) _live=yes ;;
975 --disable-live) _live=no ;;
976 --enable-nemesi) _nemesi=yes ;;
977 --disable-nemesi) _nemesi=no ;;
978 --enable-xinerama) _xinerama=yes ;;
979 --disable-xinerama) _xinerama=no ;;
980 --enable-mga) _mga=yes ;;
981 --disable-mga) _mga=no ;;
982 --enable-xmga) _xmga=yes ;;
983 --disable-xmga) _xmga=no ;;
984 --enable-vm) _vm=yes ;;
985 --disable-vm) _vm=no ;;
986 --enable-xf86keysym) _xf86keysym=yes ;;
987 --disable-xf86keysym) _xf86keysym=no ;;
988 --enable-sunaudio) _sunaudio=yes ;;
989 --disable-sunaudio) _sunaudio=no ;;
990 --enable-sgiaudio) _sgiaudio=yes ;;
991 --disable-sgiaudio) _sgiaudio=no ;;
992 --enable-alsa) _alsa=yes ;;
993 --disable-alsa) _alsa=no ;;
994 --enable-tv) _tv=yes ;;
995 --disable-tv) _tv=no ;;
996 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
997 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
998 --enable-tv-v4l1) _tv_v4l1=yes ;;
999 --disable-tv-v4l1) _tv_v4l1=no ;;
1000 --enable-tv-v4l2) _tv_v4l2=yes ;;
1001 --disable-tv-v4l2) _tv_v4l2=no ;;
1002 --enable-tv-dshow) _tv_dshow=yes ;;
1003 --disable-tv-dshow) _tv_dshow=no ;;
1004 --enable-radio) _radio=yes ;;
1005 --enable-radio-capture) _radio_capture=yes ;;
1006 --disable-radio-capture) _radio_capture=no ;;
1007 --disable-radio) _radio=no ;;
1008 --enable-radio-v4l) _radio_v4l=yes ;;
1009 --disable-radio-v4l) _radio_v4l=no ;;
1010 --enable-radio-v4l2) _radio_v4l2=yes ;;
1011 --disable-radio-v4l2) _radio_v4l2=no ;;
1012 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1013 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1014 --enable-pvr) _pvr=yes ;;
1015 --disable-pvr) _pvr=no ;;
1016 --enable-fastmemcpy) _fastmemcpy=yes ;;
1017 --disable-fastmemcpy) _fastmemcpy=no ;;
1018 --enable-networking) networking=yes ;;
1019 --disable-networking) networking=no ;;
1020 --enable-winsock2_h) _winsock2_h=yes ;;
1021 --disable-winsock2_h) _winsock2_h=no ;;
1022 --enable-smb) _smb=yes ;;
1023 --disable-smb) _smb=no ;;
1024 --enable-joystick) _joystick=yes ;;
1025 --disable-joystick) _joystick=no ;;
1026 --enable-xvid) _xvid=yes ;;
1027 --disable-xvid) _xvid=no ;;
1028 --enable-libnut) _libnut=yes ;;
1029 --disable-libnut) _libnut=no ;;
1030 --enable-libav) ffmpeg=yes ;;
1031 --ffmpeg-source-dir=*)
1032 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1034 --enable-lirc) _lirc=yes ;;
1035 --disable-lirc) _lirc=no ;;
1036 --enable-lircc) _lircc=yes ;;
1037 --disable-lircc) _lircc=no ;;
1038 --enable-apple-remote) _apple_remote=yes ;;
1039 --disable-apple-remote) _apple_remote=no ;;
1040 --enable-apple-ir) _apple_ir=yes ;;
1041 --disable-apple-ir) _apple_ir=no ;;
1042 --enable-termcap) _termcap=yes ;;
1043 --disable-termcap) _termcap=no ;;
1044 --enable-termios) _termios=yes ;;
1045 --disable-termios) _termios=no ;;
1046 --enable-3dfx) _3dfx=yes ;;
1047 --disable-3dfx) _3dfx=no ;;
1048 --enable-s3fb) _s3fb=yes ;;
1049 --disable-s3fb) _s3fb=no ;;
1050 --enable-wii) _wii=yes ;;
1051 --disable-wii) _wii=no ;;
1052 --enable-tdfxfb) _tdfxfb=yes ;;
1053 --disable-tdfxfb) _tdfxfb=no ;;
1054 --disable-tdfxvid) _tdfxvid=no ;;
1055 --enable-tdfxvid) _tdfxvid=yes ;;
1056 --disable-xvr100) _xvr100=no ;;
1057 --enable-xvr100) _xvr100=yes ;;
1058 --disable-tga) _tga=no ;;
1059 --enable-tga) _tga=yes ;;
1060 --enable-directfb) _directfb=yes ;;
1061 --disable-directfb) _directfb=no ;;
1062 --enable-bl) _bl=yes ;;
1063 --disable-bl) _bl=no ;;
1064 --enable-shm) _shm=yes ;;
1065 --disable-shm) _shm=no ;;
1066 --enable-select) _select=yes ;;
1067 --disable-select) _select=no ;;
1068 --enable-cdparanoia) _cdparanoia=yes ;;
1069 --disable-cdparanoia) _cdparanoia=no ;;
1070 --enable-cddb) _cddb=yes ;;
1071 --disable-cddb) _cddb=no ;;
1072 --enable-big-endian) _big_endian=yes ;;
1073 --disable-big-endian) _big_endian=no ;;
1074 --enable-bitmap-font) _bitmap_font=yes ;;
1075 --disable-bitmap-font) _bitmap_font=no ;;
1076 --enable-freetype) _freetype=yes ;;
1077 --disable-freetype) _freetype=no ;;
1078 --enable-fontconfig) _fontconfig=yes ;;
1079 --disable-fontconfig) _fontconfig=no ;;
1080 --enable-unrarexec) _unrar_exec=yes ;;
1081 --disable-unrarexec) _unrar_exec=no ;;
1082 --enable-ftp) _ftp=yes ;;
1083 --disable-ftp) _ftp=no ;;
1084 --enable-vstream) _vstream=yes ;;
1085 --disable-vstream) _vstream=no ;;
1086 --enable-pthreads) _pthreads=yes ;;
1087 --disable-pthreads) _pthreads=no ;;
1088 --enable-w32threads) _w32threads=yes ;;
1089 --disable-w32threads) _w32threads=no ;;
1090 --enable-libass) _ass=yes ;;
1091 --disable-libass) _ass=no ;;
1092 --enable-rpath) _rpath=yes ;;
1093 --disable-rpath) _rpath=no ;;
1094 --enable-libpostproc) libpostproc=yes ;;
1095 --disable-libpostproc) libpostproc=no ;;
1097 --enable-fribidi) _fribidi=yes ;;
1098 --disable-fribidi) _fribidi=no ;;
1100 --enable-enca) _enca=yes ;;
1101 --disable-enca) _enca=no ;;
1103 --enable-inet6) _inet6=yes ;;
1104 --disable-inet6) _inet6=no ;;
1106 --enable-gethostbyname2) _gethostbyname2=yes ;;
1107 --disable-gethostbyname2) _gethostbyname2=no ;;
1109 --enable-dga1) _dga1=yes ;;
1110 --disable-dga1) _dga1=no ;;
1111 --enable-dga2) _dga2=yes ;;
1112 --disable-dga2) _dga2=no ;;
1114 --enable-qtx) _qtx=yes ;;
1115 --disable-qtx) _qtx=no ;;
1117 --enable-coreaudio) _coreaudio=yes ;;
1118 --disable-coreaudio) _coreaudio=no ;;
1119 --enable-corevideo) _corevideo=yes ;;
1120 --disable-corevideo) _corevideo=no ;;
1121 --enable-cocoa) _cocoa=yes ;;
1122 --disable-cocoa) _cocoa=no ;;
1123 --enable-macosx-finder) _macosx_finder=yes ;;
1124 --disable-macosx-finder) _macosx_finder=no ;;
1125 --enable-macosx-bundle) _macosx_bundle=yes ;;
1126 --disable-macosx-bundle) _macosx_bundle=no ;;
1128 --enable-sortsub) _sortsub=yes ;;
1129 --disable-sortsub) _sortsub=no ;;
1131 --enable-crash-debug) _crash_debug=yes ;;
1132 --disable-crash-debug) _crash_debug=no ;;
1133 --enable-sighandler) _sighandler=yes ;;
1134 --disable-sighandler) _sighandler=no ;;
1135 --enable-win32dll) _win32dll=yes ;;
1136 --disable-win32dll) _win32dll=no ;;
1138 --enable-sse) _sse=yes ;;
1139 --disable-sse) _sse=no ;;
1140 --enable-sse2) _sse2=yes ;;
1141 --disable-sse2) _sse2=no ;;
1142 --enable-ssse3) _ssse3=yes ;;
1143 --disable-ssse3) _ssse3=no ;;
1144 --enable-mmxext) _mmxext=yes ;;
1145 --disable-mmxext) _mmxext=no ;;
1146 --enable-3dnow) _3dnow=yes ;;
1147 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1148 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1149 --disable-3dnowext) _3dnowext=no ;;
1150 --enable-cmov) _cmov=yes ;;
1151 --disable-cmov) _cmov=no ;;
1152 --enable-fast-cmov) _fast_cmov=yes ;;
1153 --disable-fast-cmov) _fast_cmov=no ;;
1154 --enable-fast-clz) _fast_clz=yes ;;
1155 --disable-fast-clz) _fast_clz=no ;;
1156 --enable-altivec) _altivec=yes ;;
1157 --disable-altivec) _altivec=no ;;
1158 --enable-armv5te) _armv5te=yes ;;
1159 --disable-armv5te) _armv5te=no ;;
1160 --enable-armv6) _armv6=yes ;;
1161 --disable-armv6) _armv6=no ;;
1162 --enable-armv6t2) _armv6t2=yes ;;
1163 --disable-armv6t2) _armv6t2=no ;;
1164 --enable-armvfp) _armvfp=yes ;;
1165 --disable-armvfp) _armvfp=no ;;
1166 --enable-neon) neon=yes ;;
1167 --disable-neon) neon=no ;;
1168 --enable-iwmmxt) _iwmmxt=yes ;;
1169 --disable-iwmmxt) _iwmmxt=no ;;
1170 --enable-mmx) _mmx=yes ;;
1171 --disable-mmx) # 3Dnow! and MMX2 require MMX
1172 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1175 echo "Unknown parameter: $ac_option" >&2
1176 exit 1
1179 esac
1180 done
1182 # Atmos: moved this here, to be correct, if --prefix is specified
1183 test -z "$_bindir" && _bindir="$_prefix/bin"
1184 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1185 test -z "$_mandir" && _mandir="$_prefix/share/man"
1186 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1187 test -z "$_libdir" && _libdir="$_prefix/lib"
1188 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1190 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1191 test "$tmpdir" && break
1192 done
1194 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1195 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1197 TMPLOG="config.log"
1199 rm -f "$TMPLOG"
1200 echo Parameters configure was run with: > "$TMPLOG"
1201 if test -n "$CFLAGS" ; then
1202 echo ${_echo_n} CFLAGS="'$CFLAGS' ${_echo_c}" >> "$TMPLOG"
1204 if test -n "$PKG_CONFIG_PATH" ; then
1205 echo ${_echo_n} PKG_CONFIG_PATH="'$PKG_CONFIG_PATH' ${_echo_c}" >> "$TMPLOG"
1207 echo ./configure $configuration >> "$TMPLOG"
1208 echo >> "$TMPLOG"
1211 echocheck "cross compilation"
1212 echores $_cross_compile
1214 if test $_cross_compile = yes; then
1215 tmp_run() {
1216 return 0
1218 test "$_host_cc" || _host_cc=cc
1221 tool_prefix=""
1223 if test $_cross_compile = yes ; then
1224 # Usually cross-compiler prefixes match with the target triplet
1225 test -n "$_target" && tool_prefix="$_target"-
1228 test "$_ranlib" = auto && _ranlib="$tool_prefix"ranlib
1229 test "$_windres" = auto && _windres="$tool_prefix"windres
1230 test "$_ar" = auto && _ar="$tool_prefix"ar
1231 test "$_yasm" = auto && _yasm="$tool_prefix"yasm
1232 test "$_pkg_config" = auto && _pkg_config="$tool_prefix"pkg-config
1234 if test "$_cc" = auto ; then
1235 if test -n "$tool_prefix" ; then
1236 _cc="$tool_prefix"gcc
1237 else
1238 _cc=cc
1242 # Determine our OS name and CPU architecture
1243 if test -z "$_target" ; then
1244 # OS name
1245 system_name=$(uname -s 2>&1)
1246 case "$system_name" in
1247 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1249 Haiku)
1250 system_name=BeOS
1252 IRIX*)
1253 system_name=IRIX
1255 GNU/kFreeBSD)
1256 system_name=FreeBSD
1258 HP-UX*)
1259 system_name=HP-UX
1261 [cC][yY][gG][wW][iI][nN]*)
1262 system_name=CYGWIN
1264 MINGW32*)
1265 system_name=MINGW32
1267 OS/2*)
1268 system_name=OS/2
1271 system_name="$system_name-UNKNOWN"
1273 esac
1276 # host's CPU/instruction set
1277 host_arch=$(uname -p 2>&1)
1278 case "$host_arch" in
1279 i386|sparc|ppc|alpha|arm|mips|vax)
1281 powerpc) # Darwin returns 'powerpc'
1282 host_arch=ppc
1284 *) # uname -p on Linux returns 'unknown' for the processor type,
1285 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1287 # Maybe uname -m (machine hardware name) returns something we
1288 # recognize.
1290 # x86/x86pc is used by QNX
1291 case "$(uname -m 2>&1)" in
1292 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 ;;
1293 ia64) host_arch=ia64 ;;
1294 macppc|ppc) host_arch=ppc ;;
1295 ppc64) host_arch=ppc64 ;;
1296 alpha) host_arch=alpha ;;
1297 sparc) host_arch=sparc ;;
1298 sparc64) host_arch=sparc64 ;;
1299 parisc*|hppa*|9000*) host_arch=hppa ;;
1300 arm*|zaurus|cats) host_arch=arm ;;
1301 sh3|sh4|sh4a) host_arch=sh ;;
1302 s390) host_arch=s390 ;;
1303 s390x) host_arch=s390x ;;
1304 *mips*) host_arch=mips ;;
1305 vax) host_arch=vax ;;
1306 xtensa*) host_arch=xtensa ;;
1307 *) host_arch=UNKNOWN ;;
1308 esac
1310 esac
1311 else # if test -z "$_target"
1312 for i in 2 3; do
1313 system_name=$(echo $_target | cut -d '-' -f $i)
1314 case "$(echo $system_name | tr A-Z a-z)" in
1315 linux) system_name=Linux ;;
1316 freebsd) system_name=FreeBSD ;;
1317 gnu/kfreebsd) system_name=FreeBSD ;;
1318 netbsd) system_name=NetBSD ;;
1319 bsd/os) system_name=BSD/OS ;;
1320 openbsd) system_name=OpenBSD ;;
1321 dragonfly) system_name=DragonFly ;;
1322 sunos) system_name=SunOS ;;
1323 qnx) system_name=QNX ;;
1324 morphos) system_name=MorphOS ;;
1325 amigaos) system_name=AmigaOS ;;
1326 mingw32*) system_name=MINGW32 ;;
1327 *) continue ;;
1328 esac
1329 break
1330 done
1331 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1332 host_arch=$(echo $_target | cut -d '-' -f 1)
1333 if test $(echo $host_arch) != "x86_64" ; then
1334 host_arch=$(echo $host_arch | tr '_' '-')
1338 extra_cflags="-I. $extra_cflags"
1339 _timer=timer-linux.c
1340 _getch=getch2.c
1341 if freebsd ; then
1342 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1343 extra_cflags="$extra_cflags -I/usr/local/include"
1346 if netbsd || dragonfly ; then
1347 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1348 extra_cflags="$extra_cflags -I/usr/pkg/include"
1351 if darwin; then
1352 extra_cflags="-mdynamic-no-pic $extra_cflags"
1353 if test "$(basename $_cc)" != "clang" ; then
1354 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1356 _timer=timer-darwin.c
1359 if aix ; then
1360 extra_ldflags="$extra_ldflags -lC"
1363 if irix ; then
1364 _ranlib='ar -r'
1365 elif linux ; then
1366 _ranlib='true'
1369 if win32 ; then
1370 _exesuf=".exe"
1371 extra_cflags="$extra_cflags -fno-common"
1372 # -lwinmm is always needed for osdep/timer-win2.c
1373 extra_ldflags="$extra_ldflags -lwinmm"
1374 _pe_executable=yes
1375 _timer=timer-win2.c
1376 _priority=yes
1377 def_dos_paths="#define HAVE_DOS_PATHS 1"
1378 def_priority="#define CONFIG_PRIORITY 1"
1381 if mingw32 ; then
1382 _getch=getch2-win.c
1383 need_shmem=no
1384 extra_cflags="$extra_cflags -D__USE_MINGW_ANSI_STDIO=1"
1387 if amigaos ; then
1388 _select=no
1389 _sighandler=no
1390 _stream_cache=no
1391 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1392 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1395 if qnx ; then
1396 extra_ldflags="$extra_ldflags -lph"
1399 TMPC="$mplayer_tmpdir/tmp.c"
1400 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1401 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1402 TMPH="$mplayer_tmpdir/tmp.h"
1403 TMPS="$mplayer_tmpdir/tmp.S"
1405 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1406 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1410 # Checking CC version...
1411 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1412 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1413 echocheck "$_cc version"
1414 cc_vendor=intel
1415 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1416 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1417 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1418 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1419 # TODO verify older icc/ecc compatibility
1420 case $cc_version in
1422 cc_version="v. ?.??, bad"
1423 cc_fail=yes
1425 10.1|11.0|11.1)
1426 cc_version="$cc_version, ok"
1429 cc_version="$cc_version, bad"
1430 cc_fail=yes
1432 esac
1433 echores "$cc_version"
1434 else
1435 for _cc in "$_cc" gcc cc ; do
1436 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1437 if test "$cc_name_tmp" = "gcc"; then
1438 cc_name=$cc_name_tmp
1439 echocheck "$_cc version"
1440 cc_vendor=gnu
1441 cc_version=$($_cc -dumpversion 2>&1)
1442 case $cc_version in
1443 2.96*)
1444 cc_fail=yes
1447 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1448 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1449 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1451 esac
1452 echores "$cc_version"
1453 break
1455 if $_cc -v 2>&1 | grep -q "clang"; then
1456 echocheck "$_cc version"
1457 cc_vendor=clang
1458 cc_version=$($_cc -dumpversion 2>&1)
1459 res_comment="experimental support only"
1460 echores "clang $cc_version"
1461 break
1463 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1464 if test "$cc_name_tmp" = "Sun C"; then
1465 echocheck "$_cc version"
1466 cc_vendor=sun
1467 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1468 res_comment="experimental support only"
1469 echores "Sun C $cc_version"
1470 break
1472 done
1473 fi # icc
1474 test "$cc_fail" = yes && die "unsupported compiler version"
1476 echocheck "working compiler"
1477 cflag_check "" || die "Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1478 echo "yes"
1480 if test -z "$_target" && x86 ; then
1481 cat > $TMPC << EOF
1482 int main(void) {
1483 int test[(int)sizeof(char *)-7];
1484 return 0;
1487 cc_check && host_arch=x86_64 || host_arch=i386
1490 echocheck "host cc"
1491 test "$_host_cc" || _host_cc=$_cc
1492 echores $_host_cc
1494 echo "Detected operating system: $system_name"
1495 echo "Detected host architecture: $host_arch"
1497 # ---
1499 # now that we know what compiler should be used for compilation, try to find
1500 # out which assembler is used by the $_cc compiler
1501 if test "$_as" = auto ; then
1502 _as=$($_cc -print-prog-name=as)
1503 test -z "$_as" && _as=as
1506 if test "$_nm" = auto ; then
1507 _nm=$($_cc -print-prog-name=nm)
1508 test -z "$_nm" && _nm=nm
1511 # XXX: this should be ok..
1512 _cpuinfo="echo"
1514 if test "$_runtime_cpudetection" = no ; then
1516 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1517 # FIXME: Remove the cygwin check once AMD CPUs are supported
1518 if test -r /proc/cpuinfo && ! cygwin; then
1519 # Linux with /proc mounted, extract CPU information from it
1520 _cpuinfo="cat /proc/cpuinfo"
1521 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1522 # FreeBSD with Linux emulation /proc mounted,
1523 # extract CPU information from it
1524 # Don't use it on x86 though, it never reports 3Dnow
1525 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1526 elif darwin && ! x86 ; then
1527 # use hostinfo on Darwin
1528 _cpuinfo="hostinfo"
1529 elif aix; then
1530 # use 'lsattr' on AIX
1531 _cpuinfo="lsattr -E -l proc0 -a type"
1532 elif x86; then
1533 # all other OSes try to extract CPU information from a small helper
1534 # program cpuinfo instead
1535 $_cc -o cpuinfo$_exesuf cpuinfo.c
1536 _cpuinfo="./cpuinfo$_exesuf"
1539 if x86 ; then
1540 # gather more CPU information
1541 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1542 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1543 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1544 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1545 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1547 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1549 pparam=$(echo $exts | sed -e s/xmm/sse/ -e s/kni/sse/)
1550 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1551 pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/')
1553 for ext in $pparam ; do
1554 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1555 done
1557 echocheck "CPU vendor"
1558 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1560 echocheck "CPU type"
1561 echores "$pname"
1564 fi # test "$_runtime_cpudetection" = no
1566 if x86 && test "$_runtime_cpudetection" = no ; then
1567 extcheck() {
1568 if test "$1" = kernel_check ; then
1569 echocheck "kernel support of $2"
1570 cat > $TMPC <<EOF
1571 #include <stdlib.h>
1572 #include <signal.h>
1573 static void catch(int sig) { exit(1); }
1574 int main(void) {
1575 signal(SIGILL, catch);
1576 __asm__ volatile ("$3":::"memory"); return 0;
1580 if cc_check && tmp_run ; then
1581 eval _$2=yes
1582 echores "yes"
1583 _optimizing="$_optimizing $2"
1584 return 0
1585 else
1586 eval _$2=no
1587 echores "failed"
1588 echo "It seems that your kernel does not correctly support $2."
1589 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1590 return 1
1593 return 0
1596 extcheck $_mmx "mmx" "emms"
1597 extcheck $_mmxext "mmxext" "sfence"
1598 extcheck $_3dnow "3dnow" "femms"
1599 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1600 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1601 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1602 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1603 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1605 if test "$_gcc3_ext" != ""; then
1606 # if we had to disable sse/sse2 because the active kernel does not
1607 # support this instruction set extension, we also have to tell
1608 # gcc3 to not generate sse/sse2 instructions for normal C code
1609 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1615 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1616 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1617 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1618 subarch_all='X86_32 X86_64 PPC64'
1619 case "$host_arch" in
1620 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1621 arch='x86'
1622 subarch='x86_32'
1623 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1624 iproc=486
1625 proc=i486
1628 if test "$_runtime_cpudetection" = no ; then
1629 case "$pvendor" in
1630 AuthenticAMD)
1631 case "$pfamily" in
1632 3) proc=i386 iproc=386 ;;
1633 4) proc=i486 iproc=486 ;;
1634 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1635 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1636 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1637 proc=k6-3
1638 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1639 proc=geode
1640 elif test "$pmodel" -ge 8; then
1641 proc=k6-2
1642 elif test "$pmodel" -ge 6; then
1643 proc=k6
1644 else
1645 proc=i586
1648 6) iproc=686
1649 # It's a bit difficult to determine the correct type of Family 6
1650 # AMD CPUs just from their signature. Instead, we check directly
1651 # whether it supports SSE.
1652 if test "$_sse" = yes; then
1653 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1654 proc=athlon-xp
1655 else
1656 # Again, gcc treats athlon and athlon-tbird similarly.
1657 proc=athlon
1660 15) iproc=686
1661 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1662 # caught and remedied in the optimization tests below.
1663 proc=k8
1666 *) proc=amdfam10 iproc=686
1667 test $_fast_clz = "auto" && _fast_clz=yes
1669 esac
1671 GenuineIntel)
1672 case "$pfamily" in
1673 3) proc=i386 iproc=386 ;;
1674 4) proc=i486 iproc=486 ;;
1675 5) iproc=586
1676 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1677 proc=pentium-mmx # 4 is desktop, 8 is mobile
1678 else
1679 proc=i586
1682 6) iproc=686
1683 if test "$pmodel" -ge 15; then
1684 proc=core2
1685 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1686 proc=pentium-m
1687 elif test "$pmodel" -ge 7; then
1688 proc=pentium3
1689 elif test "$pmodel" -ge 3; then
1690 proc=pentium2
1691 else
1692 proc=i686
1694 test $_fast_clz = "auto" && _fast_clz=yes
1696 15) iproc=686
1697 # A nocona in 32-bit mode has no more capabilities than a prescott.
1698 if test "$pmodel" -ge 3; then
1699 proc=prescott
1700 else
1701 proc=pentium4
1702 test $_fast_clz = "auto" && _fast_clz=yes
1704 test $_fast_cmov = "auto" && _fast_cmov=no
1706 *) proc=prescott iproc=686 ;;
1707 esac
1709 CentaurHauls)
1710 case "$pfamily" in
1711 5) iproc=586
1712 if test "$pmodel" -ge 8; then
1713 proc=winchip2
1714 elif test "$pmodel" -ge 4; then
1715 proc=winchip-c6
1716 else
1717 proc=i586
1720 6) iproc=686
1721 if test "$pmodel" -ge 9; then
1722 proc=c3-2
1723 else
1724 proc=c3
1725 iproc=586
1728 *) proc=i686 iproc=i686 ;;
1729 esac
1731 unknown)
1732 case "$pfamily" in
1733 3) proc=i386 iproc=386 ;;
1734 4) proc=i486 iproc=486 ;;
1735 *) proc=i586 iproc=586 ;;
1736 esac
1739 proc=i586 iproc=586 ;;
1740 esac
1741 test $_fast_clz = "auto" && _fast_clz=no
1742 fi # test "$_runtime_cpudetection" = no
1745 # check that gcc supports our CPU, if not, fall back to earlier ones
1746 # LGB: check -mcpu and -march swithing step by step with enabling
1747 # to fall back till 386.
1749 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1751 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1752 cpuopt=-mtune
1753 else
1754 cpuopt=-mcpu
1757 echocheck "GCC & CPU optimization abilities"
1758 if test "$_runtime_cpudetection" = no ; then
1759 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1760 cflag_check -march=native && proc=native
1762 if test "$proc" = "amdfam10"; then
1763 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1765 if test "$proc" = "k8"; then
1766 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1768 if test "$proc" = "athlon-xp"; then
1769 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1771 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1772 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1774 if test "$proc" = "k6" || test "$proc" = "c3"; then
1775 if ! cflag_check -march=$proc $cpuopt=$proc; then
1776 if cflag_check -march=i586 $cpuopt=i686; then
1777 proc=i586-i686
1778 else
1779 proc=i586
1783 if test "$proc" = "prescott" ; then
1784 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1786 if test "$proc" = "core2" ; then
1787 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1789 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
1790 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1792 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1793 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1795 if test "$proc" = "i586"; then
1796 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1798 if test "$proc" = "i486" ; then
1799 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1801 if test "$proc" = "i386" ; then
1802 cflag_check -march=$proc $cpuopt=$proc || proc=error
1804 if test "$proc" = "error" ; then
1805 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1806 _mcpu=""
1807 _march=""
1808 _optimizing=""
1809 elif test "$proc" = "i586-i686"; then
1810 _march="-march=i586"
1811 _mcpu="$cpuopt=i686"
1812 _optimizing="$proc"
1813 else
1814 _march="-march=$proc"
1815 _mcpu="$cpuopt=$proc"
1816 _optimizing="$proc"
1818 else # if test "$_runtime_cpudetection" = no
1819 _mcpu="$cpuopt=generic"
1820 # at least i486 required, for bswap instruction
1821 _march="-march=i486"
1822 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1823 cflag_check $_mcpu || _mcpu=""
1824 cflag_check $_march $_mcpu || _march=""
1827 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1828 ## autodetected mcpu/march parameters
1829 if test "$_target" ; then
1830 # TODO: it may be a good idea to check GCC and fall back in all cases
1831 if test "$host_arch" = "i586-i686"; then
1832 _march="-march=i586"
1833 _mcpu="$cpuopt=i686"
1834 else
1835 _march="-march=$host_arch"
1836 _mcpu="$cpuopt=$host_arch"
1839 proc="$host_arch"
1841 case "$proc" in
1842 i386) iproc=386 ;;
1843 i486) iproc=486 ;;
1844 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1845 i686|athlon*|pentium*) iproc=686 ;;
1846 *) iproc=586 ;;
1847 esac
1850 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1851 _fast_cmov="yes"
1852 else
1853 _fast_cmov="no"
1855 test $_fast_clz = "auto" && _fast_clz=yes
1857 echores "$proc"
1860 ia64)
1861 arch='ia64'
1862 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1863 iproc='ia64'
1866 x86_64|amd64)
1867 arch='x86'
1868 subarch='x86_64'
1869 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1870 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1871 iproc='x86_64'
1873 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1874 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1875 cpuopt=-mtune
1876 else
1877 cpuopt=-mcpu
1879 if test "$_runtime_cpudetection" = no ; then
1880 case "$pvendor" in
1881 AuthenticAMD)
1882 case "$pfamily" in
1883 15) proc=k8
1884 test $_fast_clz = "auto" && _fast_clz=no
1886 *) proc=amdfam10;;
1887 esac
1889 GenuineIntel)
1890 case "$pfamily" in
1891 6) proc=core2;;
1893 # 64-bit prescotts exist, but as far as GCC is concerned they
1894 # have the same capabilities as a nocona.
1895 proc=nocona
1896 test $_fast_cmov = "auto" && _fast_cmov=no
1897 test $_fast_clz = "auto" && _fast_clz=no
1899 esac
1902 proc=error;;
1903 esac
1904 fi # test "$_runtime_cpudetection" = no
1906 echocheck "GCC & CPU optimization abilities"
1907 # This is a stripped-down version of the i386 fallback.
1908 if test "$_runtime_cpudetection" = no ; then
1909 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1910 cflag_check -march=native && proc=native
1912 # --- AMD processors ---
1913 if test "$proc" = "amdfam10"; then
1914 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1916 if test "$proc" = "k8"; then
1917 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1919 # This will fail if gcc version < 3.3, which is ok because earlier
1920 # versions don't really support 64-bit on amd64.
1921 # Is this a valid assumption? -Corey
1922 if test "$proc" = "athlon-xp"; then
1923 cflag_check -march=$proc $cpuopt=$proc || proc=error
1925 # --- Intel processors ---
1926 if test "$proc" = "core2"; then
1927 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1929 if test "$proc" = "x86-64"; then
1930 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1932 if test "$proc" = "nocona"; then
1933 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1935 if test "$proc" = "pentium4"; then
1936 cflag_check -march=$proc $cpuopt=$proc || proc=error
1939 _march="-march=$proc"
1940 _mcpu="$cpuopt=$proc"
1941 if test "$proc" = "error" ; then
1942 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1943 _mcpu=""
1944 _march=""
1946 else # if test "$_runtime_cpudetection" = no
1947 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1948 _march="-march=x86-64"
1949 _mcpu="$cpuopt=generic"
1950 cflag_check $_mcpu || _mcpu="x86-64"
1951 cflag_check $_mcpu || _mcpu=""
1952 cflag_check $_march $_mcpu || _march=""
1955 _optimizing="$proc"
1956 test $_fast_cmov = "auto" && _fast_cmov=yes
1957 test $_fast_clz = "auto" && _fast_clz=yes
1959 echores "$proc"
1962 sparc|sparc64)
1963 arch='sparc'
1964 iproc='sparc'
1965 if test "$host_arch" = "sparc64" ; then
1966 _vis='yes'
1967 proc='ultrasparc'
1968 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1969 elif sunos ; then
1970 echocheck "CPU type"
1971 karch=$(uname -m)
1972 case "$(echo $karch)" in
1973 sun4) proc=v7 ;;
1974 sun4c) proc=v7 ;;
1975 sun4d) proc=v8 ;;
1976 sun4m) proc=v8 ;;
1977 sun4u) proc=ultrasparc _vis='yes' ;;
1978 sun4v) proc=v9 ;;
1979 *) proc=v8 ;;
1980 esac
1981 echores "$proc"
1982 else
1983 proc=v8
1985 _mcpu="-mcpu=$proc"
1986 _optimizing="$proc"
1989 arm*)
1990 arch='arm'
1991 iproc='arm'
1994 avr32)
1995 arch='avr32'
1996 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1997 iproc='avr32'
1998 test $_fast_clz = "auto" && _fast_clz=yes
2001 sh|sh4)
2002 arch='sh4'
2003 iproc='sh4'
2006 ppc|ppc64|powerpc|powerpc64)
2007 arch='ppc'
2008 def_dcbzl='#define HAVE_DCBZL 0'
2009 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2010 iproc='ppc'
2012 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2013 subarch='ppc64'
2014 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2016 echocheck "CPU type"
2017 case $system_name in
2018 Linux)
2019 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2020 if test -n "$($_cpuinfo | grep altivec)"; then
2021 test $_altivec = auto && _altivec=yes
2024 Darwin)
2025 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2026 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2027 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2028 test $_altivec = auto && _altivec=yes
2031 NetBSD)
2032 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2033 case $cc_version in
2034 2*|3.0*|3.1*|3.2*|3.3*)
2037 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2038 test $_altivec = auto && _altivec=yes
2041 esac
2043 AIX)
2044 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2046 esac
2047 if test "$_altivec" = yes; then
2048 echores "$proc altivec"
2049 else
2050 _altivec=no
2051 echores "$proc"
2054 echocheck "GCC & CPU optimization abilities"
2056 if test -n "$proc"; then
2057 case "$proc" in
2058 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2059 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2060 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2061 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2062 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2063 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2064 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2065 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2066 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2067 *) ;;
2068 esac
2069 # gcc 3.1(.1) and up supports 7400 and 7450
2070 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2071 case "$proc" in
2072 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2073 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2074 *) ;;
2075 esac
2077 # gcc 3.2 and up supports 970
2078 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2079 case "$proc" in
2080 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2081 def_dcbzl='#define HAVE_DCBZL 1' ;;
2082 *) ;;
2083 esac
2085 # gcc 3.3 and up supports POWER4
2086 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2087 case "$proc" in
2088 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2089 *) ;;
2090 esac
2092 # gcc 3.4 and up supports 440*
2093 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2094 case "$proc" in
2095 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2096 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2097 *) ;;
2098 esac
2100 # gcc 4.0 and up supports POWER5
2101 if test "$_cc_major" -ge "4"; then
2102 case "$proc" in
2103 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2104 *) ;;
2105 esac
2109 if test -n "$_mcpu"; then
2110 _optimizing=$(echo $_mcpu | cut -c 8-)
2111 echores "$_optimizing"
2112 else
2113 echores "none"
2116 test $_fast_clz = "auto" && _fast_clz=yes
2120 alpha*)
2121 arch='alpha'
2122 iproc='alpha'
2123 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2125 echocheck "CPU type"
2126 cat > $TMPC << EOF
2127 int main(void) {
2128 unsigned long ver, mask;
2129 __asm__ ("implver %0" : "=r" (ver));
2130 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2131 printf("%ld-%x\n", ver, ~mask);
2132 return 0;
2135 $_cc -o "$TMPEXE" "$TMPC"
2136 case $("$TMPEXE") in
2138 0-0) proc="ev4"; _mvi="0";;
2139 1-0) proc="ev5"; _mvi="0";;
2140 1-1) proc="ev56"; _mvi="0";;
2141 1-101) proc="pca56"; _mvi="1";;
2142 2-303) proc="ev6"; _mvi="1";;
2143 2-307) proc="ev67"; _mvi="1";;
2144 2-1307) proc="ev68"; _mvi="1";;
2145 esac
2146 echores "$proc"
2148 echocheck "GCC & CPU optimization abilities"
2149 if test "$proc" = "ev68" ; then
2150 cc_check -mcpu=$proc || proc=ev67
2152 if test "$proc" = "ev67" ; then
2153 cc_check -mcpu=$proc || proc=ev6
2155 _mcpu="-mcpu=$proc"
2156 echores "$proc"
2158 test $_fast_clz = "auto" && _fast_clz=yes
2160 _optimizing="$proc"
2163 mips*)
2164 arch='mips'
2165 iproc='mips'
2167 if irix ; then
2168 echocheck "CPU type"
2169 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2170 case "$(echo $proc)" in
2171 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2172 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2173 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2174 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2175 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2176 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2177 esac
2178 # gcc < 3.x does not support -mtune.
2179 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2180 _mcpu=''
2182 echores "$proc"
2185 test $_fast_clz = "auto" && _fast_clz=yes
2189 hppa)
2190 arch='pa_risc'
2191 iproc='PA-RISC'
2194 s390)
2195 arch='s390'
2196 iproc='390'
2199 s390x)
2200 arch='s390x'
2201 iproc='390x'
2204 vax)
2205 arch='vax'
2206 iproc='vax'
2209 xtensa)
2210 arch='xtensa'
2211 iproc='xtensa'
2214 generic)
2215 arch='generic'
2219 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2220 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2221 die "unsupported architecture $host_arch"
2223 esac # case "$host_arch" in
2225 if test "$_runtime_cpudetection" = yes ; then
2226 if x86 ; then
2227 test "$_cmov" != no && _cmov=yes
2228 x86_32 && _cmov=no
2229 test "$_mmx" != no && _mmx=yes
2230 test "$_3dnow" != no && _3dnow=yes
2231 test "$_3dnowext" != no && _3dnowext=yes
2232 test "$_mmxext" != no && _mmxext=yes
2233 test "$_sse" != no && _sse=yes
2234 test "$_sse2" != no && _sse2=yes
2235 test "$_ssse3" != no && _ssse3=yes
2237 if ppc; then
2238 _altivec=yes
2243 # endian testing
2244 echocheck "byte order"
2245 if test "$_big_endian" = auto ; then
2246 cat > $TMPC <<EOF
2247 short ascii_name[] = {
2248 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2249 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2250 int main(void) { return (long)ascii_name; }
2252 if cc_check ; then
2253 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2254 _big_endian=yes
2255 else
2256 _big_endian=no
2258 else
2259 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2262 if test "$_big_endian" = yes ; then
2263 _byte_order='big-endian'
2264 def_words_endian='#define WORDS_BIGENDIAN 1'
2265 def_bigendian='#define HAVE_BIGENDIAN 1'
2266 else
2267 _byte_order='little-endian'
2268 def_words_endian='#undef WORDS_BIGENDIAN'
2269 def_bigendian='#define HAVE_BIGENDIAN 0'
2271 echores "$_byte_order"
2274 echocheck "extern symbol prefix"
2275 cat > $TMPC << EOF
2276 int ff_extern;
2278 cc_check -c || die "Symbol mangling check failed."
2279 sym=$($_nm -P -g $TMPEXE)
2280 extern_prefix=${sym%%ff_extern*}
2281 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2282 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2283 echores $extern_prefix
2286 echocheck "assembler support of -pipe option"
2287 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2288 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2291 if darwin && test "$cc_vendor" = "gnu" ; then
2292 echocheck "GCC support of -mstackrealign"
2293 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2294 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2295 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2296 # wrong code with this flag, but this can be worked around by adding
2297 # -fno-unit-at-a-time as described in the blog post at
2298 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2299 cat > $TMPC << EOF
2300 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2301 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2303 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2304 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2305 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2306 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2307 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2310 # Checking for CFLAGS
2311 _install_strip="-s"
2312 if test "$_profile" != "" || test "$_debug" != "" ; then
2313 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2314 WARNFLAGS="-W -Wall"
2315 _install_strip=
2316 elif test -z "$CFLAGS" ; then
2317 if test "$cc_vendor" = "intel" ; then
2318 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2319 WARNFLAGS="-wd167 -wd556 -wd144"
2320 elif test "$cc_vendor" = "sun" ; then
2321 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2322 elif test "$cc_vendor" = "clang"; then
2323 CFLAGS="-O2 $_march $_pipe"
2324 WARNFLAGS="-Wall -Wno-switch-enum -Wno-logical-op-parentheses -Wpointer-arith -Wundef -Wno-pointer-sign -Wmissing-prototypes"
2325 ERRORFLAGS="-Werror=implicit-function-declaration"
2326 elif test "$cc_vendor" != "gnu" ; then
2327 CFLAGS="-O2 $_march $_mcpu $_pipe"
2328 else
2329 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2330 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2331 ERRORFLAGS="-Werror-implicit-function-declaration"
2332 extra_ldflags="$extra_ldflags -ffast-math"
2334 else
2335 warn_cflags=yes
2338 if test "$cc_vendor" = "gnu" ; then
2339 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2340 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2341 # that's the only variable specific to C now, and this option is not valid
2342 # for C++.
2343 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2344 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2345 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2346 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2347 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2348 else
2349 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2352 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2353 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2356 if test -n "$LDFLAGS" ; then
2357 extra_ldflags="$extra_ldflags $LDFLAGS"
2358 warn_cflags=yes
2359 elif test "$cc_vendor" = "intel" ; then
2360 extra_ldflags="$extra_ldflags -i-static"
2362 if test -n "$CPPFLAGS" ; then
2363 extra_cflags="$extra_cflags $CPPFLAGS"
2364 warn_cflags=yes
2369 if x86_32 ; then
2370 # Checking assembler (_as) compatibility...
2371 # Added workaround for older as that reads from stdin by default - atmos
2372 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2373 echocheck "assembler ($_as $as_version)"
2375 _pref_as_version='2.9.1'
2376 echo 'nop' > $TMPS
2377 if test "$_mmx" = yes ; then
2378 echo 'emms' >> $TMPS
2380 if test "$_3dnow" = yes ; then
2381 _pref_as_version='2.10.1'
2382 echo 'femms' >> $TMPS
2384 if test "$_3dnowext" = yes ; then
2385 _pref_as_version='2.10.1'
2386 echo 'pswapd %mm0, %mm0' >> $TMPS
2388 if test "$_mmxext" = yes ; then
2389 _pref_as_version='2.10.1'
2390 echo 'movntq %mm0, (%eax)' >> $TMPS
2392 if test "$_sse" = yes ; then
2393 _pref_as_version='2.10.1'
2394 echo 'xorps %xmm0, %xmm0' >> $TMPS
2396 #if test "$_sse2" = yes ; then
2397 # _pref_as_version='2.11'
2398 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2400 if test "$_cmov" = yes ; then
2401 _pref_as_version='2.10.1'
2402 echo 'cmovb %eax, %ebx' >> $TMPS
2404 if test "$_ssse3" = yes ; then
2405 _pref_as_version='2.16.92'
2406 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2408 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2410 if test "$as_verc_fail" != yes ; then
2411 echores "ok"
2412 else
2413 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2414 echores "failed"
2415 die "obsolete binutils version"
2418 fi #if x86_32
2421 echocheck "PIC"
2422 pic=no
2423 cat > $TMPC << EOF
2424 int main(void) {
2425 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2426 #error PIC not enabled
2427 #endif
2428 return 0;
2431 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2432 echores $pic
2435 if x86 ; then
2437 echocheck ".align is a power of two"
2438 if test "$_asmalign_pot" = auto ; then
2439 _asmalign_pot=no
2440 inline_asm_check '".align 3"' && _asmalign_pot=yes
2442 if test "$_asmalign_pot" = "yes" ; then
2443 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2444 else
2445 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2447 echores $_asmalign_pot
2450 echocheck "ebx availability"
2451 ebx_available=no
2452 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2453 cat > $TMPC << EOF
2454 int main(void) {
2455 int x;
2456 __asm__ volatile(
2457 "xor %0, %0"
2458 :"=b"(x)
2459 // just adding ebx to clobber list seems unreliable with some
2460 // compilers, e.g. Haiku's gcc 2.95
2462 // and the above check does not work for OSX 64 bit...
2463 __asm__ volatile("":::"%ebx");
2464 return 0;
2467 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2468 echores $ebx_available
2471 echocheck "yasm"
2472 if test -z "$YASMFLAGS" ; then
2473 if darwin ; then
2474 x86_64 && objformat="macho64" || objformat="macho"
2475 elif win32 ; then
2476 objformat="win32"
2477 else
2478 objformat="elf"
2480 # currently tested for Linux x86, x86_64
2481 YASMFLAGS="-f $objformat"
2482 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2483 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2484 case "$objformat" in
2485 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2486 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2487 esac
2488 else
2489 warn_cflags=yes
2492 echo "pabsw xmm0, xmm0" > $TMPS
2493 yasm_check || _yasm=""
2494 if test $_yasm ; then
2495 def_yasm='#define HAVE_YASM 1'
2496 have_yasm="yes"
2497 echores "$_yasm"
2498 else
2499 def_yasm='#define HAVE_YASM 0'
2500 have_yasm="no"
2501 echores "no"
2504 echocheck "bswap"
2505 def_bswap='#define HAVE_BSWAP 0'
2506 echo 'bswap %eax' > $TMPS
2507 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2508 echores "$bswap"
2509 fi #if x86
2512 #FIXME: This should happen before the check for CFLAGS..
2513 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2514 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2516 # check if AltiVec is supported by the compiler, and how to enable it
2517 echocheck "GCC AltiVec flags"
2518 if $(cflag_check -maltivec -mabi=altivec) ; then
2519 _altivec_gcc_flags="-maltivec -mabi=altivec"
2520 # check if <altivec.h> should be included
2521 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2522 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2523 inc_altivec_h='#include <altivec.h>'
2524 else
2525 if $(cflag_check -faltivec) ; then
2526 _altivec_gcc_flags="-faltivec"
2527 else
2528 _altivec=no
2529 _altivec_gcc_flags="none, AltiVec disabled"
2533 echores "$_altivec_gcc_flags"
2535 # check if the compiler supports braces for vector declarations
2536 cat > $TMPC << EOF
2537 $inc_altivec_h
2538 int main(void) { (vector int) {1}; return 0; }
2540 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2542 # Disable runtime cpudetection if we cannot generate AltiVec code or
2543 # AltiVec is disabled by the user.
2544 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2545 && _runtime_cpudetection=no
2547 # Show that we are optimizing for AltiVec (if enabled and supported).
2548 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2549 && _optimizing="$_optimizing altivec"
2551 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2552 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2555 if ppc ; then
2556 def_xform_asm='#define HAVE_XFORM_ASM 0'
2557 xform_asm=no
2558 echocheck "XFORM ASM support"
2559 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2560 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2561 echores "$xform_asm"
2564 if arm ; then
2565 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2566 if test $_armv5te = "auto" ; then
2567 _armv5te=no
2568 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2570 echores "$_armv5te"
2572 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2574 echocheck "ARMv6 (SIMD instructions)"
2575 if test $_armv6 = "auto" ; then
2576 _armv6=no
2577 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2579 echores "$_armv6"
2581 echocheck "ARMv6t2 (SIMD instructions)"
2582 if test $_armv6t2 = "auto" ; then
2583 _armv6t2=no
2584 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2586 echores "$_armv6t2"
2588 echocheck "ARM VFP"
2589 if test $_armvfp = "auto" ; then
2590 _armvfp=no
2591 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2593 echores "$_armvfp"
2595 echocheck "ARM NEON"
2596 if test $neon = "auto" ; then
2597 neon=no
2598 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2600 echores "$neon"
2602 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2603 if test $_iwmmxt = "auto" ; then
2604 _iwmmxt=no
2605 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2607 echores "$_iwmmxt"
2610 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2611 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2612 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2613 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2614 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2615 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2616 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2617 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2618 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2619 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2620 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2621 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2622 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2623 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2624 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2625 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2626 test "$neon" = yes && cpuexts="NEON $cpuexts"
2627 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2628 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2629 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2631 # Checking kernel version...
2632 if x86_32 && linux ; then
2633 _k_verc_problem=no
2634 kernel_version=$(uname -r 2>&1)
2635 echocheck "$system_name kernel version"
2636 case "$kernel_version" in
2637 '') kernel_version="?.??"; _k_verc_fail=yes;;
2638 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2639 _k_verc_problem=yes;;
2640 esac
2641 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2642 _k_verc_fail=yes
2644 if test "$_k_verc_fail" ; then
2645 echores "$kernel_version, fail"
2646 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2647 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2648 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2649 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2650 echo "2.2.x you must upgrade it to get SSE support!"
2651 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2652 else
2653 echores "$kernel_version, ok"
2657 ######################
2658 # MAIN TESTS GO HERE #
2659 ######################
2662 echocheck "-lposix"
2663 if cflag_check -lposix ; then
2664 extra_ldflags="$extra_ldflags -lposix"
2665 echores "yes"
2666 else
2667 echores "no"
2670 echocheck "-lm"
2671 if cflag_check -lm ; then
2672 _ld_lm="-lm"
2673 echores "yes"
2674 else
2675 _ld_lm=""
2676 echores "no"
2680 echocheck "langinfo"
2681 if test "$_langinfo" = auto ; then
2682 _langinfo=no
2683 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2685 if test "$_langinfo" = yes ; then
2686 def_langinfo='#define HAVE_LANGINFO 1'
2687 else
2688 def_langinfo='#undef HAVE_LANGINFO'
2690 echores "$_langinfo"
2693 echocheck "translation support"
2694 if test "$_translation" = yes; then
2695 def_translation="#define CONFIG_TRANSLATION 1"
2696 else
2697 def_translation="#undef CONFIG_TRANSLATION"
2699 echores "$_translation"
2701 echocheck "language"
2702 # Set preferred languages, "all" uses English as main language.
2703 test -z "$language" && language=$LINGUAS
2704 test -z "$language_doc" && language_doc=$language
2705 test -z "$language_man" && language_man=$language
2706 test -z "$language_msg" && language_msg=$language
2707 test -z "$language_msg" && language_msg="all"
2708 language_doc=$(echo $language_doc | tr , " ")
2709 language_man=$(echo $language_man | tr , " ")
2710 language_msg=$(echo $language_msg | tr , " ")
2712 test "$language_doc" = "all" && language_doc=$doc_lang_all
2713 test "$language_man" = "all" && language_man=$man_lang_all
2714 test "$language_msg" = "all" && language_msg=$msg_lang_all
2716 if test "$_translation" != yes ; then
2717 language_msg=""
2720 # Prune non-existing translations from language lists.
2721 # Set message translation to the first available language.
2722 # Fall back on English.
2723 for lang in $language_doc ; do
2724 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2725 done
2726 language_doc=$tmp_language_doc
2727 test -z "$language_doc" && language_doc=en
2729 for lang in $language_man ; do
2730 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2731 done
2732 language_man=$tmp_language_man
2733 test -z "$language_man" && language_man=en
2735 for lang in $language_msg ; do
2736 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2737 done
2738 language_msg=$tmp_language_msg
2740 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2743 echocheck "enable sighandler"
2744 if test "$_sighandler" = yes ; then
2745 def_sighandler='#define CONFIG_SIGHANDLER 1'
2746 else
2747 def_sighandler='#undef CONFIG_SIGHANDLER'
2749 echores "$_sighandler"
2751 echocheck "runtime cpudetection"
2752 if test "$_runtime_cpudetection" = yes ; then
2753 _optimizing="Runtime CPU-Detection enabled"
2754 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2755 else
2756 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2758 echores "$_runtime_cpudetection"
2761 echocheck "restrict keyword"
2762 for restrict_keyword in restrict __restrict __restrict__ ; do
2763 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2764 if cc_check; then
2765 def_restrict_keyword=$restrict_keyword
2766 break;
2768 done
2769 if [ -n "$def_restrict_keyword" ]; then
2770 echores "$def_restrict_keyword"
2771 else
2772 echores "none"
2774 # Avoid infinite recursion loop ("#define restrict restrict")
2775 if [ "$def_restrict_keyword" != "restrict" ]; then
2776 def_restrict_keyword="#define restrict $def_restrict_keyword"
2777 else
2778 def_restrict_keyword=""
2782 echocheck "__builtin_expect"
2783 # GCC branch prediction hint
2784 cat > $TMPC << EOF
2785 static int foo(int a) {
2786 a = __builtin_expect(a, 10);
2787 return a == 10 ? 0 : 1;
2789 int main(void) { return foo(10) && foo(0); }
2791 _builtin_expect=no
2792 cc_check && _builtin_expect=yes
2793 if test "$_builtin_expect" = yes ; then
2794 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2795 else
2796 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2798 echores "$_builtin_expect"
2801 echocheck "kstat"
2802 _kstat=no
2803 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2804 if test "$_kstat" = yes ; then
2805 def_kstat="#define HAVE_LIBKSTAT 1"
2806 extra_ldflags="$extra_ldflags -lkstat"
2807 else
2808 def_kstat="#undef HAVE_LIBKSTAT"
2810 echores "$_kstat"
2813 echocheck "posix4"
2814 # required for nanosleep on some systems
2815 _posix4=no
2816 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2817 if test "$_posix4" = yes ; then
2818 extra_ldflags="$extra_ldflags -lposix4"
2820 echores "$_posix4"
2822 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2823 echocheck $func
2824 eval _$func=no
2825 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2826 if eval test "x\$_$func" = "xyes"; then
2827 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2828 echores yes
2829 else
2830 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2831 echores no
2833 done
2836 echocheck "mkstemp"
2837 _mkstemp=no
2838 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2839 if test "$_mkstemp" = yes ; then
2840 def_mkstemp='#define HAVE_MKSTEMP 1'
2841 else
2842 def_mkstemp='#define HAVE_MKSTEMP 0'
2844 echores "$_mkstemp"
2847 echocheck "nanosleep"
2848 _nanosleep=no
2849 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2850 if test "$_nanosleep" = yes ; then
2851 def_nanosleep='#define HAVE_NANOSLEEP 1'
2852 else
2853 def_nanosleep='#undef HAVE_NANOSLEEP'
2855 echores "$_nanosleep"
2858 echocheck "socklib"
2859 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2860 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2861 cat > $TMPC << EOF
2862 #include <netdb.h>
2863 #include <sys/socket.h>
2864 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2866 _socklib=no
2867 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2868 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2869 done
2870 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2871 if test $_winsock2_h = auto ; then
2872 _winsock2_h=no
2873 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2875 test "$_ld_sock" && res_comment="using $_ld_sock"
2876 echores "$_socklib"
2879 if test $_winsock2_h = yes ; then
2880 _ld_sock="-lws2_32"
2881 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2882 else
2883 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2887 echocheck "arpa/inet.h"
2888 arpa_inet_h=no
2889 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2890 header_check arpa/inet.h && arpa_inet_h=yes &&
2891 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2892 echores "$arpa_inet_h"
2895 echocheck "inet_pton()"
2896 def_inet_pton='#define HAVE_INET_PTON 0'
2897 inet_pton=no
2898 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2899 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2900 done
2901 if test $inet_pton = yes ; then
2902 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2903 def_inet_pton='#define HAVE_INET_PTON 1'
2905 echores "$inet_pton"
2908 echocheck "inet_aton()"
2909 def_inet_aton='#define HAVE_INET_ATON 0'
2910 inet_aton=no
2911 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2912 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2913 done
2914 if test $inet_aton = yes ; then
2915 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2916 def_inet_aton='#define HAVE_INET_ATON 1'
2918 echores "$inet_aton"
2921 echocheck "socklen_t"
2922 _socklen_t=no
2923 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2924 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2925 done
2926 if test "$_socklen_t" = yes ; then
2927 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2928 else
2929 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2931 echores "$_socklen_t"
2934 echocheck "closesocket()"
2935 _closesocket=no
2936 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2937 if test "$_closesocket" = yes ; then
2938 def_closesocket='#define HAVE_CLOSESOCKET 1'
2939 else
2940 def_closesocket='#define HAVE_CLOSESOCKET 0'
2942 echores "$_closesocket"
2945 echocheck "networking"
2946 test $_winsock2_h = no && test $inet_pton = no &&
2947 test $inet_aton = no && networking=no
2948 if test "$networking" = yes ; then
2949 def_network='#define CONFIG_NETWORK 1'
2950 def_networking='#define CONFIG_NETWORKING 1'
2951 extra_ldflags="$extra_ldflags $_ld_sock"
2952 inputmodules="networking $inputmodules"
2953 else
2954 noinputmodules="networking $noinputmodules"
2955 def_network='#define CONFIG_NETWORK 0'
2956 def_networking='#undef CONFIG_NETWORKING'
2958 echores "$networking"
2961 echocheck "inet6"
2962 if test "$_inet6" = auto ; then
2963 cat > $TMPC << EOF
2964 #include <sys/types.h>
2965 #if !defined(_WIN32)
2966 #include <sys/socket.h>
2967 #include <netinet/in.h>
2968 #else
2969 #include <ws2tcpip.h>
2970 #endif
2971 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
2973 _inet6=no
2974 if cc_check $_ld_sock ; then
2975 _inet6=yes
2978 if test "$_inet6" = yes ; then
2979 def_inet6='#define HAVE_AF_INET6 1'
2980 else
2981 def_inet6='#undef HAVE_AF_INET6'
2983 echores "$_inet6"
2986 echocheck "gethostbyname2"
2987 if test "$_gethostbyname2" = auto ; then
2988 cat > $TMPC << EOF
2989 #include <sys/types.h>
2990 #include <sys/socket.h>
2991 #include <netdb.h>
2992 int main(void) { gethostbyname2("", AF_INET); return 0; }
2994 _gethostbyname2=no
2995 if cc_check ; then
2996 _gethostbyname2=yes
2999 if test "$_gethostbyname2" = yes ; then
3000 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3001 else
3002 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3004 echores "$_gethostbyname2"
3007 echocheck "inttypes.h (required)"
3008 _inttypes=no
3009 header_check inttypes.h && _inttypes=yes
3010 echores "$_inttypes"
3012 if test "$_inttypes" = no ; then
3013 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3014 header_check sys/bitypes.h && _inttypes=yes
3015 if test "$_inttypes" = yes ; then
3016 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."
3017 else
3018 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3023 echocheck "malloc.h"
3024 _malloc=no
3025 header_check malloc.h && _malloc=yes
3026 if test "$_malloc" = yes ; then
3027 def_malloc_h='#define HAVE_MALLOC_H 1'
3028 else
3029 def_malloc_h='#define HAVE_MALLOC_H 0'
3031 echores "$_malloc"
3034 echocheck "memalign()"
3035 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3036 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3037 _memalign=no
3038 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3039 if test "$_memalign" = yes ; then
3040 def_memalign='#define HAVE_MEMALIGN 1'
3041 else
3042 def_memalign='#define HAVE_MEMALIGN 0'
3043 def_map_memalign='#define memalign(a, b) malloc(b)'
3044 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3046 echores "$_memalign"
3049 echocheck "posix_memalign()"
3050 posix_memalign=no
3051 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3052 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3053 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3054 echores "$posix_memalign"
3057 echocheck "alloca.h"
3058 _alloca=no
3059 statement_check alloca.h 'alloca(0)' && _alloca=yes
3060 if cc_check ; then
3061 def_alloca_h='#define HAVE_ALLOCA_H 1'
3062 else
3063 def_alloca_h='#undef HAVE_ALLOCA_H'
3065 echores "$_alloca"
3068 echocheck "fastmemcpy"
3069 if test "$_fastmemcpy" = yes ; then
3070 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3071 else
3072 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3074 echores "$_fastmemcpy"
3077 echocheck "mman.h"
3078 _mman=no
3079 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3080 if test "$_mman" = yes ; then
3081 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3082 else
3083 def_mman_h='#undef HAVE_SYS_MMAN_H'
3085 echores "$_mman"
3087 _mman_has_map_failed=no
3088 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3089 if test "$_mman_has_map_failed" = yes ; then
3090 def_mman_has_map_failed=''
3091 else
3092 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3095 echocheck "dynamic loader"
3096 _dl=no
3097 for _ld_tmp in "" "-ldl"; do
3098 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3099 done
3100 if test "$_dl" = yes ; then
3101 def_dl='#define HAVE_LIBDL 1'
3102 else
3103 def_dl='#undef HAVE_LIBDL'
3105 echores "$_dl"
3108 def_threads='#define HAVE_THREADS 0'
3110 echocheck "pthread"
3111 if linux ; then
3112 THREAD_CFLAGS=-D_REENTRANT
3113 elif freebsd || netbsd || openbsd || bsdos ; then
3114 THREAD_CFLAGS=-D_THREAD_SAFE
3116 if test "$_pthreads" = auto ; then
3117 cat > $TMPC << EOF
3118 #include <pthread.h>
3119 static void *func(void *arg) { return arg; }
3120 int main(void) {
3121 pthread_t tid;
3122 #ifdef PTW32_STATIC_LIB
3123 pthread_win32_process_attach_np();
3124 pthread_win32_thread_attach_np();
3125 #endif
3126 return pthread_create (&tid, 0, func, 0) != 0;
3129 _pthreads=no
3130 if ! hpux ; then
3131 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3132 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3133 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3134 done
3135 if test "$_pthreads" = no && mingw32 ; then
3136 _ld_tmp="-lpthreadGC2 -lws2_32"
3137 cc_check $_ld_tmp -DPTW32_STATIC_LIB && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
3141 if test "$_pthreads" = yes ; then
3142 test $_ld_pthread && res_comment="using $_ld_pthread"
3143 def_pthreads='#define HAVE_PTHREADS 1'
3144 def_threads='#define HAVE_THREADS 1'
3145 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3146 else
3147 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3148 def_pthreads='#undef HAVE_PTHREADS'
3149 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3150 mingw32 || _win32dll=no
3152 echores "$_pthreads"
3154 if cygwin ; then
3155 if test "$_pthreads" = yes ; then
3156 def_pthread_cache="#define PTHREAD_CACHE 1"
3157 else
3158 _stream_cache=no
3159 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3163 echocheck "w32threads"
3164 if test "$_pthreads" = yes ; then
3165 res_comment="using pthread instead"
3166 _w32threads=no
3168 if test "$_w32threads" = auto ; then
3169 _w32threads=no
3170 mingw32 && _w32threads=yes
3172 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3173 echores "$_w32threads"
3175 echocheck "rpath"
3176 if test "$_rpath" = yes ; then
3177 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3178 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3179 done
3180 extra_ldflags=$tmp
3182 echores "$_rpath"
3184 echocheck "iconv"
3185 if test "$_iconv" = auto ; then
3186 cat > $TMPC << EOF
3187 #include <stdio.h>
3188 #include <unistd.h>
3189 #include <iconv.h>
3190 #define INBUFSIZE 1024
3191 #define OUTBUFSIZE 4096
3193 char inbuffer[INBUFSIZE];
3194 char outbuffer[OUTBUFSIZE];
3196 int main(void) {
3197 size_t numread;
3198 iconv_t icdsc;
3199 char *tocode="UTF-8";
3200 char *fromcode="cp1250";
3201 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3202 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3203 char *iptr=inbuffer;
3204 char *optr=outbuffer;
3205 size_t inleft=numread;
3206 size_t outleft=OUTBUFSIZE;
3207 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3208 != (size_t)(-1)) {
3209 write(1, outbuffer, OUTBUFSIZE - outleft);
3212 if (iconv_close(icdsc) == -1)
3215 return 0;
3218 _iconv=no
3219 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3220 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3221 _iconv=yes && break
3222 done
3223 if test "$_iconv" != yes ; then
3224 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."
3227 if test "$_iconv" = yes ; then
3228 def_iconv='#define CONFIG_ICONV 1'
3229 else
3230 def_iconv='#undef CONFIG_ICONV'
3232 echores "$_iconv"
3235 echocheck "soundcard.h"
3236 _soundcard_h=no
3237 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3238 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3239 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3240 header_check $_soundcard_header && _soundcard_h=yes &&
3241 res_comment="$_soundcard_header" && break
3242 done
3244 if test "$_soundcard_h" = yes ; then
3245 if test $_soundcard_header = "sys/soundcard.h"; then
3246 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3247 else
3248 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3251 echores "$_soundcard_h"
3254 echocheck "sys/videoio.h"
3255 sys_videoio_h=no
3256 def_sys_videoio_h='#undef HAVE_SYS_VIDEOIO_H'
3257 header_check sys/videoio.h && sys_videoio_h=yes &&
3258 def_sys_videoio_h='#define HAVE_SYS_VIDEOIO_H 1'
3259 echores "$sys_videoio_h"
3262 echocheck "sys/dvdio.h"
3263 _dvdio=no
3264 # FreeBSD 8.1 has broken dvdio.h
3265 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3266 if test "$_dvdio" = yes ; then
3267 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3268 else
3269 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3271 echores "$_dvdio"
3274 echocheck "sys/cdio.h"
3275 _cdio=no
3276 # at least OpenSolaris has a broken cdio.h
3277 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3278 if test "$_cdio" = yes ; then
3279 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3280 else
3281 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3283 echores "$_cdio"
3286 echocheck "linux/cdrom.h"
3287 _cdrom=no
3288 header_check linux/cdrom.h && _cdrom=yes
3289 if test "$_cdrom" = yes ; then
3290 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3291 else
3292 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3294 echores "$_cdrom"
3297 echocheck "dvd.h"
3298 _dvd=no
3299 header_check dvd.h && _dvd=yes
3300 if test "$_dvd" = yes ; then
3301 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3302 else
3303 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3305 echores "$_dvd"
3308 if bsdos; then
3309 echocheck "BSDI dvd.h"
3310 _bsdi_dvd=no
3311 header_check dvd.h && _bsdi_dvd=yes
3312 if test "$_bsdi_dvd" = yes ; then
3313 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3314 else
3315 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3317 echores "$_bsdi_dvd"
3318 fi #if bsdos
3321 if hpux; then
3322 # also used by AIX, but AIX does not support VCD and/or libdvdread
3323 echocheck "HP-UX SCSI header"
3324 _hpux_scsi_h=no
3325 header_check sys/scsi.h && _hpux_scsi_h=yes
3326 if test "$_hpux_scsi_h" = yes ; then
3327 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3328 else
3329 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3331 echores "$_hpux_scsi_h"
3332 fi #if hpux
3335 if sunos; then
3336 echocheck "userspace SCSI headers (Solaris)"
3337 _sol_scsi_h=no
3338 header_check sys/scsi/scsi_types.h &&
3339 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3340 _sol_scsi_h=yes
3341 if test "$_sol_scsi_h" = yes ; then
3342 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3343 else
3344 def_sol_scsi_h='#undef SOLARIS_USCSI'
3346 echores "$_sol_scsi_h"
3347 fi #if sunos
3350 echocheck "termcap"
3351 if test "$_termcap" = auto ; then
3352 _termcap=no
3353 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3354 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3355 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3356 done
3358 if test "$_termcap" = yes ; then
3359 def_termcap='#define HAVE_TERMCAP 1'
3360 test $_ld_tmp && res_comment="using $_ld_tmp"
3361 else
3362 def_termcap='#undef HAVE_TERMCAP'
3364 echores "$_termcap"
3367 echocheck "termios"
3368 def_termios='#undef HAVE_TERMIOS'
3369 def_termios_h='#undef HAVE_TERMIOS_H'
3370 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3371 if test "$_termios" = auto ; then
3372 _termios=no
3373 for _termios_header in "termios.h" "sys/termios.h"; do
3374 header_check $_termios_header && _termios=yes &&
3375 res_comment="using $_termios_header" && break
3376 done
3379 if test "$_termios" = yes ; then
3380 def_termios='#define HAVE_TERMIOS 1'
3381 if test "$_termios_header" = "termios.h" ; then
3382 def_termios_h='#define HAVE_TERMIOS_H 1'
3383 else
3384 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3387 echores "$_termios"
3390 echocheck "shm"
3391 if test "$_shm" = auto ; then
3392 _shm=no
3393 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3395 if test "$_shm" = yes ; then
3396 def_shm='#define HAVE_SHM 1'
3397 else
3398 def_shm='#undef HAVE_SHM'
3400 echores "$_shm"
3403 echocheck "strsep()"
3404 _strsep=no
3405 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3406 if test "$_strsep" = yes ; then
3407 def_strsep='#define HAVE_STRSEP 1'
3408 need_strsep=no
3409 else
3410 def_strsep='#undef HAVE_STRSEP'
3411 need_strsep=yes
3413 echores "$_strsep"
3416 echocheck "vsscanf()"
3417 cat > $TMPC << EOF
3418 #define _ISOC99_SOURCE
3419 #include <stdarg.h>
3420 #include <stdio.h>
3421 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3423 _vsscanf=no
3424 cc_check && _vsscanf=yes
3425 if test "$_vsscanf" = yes ; then
3426 def_vsscanf='#define HAVE_VSSCANF 1'
3427 need_vsscanf=no
3428 else
3429 def_vsscanf='#undef HAVE_VSSCANF'
3430 need_vsscanf=yes
3432 echores "$_vsscanf"
3435 echocheck "swab()"
3436 _swab=no
3437 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' ||
3438 statement_check "string.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3439 if test "$_swab" = yes ; then
3440 def_swab='#define HAVE_SWAB 1'
3441 need_swab=no
3442 else
3443 def_swab='#undef HAVE_SWAB'
3444 need_swab=yes
3446 echores "$_swab"
3448 echocheck "POSIX select()"
3449 cat > $TMPC << EOF
3450 #include <stdio.h>
3451 #include <stdlib.h>
3452 #include <sys/types.h>
3453 #include <string.h>
3454 #include <sys/time.h>
3455 #include <unistd.h>
3456 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3458 _posix_select=no
3459 def_posix_select='#undef HAVE_POSIX_SELECT'
3460 cc_check && _posix_select=yes &&
3461 def_posix_select='#define HAVE_POSIX_SELECT 1'
3462 echores "$_posix_select"
3465 echocheck "audio select()"
3466 if test "$_select" = no ; then
3467 def_select='#undef HAVE_AUDIO_SELECT'
3468 elif test "$_select" = yes ; then
3469 def_select='#define HAVE_AUDIO_SELECT 1'
3471 echores "$_select"
3474 echocheck "gettimeofday()"
3475 _gettimeofday=no
3476 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3477 if test "$_gettimeofday" = yes ; then
3478 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3479 need_gettimeofday=no
3480 else
3481 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3482 need_gettimeofday=yes
3484 echores "$_gettimeofday"
3487 echocheck "glob()"
3488 _glob=no
3489 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3490 need_glob=no
3491 if test "$_glob" = yes ; then
3492 def_glob='#define HAVE_GLOB 1'
3493 else
3494 def_glob='#undef HAVE_GLOB'
3495 # HACK! need_glob currently enables compilation of a
3496 # win32-specific glob()-replacement.
3497 # Other OS neither need it nor can they use it (mf:// is disabled for them).
3498 win32 && need_glob=yes
3500 echores "$_glob"
3503 echocheck "setenv()"
3504 _setenv=no
3505 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3506 if test "$_setenv" = yes ; then
3507 def_setenv='#define HAVE_SETENV 1'
3508 need_setenv=no
3509 else
3510 def_setenv='#undef HAVE_SETENV'
3511 need_setenv=yes
3513 echores "$_setenv"
3516 echocheck "setmode()"
3517 _setmode=no
3518 def_setmode='#define HAVE_SETMODE 0'
3519 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3520 echores "$_setmode"
3523 if sunos; then
3524 echocheck "sysi86()"
3525 _sysi86=no
3526 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3527 if test "$_sysi86" = yes ; then
3528 def_sysi86='#define HAVE_SYSI86 1'
3529 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3530 else
3531 def_sysi86='#undef HAVE_SYSI86'
3533 echores "$_sysi86"
3534 fi #if sunos
3537 echocheck "sys/sysinfo.h"
3538 _sys_sysinfo=no
3539 statement_check sys/sysinfo.h 'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo=yes
3540 if test "$_sys_sysinfo" = yes ; then
3541 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3542 else
3543 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3545 echores "$_sys_sysinfo"
3548 if darwin; then
3550 echocheck "Mac OS X Finder Support"
3551 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3552 if test "$_macosx_finder" = yes ; then
3553 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3554 extra_ldflags="$extra_ldflags -framework Cocoa"
3556 echores "$_macosx_finder"
3558 echocheck "Mac OS X Bundle file locations"
3559 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3560 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3561 if test "$_macosx_bundle" = yes ; then
3562 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3564 echores "$_macosx_bundle"
3566 echocheck "Apple Remote"
3567 if test "$_apple_remote" = auto ; then
3568 _apple_remote=no
3569 cat > $TMPC <<EOF
3570 #include <stdio.h>
3571 #include <IOKit/IOCFPlugIn.h>
3572 int main(void) {
3573 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3574 CFMutableDictionaryRef hidMatchDictionary;
3575 IOReturn ioReturnValue;
3577 // Set up a matching dictionary to search the I/O Registry by class.
3578 // name for all HID class devices
3579 hidMatchDictionary = IOServiceMatching("AppleIRController");
3581 // Now search I/O Registry for matching devices.
3582 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3583 hidMatchDictionary, &hidObjectIterator);
3585 // If search is unsuccessful, return nonzero.
3586 if (ioReturnValue != kIOReturnSuccess ||
3587 !IOIteratorIsValid(hidObjectIterator)) {
3588 return 1;
3590 return 0;
3593 cc_check -framework IOKit && _apple_remote=yes
3595 if test "$_apple_remote" = yes ; then
3596 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3597 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3598 else
3599 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3601 echores "$_apple_remote"
3603 fi #if darwin
3605 if linux; then
3607 echocheck "Apple IR"
3608 if test "$_apple_ir" = auto ; then
3609 _apple_ir=no
3610 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3612 if test "$_apple_ir" = yes ; then
3613 def_apple_ir='#define CONFIG_APPLE_IR 1'
3614 else
3615 def_apple_ir='#undef CONFIG_APPLE_IR'
3617 echores "$_apple_ir"
3618 fi #if linux
3620 echocheck "pkg-config"
3621 if $($_pkg_config --version > /dev/null 2>&1); then
3622 if test "$_ld_static"; then
3623 _pkg_config="$_pkg_config --static"
3625 echores "yes"
3626 else
3627 _pkg_config=false
3628 echores "no"
3632 echocheck "Samba support (libsmbclient)"
3633 if test "$_smb" = yes; then
3634 extra_ldflags="$extra_ldflags -lsmbclient"
3636 if test "$_smb" = auto; then
3637 _smb=no
3638 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3639 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3640 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3641 done
3644 if test "$_smb" = yes; then
3645 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3646 inputmodules="smb $inputmodules"
3647 else
3648 def_smb="#undef CONFIG_LIBSMBCLIENT"
3649 noinputmodules="smb $noinputmodules"
3651 echores "$_smb"
3654 #########
3655 # VIDEO #
3656 #########
3659 echocheck "tdfxfb"
3660 if test "$_tdfxfb" = yes ; then
3661 def_tdfxfb='#define CONFIG_TDFXFB 1'
3662 vomodules="tdfxfb $vomodules"
3663 else
3664 def_tdfxfb='#undef CONFIG_TDFXFB'
3665 novomodules="tdfxfb $novomodules"
3667 echores "$_tdfxfb"
3669 echocheck "s3fb"
3670 if test "$_s3fb" = yes ; then
3671 def_s3fb='#define CONFIG_S3FB 1'
3672 vomodules="s3fb $vomodules"
3673 else
3674 def_s3fb='#undef CONFIG_S3FB'
3675 novomodules="s3fb $novomodules"
3677 echores "$_s3fb"
3679 echocheck "wii"
3680 if test "$_wii" = yes ; then
3681 def_wii='#define CONFIG_WII 1'
3682 vomodules="wii $vomodules"
3683 else
3684 def_wii='#undef CONFIG_WII'
3685 novomodules="wii $novomodules"
3687 echores "$_wii"
3689 echocheck "tdfxvid"
3690 if test "$_tdfxvid" = yes ; then
3691 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3692 vomodules="tdfx_vid $vomodules"
3693 else
3694 def_tdfxvid='#undef CONFIG_TDFX_VID'
3695 novomodules="tdfx_vid $novomodules"
3697 echores "$_tdfxvid"
3699 echocheck "xvr100"
3700 if test "$_xvr100" = auto ; then
3701 cat > $TMPC << EOF
3702 #include <unistd.h>
3703 #include <sys/fbio.h>
3704 #include <sys/visual_io.h>
3705 int main(void) {
3706 struct vis_identifier ident;
3707 struct fbgattr attr;
3708 ioctl(0, VIS_GETIDENTIFIER, &ident);
3709 ioctl(0, FBIOGATTR, &attr);
3710 return 0;
3713 _xvr100=no
3714 cc_check && _xvr100=yes
3716 if test "$_xvr100" = yes ; then
3717 def_xvr100='#define CONFIG_XVR100 1'
3718 vomodules="xvr100 $vomodules"
3719 else
3720 def_tdfxvid='#undef CONFIG_XVR100'
3721 novomodules="xvr100 $novomodules"
3723 echores "$_xvr100"
3725 echocheck "tga"
3726 if test "$_tga" = yes ; then
3727 def_tga='#define CONFIG_TGA 1'
3728 vomodules="tga $vomodules"
3729 else
3730 def_tga='#undef CONFIG_TGA'
3731 novomodules="tga $novomodules"
3733 echores "$_tga"
3736 echocheck "md5sum support"
3737 if test "$_md5sum" = yes; then
3738 def_md5sum="#define CONFIG_MD5SUM 1"
3739 vomodules="md5sum $vomodules"
3740 else
3741 def_md5sum="#undef CONFIG_MD5SUM"
3742 novomodules="md5sum $novomodules"
3744 echores "$_md5sum"
3747 echocheck "yuv4mpeg support"
3748 if test "$_yuv4mpeg" = yes; then
3749 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3750 vomodules="yuv4mpeg $vomodules"
3751 else
3752 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3753 novomodules="yuv4mpeg $novomodules"
3755 echores "$_yuv4mpeg"
3758 echocheck "bl"
3759 if test "$_bl" = yes ; then
3760 def_bl='#define CONFIG_BL 1'
3761 vomodules="bl $vomodules"
3762 else
3763 def_bl='#undef CONFIG_BL'
3764 novomodules="bl $novomodules"
3766 echores "$_bl"
3769 echocheck "DirectFB"
3770 if test "$_directfb" = auto ; then
3771 _directfb=no
3772 cat > $TMPC << EOF
3773 #include <directfb.h>
3774 #include <directfb_version.h>
3775 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3776 #error "DirectFB version too old."
3777 #endif
3778 int main(void) { DirectFBInit(0, 0); return 0; }
3780 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3781 cc_check $_inc_tmp -ldirectfb &&
3782 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3783 done
3785 if test "$_directfb" = yes ; then
3786 def_directfb='#define CONFIG_DIRECTFB 1'
3787 vomodules="directfb dfbmga $vomodules"
3788 libs_mplayer="$libs_mplayer -ldirectfb"
3789 else
3790 def_directfb='#undef CONFIG_DIRECTFB'
3791 novomodules="directfb dfbmga $novomodules"
3793 echores "$_directfb"
3796 echocheck "X11 headers presence"
3797 _x11_headers="no"
3798 res_comment="check if the dev(el) packages are installed"
3799 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3800 if test -f "$I/X11/Xlib.h" ; then
3801 _x11_headers="yes"
3802 res_comment=""
3803 break
3805 done
3806 if test $_cross_compile = no; then
3807 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3808 /usr/include/X11R6 /usr/openwin/include ; do
3809 if test -f "$I/X11/Xlib.h" ; then
3810 extra_cflags="$extra_cflags -I$I"
3811 _x11_headers="yes"
3812 res_comment="using $I"
3813 break
3815 done
3817 echores "$_x11_headers"
3820 echocheck "X11"
3821 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3822 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3823 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3824 -L/usr/lib ; do
3825 if netbsd; then
3826 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3827 else
3828 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3830 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3831 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3832 done
3834 if test "$_x11" = yes ; then
3835 def_x11='#define CONFIG_X11 1'
3836 vomodules="x11 xover $vomodules"
3837 else
3838 _x11=no
3839 def_x11='#undef CONFIG_X11'
3840 novomodules="x11 $novomodules"
3841 res_comment="check if the dev(el) packages are installed"
3843 echores "$_x11"
3845 echocheck "Xss screensaver extensions"
3846 if test "$_xss" = auto ; then
3847 _xss=no
3848 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3850 if test "$_xss" = yes ; then
3851 def_xss='#define CONFIG_XSS 1'
3852 libs_mplayer="$libs_mplayer -lXss"
3853 else
3854 def_xss='#undef CONFIG_XSS'
3856 echores "$_xss"
3858 echocheck "DPMS"
3859 _xdpms3=no
3860 _xdpms4=no
3861 if test "$_x11" = yes ; then
3862 cat > $TMPC <<EOF
3863 #include <X11/Xmd.h>
3864 #include <X11/Xlib.h>
3865 #include <X11/Xutil.h>
3866 #include <X11/Xatom.h>
3867 #include <X11/extensions/dpms.h>
3868 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3870 cc_check -lXdpms && _xdpms3=yes
3871 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3873 if test "$_xdpms4" = yes ; then
3874 def_xdpms='#define CONFIG_XDPMS 1'
3875 res_comment="using Xdpms 4"
3876 echores "yes"
3877 elif test "$_xdpms3" = yes ; then
3878 def_xdpms='#define CONFIG_XDPMS 1'
3879 libs_mplayer="$libs_mplayer -lXdpms"
3880 res_comment="using Xdpms 3"
3881 echores "yes"
3882 else
3883 def_xdpms='#undef CONFIG_XDPMS'
3884 echores "no"
3888 echocheck "Xv"
3889 if test "$_xv" = auto && test "$_x11" = yes ; then
3890 _xv=no
3891 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3894 if test "$_xv" = yes ; then
3895 def_xv='#define CONFIG_XV 1'
3896 libs_mplayer="$libs_mplayer -lXv"
3897 vomodules="xv $vomodules"
3898 else
3899 def_xv='#undef CONFIG_XV'
3900 novomodules="xv $novomodules"
3902 echores "$_xv"
3905 echocheck "VDPAU"
3906 if test "$_vdpau" = auto && test "$_x11" = yes ; then
3907 _vdpau=no
3908 if test "$_dl" = yes ; then
3909 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
3912 if test "$_vdpau" = yes ; then
3913 def_vdpau='#define CONFIG_VDPAU 1'
3914 libs_mplayer="$libs_mplayer -lvdpau"
3915 vomodules="vdpau $vomodules"
3916 else
3917 def_vdpau='#define CONFIG_VDPAU 0'
3918 novomodules="vdpau $novomodules"
3920 echores "$_vdpau"
3923 echocheck "Xinerama"
3924 if test "$_xinerama" = auto && test "$_x11" = yes ; then
3925 _xinerama=no
3926 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
3929 if test "$_xinerama" = yes ; then
3930 def_xinerama='#define CONFIG_XINERAMA 1'
3931 libs_mplayer="$libs_mplayer -lXinerama"
3932 else
3933 def_xinerama='#undef CONFIG_XINERAMA'
3935 echores "$_xinerama"
3938 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3939 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3940 # named 'X extensions' or something similar.
3941 # This check may be useful for future mplayer versions (to change resolution)
3942 # If you run into problems, remove '-lXxf86vm'.
3943 echocheck "Xxf86vm"
3944 if test "$_vm" = auto && test "$_x11" = yes ; then
3945 _vm=no
3946 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
3948 if test "$_vm" = yes ; then
3949 def_vm='#define CONFIG_XF86VM 1'
3950 libs_mplayer="$libs_mplayer -lXxf86vm"
3951 else
3952 def_vm='#undef CONFIG_XF86VM'
3954 echores "$_vm"
3956 # Check for the presence of special keycodes, like audio control buttons
3957 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3958 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3959 # have these new keycodes.
3960 echocheck "XF86keysym"
3961 if test "$_xf86keysym" = auto && test "$_x11" = yes ; then
3962 _xf86keysym=no
3963 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
3965 if test "$_xf86keysym" = yes ; then
3966 def_xf86keysym='#define CONFIG_XF86XK 1'
3967 else
3968 def_xf86keysym='#undef CONFIG_XF86XK'
3970 echores "$_xf86keysym"
3972 echocheck "DGA"
3973 if test "$_dga2" = auto && test "$_x11" = yes ; then
3974 _dga2=no
3975 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
3977 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
3978 _dga1=no
3979 statement_check_broken X11/Xlib.h X11/extensions/Xxf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
3982 _dga=no
3983 def_dga='#undef CONFIG_DGA'
3984 def_dga1='#undef CONFIG_DGA1'
3985 def_dga2='#undef CONFIG_DGA2'
3986 if test "$_dga1" = yes ; then
3987 _dga=yes
3988 def_dga1='#define CONFIG_DGA1 1'
3989 res_comment="using DGA 1.0"
3990 elif test "$_dga2" = yes ; then
3991 _dga=yes
3992 def_dga2='#define CONFIG_DGA2 1'
3993 res_comment="using DGA 2.0"
3995 if test "$_dga" = yes ; then
3996 def_dga='#define CONFIG_DGA 1'
3997 libs_mplayer="$libs_mplayer -lXxf86dga"
3998 vomodules="dga $vomodules"
3999 else
4000 novomodules="dga $novomodules"
4002 echores "$_dga"
4005 echocheck "3dfx"
4006 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4007 def_3dfx='#define CONFIG_3DFX 1'
4008 vomodules="3dfx $vomodules"
4009 else
4010 _3dfx=no
4011 def_3dfx='#undef CONFIG_3DFX'
4012 novomodules="3dfx $novomodules"
4014 echores "$_3dfx"
4017 echocheck "GGI"
4018 if test "$_ggi" = auto ; then
4019 _ggi=no
4020 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4022 if test "$_ggi" = yes ; then
4023 def_ggi='#define CONFIG_GGI 1'
4024 libs_mplayer="$libs_mplayer -lggi"
4025 vomodules="ggi $vomodules"
4026 else
4027 def_ggi='#undef CONFIG_GGI'
4028 novomodules="ggi $novomodules"
4030 echores "$_ggi"
4032 echocheck "GGI extension: libggiwmh"
4033 if test "$_ggiwmh" = auto ; then
4034 _ggiwmh=no
4035 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4037 # needed to get right output on obscure combination
4038 # like --disable-ggi --enable-ggiwmh
4039 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4040 def_ggiwmh='#define CONFIG_GGIWMH 1'
4041 libs_mplayer="$libs_mplayer -lggiwmh"
4042 else
4043 _ggiwmh=no
4044 def_ggiwmh='#undef CONFIG_GGIWMH'
4046 echores "$_ggiwmh"
4049 echocheck "AA"
4050 if test "$_aa" = auto ; then
4051 cat > $TMPC << EOF
4052 #include <aalib.h>
4053 int main(void) {
4054 aa_context *c;
4055 aa_renderparams *p;
4056 aa_init(0, 0, 0);
4057 c = aa_autoinit(&aa_defparams);
4058 p = aa_getrenderparams();
4059 aa_autoinitkbd(c, 0);
4060 return 0; }
4062 _aa=no
4063 for _ld_tmp in "-laa" ; do
4064 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4065 done
4067 if test "$_aa" = yes ; then
4068 def_aa='#define CONFIG_AA 1'
4069 if cygwin ; then
4070 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4072 vomodules="aa $vomodules"
4073 else
4074 def_aa='#undef CONFIG_AA'
4075 novomodules="aa $novomodules"
4077 echores "$_aa"
4080 echocheck "CACA"
4081 if test "$_caca" = auto ; then
4082 _caca=no
4083 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4084 cat > $TMPC << EOF
4085 #include <caca.h>
4086 #ifdef CACA_API_VERSION_1
4087 #include <caca0.h>
4088 #endif
4089 int main(void) { caca_init(); return 0; }
4091 cc_check $(caca-config --libs) && _caca=yes
4094 if test "$_caca" = yes ; then
4095 def_caca='#define CONFIG_CACA 1'
4096 extra_cflags="$extra_cflags $(caca-config --cflags)"
4097 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4098 vomodules="caca $vomodules"
4099 else
4100 def_caca='#undef CONFIG_CACA'
4101 novomodules="caca $novomodules"
4103 echores "$_caca"
4106 echocheck "SVGAlib"
4107 if test "$_svga" = auto ; then
4108 _svga=no
4109 header_check vga.h -lvga $_ld_lm && _svga=yes
4111 if test "$_svga" = yes ; then
4112 def_svga='#define CONFIG_SVGALIB 1'
4113 libs_mplayer="$libs_mplayer -lvga"
4114 vomodules="svga $vomodules"
4115 else
4116 def_svga='#undef CONFIG_SVGALIB'
4117 novomodules="svga $novomodules"
4119 echores "$_svga"
4122 echocheck "FBDev"
4123 if test "$_fbdev" = auto ; then
4124 _fbdev=no
4125 linux && _fbdev=yes
4127 if test "$_fbdev" = yes ; then
4128 def_fbdev='#define CONFIG_FBDEV 1'
4129 vomodules="fbdev $vomodules"
4130 else
4131 def_fbdev='#undef CONFIG_FBDEV'
4132 novomodules="fbdev $novomodules"
4134 echores "$_fbdev"
4138 echocheck "DVB"
4139 if test "$_dvb" = auto ; then
4140 _dvb=no
4141 cat >$TMPC << EOF
4142 #include <poll.h>
4143 #include <sys/ioctl.h>
4144 #include <stdio.h>
4145 #include <time.h>
4146 #include <unistd.h>
4147 #include <linux/dvb/dmx.h>
4148 #include <linux/dvb/frontend.h>
4149 #include <linux/dvb/video.h>
4150 #include <linux/dvb/audio.h>
4151 int main(void) {return 0;}
4153 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4154 cc_check $_inc_tmp && _dvb=yes &&
4155 extra_cflags="$extra_cflags $_inc_tmp" && break
4156 done
4158 echores "$_dvb"
4159 if test "$_dvb" = yes ; then
4160 _dvbin=yes
4161 inputmodules="dvb $inputmodules"
4162 def_dvb='#define CONFIG_DVB 1'
4163 def_dvbin='#define CONFIG_DVBIN 1'
4164 aomodules="mpegpes(dvb) $aomodules"
4165 vomodules="mpegpes(dvb) $vomodules"
4166 else
4167 _dvbin=no
4168 noinputmodules="dvb $noinputmodules"
4169 def_dvb='#undef CONFIG_DVB'
4170 def_dvbin='#undef CONFIG_DVBIN '
4171 aomodules="mpegpes(file) $aomodules"
4172 vomodules="mpegpes(file) $vomodules"
4176 if darwin; then
4178 echocheck "QuickTime"
4179 if test "$quicktime" = auto ; then
4180 quicktime=no
4181 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4183 if test "$quicktime" = yes ; then
4184 extra_ldflags="$extra_ldflags -framework QuickTime"
4185 def_quicktime='#define CONFIG_QUICKTIME 1'
4186 else
4187 def_quicktime='#undef CONFIG_QUICKTIME'
4189 echores $quicktime
4191 echocheck "CoreVideo"
4192 if test "$_corevideo" = auto ; then
4193 cat > $TMPC <<EOF
4194 #include <Carbon/Carbon.h>
4195 #include <CoreServices/CoreServices.h>
4196 #include <OpenGL/OpenGL.h>
4197 #include <QuartzCore/CoreVideo.h>
4198 int main(void) { return 0; }
4200 _corevideo=no
4201 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4203 if test "$_corevideo" = yes ; then
4204 vomodules="corevideo $vomodules"
4205 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4206 def_corevideo='#define CONFIG_COREVIDEO 1'
4207 else
4208 novomodules="corevideo $novomodules"
4209 def_corevideo='#undef CONFIG_COREVIDEO'
4211 echores "$_corevideo"
4213 echocheck "Cocoa"
4214 if test "$_gl" = no ; then
4215 # if _gl is not enabled there is no point to add potentially unused linker flags
4216 _cocoa=no
4218 if test "$_cocoa" = auto ; then
4219 cat > $TMPC <<EOF
4220 #include <CoreServices/CoreServices.h>
4221 #include <OpenGL/OpenGL.h>
4222 #include <QuartzCore/CoreVideo.h>
4223 int main(void) { return 0; }
4225 _cocoa=no
4226 cc_check -framework Cocoa -framework QuartzCore -framework OpenGL && _cocoa=yes
4228 if test "$_cocoa" = yes ; then
4229 libs_mplayer="$libs_mplayer -framework Cocoa -framework QuartzCore -framework OpenGL"
4231 echores "$_cocoa"
4233 fi #if darwin
4236 echocheck "PNG support"
4237 if test "$_png" = auto ; then
4238 _png=no
4239 if irix ; then
4240 # Don't check for -lpng on irix since it has its own libpng
4241 # incompatible with the GNU libpng
4242 res_comment="disabled on irix (not GNU libpng)"
4243 else
4244 cat > $TMPC << EOF
4245 #include <stdio.h>
4246 #include <string.h>
4247 #include <png.h>
4248 int main(void) {
4249 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4250 printf("libpng: %s\n", png_libpng_ver);
4251 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4254 cc_check -lpng -lz $_ld_lm && _png=yes
4257 echores "$_png"
4258 if test "$_png" = yes ; then
4259 def_png='#define CONFIG_PNG 1'
4260 extra_ldflags="$extra_ldflags -lpng -lz"
4261 else
4262 def_png='#undef CONFIG_PNG'
4265 echocheck "MNG support"
4266 if test "$_mng" = auto ; then
4267 _mng=no
4268 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4270 echores "$_mng"
4271 if test "$_mng" = yes ; then
4272 def_mng='#define CONFIG_MNG 1'
4273 extra_ldflags="$extra_ldflags -lmng -lz"
4274 else
4275 def_mng='#undef CONFIG_MNG'
4278 echocheck "JPEG support"
4279 if test "$_jpeg" = auto ; then
4280 _jpeg=no
4281 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4283 echores "$_jpeg"
4285 if test "$_jpeg" = yes ; then
4286 def_jpeg='#define CONFIG_JPEG 1'
4287 vomodules="jpeg $vomodules"
4288 extra_ldflags="$extra_ldflags -ljpeg"
4289 else
4290 def_jpeg='#undef CONFIG_JPEG'
4291 novomodules="jpeg $novomodules"
4296 echocheck "PNM support"
4297 if test "$_pnm" = yes; then
4298 def_pnm="#define CONFIG_PNM 1"
4299 vomodules="pnm $vomodules"
4300 else
4301 def_pnm="#undef CONFIG_PNM"
4302 novomodules="pnm $novomodules"
4304 echores "$_pnm"
4308 echocheck "GIF support"
4309 # This is to appease people who want to force gif support.
4310 # If it is forced to yes, then we still do checks to determine
4311 # which gif library to use.
4312 if test "$_gif" = yes ; then
4313 _force_gif=yes
4314 _gif=auto
4317 if test "$_gif" = auto ; then
4318 _gif=no
4319 for _ld_gif in "-lungif" "-lgif" ; do
4320 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4321 done
4324 # If no library was found, and the user wants support forced,
4325 # then we force it on with libgif, as this is the safest
4326 # assumption IMHO. (libungif & libregif both create symbolic
4327 # links to libgif. We also assume that no x11 support is needed,
4328 # because if you are forcing this, then you _should_ know what
4329 # you are doing. [ Besides, package maintainers should never
4330 # have compiled x11 deps into libungif in the first place. ] )
4331 # </rant>
4332 # --Joey
4333 if test "$_force_gif" = yes && test "$_gif" = no ; then
4334 _gif=yes
4335 _ld_gif="-lgif"
4338 if test "$_gif" = yes ; then
4339 def_gif='#define CONFIG_GIF 1'
4340 codecmodules="gif $codecmodules"
4341 vomodules="gif89a $vomodules"
4342 res_comment="old version, some encoding functions disabled"
4343 def_gif_4='#undef CONFIG_GIF_4'
4344 extra_ldflags="$extra_ldflags $_ld_gif"
4346 cat > $TMPC << EOF
4347 #include <signal.h>
4348 #include <stdio.h>
4349 #include <stdlib.h>
4350 #include <gif_lib.h>
4351 static void catch(int sig) { exit(1); }
4352 int main(void) {
4353 signal(SIGSEGV, catch); // catch segfault
4354 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4355 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4356 return 0;
4359 if cc_check "$_ld_gif" ; then
4360 def_gif_4='#define CONFIG_GIF_4 1'
4361 res_comment=""
4363 else
4364 def_gif='#undef CONFIG_GIF'
4365 def_gif_4='#undef CONFIG_GIF_4'
4366 novomodules="gif89a $novomodules"
4367 nocodecmodules="gif $nocodecmodules"
4369 echores "$_gif"
4372 case "$_gif" in yes*)
4373 echocheck "broken giflib workaround"
4374 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4376 cat > $TMPC << EOF
4377 #include <stdio.h>
4378 #include <gif_lib.h>
4379 int main(void) {
4380 GifFileType gif = {.UserData = NULL};
4381 printf("UserData is at address %p\n", gif.UserData);
4382 return 0;
4385 if cc_check "$_ld_gif" ; then
4386 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4387 echores "disabled"
4388 else
4389 echores "enabled"
4392 esac
4395 echocheck "VESA support"
4396 if test "$_vesa" = auto ; then
4397 _vesa=no
4398 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4400 if test "$_vesa" = yes ; then
4401 def_vesa='#define CONFIG_VESA 1'
4402 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4403 vomodules="vesa $vomodules"
4404 else
4405 def_vesa='#undef CONFIG_VESA'
4406 novomodules="vesa $novomodules"
4408 echores "$_vesa"
4410 #################
4411 # VIDEO + AUDIO #
4412 #################
4415 echocheck "SDL"
4416 _inc_tmp=""
4417 _ld_tmp=""
4418 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4419 if test -z "$_sdlconfig" ; then
4420 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4421 _sdlconfig="sdl-config"
4422 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4423 _sdlconfig="sdl11-config"
4424 else
4425 _sdlconfig=false
4428 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4429 cat > $TMPC << EOF
4430 #ifdef CONFIG_SDL_SDL_H
4431 #include <SDL/SDL.h>
4432 #else
4433 #include <SDL.h>
4434 #endif
4435 #ifndef __APPLE__
4436 // we allow SDL hacking our main() only on OSX
4437 #undef main
4438 #endif
4439 int main(int argc, char *argv[]) {
4440 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4441 return 0;
4444 _sdl=no
4445 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4446 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4447 _sdl=yes
4448 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4449 break
4451 done
4452 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4453 res_comment="using $_sdlconfig"
4454 if cygwin ; then
4455 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4456 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4457 elif mingw32 ; then
4458 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4459 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4460 else
4461 _inc_tmp="$($_sdlconfig --cflags)"
4462 _ld_tmp="$($_sdlconfig --libs)"
4464 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4465 _sdl=yes
4466 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4467 # HACK for BeOS/Haiku SDL
4468 _ld_tmp="$_ld_tmp -lstdc++"
4469 _sdl=yes
4473 if test "$_sdl" = yes ; then
4474 def_sdl='#define CONFIG_SDL 1'
4475 extra_cflags="$extra_cflags $_inc_tmp"
4476 libs_mplayer="$libs_mplayer $_ld_tmp"
4477 vomodules="sdl $vomodules"
4478 aomodules="sdl $aomodules"
4479 else
4480 def_sdl='#undef CONFIG_SDL'
4481 novomodules="sdl $novomodules"
4482 noaomodules="sdl $noaomodules"
4484 echores "$_sdl"
4487 # make sure this stays below CoreVideo to avoid issues due to namespace
4488 # conflicts between -lGL and -framework OpenGL
4489 echocheck "OpenGL"
4490 #Note: this test is run even with --enable-gl since we autodetect linker flags
4491 if (test "$_x11" = yes || test "$_sdl" = yes || test "$_cocoa" = yes || win32) && test "$_gl" != no ; then
4492 cat > $TMPC << EOF
4493 #ifdef GL_WIN32
4494 #include <windows.h>
4495 #include <GL/gl.h>
4496 #elif defined(GL_SDL)
4497 #include <GL/gl.h>
4498 #ifdef CONFIG_SDL_SDL_H
4499 #include <SDL/SDL.h>
4500 #else
4501 #include <SDL.h>
4502 #endif
4503 #ifndef __APPLE__
4504 // we allow SDL hacking our main() only on OSX
4505 #undef main
4506 #endif
4507 #else
4508 #include <GL/gl.h>
4509 #include <X11/Xlib.h>
4510 #include <GL/glx.h>
4511 #endif
4512 int main(int argc, char *argv[]) {
4513 #ifdef GL_WIN32
4514 HDC dc;
4515 wglCreateContext(dc);
4516 #elif defined(GL_SDL)
4517 SDL_GL_SwapBuffers();
4518 #else
4519 glXCreateContext(NULL, NULL, NULL, True);
4520 #endif
4521 glFinish();
4522 return 0;
4525 _gl=no
4526 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4527 if test "$_cocoa" != yes && cc_check $_ld_tmp $_ld_lm ; then
4528 _gl=yes
4529 _gl_x11=yes
4530 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4531 break
4533 done
4534 if cc_check -DGL_WIN32 -lopengl32 ; then
4535 _gl=yes
4536 _gl_win32=yes
4537 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4539 if test "$_cocoa" = yes ; then
4540 _gl=yes
4541 _gl_cocoa=yes
4543 # last so it can reuse any linker etc. flags detected before
4544 if test "$_sdl" = yes ; then
4545 if cc_check -DGL_SDL ||
4546 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4547 _gl=yes
4548 _gl_sdl=yes
4549 elif cc_check -DGL_SDL -lGL ||
4550 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4551 _gl=yes
4552 _gl_sdl=yes
4553 libs_mplayer="$libs_mplayer -lGL"
4556 else
4557 _gl=no
4559 if test "$_gl" = yes ; then
4560 def_gl='#define CONFIG_GL 1'
4561 res_comment="backends:"
4562 if test "$_gl_cocoa" = yes ; then
4563 def_gl_cocoa='#define CONFIG_GL_COCOA 1'
4564 res_comment="$res_comment cocoa"
4566 if test "$_gl_win32" = yes ; then
4567 def_gl_win32='#define CONFIG_GL_WIN32 1'
4568 res_comment="$res_comment win32"
4570 if test "$_gl_x11" = yes ; then
4571 def_gl_x11='#define CONFIG_GL_X11 1'
4572 res_comment="$res_comment x11"
4574 if test "$_gl_sdl" = yes ; then
4575 def_gl_sdl='#define CONFIG_GL_SDL 1'
4576 res_comment="$res_comment sdl"
4578 vomodules="opengl $vomodules"
4579 else
4580 def_gl='#undef CONFIG_GL'
4581 def_gl_cocoa='#undef CONFIG_GL_COCOA'
4582 def_gl_win32='#undef CONFIG_GL_WIN32'
4583 def_gl_x11='#undef CONFIG_GL_X11'
4584 def_gl_sdl='#undef CONFIG_GL_SDL'
4585 novomodules="opengl $novomodules"
4587 echores "$_gl"
4590 if win32; then
4592 echocheck "Windows waveout"
4593 if test "$_win32waveout" = auto ; then
4594 _win32waveout=no
4595 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4597 if test "$_win32waveout" = yes ; then
4598 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4599 libs_mplayer="$libs_mplayer -lwinmm"
4600 aomodules="win32 $aomodules"
4601 else
4602 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4603 noaomodules="win32 $noaomodules"
4605 echores "$_win32waveout"
4607 echocheck "Direct3D"
4608 if test "$_direct3d" = auto ; then
4609 _direct3d=no
4610 header_check d3d9.h && _direct3d=yes
4612 if test "$_direct3d" = yes ; then
4613 def_direct3d='#define CONFIG_DIRECT3D 1'
4614 vomodules="direct3d $vomodules"
4615 else
4616 def_direct3d='#undef CONFIG_DIRECT3D'
4617 novomodules="direct3d $novomodules"
4619 echores "$_direct3d"
4621 echocheck "Directx"
4622 if test "$_directx" = auto ; then
4623 cat > $TMPC << EOF
4624 #include <ddraw.h>
4625 #include <dsound.h>
4626 int main(void) { return 0; }
4628 _directx=no
4629 cc_check -lgdi32 && _directx=yes
4631 if test "$_directx" = yes ; then
4632 def_directx='#define CONFIG_DIRECTX 1'
4633 libs_mplayer="$libs_mplayer -lgdi32"
4634 vomodules="directx $vomodules"
4635 aomodules="dsound $aomodules"
4636 else
4637 def_directx='#undef CONFIG_DIRECTX'
4638 novomodules="directx $novomodules"
4639 noaomodules="dsound $noaomodules"
4641 echores "$_directx"
4643 fi #if win32; then
4646 echocheck "DXR3/H+"
4647 if test "$_dxr3" = auto ; then
4648 _dxr3=no
4649 header_check linux/em8300.h && _dxr3=yes
4651 if test "$_dxr3" = yes ; then
4652 def_dxr3='#define CONFIG_DXR3 1'
4653 vomodules="dxr3 $vomodules"
4654 else
4655 def_dxr3='#undef CONFIG_DXR3'
4656 novomodules="dxr3 $novomodules"
4658 echores "$_dxr3"
4661 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4662 if test "$_ivtv" = auto ; then
4663 cat > $TMPC << EOF
4664 #include <sys/time.h>
4665 #include <linux/videodev2.h>
4666 #include <linux/ivtv.h>
4667 #include <sys/ioctl.h>
4668 int main(void) {
4669 struct ivtv_cfg_stop_decode sd;
4670 struct ivtv_cfg_start_decode sd1;
4671 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4672 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4673 return 0; }
4675 _ivtv=no
4676 cc_check && _ivtv=yes
4678 if test "$_ivtv" = yes ; then
4679 def_ivtv='#define CONFIG_IVTV 1'
4680 vomodules="ivtv $vomodules"
4681 aomodules="ivtv $aomodules"
4682 else
4683 def_ivtv='#undef CONFIG_IVTV'
4684 novomodules="ivtv $novomodules"
4685 noaomodules="ivtv $noaomodules"
4687 echores "$_ivtv"
4690 echocheck "V4L2 MPEG Decoder"
4691 if test "$_v4l2" = auto ; then
4692 cat > $TMPC << EOF
4693 #include <sys/time.h>
4694 #include <linux/videodev2.h>
4695 #include <linux/version.h>
4696 int main(void) {
4697 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4698 #error kernel headers too old, need 2.6.22
4699 #endif
4700 struct v4l2_ext_controls ctrls;
4701 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4702 return 0;
4705 _v4l2=no
4706 cc_check && _v4l2=yes
4708 if test "$_v4l2" = yes ; then
4709 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4710 vomodules="v4l2 $vomodules"
4711 aomodules="v4l2 $aomodules"
4712 else
4713 def_v4l2='#undef CONFIG_V4L2_DECODER'
4714 novomodules="v4l2 $novomodules"
4715 noaomodules="v4l2 $noaomodules"
4717 echores "$_v4l2"
4721 #########
4722 # AUDIO #
4723 #########
4726 echocheck "OSS Audio"
4727 if test "$_ossaudio" = auto ; then
4728 _ossaudio=no
4729 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4731 if test "$_ossaudio" = yes ; then
4732 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4733 aomodules="oss $aomodules"
4734 cat > $TMPC << EOF
4735 #include <$_soundcard_header>
4736 #ifdef OPEN_SOUND_SYSTEM
4737 int main(void) { return 0; }
4738 #else
4739 #error Not the real thing
4740 #endif
4742 _real_ossaudio=no
4743 cc_check && _real_ossaudio=yes
4744 if test "$_real_ossaudio" = yes; then
4745 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4746 # Check for OSS4 headers (override default headers)
4747 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4748 if test -f /etc/oss.conf; then
4749 . /etc/oss.conf
4750 _ossinc="$OSSLIBDIR/include"
4751 if test -f "$_ossinc/sys/soundcard.h"; then
4752 extra_cflags="-I$_ossinc $extra_cflags"
4755 elif netbsd || openbsd ; then
4756 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4757 extra_ldflags="$extra_ldflags -lossaudio"
4758 else
4759 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4761 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4762 else
4763 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4764 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4765 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4766 noaomodules="oss $noaomodules"
4768 echores "$_ossaudio"
4771 echocheck "aRts"
4772 if test "$_arts" = auto ; then
4773 _arts=no
4774 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4775 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4776 _arts=yes
4780 if test "$_arts" = yes ; then
4781 def_arts='#define CONFIG_ARTS 1'
4782 aomodules="arts $aomodules"
4783 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4784 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4785 else
4786 noaomodules="arts $noaomodules"
4788 echores "$_arts"
4791 echocheck "EsounD"
4792 if test "$_esd" = auto ; then
4793 _esd=no
4794 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4795 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4798 echores "$_esd"
4800 if test "$_esd" = yes ; then
4801 def_esd='#define CONFIG_ESD 1'
4802 aomodules="esd $aomodules"
4803 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4804 extra_cflags="$extra_cflags $(esd-config --cflags)"
4806 echocheck "esd_get_latency()"
4807 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4808 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4809 echores "$_esd_latency"
4810 else
4811 def_esd='#undef CONFIG_ESD'
4812 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4813 noaomodules="esd $noaomodules"
4816 echocheck "RSound"
4817 if test "$_rsound" = auto ; then
4818 _rsound=no
4819 statement_check rsound.h 'rsd_init(NULL);' -lrsound && _rsound=yes
4821 echores "$_rsound"
4823 if test "$_rsound" = yes ; then
4824 def_rsound='#define CONFIG_RSOUND 1'
4825 aomodules="rsound $aomodules"
4826 libs_mplayer="$libs_mplayer -lrsound"
4827 else
4828 def_rsound='#undef CONFIG_RSOUND'
4829 noaomodules="rsound $noaomodules"
4833 echocheck "NAS"
4834 if test "$_nas" = auto ; then
4835 _nas=no
4836 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4838 if test "$_nas" = yes ; then
4839 def_nas='#define CONFIG_NAS 1'
4840 libs_mplayer="$libs_mplayer -laudio -lXt"
4841 aomodules="nas $aomodules"
4842 else
4843 noaomodules="nas $noaomodules"
4844 def_nas='#undef CONFIG_NAS'
4846 echores "$_nas"
4849 echocheck "pulse"
4850 if test "$_pulse" = auto ; then
4851 _pulse=no
4852 if pkg_config_add 'libpulse >= 0.9' ; then
4853 _pulse=yes
4856 echores "$_pulse"
4858 if test "$_pulse" = yes ; then
4859 def_pulse='#define CONFIG_PULSE 1'
4860 aomodules="pulse $aomodules"
4861 else
4862 def_pulse='#undef CONFIG_PULSE'
4863 noaomodules="pulse $noaomodules"
4867 echocheck "JACK"
4868 if test "$_jack" = auto ; then
4869 _jack=no
4870 if pkg_config_add jack ; then
4871 _jack=yes
4875 if test "$_jack" = yes ; then
4876 def_jack='#define CONFIG_JACK 1'
4877 aomodules="jack $aomodules"
4878 else
4879 noaomodules="jack $noaomodules"
4881 echores "$_jack"
4883 echocheck "OpenAL"
4884 if test "$_openal" = auto ; then
4885 _openal=no
4886 cat > $TMPC << EOF
4887 #ifdef OPENAL_AL_H
4888 #include <OpenAL/al.h>
4889 #else
4890 #include <AL/al.h>
4891 #endif
4892 int main(void) {
4893 alSourceQueueBuffers(0, 0, 0);
4894 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4895 return 0;
4898 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4899 cc_check $I && _openal=yes && break
4900 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4901 done
4902 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4904 if test "$_openal" = yes ; then
4905 def_openal='#define CONFIG_OPENAL 1'
4906 aomodules="openal $aomodules"
4907 else
4908 noaomodules="openal $noaomodules"
4910 echores "$_openal"
4912 echocheck "ALSA audio"
4913 if test "$_alloca" != yes ; then
4914 _alsa=no
4915 res_comment="alloca missing"
4917 if test "$_alsa" = auto ; then
4918 _alsa=no
4919 if pkg_config_add "alsa >= 1.0.9" ; then
4920 _alsa=yes
4923 def_alsa='#undef CONFIG_ALSA'
4924 if test "$_alsa" = yes ; then
4925 aomodules="alsa $aomodules"
4926 def_alsa='#define CONFIG_ALSA 1'
4927 else
4928 noaomodules="alsa $noaomodules"
4930 echores "$_alsa"
4933 echocheck "Sun audio"
4934 if test "$_sunaudio" = auto ; then
4935 cat > $TMPC << EOF
4936 #include <sys/types.h>
4937 #include <sys/audioio.h>
4938 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4940 _sunaudio=no
4941 cc_check && _sunaudio=yes
4943 if test "$_sunaudio" = yes ; then
4944 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
4945 aomodules="sun $aomodules"
4946 else
4947 def_sunaudio='#undef CONFIG_SUN_AUDIO'
4948 noaomodules="sun $noaomodules"
4950 echores "$_sunaudio"
4953 if darwin; then
4954 echocheck "CoreAudio"
4955 if test "$_coreaudio" = auto ; then
4956 cat > $TMPC <<EOF
4957 #include <CoreAudio/CoreAudio.h>
4958 #include <AudioToolbox/AudioToolbox.h>
4959 #include <AudioUnit/AudioUnit.h>
4960 int main(void) { return 0; }
4962 _coreaudio=no
4963 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
4965 if test "$_coreaudio" = yes ; then
4966 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
4967 def_coreaudio='#define CONFIG_COREAUDIO 1'
4968 aomodules="coreaudio $aomodules"
4969 else
4970 def_coreaudio='#undef CONFIG_COREAUDIO'
4971 noaomodules="coreaudio $noaomodules"
4973 echores $_coreaudio
4974 fi #if darwin
4977 if irix; then
4978 echocheck "SGI audio"
4979 if test "$_sgiaudio" = auto ; then
4980 _sgiaudio=no
4981 header_check dmedia/audio.h && _sgiaudio=yes
4983 if test "$_sgiaudio" = "yes" ; then
4984 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
4985 libs_mplayer="$libs_mplayer -laudio"
4986 aomodules="sgi $aomodules"
4987 else
4988 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
4989 noaomodules="sgi $noaomodules"
4991 echores "$_sgiaudio"
4992 fi #if irix
4995 # set default CD/DVD devices
4996 if win32 ; then
4997 default_cdrom_device="D:"
4998 elif darwin ; then
4999 default_cdrom_device="/dev/disk1"
5000 elif dragonfly ; then
5001 default_cdrom_device="/dev/cd0"
5002 elif freebsd ; then
5003 default_cdrom_device="/dev/acd0"
5004 elif openbsd ; then
5005 default_cdrom_device="/dev/rcd0c"
5006 elif sunos ; then
5007 default_cdrom_device="/vol/dev/aliases/cdrom0"
5008 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5009 # file system and the volfs service.
5010 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5011 elif amigaos ; then
5012 default_cdrom_device="a1ide.device:2"
5013 else
5014 default_cdrom_device="/dev/cdrom"
5017 if win32 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5018 default_dvd_device=$default_cdrom_device
5019 elif darwin ; then
5020 default_dvd_device="/dev/rdiskN"
5021 else
5022 default_dvd_device="/dev/dvd"
5026 echocheck "VCD support"
5027 if test "$_vcd" = auto; then
5028 _vcd=no
5029 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5030 _vcd=yes
5031 elif mingw32; then
5032 header_check ddk/ntddcdrm.h && _vcd=yes
5035 if test "$_vcd" = yes; then
5036 inputmodules="vcd $inputmodules"
5037 def_vcd='#define CONFIG_VCD 1'
5038 else
5039 def_vcd='#undef CONFIG_VCD'
5040 noinputmodules="vcd $noinputmodules"
5041 res_comment="not supported on this OS"
5043 echores "$_vcd"
5047 echocheck "Blu-ray support"
5048 if test "$_bluray" = auto ; then
5049 _bluray=no
5050 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0, 0)' -lbluray && _bluray=yes
5052 if test "$_bluray" = yes ; then
5053 def_bluray='#define CONFIG_LIBBLURAY 1'
5054 extra_ldflags="$extra_ldflags -lbluray"
5055 inputmodules="bluray $inputmodules"
5056 else
5057 def_bluray='#undef CONFIG_LIBBLURAY'
5058 noinputmodules="bluray $noinputmodules"
5060 echores "$_bluray"
5062 echocheck "dvdread"
5063 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5064 _dvdread_internal=no
5066 if test "$_dvdread_internal" = auto ; then
5067 _dvdread_internal=no
5068 _dvdread=no
5069 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5070 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5071 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5072 darwin || win32; then
5073 _dvdread_internal=yes
5074 _dvdread=yes
5075 extra_cflags="-Ilibdvdread4 $extra_cflags"
5077 elif test "$_dvdread" = auto ; then
5078 _dvdread=no
5079 if test "$_dl" = yes; then
5080 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5081 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5082 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5083 _dvdread=yes
5084 extra_cflags="$extra_cflags $_dvdreadcflags"
5085 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5086 res_comment="external"
5091 if test "$_dvdread_internal" = yes; then
5092 def_dvdread='#define CONFIG_DVDREAD 1'
5093 inputmodules="dvdread(internal) $inputmodules"
5094 res_comment="internal"
5095 elif test "$_dvdread" = yes; then
5096 def_dvdread='#define CONFIG_DVDREAD 1'
5097 extra_ldflags="$extra_ldflags -ldvdread"
5098 inputmodules="dvdread(external) $inputmodules"
5099 res_comment="external"
5100 else
5101 def_dvdread='#undef CONFIG_DVDREAD'
5102 noinputmodules="dvdread $noinputmodules"
5104 echores "$_dvdread"
5107 echocheck "internal libdvdcss"
5108 if test "$_libdvdcss_internal" = auto ; then
5109 _libdvdcss_internal=no
5110 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5111 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5113 if test "$_libdvdcss_internal" = yes ; then
5114 if linux || netbsd || openbsd || bsdos ; then
5115 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5116 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5117 elif freebsd || dragonfly ; then
5118 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5119 elif darwin ; then
5120 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5121 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5122 elif cygwin ; then
5123 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5124 elif beos ; then
5125 cflags_libdvdcss="-DSYS_BEOS"
5127 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5128 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5129 inputmodules="libdvdcss(internal) $inputmodules"
5130 else
5131 noinputmodules="libdvdcss(internal) $noinputmodules"
5133 echores "$_libdvdcss_internal"
5136 echocheck "cdparanoia"
5137 if test "$_cdparanoia" = auto ; then
5138 cat > $TMPC <<EOF
5139 #include <cdda_interface.h>
5140 #include <cdda_paranoia.h>
5141 // This need a better test. How ?
5142 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5144 _cdparanoia=no
5145 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5146 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5147 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5148 done
5150 if test "$_cdparanoia" = yes ; then
5151 _cdda='yes'
5152 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5153 openbsd && extra_ldflags="$extra_ldflags -lutil"
5155 echores "$_cdparanoia"
5158 echocheck "libcdio"
5159 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5160 _libcdio=no
5161 if pkg_config_add libcdio_paranoia ; then
5162 _libcdio=yes
5165 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5166 _cdda='yes'
5167 def_libcdio='#define CONFIG_LIBCDIO 1'
5168 def_havelibcdio='yes'
5169 else
5170 _libcdio=no
5171 if test "$_cdparanoia" = yes ; then
5172 res_comment="using cdparanoia"
5174 def_libcdio='#undef CONFIG_LIBCDIO'
5175 def_havelibcdio='no'
5177 echores "$_libcdio"
5179 if test "$_cdda" = yes ; then
5180 test $_cddb = auto && test $networking = yes && _cddb=yes
5181 def_cdparanoia='#define CONFIG_CDDA 1'
5182 inputmodules="cdda $inputmodules"
5183 else
5184 def_cdparanoia='#undef CONFIG_CDDA'
5185 noinputmodules="cdda $noinputmodules"
5188 if test "$_cddb" = yes ; then
5189 def_cddb='#define CONFIG_CDDB 1'
5190 inputmodules="cddb $inputmodules"
5191 else
5192 _cddb=no
5193 def_cddb='#undef CONFIG_CDDB'
5194 noinputmodules="cddb $noinputmodules"
5197 echocheck "bitmap font support"
5198 if test "$_bitmap_font" = yes ; then
5199 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5200 else
5201 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5203 echores "$_bitmap_font"
5206 echocheck "freetype >= 2.0.9"
5208 # freetype depends on iconv
5209 if test "$_iconv" = no ; then
5210 _freetype=no
5211 res_comment="iconv support needed"
5214 if test "$_freetype" = auto ; then
5215 if pkg_config_add freetype2 ; then
5216 _freetype=yes
5217 else
5218 die "Unable to find development files for libfreetype. Aborting. If you really mean to compile without FreeType support use --disable-freetype."
5221 if test "$_freetype" = yes ; then
5222 def_freetype='#define CONFIG_FREETYPE 1'
5223 else
5224 def_freetype='#undef CONFIG_FREETYPE'
5226 echores "$_freetype"
5228 if test "$_freetype" = no ; then
5229 _fontconfig=no
5230 res_comment="FreeType support needed"
5232 echocheck "fontconfig"
5233 if test "$_fontconfig" = auto ; then
5234 if pkg_config_add 'fontconfig >= 2.4.2' ; then
5235 _fontconfig=yes
5236 else
5237 die "Unable to find development files for libfontconfig. Aborting. If you really mean to compile without fontconfig support use --disable-fontconfig."
5240 if test "$_fontconfig" = yes ; then
5241 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5242 else
5243 def_fontconfig='#undef CONFIG_FONTCONFIG'
5245 echores "$_fontconfig"
5248 echocheck "SSA/ASS support"
5249 if test "$_ass" = auto ; then
5250 if pkg_config_add libass ; then
5251 _ass=yes
5252 def_ass='#define CONFIG_ASS 1'
5253 else
5254 die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass."
5256 else
5257 def_ass='#undef CONFIG_ASS'
5259 echores "$_ass"
5262 echocheck "fribidi with charsets"
5263 if test "$_fribidi" = auto ; then
5264 _fribidi=no
5265 if pkg_config_add fribidi ; then
5266 _fribidi=yes
5269 if test "$_fribidi" = yes ; then
5270 def_fribidi='#define CONFIG_FRIBIDI 1'
5271 else
5272 def_fribidi='#undef CONFIG_FRIBIDI'
5274 echores "$_fribidi"
5277 echocheck "ENCA"
5278 if test "$_enca" = auto ; then
5279 _enca=no
5280 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5282 if test "$_enca" = yes ; then
5283 def_enca='#define CONFIG_ENCA 1'
5284 extra_ldflags="$extra_ldflags -lenca"
5285 else
5286 def_enca='#undef CONFIG_ENCA'
5288 echores "$_enca"
5291 echocheck "zlib"
5292 _zlib=no
5293 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5294 if test "$_zlib" = yes ; then
5295 def_zlib='#define CONFIG_ZLIB 1'
5296 extra_ldflags="$extra_ldflags -lz"
5297 else
5298 def_zlib='#define CONFIG_ZLIB 0'
5300 echores "$_zlib"
5303 echocheck "RTC"
5304 if test "$_rtc" = auto ; then
5305 cat > $TMPC << EOF
5306 #include <sys/ioctl.h>
5307 #ifdef __linux__
5308 #include <linux/rtc.h>
5309 #else
5310 #include <rtc.h>
5311 #define RTC_PIE_ON RTCIO_PIE_ON
5312 #endif
5313 int main(void) { return RTC_PIE_ON; }
5315 _rtc=no
5316 cc_check && _rtc=yes
5317 ppc && _rtc=no
5319 if test "$_rtc" = yes ; then
5320 def_rtc='#define HAVE_RTC 1'
5321 else
5322 def_rtc='#undef HAVE_RTC'
5324 echores "$_rtc"
5327 echocheck "mad support"
5328 if test "$_mad" = auto ; then
5329 _mad=no
5330 header_check mad.h -lmad && _mad=yes
5332 if test "$_mad" = yes ; then
5333 def_mad='#define CONFIG_LIBMAD 1'
5334 extra_ldflags="$extra_ldflags -lmad"
5335 codecmodules="libmad $codecmodules"
5336 else
5337 def_mad='#undef CONFIG_LIBMAD'
5338 nocodecmodules="libmad $nocodecmodules"
5340 echores "$_mad"
5342 echocheck "OggVorbis support"
5343 if test "$_libvorbis" = auto; then
5344 _libvorbis=no
5345 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5346 elif test "$_libvorbis" = yes ; then
5347 _tremor=no
5349 if test "$_tremor" = auto; then
5350 _tremor=no
5351 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5353 if test "$_tremor" = yes ; then
5354 _vorbis=yes
5355 def_vorbis='#define CONFIG_OGGVORBIS 1'
5356 def_tremor='#define CONFIG_TREMOR 1'
5357 codecmodules="tremor(external) $codecmodules"
5358 res_comment="external Tremor"
5359 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5360 elif test "$_libvorbis" = yes ; then
5361 _vorbis=yes
5362 def_vorbis='#define CONFIG_OGGVORBIS 1'
5363 codecmodules="libvorbis $codecmodules"
5364 res_comment="libvorbis"
5365 extra_ldflags="$extra_ldflags -lvorbis -logg"
5366 else
5367 _vorbis=no
5368 nocodecmodules="libvorbis $nocodecmodules"
5370 echores "$_vorbis"
5372 echocheck "libspeex (version >= 1.1 required)"
5373 if test "$_speex" = auto ; then
5374 _speex=no
5375 cat > $TMPC << EOF
5376 #include <stddef.h>
5377 #include <speex/speex.h>
5378 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5380 cc_check -lspeex $_ld_lm && _speex=yes
5382 if test "$_speex" = yes ; then
5383 def_speex='#define CONFIG_SPEEX 1'
5384 extra_ldflags="$extra_ldflags -lspeex"
5385 codecmodules="speex $codecmodules"
5386 else
5387 def_speex='#undef CONFIG_SPEEX'
5388 nocodecmodules="speex $nocodecmodules"
5390 echores "$_speex"
5392 echocheck "OggTheora support"
5393 if test "$_theora" = auto ; then
5394 _theora=no
5395 if pkg_config_add theora ; then
5396 _theora=yes
5399 if test "$_theora" = yes ; then
5400 def_theora='#define CONFIG_OGGTHEORA 1'
5401 codecmodules="libtheora $codecmodules"
5402 else
5403 def_theora='#undef CONFIG_OGGTHEORA'
5404 nocodecmodules="libtheora $nocodecmodules"
5406 echores "$_theora"
5408 # Any version of libmpg123 shall be fine.
5409 echocheck "mpg123 support"
5410 def_mpg123='#undef CONFIG_MPG123'
5411 if test "$_mpg123" = auto; then
5412 _mpg123=no
5413 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5415 if test "$_mpg123" = yes ; then
5416 def_mpg123='#define CONFIG_MPG123 1'
5417 codecmodules="mpg123 $codecmodules"
5418 else
5419 nocodecmodules="mpg123 $nocodecmodules"
5421 echores "$_mpg123"
5423 echocheck "liba52 support"
5424 def_liba52='#undef CONFIG_LIBA52'
5425 if test "$_liba52" = auto ; then
5426 _liba52=no
5427 cat > $TMPC << EOF
5428 #include <inttypes.h>
5429 #include <a52dec/a52.h>
5430 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5432 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5434 if test "$_liba52" = yes ; then
5435 def_liba52='#define CONFIG_LIBA52 1'
5436 codecmodules="liba52 $codecmodules"
5437 else
5438 nocodecmodules="liba52 $nocodecmodules"
5440 echores "$_liba52"
5442 echocheck "libdca support"
5443 if test "$_libdca" = auto ; then
5444 _libdca=no
5445 for _ld_dca in -ldca -ldts ; do
5446 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5447 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5448 done
5450 if test "$_libdca" = yes ; then
5451 def_libdca='#define CONFIG_LIBDCA 1'
5452 codecmodules="libdca $codecmodules"
5453 else
5454 def_libdca='#undef CONFIG_LIBDCA'
5455 nocodecmodules="libdca $nocodecmodules"
5457 echores "$_libdca"
5459 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5460 if test "$_musepack" = yes ; then
5461 _musepack=no
5462 cat > $TMPC << EOF
5463 #include <stddef.h>
5464 #include <mpcdec/mpcdec.h>
5465 int main(void) {
5466 mpc_streaminfo info;
5467 mpc_decoder decoder;
5468 mpc_decoder_set_streaminfo(&decoder, &info);
5469 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5470 return 0;
5473 cc_check -lmpcdec $_ld_lm && _musepack=yes
5475 if test "$_musepack" = yes ; then
5476 def_musepack='#define CONFIG_MUSEPACK 1'
5477 extra_ldflags="$extra_ldflags -lmpcdec"
5478 codecmodules="musepack $codecmodules"
5479 else
5480 def_musepack='#undef CONFIG_MUSEPACK'
5481 nocodecmodules="musepack $nocodecmodules"
5483 echores "$_musepack"
5486 echocheck "FAAD2 support"
5487 if test "$_faad" = auto ; then
5488 _faad=no
5489 cat > $TMPC << EOF
5490 #include <faad.h>
5491 #ifndef FAAD_MIN_STREAMSIZE
5492 #error Too old version
5493 #endif
5494 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5495 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5497 cc_check -lfaad $_ld_lm && _faad=yes
5500 def_faad='#undef CONFIG_FAAD'
5501 if test "$_faad" = yes ; then
5502 def_faad='#define CONFIG_FAAD 1'
5503 extra_ldflags="$extra_ldflags -lfaad"
5504 codecmodules="faad2 $codecmodules"
5505 else
5506 nocodecmodules="faad2 $nocodecmodules"
5508 echores "$_faad"
5511 echocheck "LADSPA plugin support"
5512 if test "$_ladspa" = auto ; then
5513 _ladspa=no
5514 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5516 if test "$_ladspa" = yes; then
5517 def_ladspa="#define CONFIG_LADSPA 1"
5518 else
5519 def_ladspa="#undef CONFIG_LADSPA"
5521 echores "$_ladspa"
5524 echocheck "libbs2b audio filter support"
5525 if test "$_libbs2b" = auto ; then
5526 _libbs2b=no
5527 if pkg_config_add libbs2b ; then
5528 _libbs2b=yes
5531 def_libbs2b="#undef CONFIG_LIBBS2B"
5532 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5533 echores "$_libbs2b"
5536 if test -z "$_codecsdir" ; then
5537 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5538 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5539 if test -d "$dir" ; then
5540 _codecsdir="$dir"
5541 break;
5543 done
5545 # Fall back on default directory.
5546 if test -z "$_codecsdir" ; then
5547 _codecsdir="$_libdir/codecs"
5548 mingw32 && _codecsdir="codecs"
5552 echocheck "Win32 codecs"
5553 if test "$_win32dll" = auto ; then
5554 _win32dll=no
5555 if x86_32 && ! qnx; then
5556 _win32dll=yes
5559 if test "$_win32dll" = yes ; then
5560 def_win32dll='#define CONFIG_WIN32DLL 1'
5561 if ! win32 ; then
5562 def_win32_loader='#define WIN32_LOADER 1'
5563 _win32_emulation=yes
5564 else
5565 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5566 res_comment="using native windows"
5568 codecmodules="win32 $codecmodules"
5569 else
5570 def_win32dll='#undef CONFIG_WIN32DLL'
5571 def_win32_loader='#undef WIN32_LOADER'
5572 nocodecmodules="win32 $nocodecmodules"
5574 echores "$_win32dll"
5577 echocheck "XAnim codecs"
5578 if test "$_xanim" = auto ; then
5579 _xanim=no
5580 res_comment="dynamic loader support needed"
5581 if test "$_dl" = yes ; then
5582 _xanim=yes
5585 if test "$_xanim" = yes ; then
5586 def_xanim='#define CONFIG_XANIM 1'
5587 codecmodules="xanim $codecmodules"
5588 else
5589 def_xanim='#undef CONFIG_XANIM'
5590 nocodecmodules="xanim $nocodecmodules"
5592 echores "$_xanim"
5595 echocheck "RealPlayer codecs"
5596 if test "$_real" = auto ; then
5597 _real=no
5598 res_comment="dynamic loader support needed"
5599 if test "$_dl" = yes || test "$_win32dll" = yes &&
5600 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
5601 _real=yes
5604 if test "$_real" = yes ; then
5605 def_real='#define CONFIG_REALCODECS 1'
5606 codecmodules="real $codecmodules"
5607 else
5608 def_real='#undef CONFIG_REALCODECS'
5609 nocodecmodules="real $nocodecmodules"
5611 echores "$_real"
5614 echocheck "QuickTime codecs"
5615 _qtx_emulation=no
5616 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5617 if test "$_qtx" = auto ; then
5618 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5620 if test "$_qtx" = yes ; then
5621 def_qtx='#define CONFIG_QTX_CODECS 1'
5622 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5623 codecmodules="qtx $codecmodules"
5624 darwin || win32 || _qtx_emulation=yes
5625 else
5626 def_qtx='#undef CONFIG_QTX_CODECS'
5627 nocodecmodules="qtx $nocodecmodules"
5629 echores "$_qtx"
5631 echocheck "Nemesi Streaming Media libraries"
5632 if test "$_nemesi" = auto && test "$networking" = yes ; then
5633 _nemesi=no
5634 if pkg_config_add libnemesi ; then
5635 _nemesi=yes
5638 if test "$_nemesi" = yes; then
5639 _native_rtsp=no
5640 def_nemesi='#define CONFIG_LIBNEMESI 1'
5641 inputmodules="nemesi $inputmodules"
5642 else
5643 _native_rtsp="$networking"
5644 _nemesi=no
5645 def_nemesi='#undef CONFIG_LIBNEMESI'
5646 noinputmodules="nemesi $noinputmodules"
5648 echores "$_nemesi"
5650 echocheck "LIVE555 Streaming Media libraries"
5651 if test "$_live" != no && test "$networking" = yes ; then
5652 cat > $TMPCPP << EOF
5653 #include <liveMedia.hh>
5654 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5655 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5656 #endif
5657 int main(void) { return 0; }
5660 _live=no
5661 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
5662 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
5663 _livelibdir=$(echo $I| sed s/-I//) &&
5664 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
5665 $_livelibdir/groupsock/libgroupsock.a \
5666 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
5667 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
5668 $extra_ldflags -lstdc++" \
5669 extra_cxxflags="-I$_livelibdir/liveMedia/include \
5670 -I$_livelibdir/UsageEnvironment/include \
5671 -I$_livelibdir/BasicUsageEnvironment/include \
5672 -I$_livelibdir/groupsock/include" &&
5673 _live=yes && break
5674 done
5675 if test "$_live" != yes ; then
5676 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
5677 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
5678 _live_dist=yes
5682 if test "$_live" = yes && test "$networking" = yes; then
5683 test $_livelibdir && res_comment="using $_livelibdir"
5684 def_live='#define CONFIG_LIVE555 1'
5685 inputmodules="live555 $inputmodules"
5686 elif test "$_live_dist" = yes && test "$networking" = yes; then
5687 res_comment="using distribution version"
5688 _live="yes"
5689 def_live='#define CONFIG_LIVE555 1'
5690 extra_ldflags="$extra_ldflags $ld_tmp"
5691 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
5692 inputmodules="live555 $inputmodules"
5693 else
5694 _live=no
5695 def_live='#undef CONFIG_LIVE555'
5696 noinputmodules="live555 $noinputmodules"
5698 echores "$_live"
5702 # Test with > against Libav 0.8 versions which will NOT work rather than
5703 # specify minimum version, to allow (future) point releases to possibly work.
5704 all_libav_libs="libavutil > 51.21.0:libavcodec > 53.34.0:libavformat > 53.20.0:libswscale >= 2.0.0"
5705 echocheck "Libav ($all_libav_libs)"
5706 if test "$ffmpeg" = auto ; then
5707 IFS=":" # shell should not be used for programming
5708 if ! pkg_config_add $all_libav_libs ; then
5709 die "Unable to find development files for some of the required Libav libraries above. Aborting."
5712 echores "yes"
5714 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
5715 if ! test -z "$_ffmpeg_source" ; then
5716 def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
5719 echocheck "libpostproc >= 52.0.0"
5720 if test "$libpostproc" = auto ; then
5721 libpostproc=no
5722 if pkg_config_add "libpostproc >= 52.0.0" ; then
5723 libpostproc=yes
5726 if test "$libpostproc" = yes ; then
5727 def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
5728 else
5729 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
5731 echores "$libpostproc"
5734 echocheck "libdv-0.9.5+"
5735 if test "$_libdv" = auto ; then
5736 _libdv=no
5737 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
5739 if test "$_libdv" = yes ; then
5740 def_libdv='#define CONFIG_LIBDV095 1'
5741 extra_ldflags="$extra_ldflags -ldv"
5742 codecmodules="libdv $codecmodules"
5743 else
5744 def_libdv='#undef CONFIG_LIBDV095'
5745 nocodecmodules="libdv $nocodecmodules"
5747 echores "$_libdv"
5750 echocheck "Xvid"
5751 if test "$_xvid" = auto ; then
5752 _xvid=no
5753 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
5754 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
5755 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
5756 done
5759 if test "$_xvid" = yes ; then
5760 def_xvid='#define CONFIG_XVID4 1'
5761 codecmodules="xvid $codecmodules"
5762 else
5763 def_xvid='#undef CONFIG_XVID4'
5764 nocodecmodules="xvid $nocodecmodules"
5766 echores "$_xvid"
5769 echocheck "libnut"
5770 if test "$_libnut" = auto ; then
5771 _libnut=no
5772 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
5775 if test "$_libnut" = yes ; then
5776 def_libnut='#define CONFIG_LIBNUT 1'
5777 extra_ldflags="$extra_ldflags -lnut"
5778 else
5779 def_libnut='#undef CONFIG_LIBNUT'
5781 echores "$_libnut"
5783 # These VO checks must be done after the FFmpeg one
5784 echocheck "/dev/mga_vid"
5785 if test "$_mga" = auto ; then
5786 _mga=no
5787 test -c /dev/mga_vid && _mga=yes
5789 if test "$_mga" = yes ; then
5790 def_mga='#define CONFIG_MGA 1'
5791 vomodules="mga $vomodules"
5792 else
5793 def_mga='#undef CONFIG_MGA'
5794 novomodules="mga $novomodules"
5796 echores "$_mga"
5799 echocheck "xmga"
5800 if test "$_xmga" = auto ; then
5801 _xmga=no
5802 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
5804 if test "$_xmga" = yes ; then
5805 def_xmga='#define CONFIG_XMGA 1'
5806 vomodules="xmga $vomodules"
5807 else
5808 def_xmga='#undef CONFIG_XMGA'
5809 novomodules="xmga $novomodules"
5811 echores "$_xmga"
5814 echocheck "UnRAR executable"
5815 if test "$_unrar_exec" = auto ; then
5816 _unrar_exec="yes"
5817 mingw32 && _unrar_exec="no"
5819 if test "$_unrar_exec" = yes ; then
5820 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
5821 else
5822 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
5824 echores "$_unrar_exec"
5826 echocheck "TV interface"
5827 if test "$_tv" = yes ; then
5828 def_tv='#define CONFIG_TV 1'
5829 inputmodules="tv $inputmodules"
5830 else
5831 noinputmodules="tv $noinputmodules"
5832 def_tv='#undef CONFIG_TV'
5834 echores "$_tv"
5837 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
5838 echocheck "*BSD BT848 bt8xx header"
5839 _ioctl_bt848_h=no
5840 for file in "machine/ioctl_bt848.h" \
5841 "dev/bktr/ioctl_bt848.h" \
5842 "dev/video/bktr/ioctl_bt848.h" \
5843 "dev/ic/bt8xx.h" ; do
5844 cat > $TMPC <<EOF
5845 #include <sys/types.h>
5846 #include <sys/ioctl.h>
5847 #include <$file>
5848 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
5850 if cc_check ; then
5851 _ioctl_bt848_h=yes
5852 _ioctl_bt848_h_name="$file"
5853 break;
5855 done
5856 if test "$_ioctl_bt848_h" = yes ; then
5857 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
5858 res_comment="using $_ioctl_bt848_h_name"
5859 else
5860 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
5862 echores "$_ioctl_bt848_h"
5864 echocheck "*BSD ioctl_meteor.h"
5865 _ioctl_meteor_h=no
5866 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
5867 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
5868 _ioctl_meteor_h=yes && break
5869 done
5870 if test "$_ioctl_meteor_h" = yes ; then
5871 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
5872 res_comment="using $ioctl_meteor_h_path"
5873 else
5874 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
5876 echores "$_ioctl_meteor_h"
5878 echocheck "*BSD BrookTree 848 TV interface"
5879 if test "$_tv_bsdbt848" = auto ; then
5880 _tv_bsdbt848=no
5881 if test "$_tv" = yes ; then
5882 cat > $TMPC <<EOF
5883 #include <sys/types.h>
5884 $def_ioctl_meteor_h_name
5885 $def_ioctl_bt848_h_name
5886 #ifdef IOCTL_METEOR_H_NAME
5887 #include IOCTL_METEOR_H_NAME
5888 #endif
5889 #ifdef IOCTL_BT848_H_NAME
5890 #include IOCTL_BT848_H_NAME
5891 #endif
5892 int main(void) {
5893 ioctl(0, METEORSINPUT, 0);
5894 ioctl(0, TVTUNER_GETFREQ, 0);
5895 return 0;
5898 cc_check && _tv_bsdbt848=yes
5901 if test "$_tv_bsdbt848" = yes ; then
5902 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
5903 inputmodules="tv-bsdbt848 $inputmodules"
5904 else
5905 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
5906 noinputmodules="tv-bsdbt848 $noinputmodules"
5908 echores "$_tv_bsdbt848"
5909 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
5912 echocheck "DirectShow TV interface"
5913 if test "$_tv_dshow" = auto ; then
5914 _tv_dshow=no
5915 if test "$_tv" = yes && win32 ; then
5916 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
5919 if test "$_tv_dshow" = yes ; then
5920 inputmodules="tv-dshow $inputmodules"
5921 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
5922 extra_ldflags="$extra_ldflags -lole32 -luuid"
5923 else
5924 noinputmodules="tv-dshow $noinputmodules"
5925 def_tv_dshow='#undef CONFIG_TV_DSHOW'
5927 echores "$_tv_dshow"
5930 echocheck "Video 4 Linux TV interface"
5931 if test "$_tv_v4l1" = auto ; then
5932 _tv_v4l1=no
5933 if test "$_tv" = yes && linux ; then
5934 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
5937 if test "$_tv_v4l1" = yes ; then
5938 _audio_input=yes
5939 _tv_v4l=yes
5940 def_tv_v4l='#define CONFIG_TV_V4L 1'
5941 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
5942 inputmodules="tv-v4l $inputmodules"
5943 else
5944 noinputmodules="tv-v4l1 $noinputmodules"
5945 def_tv_v4l='#undef CONFIG_TV_V4L'
5947 echores "$_tv_v4l1"
5950 echocheck "Video 4 Linux 2 TV interface"
5951 if test "$_tv_v4l2" = auto ; then
5952 _tv_v4l2=no
5953 if test "$_tv" = yes && linux ; then
5954 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
5955 elif test "$_tv" = yes && test "$sys_videoio_h" = "yes" ; then
5956 _tv_v4l2=yes
5959 if test "$_tv_v4l2" = yes ; then
5960 _audio_input=yes
5961 _tv_v4l=yes
5962 def_tv_v4l='#define CONFIG_TV_V4L 1'
5963 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
5964 inputmodules="tv-v4l2 $inputmodules"
5965 else
5966 noinputmodules="tv-v4l2 $noinputmodules"
5967 def_tv_v4l2='#undef CONFIG_TV_V4L2'
5969 echores "$_tv_v4l2"
5972 echocheck "Radio interface"
5973 if test "$_radio" = yes ; then
5974 def_radio='#define CONFIG_RADIO 1'
5975 inputmodules="radio $inputmodules"
5976 if test "$_alsa" != yes -a "$_ossaudio" != yes ; then
5977 _radio_capture=no
5979 if test "$_radio_capture" = yes ; then
5980 _audio_input=yes
5981 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
5982 else
5983 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
5985 else
5986 noinputmodules="radio $noinputmodules"
5987 def_radio='#undef CONFIG_RADIO'
5988 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
5989 _radio_capture=no
5991 echores "$_radio"
5992 echocheck "Capture for Radio interface"
5993 echores "$_radio_capture"
5995 echocheck "Video 4 Linux 2 Radio interface"
5996 if test "$_radio_v4l2" = auto ; then
5997 _radio_v4l2=no
5998 if test "$_radio" = yes && linux ; then
5999 header_check linux/videodev2.h && _radio_v4l2=yes
6002 if test "$_radio_v4l2" = yes ; then
6003 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6004 else
6005 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6007 echores "$_radio_v4l2"
6009 echocheck "Video 4 Linux Radio interface"
6010 if test "$_radio_v4l" = auto ; then
6011 _radio_v4l=no
6012 if test "$_radio" = yes && linux ; then
6013 header_check linux/videodev.h && _radio_v4l=yes
6016 if test "$_radio_v4l" = yes ; then
6017 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6018 else
6019 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6021 echores "$_radio_v4l"
6023 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6024 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6025 echocheck "*BSD BrookTree 848 Radio interface"
6026 _radio_bsdbt848=no
6027 cat > $TMPC <<EOF
6028 #include <sys/types.h>
6029 $def_ioctl_bt848_h_name
6030 #ifdef IOCTL_BT848_H_NAME
6031 #include IOCTL_BT848_H_NAME
6032 #endif
6033 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6035 cc_check && _radio_bsdbt848=yes
6036 echores "$_radio_bsdbt848"
6037 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6039 if test "$_radio_bsdbt848" = yes ; then
6040 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6041 else
6042 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6045 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6046 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6047 die "Radio driver requires BSD BT848, V4L or V4L2!"
6050 echocheck "Video 4 Linux 2 MPEG PVR interface"
6051 if test "$_pvr" = auto ; then
6052 _pvr=no
6053 if test "$_tv_v4l2" = yes && linux ; then
6054 cat > $TMPC <<EOF
6055 #include <sys/time.h>
6056 #include <linux/videodev2.h>
6057 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6059 cc_check && _pvr=yes
6062 if test "$_pvr" = yes ; then
6063 def_pvr='#define CONFIG_PVR 1'
6064 inputmodules="pvr $inputmodules"
6065 else
6066 noinputmodules="pvr $noinputmodules"
6067 def_pvr='#undef CONFIG_PVR'
6069 echores "$_pvr"
6072 echocheck "ftp"
6073 if test "$_ftp" = "auto" ; then
6074 test "$networking" = "yes" && ! beos && _ftp=yes
6076 if test "$_ftp" = yes ; then
6077 def_ftp='#define CONFIG_FTP 1'
6078 inputmodules="ftp $inputmodules"
6079 else
6080 noinputmodules="ftp $noinputmodules"
6081 def_ftp='#undef CONFIG_FTP'
6083 echores "$_ftp"
6085 echocheck "vstream client"
6086 if test "$_vstream" = auto ; then
6087 _vstream=no
6088 cat > $TMPC <<EOF
6089 #include <vstream-client.h>
6090 void vstream_error(const char *format, ... ) {}
6091 int main(void) { vstream_start(); return 0; }
6093 cc_check -lvstream-client && _vstream=yes
6095 if test "$_vstream" = yes ; then
6096 def_vstream='#define CONFIG_VSTREAM 1'
6097 inputmodules="vstream $inputmodules"
6098 extra_ldflags="$extra_ldflags -lvstream-client"
6099 else
6100 noinputmodules="vstream $noinputmodules"
6101 def_vstream='#undef CONFIG_VSTREAM'
6103 echores "$_vstream"
6106 echocheck "Subtitles sorting"
6107 if test "$_sortsub" = yes ; then
6108 def_sortsub='#define CONFIG_SORTSUB 1'
6109 else
6110 def_sortsub='#undef CONFIG_SORTSUB'
6112 echores "$_sortsub"
6115 echocheck "XMMS inputplugin support"
6116 if test "$_xmms" = yes ; then
6117 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6118 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6119 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6120 else
6121 _xmmsplugindir=/usr/lib/xmms/Input
6122 _xmmslibdir=/usr/lib
6125 def_xmms='#define CONFIG_XMMS 1'
6126 if darwin ; then
6127 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6128 else
6129 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6131 else
6132 def_xmms='#undef CONFIG_XMMS'
6134 echores "$_xmms"
6136 if test "$_charset" != "noconv" ; then
6137 def_charset="#define MSG_CHARSET \"$_charset\""
6138 else
6139 def_charset="#undef MSG_CHARSET"
6140 _charset="UTF-8"
6143 #############################################################################
6145 echocheck "automatic gdb attach"
6146 if test "$_crash_debug" = yes ; then
6147 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6148 else
6149 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6150 _crash_debug=no
6152 echores "$_crash_debug"
6154 echocheck "compiler support for noexecstack"
6155 if cflag_check -Wl,-z,noexecstack ; then
6156 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6157 echores "yes"
6158 else
6159 echores "no"
6162 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6163 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6164 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6165 echores "yes"
6166 else
6167 echores "no"
6171 # Dynamic linking flags
6172 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6173 _ld_dl_dynamic=''
6174 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6175 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! sunos; then
6176 _ld_dl_dynamic='-rdynamic'
6179 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6180 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6181 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6183 def_debug='#undef MP_DEBUG'
6184 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6187 echocheck "joystick"
6188 def_joystick='#undef CONFIG_JOYSTICK'
6189 if test "$_joystick" = yes ; then
6190 if linux || freebsd ; then
6191 # TODO add some check
6192 def_joystick='#define CONFIG_JOYSTICK 1'
6193 else
6194 _joystick="no"
6195 res_comment="unsupported under $system_name"
6198 echores "$_joystick"
6200 echocheck "lirc"
6201 if test "$_lirc" = auto ; then
6202 _lirc=no
6203 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6205 if test "$_lirc" = yes ; then
6206 def_lirc='#define CONFIG_LIRC 1'
6207 libs_mplayer="$libs_mplayer -llirc_client"
6208 else
6209 def_lirc='#undef CONFIG_LIRC'
6211 echores "$_lirc"
6213 echocheck "lircc"
6214 if test "$_lircc" = auto ; then
6215 _lircc=no
6216 header_check lirc/lircc.h -llircc && _lircc=yes
6218 if test "$_lircc" = yes ; then
6219 def_lircc='#define CONFIG_LIRCC 1'
6220 libs_mplayer="$libs_mplayer -llircc"
6221 else
6222 def_lircc='#undef CONFIG_LIRCC'
6224 echores "$_lircc"
6226 #############################################################################
6228 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
6230 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6232 # This must be the last test to be performed. Any other tests following it
6233 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6234 # against libdvdread (to permit MPlayer to use its own copy of the library).
6235 # So any compilation using the flags added here but not linking against
6236 # libdvdread can fail.
6237 echocheck "DVD support (libdvdnav)"
6238 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6239 _dvdnav=no
6241 dvdnav_internal=no
6242 if test "$_dvdnav" = auto ; then
6243 if test "$_dvdread_internal" = yes ; then
6244 _dvdnav=yes
6245 dvdnav_internal=yes
6246 res_comment="internal"
6247 else
6248 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6251 if test "$_dvdnav" = auto ; then
6252 _dvdnav=no
6253 _dvdnavdir=$($_dvdnavconfig --cflags)
6254 _dvdnavlibs=$($_dvdnavconfig --libs)
6255 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6257 if test "$_dvdnav" = yes ; then
6258 def_dvdnav='#define CONFIG_DVDNAV 1'
6259 if test "$dvdnav_internal" = yes ; then
6260 cflags_libdvdnav="-Ilibdvdnav"
6261 inputmodules="dvdnav(internal) $inputmodules"
6262 else
6263 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6264 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6265 inputmodules="dvdnav $inputmodules"
6267 else
6268 def_dvdnav='#undef CONFIG_DVDNAV'
6269 noinputmodules="dvdnav $noinputmodules"
6271 echores "$_dvdnav"
6273 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6274 # Read dvdnav comment above.
6276 mak_enable () {
6277 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6278 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6279 nprefix=$3;
6280 for part in $list; do
6281 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6282 echo "${nprefix}_$part = yes"
6284 done
6287 #############################################################################
6288 echo "Creating config.mak"
6289 cat > config.mak << EOF
6290 # -------- Generated by configure -----------
6292 # Ensure that locale settings do not interfere with shell commands.
6293 export LC_ALL = C
6295 CONFIGURATION = $configuration
6297 CHARSET = $_charset
6298 DOC_LANGS = $language_doc
6299 DOC_LANG_ALL = $doc_lang_all
6300 MAN_LANGS = $language_man
6301 MAN_LANG_ALL = $man_lang_all
6302 MSG_LANGS = $language_msg
6303 MSG_LANG_ALL = $msg_lang_all
6305 prefix = \$(DESTDIR)$_prefix
6306 BINDIR = \$(DESTDIR)$_bindir
6307 DATADIR = \$(DESTDIR)$_datadir
6308 LIBDIR = \$(DESTDIR)$_libdir
6309 MANDIR = \$(DESTDIR)$_mandir
6310 CONFDIR = \$(DESTDIR)$_confdir
6311 LOCALEDIR = \$(DESTDIR)$_localedir
6313 AR = $_ar
6314 AS = $_cc
6315 CC = $_cc
6316 CXX = $_cc
6317 HOST_CC = $_host_cc
6318 INSTALL = $_install
6319 INSTALLSTRIP = $_install_strip
6320 WINDRES = $_windres
6322 CFLAGS = $WARNFLAGS $ERRORFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6323 CXXFLAGS = $WARNFLAGS $ERRORFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6324 DEPFLAGS = $DEPFLAGS
6326 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6327 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6328 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6329 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6330 CFLAGS_STACKREALIGN = $cflags_stackrealign
6332 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6333 EXTRALIBS_MPLAYER = $libs_mplayer
6335 GETCH = $_getch
6336 TIMER = $_timer
6338 EXESUF = $_exesuf
6339 EXESUFS_ALL = .exe
6341 ARCH = $arch
6342 $(mak_enable "$arch_all" "$arch" ARCH)
6343 $(mak_enable "$subarch_all" "$subarch" ARCH)
6344 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6346 MPLAYER = $_mplayer
6348 NEED_GETTIMEOFDAY = $need_gettimeofday
6349 NEED_GLOB = $need_glob
6350 NEED_SETENV = $need_setenv
6351 NEED_SHMEM = $need_shmem
6352 NEED_STRSEP = $need_strsep
6353 NEED_SWAB = $need_swab
6354 NEED_VSSCANF = $need_vsscanf
6356 # features
6357 3DFX = $_3dfx
6358 AA = $_aa
6359 ALSA = $_alsa
6360 APPLE_IR = $_apple_ir
6361 APPLE_REMOTE = $_apple_remote
6362 ARTS = $_arts
6363 AUDIO_INPUT = $_audio_input
6364 BITMAP_FONT = $_bitmap_font
6365 BL = $_bl
6366 CACA = $_caca
6367 CDDA = $_cdda
6368 CDDB = $_cddb
6369 COREAUDIO = $_coreaudio
6370 COREVIDEO = $_corevideo
6371 DGA = $_dga
6372 DIRECT3D = $_direct3d
6373 DIRECTFB = $_directfb
6374 DIRECTX = $_directx
6375 DVBIN = $_dvbin
6376 DVDNAV = $_dvdnav
6377 DVDNAV_INTERNAL = $dvdnav_internal
6378 DVDREAD = $_dvdread
6379 DVDREAD_INTERNAL = $_dvdread_internal
6380 DXR3 = $_dxr3
6381 ESD = $_esd
6382 FAAD = $_faad
6383 FASTMEMCPY = $_fastmemcpy
6384 FBDEV = $_fbdev
6385 FREETYPE = $_freetype
6386 FTP = $_ftp
6387 GIF = $_gif
6388 GGI = $_ggi
6389 GL = $_gl
6390 GL_COCOA = $_gl_cocoa
6391 GL_WIN32 = $_gl_win32
6392 GL_X11 = $_gl_x11
6393 GL_SDL = $_gl_sdl
6394 HAVE_POSIX_SELECT = $_posix_select
6395 HAVE_SYS_MMAN_H = $_mman
6396 IVTV = $_ivtv
6397 JACK = $_jack
6398 JOYSTICK = $_joystick
6399 JPEG = $_jpeg
6400 LADSPA = $_ladspa
6401 LIBA52 = $_liba52
6402 LIBASS = $_ass
6403 LIBBLURAY = $_bluray
6404 LIBBS2B = $_libbs2b
6405 LIBDCA = $_libdca
6406 LIBDV = $_libdv
6407 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6408 LIBMAD = $_mad
6409 LIBNEMESI = $_nemesi
6410 LIBNUT = $_libnut
6411 LIBPOSTPROC = $libpostproc
6412 LIBSMBCLIENT = $_smb
6413 LIBTHEORA = $_theora
6414 LIRC = $_lirc
6415 LIVE555 = $_live
6416 MACOSX_FINDER = $_macosx_finder
6417 MD5SUM = $_md5sum
6418 MGA = $_mga
6419 MNG = $_mng
6420 MPG123 = $_mpg123
6421 MUSEPACK = $_musepack
6422 NAS = $_nas
6423 NATIVE_RTSP = $_native_rtsp
6424 NETWORKING = $networking
6425 OPENAL = $_openal
6426 OSS = $_ossaudio
6427 PE_EXECUTABLE = $_pe_executable
6428 PNG = $_png
6429 PNM = $_pnm
6430 PRIORITY = $_priority
6431 PULSE = $_pulse
6432 PVR = $_pvr
6433 QTX_CODECS = $_qtx
6434 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6435 QTX_EMULATION = $_qtx_emulation
6436 RADIO=$_radio
6437 RADIO_CAPTURE=$_radio_capture
6438 REAL_CODECS = $_real
6439 RSOUND = $_rsound
6440 S3FB = $_s3fb
6441 SDL = $_sdl
6442 SPEEX = $_speex
6443 STREAM_CACHE = $_stream_cache
6444 SGIAUDIO = $_sgiaudio
6445 SUNAUDIO = $_sunaudio
6446 SVGA = $_svga
6447 TDFXFB = $_tdfxfb
6448 TDFXVID = $_tdfxvid
6449 TGA = $_tga
6450 TV = $_tv
6451 TV_BSDBT848 = $_tv_bsdbt848
6452 TV_DSHOW = $_tv_dshow
6453 TV_V4L = $_tv_v4l
6454 TV_V4L1 = $_tv_v4l1
6455 TV_V4L2 = $_tv_v4l2
6456 UNRAR_EXEC = $_unrar_exec
6457 V4L2 = $_v4l2
6458 VCD = $_vcd
6459 VDPAU = $_vdpau
6460 VESA = $_vesa
6461 VORBIS = $_vorbis
6462 VSTREAM = $_vstream
6463 WII = $_wii
6464 WIN32DLL = $_win32dll
6465 WIN32WAVEOUT = $_win32waveout
6466 WIN32_EMULATION = $_win32_emulation
6467 X11 = $_x11
6468 XANIM_CODECS = $_xanim
6469 XMGA = $_xmga
6470 XMMS_PLUGINS = $_xmms
6471 XV = $_xv
6472 XVID4 = $_xvid
6473 XVR100 = $_xvr100
6474 YUV4MPEG = $_yuv4mpeg
6476 # FFmpeg
6477 FFMPEG_INTERNALS = $ffmpeg_internals
6478 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6480 RANLIB = $_ranlib
6481 YASM = $_yasm
6482 YASMFLAGS = $YASMFLAGS
6484 CONFIG_VDPAU = $_vdpau
6485 CONFIG_ZLIB = $_zlib
6487 HAVE_PTHREADS = $_pthreads
6488 HAVE_SHM = $_shm
6489 HAVE_W32THREADS = $_w32threads
6490 HAVE_YASM = $have_yasm
6494 #############################################################################
6496 ff_config_enable () {
6497 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6498 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6499 _nprefix=$3;
6500 test -z "$_nprefix" && _nprefix='CONFIG'
6501 for part in $list; do
6502 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6503 echo "#define ${_nprefix}_$part 1"
6504 else
6505 echo "#define ${_nprefix}_$part 0"
6507 done
6510 echo "Creating config.h"
6511 cat > $TMPH << EOF
6512 /*----------------------------------------------------------------------------
6513 ** This file has been automatically generated by configure any changes in it
6514 ** will be lost when you run configure again.
6515 ** Instead of modifying definitions here, use the --enable/--disable options
6516 ** of the configure script! See ./configure --help for details.
6517 *---------------------------------------------------------------------------*/
6519 #ifndef MPLAYER_CONFIG_H
6520 #define MPLAYER_CONFIG_H
6522 /* Undefine this if you do not want to select mono audio (left or right)
6523 with a stereo MPEG layer 2/3 audio stream. The command line option
6524 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6525 right-only), with 0 being the default.
6527 #define CONFIG_FAKE_MONO 1
6529 /* set up audio OUTBURST. Do not change this! */
6530 #define OUTBURST 512
6532 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6533 #undef FAST_OSD
6534 #undef FAST_OSD_TABLE
6538 #define CONFIGURATION "$configuration"
6540 #define MPLAYER_DATADIR "$_datadir"
6541 #define MPLAYER_CONFDIR "$_confdir"
6542 #define MPLAYER_LOCALEDIR "$_localedir"
6544 $def_translation
6546 /* definitions needed by included libraries */
6547 #define HAVE_INTTYPES_H 1
6548 /* libdvdcss */
6549 #define HAVE_ERRNO_H 1
6550 /* libdvdcss + libdvdread */
6551 #define HAVE_LIMITS_H 1
6552 /* libdvdcss */
6553 #define HAVE_UNISTD_H 1
6554 /* libdvdread */
6555 #define STDC_HEADERS 1
6556 #define HAVE_MEMCPY 1
6557 /* libdvdnav */
6558 #define READ_CACHE_TRACE 0
6559 /* libdvdread */
6560 #define HAVE_DLFCN_H 1
6561 $def_dvdcss
6564 /* system headers */
6565 $def_alloca_h
6566 $def_altivec_h
6567 $def_malloc_h
6568 $def_mman_h
6569 $def_mman_has_map_failed
6570 $def_soundcard_h
6571 $def_sys_soundcard_h
6572 $def_sys_sysinfo_h
6573 $def_sys_videoio_h
6574 $def_termios_h
6575 $def_termios_sys_h
6576 $def_winsock2_h
6579 /* system functions */
6580 $def_gethostbyname2
6581 $def_gettimeofday
6582 $def_glob
6583 $def_langinfo
6584 $def_lrintf
6585 $def_map_memalign
6586 $def_memalign
6587 $def_nanosleep
6588 $def_posix_select
6589 $def_select
6590 $def_setenv
6591 $def_setmode
6592 $def_shm
6593 $def_strsep
6594 $def_swab
6595 $def_sysi86
6596 $def_sysi86_iv
6597 $def_termcap
6598 $def_termios
6599 $def_vsscanf
6602 /* system-specific features */
6603 $def_asmalign_pot
6604 $def_builtin_expect
6605 $def_dl
6606 $def_dos_paths
6607 $def_extern_asm
6608 $def_extern_prefix
6609 $def_iconv
6610 $def_kstat
6611 $def_macosx_bundle
6612 $def_macosx_finder
6613 $def_priority
6614 $def_quicktime
6615 $def_restrict_keyword
6616 $def_rtc
6617 $def_unrar_exec
6620 /* configurable options */
6621 $def_charset
6622 $def_crash_debug
6623 $def_debug
6624 $def_fastmemcpy
6625 $def_runtime_cpudetection
6626 $def_sighandler
6627 $def_sortsub
6628 $def_stream_cache
6629 $def_pthread_cache
6632 /* CPU stuff */
6633 #define __CPU__ $iproc
6634 $def_ebx_available
6635 $def_words_endian
6636 $def_bigendian
6637 $(ff_config_enable "$arch_all" "$arch" "ARCH")
6638 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
6639 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
6642 /* Blu-ray/DVD/VCD/CD */
6643 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
6644 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
6645 $def_bluray
6646 $def_bsdi_dvd
6647 $def_cddb
6648 $def_cdio
6649 $def_cdparanoia
6650 $def_cdrom
6651 $def_dvd
6652 $def_dvd_bsd
6653 $def_dvd_darwin
6654 $def_dvd_linux
6655 $def_dvd_openbsd
6656 $def_dvdio
6657 $def_dvdnav
6658 $def_dvdread
6659 $def_hpux_scsi_h
6660 $def_libcdio
6661 $def_sol_scsi_h
6662 $def_vcd
6665 /* codec libraries */
6666 $def_faad
6667 $def_liba52
6668 $def_libdca
6669 $def_libdv
6670 $def_mad
6671 $def_mpg123
6672 $def_musepack
6673 $def_speex
6674 $def_theora
6675 $def_tremor
6676 $def_vorbis
6677 $def_xvid
6678 $def_zlib
6680 $def_libpostproc
6681 $def_libnut
6684 /* binary codecs */
6685 $def_qtx
6686 $def_qtx_win32
6687 $def_real
6688 $def_win32_loader
6689 $def_win32dll
6690 $def_xanim
6691 $def_xmms
6692 #define BINARY_CODECS_PATH "$_codecsdir"
6693 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6696 /* Audio output drivers */
6697 $def_alsa
6698 $def_arts
6699 $def_coreaudio
6700 $def_esd
6701 $def_esd_latency
6702 $def_jack
6703 $def_nas
6704 $def_openal
6705 $def_openal_h
6706 $def_ossaudio
6707 $def_ossaudio_devdsp
6708 $def_ossaudio_devmixer
6709 $def_pulse
6710 $def_rsound
6711 $def_sgiaudio
6712 $def_sunaudio
6713 $def_win32waveout
6715 $def_ladspa
6716 $def_libbs2b
6719 /* input */
6720 $def_apple_ir
6721 $def_apple_remote
6722 $def_ioctl_bt848_h_name
6723 $def_ioctl_meteor_h_name
6724 $def_joystick
6725 $def_lirc
6726 $def_lircc
6727 $def_pvr
6728 $def_radio
6729 $def_radio_bsdbt848
6730 $def_radio_capture
6731 $def_radio_v4l
6732 $def_radio_v4l2
6733 $def_tv
6734 $def_tv_bsdbt848
6735 $def_tv_dshow
6736 $def_tv_v4l
6737 $def_tv_v4l1
6738 $def_tv_v4l2
6741 /* font stuff */
6742 $def_ass
6743 $def_bitmap_font
6744 $def_enca
6745 $def_fontconfig
6746 $def_freetype
6747 $def_fribidi
6750 /* networking */
6751 $def_closesocket
6752 $def_ftp
6753 $def_inet6
6754 $def_inet_aton
6755 $def_inet_pton
6756 $def_live
6757 $def_nemesi
6758 $def_networking
6759 $def_smb
6760 $def_socklen_t
6761 $def_vstream
6764 /* libvo options */
6765 $def_3dfx
6766 $def_aa
6767 $def_bl
6768 $def_caca
6769 $def_corevideo
6770 $def_dga
6771 $def_dga1
6772 $def_dga2
6773 $def_direct3d
6774 $def_directfb
6775 $def_directx
6776 $def_dvb
6777 $def_dvbin
6778 $def_dxr3
6779 $def_fbdev
6780 $def_ggi
6781 $def_ggiwmh
6782 $def_gif
6783 $def_gif_4
6784 $def_gif_tvt_hack
6785 $def_gl
6786 $def_gl_cocoa
6787 $def_gl_win32
6788 $def_gl_x11
6789 $def_gl_sdl
6790 $def_ivtv
6791 $def_jpeg
6792 $def_md5sum
6793 $def_mga
6794 $def_mng
6795 $def_png
6796 $def_pnm
6797 $def_s3fb
6798 $def_sdl
6799 $def_sdl_sdl_h
6800 $def_svga
6801 $def_tdfxfb
6802 $def_tdfxvid
6803 $def_tga
6804 $def_v4l2
6805 $def_vdpau
6806 $def_vesa
6807 $def_vm
6808 $def_wii
6809 $def_x11
6810 $def_xdpms
6811 $def_xf86keysym
6812 $def_xinerama
6813 $def_xmga
6814 $def_xss
6815 $def_xv
6816 $def_xvr100
6817 $def_yuv4mpeg
6820 /* FFmpeg */
6821 $def_ffmpeg_internals
6823 $def_arpa_inet_h
6824 $def_bswap
6825 $def_dcbzl
6826 $def_exp2
6827 $def_exp2f
6828 $def_fast_64bit
6829 $def_fast_unaligned
6830 $def_llrint
6831 $def_log2
6832 $def_log2f
6833 $def_lrint
6834 $def_memalign_hack
6835 $def_mkstemp
6836 $def_posix_memalign
6837 $def_pthreads
6838 $def_round
6839 $def_roundf
6840 $def_threads
6841 $def_truncf
6842 $def_xform_asm
6843 $def_yasm
6845 #define HAVE_INLINE_ASM 1
6847 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
6848 #ifndef MP_DEBUG
6849 #define HAVE_EBP_AVAILABLE 1
6850 #else
6851 #define HAVE_EBP_AVAILABLE 0
6852 #endif
6854 #endif /* MPLAYER_CONFIG_H */
6857 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
6858 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
6860 #############################################################################
6862 cat << EOF
6864 Config files successfully generated by ./configure $configuration !
6866 Install prefix: $_prefix
6867 Data directory: $_datadir
6868 Config direct.: $_confdir
6870 Byte order: $_byte_order
6871 Optimizing for: $_optimizing
6873 Languages:
6874 Messages (in addition to English): $language_msg
6875 Manual pages: $language_man
6876 Documentation: $language_doc
6878 Enabled optional drivers:
6879 Input: $inputmodules
6880 Codecs: $codecmodules
6881 Audio output: $aomodules
6882 Video output: $vomodules
6884 Disabled optional drivers:
6885 Input: $noinputmodules
6886 Codecs: $nocodecmodules
6887 Audio output: $noaomodules
6888 Video output: $novomodules
6890 'config.h' and 'config.mak' contain your configuration options.
6891 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
6892 compile *** DO NOT REPORT BUGS if you tweak these files ***
6894 'make' will now compile MPlayer and 'make install' will install it.
6895 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
6900 cat <<EOF
6901 Check $TMPLOG if you wonder why an autodetection failed (make sure
6902 development headers/packages are installed).
6904 NOTE: The --enable-* parameters unconditionally force options on, completely
6905 skipping autodetection. This behavior is unlike what you may be used to from
6906 autoconf-based configure scripts that can decide to override you. This greater
6907 level of control comes at a price. You may have to provide the correct compiler
6908 and linker flags yourself.
6909 If you used one of these options (except --enable-runtime-cpudetection and
6910 similar ones that turn on internal features) and experience a compilation or
6911 linking failure, make sure you have passed the necessary compiler/linker flags
6912 to configure.
6914 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
6918 if test "$warn_cflags" = yes; then
6919 cat <<EOF
6921 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
6922 but:
6924 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
6926 It is strongly recommended to let MPlayer choose the correct CFLAGS!
6927 To do so, execute 'CFLAGS= ./configure <options>'
6932 # Last move:
6933 rm -rf "$mplayer_tmpdir"