ad_qtaudio: don't run win32 loader code when it's not used
[mplayer/greg.git] / configure
blobe4c8c9d304c02b3d9b611a7ca0b8a905a96c46b8
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, look at the existing checks
23 # and try to use helper functions where you can.
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
32 # _feature : should have a value of yes/no/auto
33 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
34 # _ld_feature : '-L/path/dir -lfeature' GCC options
36 #############################################################################
38 # Prevent locale nonsense from breaking basic text processing utils
39 export LC_ALL=C
41 # Store the configure line that was used
42 configuration="$*"
44 # Prefer these macros to full length text !
45 # These macros only return an error code - NO display is done
46 compile_check() {
47 source="$1"
48 shift
49 echo >> "$TMPLOG"
50 cat "$source" >> "$TMPLOG"
51 echo >> "$TMPLOG"
52 echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG"
53 rm -f "$TMPEXE"
54 $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
55 TMPRES="$?"
56 echo >> "$TMPLOG"
57 echo >> "$TMPLOG"
58 return "$TMPRES"
61 cc_check() {
62 compile_check $TMPC $@
65 cxx_check() {
66 compile_check $TMPCPP $@ -lstdc++
69 cflag_check() {
70 cat > $TMPC << EOF
71 int main(void) { return 0; }
72 EOF
73 compile_check $TMPC $@
76 header_check() {
77 cat > $TMPC << EOF
78 #include <$1>
79 int main(void) { return 0; }
80 EOF
81 shift
82 compile_check $TMPC $@
85 return_check() {
86 cat > $TMPC << EOF
87 #include <$1>
88 int main(void) { return $2; }
89 EOF
90 shift 2
91 compile_check $TMPC $@
94 statement_check() {
95 cat > $TMPC << EOF
96 #include <$1>
97 int main(void) { $2; return 0; }
98 EOF
99 shift
100 shift
101 compile_check $TMPC $@
104 define_statement_check() {
105 cat > $TMPC << EOF
106 #define $1
107 #include <$2>
108 int main(void) { $3; return 0; }
110 shift 3
111 compile_check $TMPC $@
114 return_statement_check() {
115 cat > $TMPC << EOF
116 #include <$1>
117 int main(void) { $2; return $3; }
119 shift 3
120 compile_check $TMPC $@
123 inline_asm_check() {
124 cat > $TMPC << EOF
125 int main(void) { __asm__ volatile ($1); return 0; }
127 shift
128 compile_check $TMPC $@
131 # The following checks are special and should only be used with broken and
132 # non-selfsufficient headers that do not include all of their dependencies.
134 header_check_broken() {
135 cat > $TMPC << EOF
136 #include <$1>
137 #include <$2>
138 int main(void) { return 0; }
140 shift
141 shift
142 compile_check $TMPC $@
145 statement_check_broken() {
146 cat > $TMPC << EOF
147 #include <$1>
148 #include <$2>
149 int main(void) { $3; return 0; }
151 shift 3
152 compile_check $TMPC $@
155 yasm_check() {
156 echo >> "$TMPLOG"
157 cat "$TMPS" >> "$TMPLOG"
158 echo >> "$TMPLOG"
159 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
160 rm -f "$TMPEXE"
161 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
162 TMPRES="$?"
163 echo >> "$TMPLOG"
164 echo >> "$TMPLOG"
165 return "$TMPRES"
168 tmp_run() {
169 "$TMPEXE" >> "$TMPLOG" 2>&1
172 # Display error message, flushes tempfile, exit
173 die () {
174 echo
175 echo "Error: $@" >&2
176 echo >&2
177 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
178 echo "Check \"$TMPLOG\" if you do not understand why it failed."
179 exit 1
182 # OS test booleans functions
183 issystem() {
184 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
186 aix() { issystem "AIX"; }
187 amigaos() { issystem "AmigaOS"; }
188 beos() { issystem "BEOS"; }
189 bsdos() { issystem "BSD/OS"; }
190 cygwin() { issystem "CYGWIN"; }
191 darwin() { issystem "Darwin"; }
192 dragonfly() { issystem "DragonFly"; }
193 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
194 gnu() { issystem "GNU"; }
195 hpux() { issystem "HP-UX"; }
196 irix() { issystem "IRIX"; }
197 linux() { issystem "Linux"; }
198 mingw32() { issystem "MINGW32"; }
199 morphos() { issystem "MorphOS"; }
200 netbsd() { issystem "NetBSD"; }
201 openbsd() { issystem "OpenBSD"; }
202 os2() { issystem "OS/2"; }
203 qnx() { issystem "QNX"; }
204 sunos() { issystem "SunOS"; }
205 win32() { cygwin || mingw32; }
207 # arch test boolean functions
208 # x86/x86pc is used by QNX
209 x86_32() {
210 case "$host_arch" in
211 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
212 *) return 1 ;;
213 esac
216 x86_64() {
217 case "$host_arch" in
218 x86_64|amd64) return 0 ;;
219 *) return 1 ;;
220 esac
223 x86() {
224 x86_32 || x86_64
227 ppc() {
228 case "$host_arch" in
229 ppc|ppc64|powerpc|powerpc64) return 0;;
230 *) return 1;;
231 esac
234 alpha() {
235 case "$host_arch" in
236 alpha*) return 0;;
237 *) return 1;;
238 esac
241 arm() {
242 case "$host_arch" in
243 arm*) return 0;;
244 *) return 1;;
245 esac
248 # Use this before starting a check
249 echocheck() {
250 echo "============ Checking for $@ ============" >> "$TMPLOG"
251 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
254 # Use this to echo the results of a check
255 echores() {
256 if test "$res_comment" ; then
257 res_comment="($res_comment)"
259 echo "Result is: $@ $res_comment" >> "$TMPLOG"
260 echo "##########################################" >> "$TMPLOG"
261 echo "" >> "$TMPLOG"
262 echo "$@ $res_comment"
263 res_comment=""
265 #############################################################################
267 # Check how echo works in this /bin/sh
268 case $(echo -n) in
269 -n) _echo_n= _echo_c='\c' ;; # SysV echo
270 *) _echo_n='-n ' _echo_c= ;; # BSD echo
271 esac
273 msg_lang_all=''
274 ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g')
275 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
276 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
278 show_help(){
279 cat << EOF
280 Usage: $0 [OPTIONS]...
282 Configuration:
283 -h, --help display this help and exit
285 Installation directories:
286 --prefix=DIR prefix directory for installation [/usr/local]
287 --bindir=DIR directory for installing binaries [PREFIX/bin]
288 --datadir=DIR directory for installing machine independent
289 data files (skins, etc) [PREFIX/share/mplayer]
290 --mandir=DIR directory for installing man pages [PREFIX/share/man]
291 --confdir=DIR directory for installing configuration files
292 [PREFIX/etc/mplayer]
293 --localedir=DIR directory for locale tree [PREFIX/share/locale]
294 --libdir=DIR directory for object code libraries [PREFIX/lib]
295 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
297 Optional features:
298 --disable-mplayer disable MPlayer compilation [enable]
299 --disable-largefiles disable support for files > 2GB [enable]
300 --enable-termcap use termcap database for key codes [autodetect]
301 --enable-termios use termios database for key codes [autodetect]
302 --disable-iconv disable iconv for encoding conversion [autodetect]
303 --disable-langinfo do not use langinfo [autodetect]
304 --enable-lirc enable LIRC (remote control) support [autodetect]
305 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
306 --enable-joystick enable joystick support [disable]
307 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
308 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
309 --disable-vm disable X video mode extensions [autodetect]
310 --disable-xf86keysym disable support for multimedia keys [autodetect]
311 --enable-radio enable radio interface [disable]
312 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
313 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
314 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
315 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
316 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
317 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
318 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
319 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
320 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
321 --disable-networking disable networking [enable]
322 --enable-winsock2_h enable winsock2_h [autodetect]
323 --enable-smb enable Samba (SMB) input [autodetect]
324 --enable-live enable LIVE555 Streaming Media [autodetect]
325 --enable-nemesi enable Nemesi Streaming Media [autodetect]
326 --disable-vcd disable VCD support [autodetect]
327 --disable-bluray disable Blu-ray support [autodetect]
328 --disable-dvdnav disable libdvdnav [autodetect]
329 --disable-dvdread disable libdvdread [autodetect]
330 --disable-dvdread-internal disable internal libdvdread [autodetect]
331 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
332 --disable-cdparanoia disable cdparanoia [autodetect]
333 --disable-cddb disable cddb [autodetect]
334 --disable-bitmap-font disable bitmap font support [enable]
335 --disable-freetype disable FreeType 2 font rendering [autodetect]
336 --disable-fontconfig disable fontconfig font lookup [autodetect]
337 --disable-unrarexec disable using of UnRAR executable [enabled]
338 --enable-menu enable OSD menu (not DVD menu) [disabled]
339 --disable-sortsub disable subtitle sorting [enabled]
340 --enable-fribidi enable the FriBiDi libs [autodetect]
341 --disable-enca disable ENCA charset oracle library [autodetect]
342 --enable-macosx-finder enable Mac OS X Finder invocation parameter
343 parsing [disabled]
344 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
345 --disable-inet6 disable IPv6 support [autodetect]
346 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
347 --disable-ftp disable FTP support [enabled]
348 --disable-vstream disable TiVo vstream client support [autodetect]
349 --disable-pthreads disable Posix threads support [autodetect]
350 --disable-w32threads disable Win32 threads support [autodetect]
351 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
352 --enable-rpath enable runtime linker path for extra libs [disabled]
354 Codecs:
355 --enable-gif enable GIF support [autodetect]
356 --enable-png enable PNG input/output support [autodetect]
357 --enable-mng enable MNG input support [autodetect]
358 --enable-jpeg enable JPEG input/output support [autodetect]
359 --enable-libcdio enable libcdio support [autodetect]
360 --disable-win32dll disable Win32 DLL support [autodetect]
361 --disable-qtx disable QuickTime codecs support [enabled]
362 --disable-xanim disable XAnim codecs support [enabled]
363 --disable-real disable RealPlayer codecs support [enabled]
364 --disable-xvid disable Xvid [autodetect]
365 --disable-libnut disable libnut [autodetect]
366 --disable-ffmpeg disable FFmpeg [autodetect]
367 --disable-libvorbis disable libvorbis support [autodetect]
368 --disable-tremor disable Tremor [autodetect if no libvorbis]
369 --disable-speex disable Speex support [autodetect]
370 --enable-theora enable OggTheora libraries [autodetect]
371 --enable-faad enable FAAD2 (AAC) [autodetect]
372 --disable-ladspa disable LADSPA plugin support [autodetect]
373 --disable-libbs2b disable libbs2b audio filter support [autodetect]
374 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
375 --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect]
376 --disable-mad disable libmad (MPEG audio) support [autodetect]
377 --enable-xmms enable XMMS input plugin support [disabled]
378 --enable-libdca enable libdca support [autodetect]
379 --disable-liba52 disable liba52 [autodetect]
380 --enable-musepack enable libmpcdec support (deprecated, libavcodec
381 Musepack decoder is preferred) [disabled]
383 Video output:
384 --enable-gl enable OpenGL video output [autodetect]
385 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
386 --enable-dga2 enable DGA 2 support [autodetect]
387 --enable-dga1 enable DGA 1 support [autodetect]
388 --enable-vesa enable VESA video output [autodetect]
389 --enable-svga enable SVGAlib video output [autodetect]
390 --enable-sdl enable SDL video output [autodetect]
391 --enable-kva enable KVA video output [autodetect]
392 --enable-aa enable AAlib video output [autodetect]
393 --enable-caca enable CACA video output [autodetect]
394 --enable-ggi enable GGI video output [autodetect]
395 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
396 --enable-direct3d enable Direct3D video output [autodetect]
397 --enable-directx enable DirectX video output [autodetect]
398 --enable-dxr3 enable DXR3/H+ video output [autodetect]
399 --enable-ivtv enable IVTV TV-Out video output [autodetect]
400 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
401 --enable-dvb enable DVB video output [autodetect]
402 --enable-mga enable mga_vid video output [autodetect]
403 --enable-xmga enable mga_vid X11 video output [autodetect]
404 --enable-xv enable Xv video output [autodetect]
405 --enable-xvmc enable XvMC acceleration [disable]
406 --enable-vdpau enable VDPAU acceleration [autodetect]
407 --enable-vm enable XF86VidMode support [autodetect]
408 --enable-xinerama enable Xinerama support [autodetect]
409 --enable-x11 enable X11 video output [autodetect]
410 --enable-xshape enable XShape support [autodetect]
411 --disable-xss disable screensaver support via xss [autodetect]
412 --enable-fbdev enable FBDev video output [autodetect]
413 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
414 --enable-tdfxfb enable tdfxfb video output [disable]
415 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
416 --enable-wii enable Nintendo Wii/GameCube video output [disable]
417 --enable-directfb enable DirectFB video output [autodetect]
418 --enable-bl enable Blinkenlights video output [disable]
419 --enable-tdfxvid enable tdfx_vid video output [disable]
420 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
421 --disable-tga disable Targa video output [enable]
422 --disable-pnm disable PNM video output [enable]
423 --disable-md5sum disable md5sum video output [enable]
424 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
425 --disable-corevideo disable CoreVideo video output [autodetect]
426 --disable-quartz disable Quartz video output [autodetect]
428 Audio output:
429 --disable-alsa disable ALSA audio output [autodetect]
430 --disable-ossaudio disable OSS audio output [autodetect]
431 --disable-arts disable aRts audio output [autodetect]
432 --disable-esd disable esd audio output [autodetect]
433 --disable-pulse disable Pulseaudio audio output [autodetect]
434 --disable-jack disable JACK audio output [autodetect]
435 --enable-openal enable OpenAL audio output [disable]
436 --disable-nas disable NAS audio output [autodetect]
437 --disable-sgiaudio disable SGI audio output [autodetect]
438 --disable-sunaudio disable Sun audio output [autodetect]
439 --disable-kai disable KAI audio output [autodetect]
440 --disable-dart disable DART audio output [autodetect]
441 --disable-win32waveout disable Windows waveout audio output [autodetect]
442 --disable-coreaudio disable CoreAudio audio output [autodetect]
443 --disable-select disable using select() on the audio device [enable]
445 Language options:
446 --enable-translation enable support for translated output [disable]
447 --charset=charset convert the console messages to this character set
448 --language-doc=lang language to use for the documentation [en]
449 --language-man=lang language to use for the man pages [en]
450 --language-msg=lang extra languages for program messages [all]
451 --language=lang default language to use [en]
452 Specific options override --language. You can pass a list of languages separated
453 by whitespace or commas instead of a single language. Nonexisting translations
454 will be dropped from each list. All translations available in the list will be
455 installed. The value "all" will activate all translations. The LINGUAS
456 environment variable is honored. In all cases the fallback is English.
457 The program always supports English-language output; additional message
458 languages are only installed if --enable-translation is also specified.
459 Available values for --language-doc are: all $doc_lang_all
460 Available values for --language-man are: all $man_lang_all
461 Available values for --language-msg are: all $msg_lang_all
463 Miscellaneous options:
464 --enable-runtime-cpudetection enable runtime CPU detection [disable]
465 --enable-cross-compile enable cross-compilation [autodetect]
466 --cc=COMPILER C compiler to build MPlayer [gcc]
467 --host-cc=COMPILER C compiler for tools needed while building [gcc]
468 --as=ASSEMBLER assembler to build MPlayer [as]
469 --nm=NM nm tool to build MPlayer [nm]
470 --yasm=YASM Yasm assembler to build MPlayer [yasm]
471 --ar=AR librarian to build MPlayer [ar]
472 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
473 --windres=WINDRES windres to build MPlayer [windres]
474 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
475 --enable-static build a statically linked binary
476 --with-install=PATH path to a custom install program
478 Advanced options:
479 --enable-mmx enable MMX [autodetect]
480 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
481 --enable-3dnow enable 3DNow! [autodetect]
482 --enable-3dnowext enable extended 3DNow! [autodetect]
483 --enable-sse enable SSE [autodetect]
484 --enable-sse2 enable SSE2 [autodetect]
485 --enable-ssse3 enable SSSE3 [autodetect]
486 --enable-shm enable shm [autodetect]
487 --enable-altivec enable AltiVec (PowerPC) [autodetect]
488 --enable-armv5te enable DSP extensions (ARM) [autodetect]
489 --enable-armv6 enable ARMv6 (ARM) [autodetect]
490 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
491 --enable-armvfp enable ARM VFP (ARM) [autodetect]
492 --enable-neon enable NEON (ARM) [autodetect]
493 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
494 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
495 --enable-big-endian force byte order to big-endian [autodetect]
496 --enable-debug[=1-3] compile-in debugging information [disable]
497 --enable-profile compile-in profiling information [disable]
498 --disable-sighandler disable sighandler for crashes [enable]
499 --enable-crash-debug enable automatic gdb attach on crash [disable]
500 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
502 Use these options if autodetection fails:
503 --extra-cflags=FLAGS extra CFLAGS
504 --extra-ldflags=FLAGS extra LDFLAGS
505 --extra-libs=FLAGS extra linker flags
506 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
507 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
509 --with-freetype-config=PATH path to freetype-config
510 --with-sdl-config=PATH path to sdl*-config
511 --with-dvdnav-config=PATH path to dvdnav-config
512 --with-dvdread-config=PATH path to dvdread-config
514 This configure script is NOT autoconf-based, even though its output is similar.
515 It will try to autodetect all configuration options. If you --enable an option
516 it will be forcefully turned on, skipping autodetection. This can break
517 compilation, so you need to know what you are doing.
519 exit 0
520 } #show_help()
522 # GOTCHA: the variables below defines the default behavior for autodetection
523 # and have - unless stated otherwise - at least 2 states : yes no
524 # If autodetection is available then the third state is: auto
525 _mmx=auto
526 _3dnow=auto
527 _3dnowext=auto
528 _mmxext=auto
529 _sse=auto
530 _sse2=auto
531 _ssse3=auto
532 _cmov=auto
533 _fast_cmov=auto
534 _fast_clz=auto
535 _armv5te=auto
536 _armv6=auto
537 _armv6t2=auto
538 _armvfp=auto
539 neon=auto
540 _iwmmxt=auto
541 _mtrr=auto
542 _altivec=auto
543 _install=install
544 _ranlib=ranlib
545 _windres=windres
546 _cc=cc
547 _ar=ar
548 test "$CC" && _cc="$CC"
549 _as=auto
550 _nm=auto
551 _yasm=yasm
552 _runtime_cpudetection=no
553 _cross_compile=auto
554 _prefix="/usr/local"
555 ffmpeg=auto
556 ffmpeg_internals=no
557 _mplayer=yes
558 _x11=auto
559 _xshape=auto
560 _xss=auto
561 _dga1=auto
562 _dga2=auto
563 _xv=auto
564 _xvmc=no #auto when complete
565 _vdpau=auto
566 _sdl=auto
567 _kva=auto
568 _direct3d=auto
569 _directx=auto
570 _win32waveout=auto
571 _nas=auto
572 _png=auto
573 _mng=auto
574 _jpeg=auto
575 _pnm=yes
576 _md5sum=yes
577 _yuv4mpeg=yes
578 _gif=auto
579 _gl=auto
580 matrixview=yes
581 _ggi=auto
582 _ggiwmh=auto
583 _aa=auto
584 _caca=auto
585 _svga=auto
586 _vesa=auto
587 _fbdev=auto
588 _dvb=auto
589 _dxr3=auto
590 _ivtv=auto
591 _v4l2=auto
592 _iconv=auto
593 _langinfo=auto
594 _rtc=auto
595 _ossaudio=auto
596 _arts=auto
597 _esd=auto
598 _pulse=auto
599 _jack=auto
600 _kai=auto
601 _dart=auto
602 _openal=no
603 _libcdio=auto
604 _mad=auto
605 _tremor=auto
606 _libvorbis=auto
607 _speex=auto
608 _theora=auto
609 _mpg123=auto
610 _liba52=auto
611 _libdca=auto
612 _faad=auto
613 _ladspa=auto
614 _libbs2b=auto
615 _xmms=no
616 _vcd=auto
617 _bluray=auto
618 _dvdnav=auto
619 _dvdnavconfig=dvdnav-config
620 _dvdreadconfig=dvdread-config
621 _dvdread=auto
622 _dvdread_internal=auto
623 _libdvdcss_internal=auto
624 _xanim=auto
625 _real=auto
626 _live=auto
627 _nemesi=auto
628 _native_rtsp=yes
629 _xinerama=auto
630 _mga=auto
631 _xmga=auto
632 _vm=auto
633 _xf86keysym=auto
634 _sgiaudio=auto
635 _sunaudio=auto
636 _alsa=auto
637 _fastmemcpy=yes
638 _unrar_exec=auto
639 _win32dll=auto
640 _select=yes
641 _radio=no
642 _radio_capture=no
643 _radio_v4l=auto
644 _radio_v4l2=auto
645 _radio_bsdbt848=auto
646 _tv=yes
647 _tv_v4l1=auto
648 _tv_v4l2=auto
649 _tv_bsdbt848=auto
650 _tv_dshow=auto
651 _pvr=auto
652 networking=yes
653 _winsock2_h=auto
654 _smb=auto
655 _joystick=no
656 _xvid=auto
657 _libnut=auto
658 _lirc=auto
659 _lircc=auto
660 _apple_remote=auto
661 _apple_ir=auto
662 _termcap=auto
663 _termios=auto
664 _3dfx=no
665 _s3fb=no
666 _wii=no
667 _tdfxfb=no
668 _tdfxvid=no
669 _xvr100=auto
670 _tga=yes
671 _directfb=auto
672 _bl=no
673 _largefiles=yes
674 #language=en
675 _shm=auto
676 _translation=no
677 _charset="UTF-8"
678 _dynamic_plugins=no
679 _crash_debug=no
680 _sighandler=yes
681 _libdv=auto
682 _cdparanoia=auto
683 _cddb=auto
684 _big_endian=auto
685 _bitmap_font=yes
686 _freetype=auto
687 _fontconfig=auto
688 _menu=no
689 _qtx=auto
690 _coreaudio=auto
691 _corevideo=auto
692 _quartz=auto
693 quicktime=auto
694 _macosx_finder=no
695 _macosx_bundle=auto
696 _sortsub=yes
697 _freetypeconfig='freetype-config'
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 _asmalign_pot=auto
710 _stream_cache=yes
711 _priority=no
712 def_dos_paths="#define HAVE_DOS_PATHS 0"
713 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
714 def_priority="#undef CONFIG_PRIORITY"
715 def_pthread_cache="#undef PTHREAD_CACHE"
716 need_shmem=yes
717 for ac_option do
718 case "$ac_option" in
719 --help|-help|-h)
720 show_help
722 --prefix=*)
723 _prefix=$(echo $ac_option | cut -d '=' -f 2)
725 --bindir=*)
726 _bindir=$(echo $ac_option | cut -d '=' -f 2)
728 --datadir=*)
729 _datadir=$(echo $ac_option | cut -d '=' -f 2)
731 --mandir=*)
732 _mandir=$(echo $ac_option | cut -d '=' -f 2)
734 --confdir=*)
735 _confdir=$(echo $ac_option | cut -d '=' -f 2)
737 --libdir=*)
738 _libdir=$(echo $ac_option | cut -d '=' -f 2)
740 --codecsdir=*)
741 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
743 --localedir=*)
744 _localedir=$(echo $ac_option | cut -d '=' -f 2)
747 --with-install=*)
748 _install=$(echo $ac_option | cut -d '=' -f 2 )
750 --with-xvmclib=*)
751 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
754 --with-sdl-config=*)
755 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
757 --with-freetype-config=*)
758 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
760 --with-dvdnav-config=*)
761 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
763 --with-dvdread-config=*)
764 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
767 --extra-cflags=*)
768 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
770 --extra-ldflags=*)
771 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
773 --extra-libs=*)
774 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
776 --extra-libs-mplayer=*)
777 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
780 --target=*)
781 _target=$(echo $ac_option | cut -d '=' -f 2)
783 --cc=*)
784 _cc=$(echo $ac_option | cut -d '=' -f 2)
786 --host-cc=*)
787 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
789 --as=*)
790 _as=$(echo $ac_option | cut -d '=' -f 2)
792 --nm=*)
793 _nm=$(echo $ac_option | cut -d '=' -f 2)
795 --yasm=*)
796 _yasm=$(echo $ac_option | cut -d '=' -f 2)
798 --ar=*)
799 _ar=$(echo $ac_option | cut -d '=' -f 2)
801 --ranlib=*)
802 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
804 --windres=*)
805 _windres=$(echo $ac_option | cut -d '=' -f 2)
807 --charset=*)
808 _charset=$(echo $ac_option | cut -d '=' -f 2)
810 --language-doc=*)
811 language_doc=$(echo $ac_option | cut -d '=' -f 2)
813 --language-man=*)
814 language_man=$(echo $ac_option | cut -d '=' -f 2)
816 --language-msg=*)
817 language_msg=$(echo $ac_option | cut -d '=' -f 2)
819 --language=*)
820 language=$(echo $ac_option | cut -d '=' -f 2)
823 --enable-static)
824 _ld_static='-static'
826 --disable-static)
827 _ld_static=''
829 --enable-profile)
830 _profile='-p'
832 --disable-profile)
833 _profile=
835 --enable-debug)
836 _debug='-g'
838 --enable-debug=*)
839 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
841 --disable-debug)
842 _debug=
844 --enable-translation) _translation=yes ;;
845 --disable-translation) _translation=no ;;
846 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
847 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
848 --enable-cross-compile) _cross_compile=yes ;;
849 --disable-cross-compile) _cross_compile=no ;;
850 --enable-mplayer) _mplayer=yes ;;
851 --disable-mplayer) _mplayer=no ;;
852 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
853 --disable-dynamic-plugins) _dynamic_plugins=no ;;
854 --enable-x11) _x11=yes ;;
855 --disable-x11) _x11=no ;;
856 --enable-xshape) _xshape=yes ;;
857 --disable-xshape) _xshape=no ;;
858 --enable-xss) _xss=yes ;;
859 --disable-xss) _xss=no ;;
860 --enable-xv) _xv=yes ;;
861 --disable-xv) _xv=no ;;
862 --enable-xvmc) _xvmc=yes ;;
863 --disable-xvmc) _xvmc=no ;;
864 --enable-vdpau) _vdpau=yes ;;
865 --disable-vdpau) _vdpau=no ;;
866 --enable-sdl) _sdl=yes ;;
867 --disable-sdl) _sdl=no ;;
868 --enable-kva) _kva=yes ;;
869 --disable-kva) _kva=no ;;
870 --enable-direct3d) _direct3d=yes ;;
871 --disable-direct3d) _direct3d=no ;;
872 --enable-directx) _directx=yes ;;
873 --disable-directx) _directx=no ;;
874 --enable-win32waveout) _win32waveout=yes ;;
875 --disable-win32waveout) _win32waveout=no ;;
876 --enable-nas) _nas=yes ;;
877 --disable-nas) _nas=no ;;
878 --enable-png) _png=yes ;;
879 --disable-png) _png=no ;;
880 --enable-mng) _mng=yes ;;
881 --disable-mng) _mng=no ;;
882 --enable-jpeg) _jpeg=yes ;;
883 --disable-jpeg) _jpeg=no ;;
884 --enable-pnm) _pnm=yes ;;
885 --disable-pnm) _pnm=no ;;
886 --enable-md5sum) _md5sum=yes ;;
887 --disable-md5sum) _md5sum=no ;;
888 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
889 --disable-yuv4mpeg) _yuv4mpeg=no ;;
890 --enable-gif) _gif=yes ;;
891 --disable-gif) _gif=no ;;
892 --enable-gl) _gl=yes ;;
893 --disable-gl) _gl=no ;;
894 --enable-matrixview) matrixview=yes ;;
895 --disable-matrixview) matrixview=no ;;
896 --enable-ggi) _ggi=yes ;;
897 --disable-ggi) _ggi=no ;;
898 --enable-ggiwmh) _ggiwmh=yes ;;
899 --disable-ggiwmh) _ggiwmh=no ;;
900 --enable-aa) _aa=yes ;;
901 --disable-aa) _aa=no ;;
902 --enable-caca) _caca=yes ;;
903 --disable-caca) _caca=no ;;
904 --enable-svga) _svga=yes ;;
905 --disable-svga) _svga=no ;;
906 --enable-vesa) _vesa=yes ;;
907 --disable-vesa) _vesa=no ;;
908 --enable-fbdev) _fbdev=yes ;;
909 --disable-fbdev) _fbdev=no ;;
910 --enable-dvb) _dvb=yes ;;
911 --disable-dvb) _dvb=no ;;
912 --enable-dxr3) _dxr3=yes ;;
913 --disable-dxr3) _dxr3=no ;;
914 --enable-ivtv) _ivtv=yes ;;
915 --disable-ivtv) _ivtv=no ;;
916 --enable-v4l2) _v4l2=yes ;;
917 --disable-v4l2) _v4l2=no ;;
918 --enable-iconv) _iconv=yes ;;
919 --disable-iconv) _iconv=no ;;
920 --enable-langinfo) _langinfo=yes ;;
921 --disable-langinfo) _langinfo=no ;;
922 --enable-rtc) _rtc=yes ;;
923 --disable-rtc) _rtc=no ;;
924 --enable-libdv) _libdv=yes ;;
925 --disable-libdv) _libdv=no ;;
926 --enable-ossaudio) _ossaudio=yes ;;
927 --disable-ossaudio) _ossaudio=no ;;
928 --enable-arts) _arts=yes ;;
929 --disable-arts) _arts=no ;;
930 --enable-esd) _esd=yes ;;
931 --disable-esd) _esd=no ;;
932 --enable-pulse) _pulse=yes ;;
933 --disable-pulse) _pulse=no ;;
934 --enable-jack) _jack=yes ;;
935 --disable-jack) _jack=no ;;
936 --enable-openal) _openal=yes ;;
937 --disable-openal) _openal=no ;;
938 --enable-kai) _kai=yes ;;
939 --disable-kai) _kai=no ;;
940 --enable-dart) _dart=yes ;;
941 --disable-dart) _dart=no ;;
942 --enable-mad) _mad=yes ;;
943 --disable-mad) _mad=no ;;
944 --enable-libcdio) _libcdio=yes ;;
945 --disable-libcdio) _libcdio=no ;;
946 --enable-libvorbis) _libvorbis=yes ;;
947 --disable-libvorbis) _libvorbis=no ;;
948 --enable-speex) _speex=yes ;;
949 --disable-speex) _speex=no ;;
950 --enable-tremor) _tremor=yes ;;
951 --disable-tremor) _tremor=no ;;
952 --enable-theora) _theora=yes ;;
953 --disable-theora) _theora=no ;;
954 --enable-mpg123) _mpg123=yes ;;
955 --disable-mpg123) _mpg123=no ;;
956 --enable-liba52) _liba52=yes ;;
957 --disable-liba52) _liba52=no ;;
958 --enable-libdca) _libdca=yes ;;
959 --disable-libdca) _libdca=no ;;
960 --enable-musepack) _musepack=yes ;;
961 --disable-musepack) _musepack=no ;;
962 --enable-faad) _faad=yes ;;
963 --disable-faad) _faad=no ;;
964 --enable-ladspa) _ladspa=yes ;;
965 --disable-ladspa) _ladspa=no ;;
966 --enable-libbs2b) _libbs2b=yes ;;
967 --disable-libbs2b) _libbs2b=no ;;
968 --enable-xmms) _xmms=yes ;;
969 --disable-xmms) _xmms=no ;;
970 --enable-vcd) _vcd=yes ;;
971 --disable-vcd) _vcd=no ;;
972 --enable-bluray) _bluray=yes ;;
973 --disable-bluray) _bluray=no ;;
974 --enable-dvdread) _dvdread=yes ;;
975 --disable-dvdread) _dvdread=no ;;
976 --enable-dvdread-internal) _dvdread_internal=yes ;;
977 --disable-dvdread-internal) _dvdread_internal=no ;;
978 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
979 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
980 --enable-dvdnav) _dvdnav=yes ;;
981 --disable-dvdnav) _dvdnav=no ;;
982 --enable-xanim) _xanim=yes ;;
983 --disable-xanim) _xanim=no ;;
984 --enable-real) _real=yes ;;
985 --disable-real) _real=no ;;
986 --enable-live) _live=yes ;;
987 --disable-live) _live=no ;;
988 --enable-nemesi) _nemesi=yes ;;
989 --disable-nemesi) _nemesi=no ;;
990 --enable-xinerama) _xinerama=yes ;;
991 --disable-xinerama) _xinerama=no ;;
992 --enable-mga) _mga=yes ;;
993 --disable-mga) _mga=no ;;
994 --enable-xmga) _xmga=yes ;;
995 --disable-xmga) _xmga=no ;;
996 --enable-vm) _vm=yes ;;
997 --disable-vm) _vm=no ;;
998 --enable-xf86keysym) _xf86keysym=yes ;;
999 --disable-xf86keysym) _xf86keysym=no ;;
1000 --enable-sunaudio) _sunaudio=yes ;;
1001 --disable-sunaudio) _sunaudio=no ;;
1002 --enable-sgiaudio) _sgiaudio=yes ;;
1003 --disable-sgiaudio) _sgiaudio=no ;;
1004 --enable-alsa) _alsa=yes ;;
1005 --disable-alsa) _alsa=no ;;
1006 --enable-tv) _tv=yes ;;
1007 --disable-tv) _tv=no ;;
1008 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1009 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1010 --enable-tv-v4l1) _tv_v4l1=yes ;;
1011 --disable-tv-v4l1) _tv_v4l1=no ;;
1012 --enable-tv-v4l2) _tv_v4l2=yes ;;
1013 --disable-tv-v4l2) _tv_v4l2=no ;;
1014 --enable-tv-dshow) _tv_dshow=yes ;;
1015 --disable-tv-dshow) _tv_dshow=no ;;
1016 --enable-radio) _radio=yes ;;
1017 --enable-radio-capture) _radio_capture=yes ;;
1018 --disable-radio-capture) _radio_capture=no ;;
1019 --disable-radio) _radio=no ;;
1020 --enable-radio-v4l) _radio_v4l=yes ;;
1021 --disable-radio-v4l) _radio_v4l=no ;;
1022 --enable-radio-v4l2) _radio_v4l2=yes ;;
1023 --disable-radio-v4l2) _radio_v4l2=no ;;
1024 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1025 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1026 --enable-pvr) _pvr=yes ;;
1027 --disable-pvr) _pvr=no ;;
1028 --enable-fastmemcpy) _fastmemcpy=yes ;;
1029 --disable-fastmemcpy) _fastmemcpy=no ;;
1030 --enable-networking) networking=yes ;;
1031 --disable-networking) networking=no ;;
1032 --enable-winsock2_h) _winsock2_h=yes ;;
1033 --disable-winsock2_h) _winsock2_h=no ;;
1034 --enable-smb) _smb=yes ;;
1035 --disable-smb) _smb=no ;;
1036 --enable-joystick) _joystick=yes ;;
1037 --disable-joystick) _joystick=no ;;
1038 --enable-xvid) _xvid=yes ;;
1039 --disable-xvid) _xvid=no ;;
1040 --enable-libnut) _libnut=yes ;;
1041 --disable-libnut) _libnut=no ;;
1042 --enable-ffmpeg) ffmpeg=yes ;;
1043 --disable-ffmpeg) ffmpeg=no ;;
1044 --ffmpeg-source-dir=*)
1045 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1047 --enable-lirc) _lirc=yes ;;
1048 --disable-lirc) _lirc=no ;;
1049 --enable-lircc) _lircc=yes ;;
1050 --disable-lircc) _lircc=no ;;
1051 --enable-apple-remote) _apple_remote=yes ;;
1052 --disable-apple-remote) _apple_remote=no ;;
1053 --enable-apple-ir) _apple_ir=yes ;;
1054 --disable-apple-ir) _apple_ir=no ;;
1055 --enable-termcap) _termcap=yes ;;
1056 --disable-termcap) _termcap=no ;;
1057 --enable-termios) _termios=yes ;;
1058 --disable-termios) _termios=no ;;
1059 --enable-3dfx) _3dfx=yes ;;
1060 --disable-3dfx) _3dfx=no ;;
1061 --enable-s3fb) _s3fb=yes ;;
1062 --disable-s3fb) _s3fb=no ;;
1063 --enable-wii) _wii=yes ;;
1064 --disable-wii) _wii=no ;;
1065 --enable-tdfxfb) _tdfxfb=yes ;;
1066 --disable-tdfxfb) _tdfxfb=no ;;
1067 --disable-tdfxvid) _tdfxvid=no ;;
1068 --enable-tdfxvid) _tdfxvid=yes ;;
1069 --disable-xvr100) _xvr100=no ;;
1070 --enable-xvr100) _xvr100=yes ;;
1071 --disable-tga) _tga=no ;;
1072 --enable-tga) _tga=yes ;;
1073 --enable-directfb) _directfb=yes ;;
1074 --disable-directfb) _directfb=no ;;
1075 --enable-bl) _bl=yes ;;
1076 --disable-bl) _bl=no ;;
1077 --enable-mtrr) _mtrr=yes ;;
1078 --disable-mtrr) _mtrr=no ;;
1079 --enable-largefiles) _largefiles=yes ;;
1080 --disable-largefiles) _largefiles=no ;;
1081 --enable-shm) _shm=yes ;;
1082 --disable-shm) _shm=no ;;
1083 --enable-select) _select=yes ;;
1084 --disable-select) _select=no ;;
1085 --enable-cdparanoia) _cdparanoia=yes ;;
1086 --disable-cdparanoia) _cdparanoia=no ;;
1087 --enable-cddb) _cddb=yes ;;
1088 --disable-cddb) _cddb=no ;;
1089 --enable-big-endian) _big_endian=yes ;;
1090 --disable-big-endian) _big_endian=no ;;
1091 --enable-bitmap-font) _bitmap_font=yes ;;
1092 --disable-bitmap-font) _bitmap_font=no ;;
1093 --enable-freetype) _freetype=yes ;;
1094 --disable-freetype) _freetype=no ;;
1095 --enable-fontconfig) _fontconfig=yes ;;
1096 --disable-fontconfig) _fontconfig=no ;;
1097 --enable-unrarexec) _unrar_exec=yes ;;
1098 --disable-unrarexec) _unrar_exec=no ;;
1099 --enable-ftp) _ftp=yes ;;
1100 --disable-ftp) _ftp=no ;;
1101 --enable-vstream) _vstream=yes ;;
1102 --disable-vstream) _vstream=no ;;
1103 --enable-pthreads) _pthreads=yes ;;
1104 --disable-pthreads) _pthreads=no ;;
1105 --enable-w32threads) _w32threads=yes ;;
1106 --disable-w32threads) _w32threads=no ;;
1107 --enable-ass) _ass=yes ;;
1108 --disable-ass) _ass=no ;;
1109 --enable-rpath) _rpath=yes ;;
1110 --disable-rpath) _rpath=no ;;
1112 --enable-fribidi) _fribidi=yes ;;
1113 --disable-fribidi) _fribidi=no ;;
1115 --enable-enca) _enca=yes ;;
1116 --disable-enca) _enca=no ;;
1118 --enable-inet6) _inet6=yes ;;
1119 --disable-inet6) _inet6=no ;;
1121 --enable-gethostbyname2) _gethostbyname2=yes ;;
1122 --disable-gethostbyname2) _gethostbyname2=no ;;
1124 --enable-dga1) _dga1=yes ;;
1125 --disable-dga1) _dga1=no ;;
1126 --enable-dga2) _dga2=yes ;;
1127 --disable-dga2) _dga2=no ;;
1129 --enable-menu) _menu=yes ;;
1130 --disable-menu) _menu=no ;;
1132 --enable-qtx) _qtx=yes ;;
1133 --disable-qtx) _qtx=no ;;
1135 --enable-coreaudio) _coreaudio=yes ;;
1136 --disable-coreaudio) _coreaudio=no ;;
1137 --enable-corevideo) _corevideo=yes ;;
1138 --disable-corevideo) _corevideo=no ;;
1139 --enable-quartz) _quartz=yes ;;
1140 --disable-quartz) _quartz=no ;;
1141 --enable-macosx-finder) _macosx_finder=yes ;;
1142 --disable-macosx-finder) _macosx_finder=no ;;
1143 --enable-macosx-bundle) _macosx_bundle=yes ;;
1144 --disable-macosx-bundle) _macosx_bundle=no ;;
1146 --enable-sortsub) _sortsub=yes ;;
1147 --disable-sortsub) _sortsub=no ;;
1149 --enable-crash-debug) _crash_debug=yes ;;
1150 --disable-crash-debug) _crash_debug=no ;;
1151 --enable-sighandler) _sighandler=yes ;;
1152 --disable-sighandler) _sighandler=no ;;
1153 --enable-win32dll) _win32dll=yes ;;
1154 --disable-win32dll) _win32dll=no ;;
1156 --enable-sse) _sse=yes ;;
1157 --disable-sse) _sse=no ;;
1158 --enable-sse2) _sse2=yes ;;
1159 --disable-sse2) _sse2=no ;;
1160 --enable-ssse3) _ssse3=yes ;;
1161 --disable-ssse3) _ssse3=no ;;
1162 --enable-mmxext) _mmxext=yes ;;
1163 --disable-mmxext) _mmxext=no ;;
1164 --enable-3dnow) _3dnow=yes ;;
1165 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1166 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1167 --disable-3dnowext) _3dnowext=no ;;
1168 --enable-cmov) _cmov=yes ;;
1169 --disable-cmov) _cmov=no ;;
1170 --enable-fast-cmov) _fast_cmov=yes ;;
1171 --disable-fast-cmov) _fast_cmov=no ;;
1172 --enable-fast-clz) _fast_clz=yes ;;
1173 --disable-fast-clz) _fast_clz=no ;;
1174 --enable-altivec) _altivec=yes ;;
1175 --disable-altivec) _altivec=no ;;
1176 --enable-armv5te) _armv5te=yes ;;
1177 --disable-armv5te) _armv5te=no ;;
1178 --enable-armv6) _armv6=yes ;;
1179 --disable-armv6) _armv6=no ;;
1180 --enable-armv6t2) _armv6t2=yes ;;
1181 --disable-armv6t2) _armv6t2=no ;;
1182 --enable-armvfp) _armvfp=yes ;;
1183 --disable-armvfp) _armvfp=no ;;
1184 --enable-neon) neon=yes ;;
1185 --disable-neon) neon=no ;;
1186 --enable-iwmmxt) _iwmmxt=yes ;;
1187 --disable-iwmmxt) _iwmmxt=no ;;
1188 --enable-mmx) _mmx=yes ;;
1189 --disable-mmx) # 3Dnow! and MMX2 require MMX
1190 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1193 echo "Unknown parameter: $ac_option" >&2
1194 exit 1
1197 esac
1198 done
1200 # Atmos: moved this here, to be correct, if --prefix is specified
1201 test -z "$_bindir" && _bindir="$_prefix/bin"
1202 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1203 test -z "$_mandir" && _mandir="$_prefix/share/man"
1204 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1205 test -z "$_libdir" && _libdir="$_prefix/lib"
1206 test -z "$_localedir" && _localedir="$_prefix/share/locale"
1208 # Determine our OS name and CPU architecture
1209 if test -z "$_target" ; then
1210 # OS name
1211 system_name=$(uname -s 2>&1)
1212 case "$system_name" in
1213 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1215 Haiku)
1216 system_name=BeOS
1218 IRIX*)
1219 system_name=IRIX
1221 GNU/kFreeBSD)
1222 system_name=FreeBSD
1224 HP-UX*)
1225 system_name=HP-UX
1227 [cC][yY][gG][wW][iI][nN]*)
1228 system_name=CYGWIN
1230 MINGW32*)
1231 system_name=MINGW32
1233 OS/2*)
1234 system_name=OS/2
1237 system_name="$system_name-UNKNOWN"
1239 esac
1242 # host's CPU/instruction set
1243 host_arch=$(uname -p 2>&1)
1244 case "$host_arch" in
1245 i386|sparc|ppc|alpha|arm|mips|vax)
1247 powerpc) # Darwin returns 'powerpc'
1248 host_arch=ppc
1250 *) # uname -p on Linux returns 'unknown' for the processor type,
1251 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1253 # Maybe uname -m (machine hardware name) returns something we
1254 # recognize.
1256 # x86/x86pc is used by QNX
1257 case "$(uname -m 2>&1)" in
1258 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 ;;
1259 ia64) host_arch=ia64 ;;
1260 macppc|ppc) host_arch=ppc ;;
1261 ppc64) host_arch=ppc64 ;;
1262 alpha) host_arch=alpha ;;
1263 sparc) host_arch=sparc ;;
1264 sparc64) host_arch=sparc64 ;;
1265 parisc*|hppa*|9000*) host_arch=hppa ;;
1266 arm*|zaurus|cats) host_arch=arm ;;
1267 sh3|sh4|sh4a) host_arch=sh ;;
1268 s390) host_arch=s390 ;;
1269 s390x) host_arch=s390x ;;
1270 *mips*) host_arch=mips ;;
1271 vax) host_arch=vax ;;
1272 xtensa*) host_arch=xtensa ;;
1273 *) host_arch=UNKNOWN ;;
1274 esac
1276 esac
1277 else # if test -z "$_target"
1278 system_name=$(echo $_target | cut -d '-' -f 2)
1279 case "$(echo $system_name | tr A-Z a-z)" in
1280 linux) system_name=Linux ;;
1281 freebsd) system_name=FreeBSD ;;
1282 gnu/kfreebsd) system_name=FreeBSD ;;
1283 netbsd) system_name=NetBSD ;;
1284 bsd/os) system_name=BSD/OS ;;
1285 openbsd) system_name=OpenBSD ;;
1286 dragonfly) system_name=DragonFly ;;
1287 sunos) system_name=SunOS ;;
1288 qnx) system_name=QNX ;;
1289 morphos) system_name=MorphOS ;;
1290 amigaos) system_name=AmigaOS ;;
1291 mingw32*) system_name=MINGW32 ;;
1292 esac
1293 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1294 host_arch=$(echo $_target | cut -d '-' -f 1)
1295 if test $(echo $host_arch) != "x86_64" ; then
1296 host_arch=$(echo $host_arch | tr '_' '-')
1300 extra_cflags="-I. $extra_cflags"
1301 _timer=timer-linux.c
1302 _getch=getch2.c
1303 if freebsd ; then
1304 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1305 extra_cflags="$extra_cflags -I/usr/local/include"
1308 if netbsd || dragonfly ; then
1309 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1310 extra_cflags="$extra_cflags -I/usr/pkg/include"
1313 if darwin; then
1314 extra_cflags="-mdynamic-no-pic $extra_cflags"
1315 if test "$(basename $_cc)" != "clang" ; then
1316 extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1318 _timer=timer-darwin.c
1321 if aix ; then
1322 extra_ldflags="$extra_ldflags -lC"
1325 if irix ; then
1326 _ranlib='ar -r'
1327 elif linux ; then
1328 _ranlib='true'
1331 if win32 ; then
1332 _exesuf=".exe"
1333 extra_cflags="$extra_cflags -fno-common"
1334 # -lwinmm is always needed for osdep/timer-win2.c
1335 extra_ldflags="$extra_ldflags -lwinmm"
1336 _pe_executable=yes
1337 _timer=timer-win2.c
1338 _priority=yes
1339 def_dos_paths="#define HAVE_DOS_PATHS 1"
1340 def_priority="#define CONFIG_PRIORITY 1"
1343 if mingw32 ; then
1344 _getch=getch2-win.c
1345 need_shmem=no
1348 if amigaos ; then
1349 _select=no
1350 _sighandler=no
1351 _stream_cache=no
1352 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1353 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1356 if qnx ; then
1357 extra_ldflags="$extra_ldflags -lph"
1360 if os2 ; then
1361 _exesuf=".exe"
1362 _getch=getch2-os2.c
1363 need_shmem=no
1364 _priority=yes
1365 def_dos_paths="#define HAVE_DOS_PATHS 1"
1366 def_priority="#define CONFIG_PRIORITY 1"
1369 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1370 test "$tmpdir" && break
1371 done
1373 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1374 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1376 TMPLOG="config.log"
1377 TMPC="$mplayer_tmpdir/tmp.c"
1378 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1379 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1380 TMPH="$mplayer_tmpdir/tmp.h"
1381 TMPS="$mplayer_tmpdir/tmp.S"
1383 rm -f "$TMPLOG"
1384 echo configuration: $configuration > "$TMPLOG"
1385 echo >> "$TMPLOG"
1388 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1389 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1393 # Checking CC version...
1394 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1395 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1396 echocheck "$_cc version"
1397 cc_vendor=intel
1398 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1399 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1400 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1401 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1402 # TODO verify older icc/ecc compatibility
1403 case $cc_version in
1405 cc_version="v. ?.??, bad"
1406 cc_fail=yes
1408 10.1|11.0|11.1)
1409 cc_version="$cc_version, ok"
1412 cc_version="$cc_version, bad"
1413 cc_fail=yes
1415 esac
1416 echores "$cc_version"
1417 else
1418 for _cc in "$_cc" gcc cc ; do
1419 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1420 if test "$cc_name_tmp" = "gcc"; then
1421 cc_name=$cc_name_tmp
1422 echocheck "$_cc version"
1423 cc_vendor=gnu
1424 cc_version=$($_cc -dumpversion 2>&1)
1425 case $cc_version in
1426 2.96*)
1427 cc_fail=yes
1430 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1431 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1432 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1434 esac
1435 echores "$cc_version"
1436 break
1438 cc_name_tmp=$($_cc -v 2>&1 | head -n 1 | cut -d ' ' -f 1)
1439 if test "$cc_name_tmp" = "clang"; then
1440 echocheck "$_cc version"
1441 cc_vendor=clang
1442 cc_version=$($_cc -dumpversion 2>&1)
1443 res_comment="experimental support only"
1444 echores "clang $cc_version"
1445 break
1447 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1448 if test "$cc_name_tmp" = "Sun C"; then
1449 echocheck "$_cc version"
1450 cc_vendor=sun
1451 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1452 res_comment="experimental support only"
1453 echores "Sun C $cc_version"
1454 break
1456 done
1457 fi # icc
1458 test "$cc_fail" = yes && die "unsupported compiler version"
1460 if test -z "$_target" && x86 ; then
1461 cat > $TMPC << EOF
1462 int main(void) {
1463 int test[(int)sizeof(char *)-7];
1464 return 0;
1467 cc_check && host_arch=x86_64 || host_arch=i386
1470 echo "Detected operating system: $system_name"
1471 echo "Detected host architecture: $host_arch"
1473 echocheck "host cc"
1474 test "$_host_cc" || _host_cc=$_cc
1475 echores $_host_cc
1477 echocheck "cross compilation"
1478 if test $_cross_compile = auto ; then
1479 _cross_compile=yes
1480 cflag_check "" && "$TMPEXE" && _cross_compile=no
1482 echores $_cross_compile
1484 if test $_cross_compile = yes; then
1485 tmp_run() {
1486 return 0
1490 # ---
1492 # now that we know what compiler should be used for compilation, try to find
1493 # out which assembler is used by the $_cc compiler
1494 if test "$_as" = auto ; then
1495 _as=$($_cc -print-prog-name=as)
1496 test -z "$_as" && _as=as
1499 if test "$_nm" = auto ; then
1500 _nm=$($_cc -print-prog-name=nm)
1501 test -z "$_nm" && _nm=nm
1504 # XXX: this should be ok..
1505 _cpuinfo="echo"
1507 if test "$_runtime_cpudetection" = no ; then
1509 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1510 # FIXME: Remove the cygwin check once AMD CPUs are supported
1511 if test -r /proc/cpuinfo && ! cygwin; then
1512 # Linux with /proc mounted, extract CPU information from it
1513 _cpuinfo="cat /proc/cpuinfo"
1514 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1515 # FreeBSD with Linux emulation /proc mounted,
1516 # extract CPU information from it
1517 # Don't use it on x86 though, it never reports 3Dnow
1518 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1519 elif darwin && ! x86 ; then
1520 # use hostinfo on Darwin
1521 _cpuinfo="hostinfo"
1522 elif aix; then
1523 # use 'lsattr' on AIX
1524 _cpuinfo="lsattr -E -l proc0 -a type"
1525 elif x86; then
1526 # all other OSes try to extract CPU information from a small helper
1527 # program cpuinfo instead
1528 $_cc -o cpuinfo$_exesuf cpuinfo.c
1529 _cpuinfo="./cpuinfo$_exesuf"
1532 if x86 ; then
1533 # gather more CPU information
1534 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1535 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1536 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1537 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1538 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1540 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1542 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1543 -e s/xmm/sse/ -e s/kni/sse/)
1545 for ext in $pparam ; do
1546 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1547 done
1549 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1550 test $_sse = kernel_check && _mmxext=kernel_check
1552 echocheck "CPU vendor"
1553 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1555 echocheck "CPU type"
1556 echores "$pname"
1559 fi # test "$_runtime_cpudetection" = no
1561 if x86 && test "$_runtime_cpudetection" = no ; then
1562 extcheck() {
1563 if test "$1" = kernel_check ; then
1564 echocheck "kernel support of $2"
1565 cat > $TMPC <<EOF
1566 #include <stdlib.h>
1567 #include <signal.h>
1568 static void catch(int sig) { exit(1); }
1569 int main(void) {
1570 signal(SIGILL, catch);
1571 __asm__ volatile ("$3":::"memory"); return 0;
1575 if cc_check && tmp_run ; then
1576 eval _$2=yes
1577 echores "yes"
1578 _optimizing="$_optimizing $2"
1579 return 0
1580 else
1581 eval _$2=no
1582 echores "failed"
1583 echo "It seems that your kernel does not correctly support $2."
1584 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1585 return 1
1588 return 0
1591 extcheck $_mmx "mmx" "emms"
1592 extcheck $_mmxext "mmxext" "sfence"
1593 extcheck $_3dnow "3dnow" "femms"
1594 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1595 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1596 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1597 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1598 extcheck $_cmov "cmov" "cmovb %%eax, %%ebx"
1600 echocheck "mtrr support"
1601 if test "$_mtrr" = kernel_check ; then
1602 _mtrr="yes"
1603 _optimizing="$_optimizing mtrr"
1605 echores "$_mtrr"
1607 if test "$_gcc3_ext" != ""; then
1608 # if we had to disable sse/sse2 because the active kernel does not
1609 # support this instruction set extension, we also have to tell
1610 # gcc3 to not generate sse/sse2 instructions for normal C code
1611 cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1617 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1618 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1619 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1620 subarch_all='X86_32 X86_64 PPC64'
1621 case "$host_arch" in
1622 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1623 arch='x86'
1624 subarch='x86_32'
1625 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1626 iproc=486
1627 proc=i486
1630 if test "$_runtime_cpudetection" = no ; then
1631 case "$pvendor" in
1632 AuthenticAMD)
1633 case "$pfamily" in
1634 3) proc=i386 iproc=386 ;;
1635 4) proc=i486 iproc=486 ;;
1636 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1637 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1638 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1639 proc=k6-3
1640 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1641 proc=geode
1642 elif test "$pmodel" -ge 8; then
1643 proc=k6-2
1644 elif test "$pmodel" -ge 6; then
1645 proc=k6
1646 else
1647 proc=i586
1650 6) iproc=686
1651 # It's a bit difficult to determine the correct type of Family 6
1652 # AMD CPUs just from their signature. Instead, we check directly
1653 # whether it supports SSE.
1654 if test "$_sse" = yes; then
1655 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1656 proc=athlon-xp
1657 else
1658 # Again, gcc treats athlon and athlon-tbird similarly.
1659 proc=athlon
1662 15) iproc=686
1663 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1664 # caught and remedied in the optimization tests below.
1665 proc=k8
1668 *) proc=amdfam10 iproc=686
1669 test $_fast_clz = "auto" && _fast_clz=yes
1671 esac
1673 GenuineIntel)
1674 case "$pfamily" in
1675 3) proc=i386 iproc=386 ;;
1676 4) proc=i486 iproc=486 ;;
1677 5) iproc=586
1678 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1679 proc=pentium-mmx # 4 is desktop, 8 is mobile
1680 else
1681 proc=i586
1684 6) iproc=686
1685 if test "$pmodel" -ge 15; then
1686 proc=core2
1687 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1688 proc=pentium-m
1689 elif test "$pmodel" -ge 7; then
1690 proc=pentium3
1691 elif test "$pmodel" -ge 3; then
1692 proc=pentium2
1693 else
1694 proc=i686
1696 test $_fast_clz = "auto" && _fast_clz=yes
1698 15) iproc=686
1699 # A nocona in 32-bit mode has no more capabilities than a prescott.
1700 if test "$pmodel" -ge 3; then
1701 proc=prescott
1702 else
1703 proc=pentium4
1704 test $_fast_clz = "auto" && _fast_clz=yes
1706 test $_fast_cmov = "auto" && _fast_cmov=no
1708 *) proc=prescott iproc=686 ;;
1709 esac
1711 CentaurHauls)
1712 case "$pfamily" in
1713 5) iproc=586
1714 if test "$pmodel" -ge 8; then
1715 proc=winchip2
1716 elif test "$pmodel" -ge 4; then
1717 proc=winchip-c6
1718 else
1719 proc=i586
1722 6) iproc=686
1723 if test "$pmodel" -ge 9; then
1724 proc=c3-2
1725 else
1726 proc=c3
1727 iproc=586
1730 *) proc=i686 iproc=i686 ;;
1731 esac
1733 unknown)
1734 case "$pfamily" in
1735 3) proc=i386 iproc=386 ;;
1736 4) proc=i486 iproc=486 ;;
1737 *) proc=i586 iproc=586 ;;
1738 esac
1741 proc=i586 iproc=586 ;;
1742 esac
1743 test $_fast_clz = "auto" && _fast_clz=no
1744 fi # test "$_runtime_cpudetection" = no
1747 # check that gcc supports our CPU, if not, fall back to earlier ones
1748 # LGB: check -mcpu and -march swithing step by step with enabling
1749 # to fall back till 386.
1751 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1753 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1754 cpuopt=-mtune
1755 else
1756 cpuopt=-mcpu
1759 echocheck "GCC & CPU optimization abilities"
1760 if test "$_runtime_cpudetection" = no ; then
1761 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1762 cflag_check -march=native && proc=native
1764 if test "$proc" = "amdfam10"; then
1765 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1767 if test "$proc" = "k8"; then
1768 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1770 if test "$proc" = "athlon-xp"; then
1771 cflag_check -march=$proc $cpuopt=$proc || proc=athlon
1773 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1774 cflag_check -march=$proc $cpuopt=$proc || proc=k6
1776 if test "$proc" = "k6" || test "$proc" = "c3"; then
1777 if ! cflag_check -march=$proc $cpuopt=$proc; then
1778 if cflag_check -march=i586 $cpuopt=i686; then
1779 proc=i586-i686
1780 else
1781 proc=i586
1785 if test "$proc" = "prescott" ; then
1786 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1788 if test "$proc" = "core2" ; then
1789 cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
1791 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
1792 cflag_check -march=$proc $cpuopt=$proc || proc=i686
1794 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1795 cflag_check -march=$proc $cpuopt=$proc || proc=i586
1797 if test "$proc" = "i586"; then
1798 cflag_check -march=$proc $cpuopt=$proc || proc=i486
1800 if test "$proc" = "i486" ; then
1801 cflag_check -march=$proc $cpuopt=$proc || proc=i386
1803 if test "$proc" = "i386" ; then
1804 cflag_check -march=$proc $cpuopt=$proc || proc=error
1806 if test "$proc" = "error" ; then
1807 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1808 _mcpu=""
1809 _march=""
1810 _optimizing=""
1811 elif test "$proc" = "i586-i686"; then
1812 _march="-march=i586"
1813 _mcpu="$cpuopt=i686"
1814 _optimizing="$proc"
1815 else
1816 _march="-march=$proc"
1817 _mcpu="$cpuopt=$proc"
1818 _optimizing="$proc"
1820 else # if test "$_runtime_cpudetection" = no
1821 _mcpu="$cpuopt=generic"
1822 # at least i486 required, for bswap instruction
1823 _march="-march=i486"
1824 cflag_check $_mcpu || _mcpu="$cpuopt=i686"
1825 cflag_check $_mcpu || _mcpu=""
1826 cflag_check $_march $_mcpu || _march=""
1829 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1830 ## autodetected mcpu/march parameters
1831 if test "$_target" ; then
1832 # TODO: it may be a good idea to check GCC and fall back in all cases
1833 if test "$host_arch" = "i586-i686"; then
1834 _march="-march=i586"
1835 _mcpu="$cpuopt=i686"
1836 else
1837 _march="-march=$host_arch"
1838 _mcpu="$cpuopt=$host_arch"
1841 proc="$host_arch"
1843 case "$proc" in
1844 i386) iproc=386 ;;
1845 i486) iproc=486 ;;
1846 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1847 i686|athlon*|pentium*) iproc=686 ;;
1848 *) iproc=586 ;;
1849 esac
1852 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1853 _fast_cmov="yes"
1854 else
1855 _fast_cmov="no"
1857 test $_fast_clz = "auto" && _fast_clz=yes
1859 echores "$proc"
1862 ia64)
1863 arch='ia64'
1864 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1865 iproc='ia64'
1868 x86_64|amd64)
1869 arch='x86'
1870 subarch='x86_64'
1871 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1872 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1873 iproc='x86_64'
1875 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1876 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1877 cpuopt=-mtune
1878 else
1879 cpuopt=-mcpu
1881 if test "$_runtime_cpudetection" = no ; then
1882 case "$pvendor" in
1883 AuthenticAMD)
1884 case "$pfamily" in
1885 15) proc=k8
1886 test $_fast_clz = "auto" && _fast_clz=no
1888 *) proc=amdfam10;;
1889 esac
1891 GenuineIntel)
1892 case "$pfamily" in
1893 6) proc=core2;;
1895 # 64-bit prescotts exist, but as far as GCC is concerned they
1896 # have the same capabilities as a nocona.
1897 proc=nocona
1898 test $_fast_cmov = "auto" && _fast_cmov=no
1899 test $_fast_clz = "auto" && _fast_clz=no
1901 esac
1904 proc=error;;
1905 esac
1906 fi # test "$_runtime_cpudetection" = no
1908 echocheck "GCC & CPU optimization abilities"
1909 # This is a stripped-down version of the i386 fallback.
1910 if test "$_runtime_cpudetection" = no ; then
1911 if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
1912 cflag_check -march=native && proc=native
1914 # --- AMD processors ---
1915 if test "$proc" = "amdfam10"; then
1916 cflag_check -march=$proc $cpuopt=$proc || proc=k8
1918 if test "$proc" = "k8"; then
1919 cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1921 # This will fail if gcc version < 3.3, which is ok because earlier
1922 # versions don't really support 64-bit on amd64.
1923 # Is this a valid assumption? -Corey
1924 if test "$proc" = "athlon-xp"; then
1925 cflag_check -march=$proc $cpuopt=$proc || proc=error
1927 # --- Intel processors ---
1928 if test "$proc" = "core2"; then
1929 cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
1931 if test "$proc" = "x86-64"; then
1932 cflag_check -march=$proc $cpuopt=$proc || proc=nocona
1934 if test "$proc" = "nocona"; then
1935 cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
1937 if test "$proc" = "pentium4"; then
1938 cflag_check -march=$proc $cpuopt=$proc || proc=error
1941 _march="-march=$proc"
1942 _mcpu="$cpuopt=$proc"
1943 if test "$proc" = "error" ; then
1944 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1945 _mcpu=""
1946 _march=""
1948 else # if test "$_runtime_cpudetection" = no
1949 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1950 _march="-march=x86-64"
1951 _mcpu="$cpuopt=generic"
1952 cflag_check $_mcpu || _mcpu="x86-64"
1953 cflag_check $_mcpu || _mcpu=""
1954 cflag_check $_march $_mcpu || _march=""
1957 _optimizing="$proc"
1958 test $_fast_cmov = "auto" && _fast_cmov=yes
1959 test $_fast_clz = "auto" && _fast_clz=yes
1961 echores "$proc"
1964 sparc|sparc64)
1965 arch='sparc'
1966 iproc='sparc'
1967 if test "$host_arch" = "sparc64" ; then
1968 _vis='yes'
1969 proc='ultrasparc'
1970 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1971 elif sunos ; then
1972 echocheck "CPU type"
1973 karch=$(uname -m)
1974 case "$(echo $karch)" in
1975 sun4) proc=v7 ;;
1976 sun4c) proc=v7 ;;
1977 sun4d) proc=v8 ;;
1978 sun4m) proc=v8 ;;
1979 sun4u) proc=ultrasparc _vis='yes' ;;
1980 sun4v) proc=v9 ;;
1981 *) proc=v8 ;;
1982 esac
1983 echores "$proc"
1984 else
1985 proc=v8
1987 _mcpu="-mcpu=$proc"
1988 _optimizing="$proc"
1991 arm*)
1992 arch='arm'
1993 iproc='arm'
1996 avr32)
1997 arch='avr32'
1998 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1999 iproc='avr32'
2000 test $_fast_clz = "auto" && _fast_clz=yes
2003 sh|sh4)
2004 arch='sh4'
2005 iproc='sh4'
2008 ppc|ppc64|powerpc|powerpc64)
2009 arch='ppc'
2010 def_dcbzl='#define HAVE_DCBZL 0'
2011 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2012 iproc='ppc'
2014 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2015 subarch='ppc64'
2016 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2018 echocheck "CPU type"
2019 case $system_name in
2020 Linux)
2021 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2022 if test -n "$($_cpuinfo | grep altivec)"; then
2023 test $_altivec = auto && _altivec=yes
2026 Darwin)
2027 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2028 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2029 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2030 test $_altivec = auto && _altivec=yes
2033 NetBSD)
2034 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2035 case $cc_version in
2036 2*|3.0*|3.1*|3.2*|3.3*)
2039 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2040 test $_altivec = auto && _altivec=yes
2043 esac
2045 AIX)
2046 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2048 esac
2049 if test "$_altivec" = yes; then
2050 echores "$proc altivec"
2051 else
2052 _altivec=no
2053 echores "$proc"
2056 echocheck "GCC & CPU optimization abilities"
2058 if test -n "$proc"; then
2059 case "$proc" in
2060 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2061 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2062 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2063 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2064 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2065 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2066 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2067 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2068 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2069 *) ;;
2070 esac
2071 # gcc 3.1(.1) and up supports 7400 and 7450
2072 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2073 case "$proc" in
2074 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2075 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2076 *) ;;
2077 esac
2079 # gcc 3.2 and up supports 970
2080 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2081 case "$proc" in
2082 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2083 def_dcbzl='#define HAVE_DCBZL 1' ;;
2084 *) ;;
2085 esac
2087 # gcc 3.3 and up supports POWER4
2088 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2089 case "$proc" in
2090 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2091 *) ;;
2092 esac
2094 # gcc 3.4 and up supports 440*
2095 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2096 case "$proc" in
2097 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2098 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2099 *) ;;
2100 esac
2102 # gcc 4.0 and up supports POWER5
2103 if test "$_cc_major" -ge "4"; then
2104 case "$proc" in
2105 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2106 *) ;;
2107 esac
2111 if test -n "$_mcpu"; then
2112 _optimizing=$(echo $_mcpu | cut -c 8-)
2113 echores "$_optimizing"
2114 else
2115 echores "none"
2118 test $_fast_clz = "auto" && _fast_clz=yes
2122 alpha*)
2123 arch='alpha'
2124 iproc='alpha'
2125 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2127 echocheck "CPU type"
2128 cat > $TMPC << EOF
2129 int main(void) {
2130 unsigned long ver, mask;
2131 __asm__ ("implver %0" : "=r" (ver));
2132 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2133 printf("%ld-%x\n", ver, ~mask);
2134 return 0;
2137 $_cc -o "$TMPEXE" "$TMPC"
2138 case $("$TMPEXE") in
2140 0-0) proc="ev4"; _mvi="0";;
2141 1-0) proc="ev5"; _mvi="0";;
2142 1-1) proc="ev56"; _mvi="0";;
2143 1-101) proc="pca56"; _mvi="1";;
2144 2-303) proc="ev6"; _mvi="1";;
2145 2-307) proc="ev67"; _mvi="1";;
2146 2-1307) proc="ev68"; _mvi="1";;
2147 esac
2148 echores "$proc"
2150 echocheck "GCC & CPU optimization abilities"
2151 if test "$proc" = "ev68" ; then
2152 cc_check -mcpu=$proc || proc=ev67
2154 if test "$proc" = "ev67" ; then
2155 cc_check -mcpu=$proc || proc=ev6
2157 _mcpu="-mcpu=$proc"
2158 echores "$proc"
2160 test $_fast_clz = "auto" && _fast_clz=yes
2162 _optimizing="$proc"
2165 mips*)
2166 arch='mips'
2167 iproc='mips'
2169 if irix ; then
2170 echocheck "CPU type"
2171 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2172 case "$(echo $proc)" in
2173 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2174 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2175 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2176 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2177 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2178 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2179 esac
2180 # gcc < 3.x does not support -mtune.
2181 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2182 _mcpu=''
2184 echores "$proc"
2187 test $_fast_clz = "auto" && _fast_clz=yes
2191 hppa)
2192 arch='pa_risc'
2193 iproc='PA-RISC'
2196 s390)
2197 arch='s390'
2198 iproc='390'
2201 s390x)
2202 arch='s390x'
2203 iproc='390x'
2206 vax)
2207 arch='vax'
2208 iproc='vax'
2211 xtensa)
2212 arch='xtensa'
2213 iproc='xtensa'
2216 generic)
2217 arch='generic'
2221 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2222 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2223 die "unsupported architecture $host_arch"
2225 esac # case "$host_arch" in
2227 if test "$_runtime_cpudetection" = yes ; then
2228 if x86 ; then
2229 test "$_cmov" != no && _cmov=yes
2230 x86_32 && _cmov=no
2231 test "$_mmx" != no && _mmx=yes
2232 test "$_3dnow" != no && _3dnow=yes
2233 test "$_3dnowext" != no && _3dnowext=yes
2234 test "$_mmxext" != no && _mmxext=yes
2235 test "$_sse" != no && _sse=yes
2236 test "$_sse2" != no && _sse2=yes
2237 test "$_ssse3" != no && _ssse3=yes
2238 test "$_mtrr" != no && _mtrr=yes
2240 if ppc; then
2241 _altivec=yes
2246 # endian testing
2247 echocheck "byte order"
2248 if test "$_big_endian" = auto ; then
2249 cat > $TMPC <<EOF
2250 short ascii_name[] = {
2251 'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2252 'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2253 int main(void) { return (long)ascii_name; }
2255 if cc_check ; then
2256 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2257 _big_endian=yes
2258 else
2259 _big_endian=no
2261 else
2262 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2265 if test "$_big_endian" = yes ; then
2266 _byte_order='big-endian'
2267 def_words_endian='#define WORDS_BIGENDIAN 1'
2268 def_bigendian='#define HAVE_BIGENDIAN 1'
2269 else
2270 _byte_order='little-endian'
2271 def_words_endian='#undef WORDS_BIGENDIAN'
2272 def_bigendian='#define HAVE_BIGENDIAN 0'
2274 echores "$_byte_order"
2277 echocheck "extern symbol prefix"
2278 cat > $TMPC << EOF
2279 int ff_extern;
2281 cc_check -c || die "Symbol mangling check failed."
2282 sym=$($_nm -P -g $TMPEXE)
2283 extern_prefix=${sym%%ff_extern*}
2284 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2285 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2286 echores $extern_prefix
2289 echocheck "assembler support of -pipe option"
2290 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2291 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2294 echocheck "compiler support of named assembler arguments"
2295 _named_asm_args=yes
2296 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2297 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2298 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2299 _named_asm_args=no
2300 def_named_asm_args="#undef NAMED_ASM_ARGS"
2302 echores $_named_asm_args
2305 if darwin && test "$cc_vendor" = "gnu" ; then
2306 echocheck "GCC support of -mstackrealign"
2307 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2308 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2309 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2310 # wrong code with this flag, but this can be worked around by adding
2311 # -fno-unit-at-a-time as described in the blog post at
2312 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2313 cat > $TMPC << EOF
2314 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2315 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2317 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2318 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time &&
2319 tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2320 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2321 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2324 # Checking for CFLAGS
2325 _install_strip="-s"
2326 if test "$_profile" != "" || test "$_debug" != "" ; then
2327 CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2328 WARNFLAGS="-W -Wall"
2329 _install_strip=
2330 elif test -z "$CFLAGS" ; then
2331 if test "$cc_vendor" = "intel" ; then
2332 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2333 WARNFLAGS="-wd167 -wd556 -wd144"
2334 elif test "$cc_vendor" = "sun" ; then
2335 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2336 elif test "$cc_vendor" = "clang"; then
2337 CFLAGS="-O2 $_march $_pipe"
2338 elif test "$cc_vendor" != "gnu" ; then
2339 CFLAGS="-O2 $_march $_mcpu $_pipe"
2340 else
2341 CFLAGS="-O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2342 WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2343 extra_ldflags="$extra_ldflags -ffast-math"
2345 else
2346 warn_cflags=yes
2349 if test "$cc_vendor" = "gnu" ; then
2350 cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2351 # -std=gnu99 is not a warning flag but is placed in WARN_CFLAGS because
2352 # that's the only variable specific to C now, and this option is not valid
2353 # for C++.
2354 cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2355 cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2356 cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2357 cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2358 cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2359 else
2360 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2363 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2364 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2367 if test -n "$LDFLAGS" ; then
2368 extra_ldflags="$extra_ldflags $LDFLAGS"
2369 warn_cflags=yes
2370 elif test "$cc_vendor" = "intel" ; then
2371 extra_ldflags="$extra_ldflags -i-static"
2373 if test -n "$CPPFLAGS" ; then
2374 extra_cflags="$extra_cflags $CPPFLAGS"
2375 warn_cflags=yes
2380 if x86_32 ; then
2381 # Checking assembler (_as) compatibility...
2382 # Added workaround for older as that reads from stdin by default - atmos
2383 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2384 echocheck "assembler ($_as $as_version)"
2386 _pref_as_version='2.9.1'
2387 echo 'nop' > $TMPS
2388 if test "$_mmx" = yes ; then
2389 echo 'emms' >> $TMPS
2391 if test "$_3dnow" = yes ; then
2392 _pref_as_version='2.10.1'
2393 echo 'femms' >> $TMPS
2395 if test "$_3dnowext" = yes ; then
2396 _pref_as_version='2.10.1'
2397 echo 'pswapd %mm0, %mm0' >> $TMPS
2399 if test "$_mmxext" = yes ; then
2400 _pref_as_version='2.10.1'
2401 echo 'movntq %mm0, (%eax)' >> $TMPS
2403 if test "$_sse" = yes ; then
2404 _pref_as_version='2.10.1'
2405 echo 'xorps %xmm0, %xmm0' >> $TMPS
2407 #if test "$_sse2" = yes ; then
2408 # _pref_as_version='2.11'
2409 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2411 if test "$_cmov" = yes ; then
2412 _pref_as_version='2.10.1'
2413 echo 'cmovb %eax, %ebx' >> $TMPS
2415 if test "$_ssse3" = yes ; then
2416 _pref_as_version='2.16.92'
2417 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2419 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2421 if test "$as_verc_fail" != yes ; then
2422 echores "ok"
2423 else
2424 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2425 echores "failed"
2426 die "obsolete binutils version"
2429 fi #if x86_32
2432 echocheck "PIC"
2433 pic=no
2434 cat > $TMPC << EOF
2435 int main(void) {
2436 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2437 #error PIC not enabled
2438 #endif
2439 return 0;
2442 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2443 echores $pic
2446 if x86 ; then
2448 echocheck ".align is a power of two"
2449 if test "$_asmalign_pot" = auto ; then
2450 _asmalign_pot=no
2451 inline_asm_check '".align 3"' && _asmalign_pot=yes
2453 if test "$_asmalign_pot" = "yes" ; then
2454 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2455 else
2456 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2458 echores $_asmalign_pot
2461 echocheck "10 assembler operands"
2462 ten_operands=no
2463 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2464 cat > $TMPC << EOF
2465 int main(void) {
2466 int x=0;
2467 __asm__ volatile(
2469 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2471 return 0;
2474 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2475 echores $ten_operands
2477 echocheck "ebx availability"
2478 ebx_available=no
2479 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2480 cat > $TMPC << EOF
2481 int main(void) {
2482 int x;
2483 __asm__ volatile(
2484 "xor %0, %0"
2485 :"=b"(x)
2486 // just adding ebx to clobber list seems unreliable with some
2487 // compilers, e.g. Haiku's gcc 2.95
2489 // and the above check does not work for OSX 64 bit...
2490 __asm__ volatile("":::"%ebx");
2491 return 0;
2494 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2495 echores $ebx_available
2498 echocheck "yasm"
2499 if test -z "$YASMFLAGS" ; then
2500 if darwin ; then
2501 x86_64 && objformat="macho64" || objformat="macho"
2502 elif win32 ; then
2503 objformat="win32"
2504 else
2505 objformat="elf"
2507 # currently tested for Linux x86, x86_64
2508 YASMFLAGS="-f $objformat"
2509 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2510 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2511 case "$objformat" in
2512 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2513 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2514 esac
2515 else
2516 warn_cflags=yes
2519 echo "pabsw xmm0, xmm0" > $TMPS
2520 yasm_check || _yasm=""
2521 if test $_yasm ; then
2522 def_yasm='#define HAVE_YASM 1'
2523 have_yasm="yes"
2524 echores "$_yasm"
2525 else
2526 def_yasm='#define HAVE_YASM 0'
2527 have_yasm="no"
2528 echores "no"
2531 echocheck "bswap"
2532 def_bswap='#define HAVE_BSWAP 0'
2533 echo 'bswap %eax' > $TMPS
2534 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2535 echores "$bswap"
2536 fi #if x86
2539 #FIXME: This should happen before the check for CFLAGS..
2540 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2541 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2543 # check if AltiVec is supported by the compiler, and how to enable it
2544 echocheck "GCC AltiVec flags"
2545 if $(cflag_check -maltivec -mabi=altivec) ; then
2546 _altivec_gcc_flags="-maltivec -mabi=altivec"
2547 # check if <altivec.h> should be included
2548 if $(header_check altivec.h $_altivec_gcc_flags) ; then
2549 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2550 inc_altivec_h='#include <altivec.h>'
2551 else
2552 if $(cflag_check -faltivec) ; then
2553 _altivec_gcc_flags="-faltivec"
2554 else
2555 _altivec=no
2556 _altivec_gcc_flags="none, AltiVec disabled"
2560 echores "$_altivec_gcc_flags"
2562 # check if the compiler supports braces for vector declarations
2563 cat > $TMPC << EOF
2564 $inc_altivec_h
2565 int main(void) { (vector int) {1}; return 0; }
2567 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2569 # Disable runtime cpudetection if we cannot generate AltiVec code or
2570 # AltiVec is disabled by the user.
2571 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2572 && _runtime_cpudetection=no
2574 # Show that we are optimizing for AltiVec (if enabled and supported).
2575 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2576 && _optimizing="$_optimizing altivec"
2578 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2579 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2582 if ppc ; then
2583 def_xform_asm='#define HAVE_XFORM_ASM 0'
2584 xform_asm=no
2585 echocheck "XFORM ASM support"
2586 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2587 xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2588 echores "$xform_asm"
2591 if arm ; then
2592 echocheck "ARM pld instruction"
2593 pld=no
2594 inline_asm_check '"pld [r0]"' && pld=yes
2595 echores "$pld"
2597 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2598 if test $_armv5te = "auto" ; then
2599 _armv5te=no
2600 inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2602 echores "$_armv5te"
2604 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2606 echocheck "ARMv6 (SIMD instructions)"
2607 if test $_armv6 = "auto" ; then
2608 _armv6=no
2609 inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2611 echores "$_armv6"
2613 echocheck "ARMv6t2 (SIMD instructions)"
2614 if test $_armv6t2 = "auto" ; then
2615 _armv6t2=no
2616 inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2618 echores "$_armv6t2"
2620 echocheck "ARM VFP"
2621 if test $_armvfp = "auto" ; then
2622 _armvfp=no
2623 inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2625 echores "$_armvfp"
2627 echocheck "ARM NEON"
2628 if test $neon = "auto" ; then
2629 neon=no
2630 inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2632 echores "$neon"
2634 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2635 if test $_iwmmxt = "auto" ; then
2636 _iwmmxt=no
2637 inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2639 echores "$_iwmmxt"
2642 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2643 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2644 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2645 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2646 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2647 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2648 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2649 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2650 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2651 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2652 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2653 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2654 test "$pld" = yes && cpuexts="PLD $cpuexts"
2655 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2656 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2657 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2658 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2659 test "$neon" = yes && cpuexts="NEON $cpuexts"
2660 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2661 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2662 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2664 # Checking kernel version...
2665 if x86_32 && linux ; then
2666 _k_verc_problem=no
2667 kernel_version=$(uname -r 2>&1)
2668 echocheck "$system_name kernel version"
2669 case "$kernel_version" in
2670 '') kernel_version="?.??"; _k_verc_fail=yes;;
2671 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2672 _k_verc_problem=yes;;
2673 esac
2674 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2675 _k_verc_fail=yes
2677 if test "$_k_verc_fail" ; then
2678 echores "$kernel_version, fail"
2679 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2680 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2681 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2682 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2683 echo "2.2.x you must upgrade it to get SSE support!"
2684 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2685 else
2686 echores "$kernel_version, ok"
2690 ######################
2691 # MAIN TESTS GO HERE #
2692 ######################
2695 echocheck "-lposix"
2696 if cflag_check -lposix ; then
2697 extra_ldflags="$extra_ldflags -lposix"
2698 echores "yes"
2699 else
2700 echores "no"
2703 echocheck "-lm"
2704 if cflag_check -lm ; then
2705 _ld_lm="-lm"
2706 echores "yes"
2707 else
2708 _ld_lm=""
2709 echores "no"
2713 echocheck "langinfo"
2714 if test "$_langinfo" = auto ; then
2715 _langinfo=no
2716 statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
2718 if test "$_langinfo" = yes ; then
2719 def_langinfo='#define HAVE_LANGINFO 1'
2720 else
2721 def_langinfo='#undef HAVE_LANGINFO'
2723 echores "$_langinfo"
2726 echocheck "translation support"
2727 if test "$_translation" = yes; then
2728 def_translation="#define CONFIG_TRANSLATION 1"
2729 else
2730 def_translation="#undef CONFIG_TRANSLATION"
2732 echores "$_translation"
2734 echocheck "language"
2735 # Set preferred languages, "all" uses English as main language.
2736 test -z "$language" && language=$LINGUAS
2737 test -z "$language_doc" && language_doc=$language
2738 test -z "$language_man" && language_man=$language
2739 test -z "$language_msg" && language_msg=$language
2740 test -z "$language_msg" && language_msg="all"
2741 language_doc=$(echo $language_doc | tr , " ")
2742 language_man=$(echo $language_man | tr , " ")
2743 language_msg=$(echo $language_msg | tr , " ")
2745 test "$language_doc" = "all" && language_doc=$doc_lang_all
2746 test "$language_man" = "all" && language_man=$man_lang_all
2747 test "$language_msg" = "all" && language_msg=$msg_lang_all
2749 if test "$_translation" != yes ; then
2750 language_msg=""
2753 # Prune non-existing translations from language lists.
2754 # Set message translation to the first available language.
2755 # Fall back on English.
2756 for lang in $language_doc ; do
2757 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2758 done
2759 language_doc=$tmp_language_doc
2760 test -z "$language_doc" && language_doc=en
2762 for lang in $language_man ; do
2763 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2764 done
2765 language_man=$tmp_language_man
2766 test -z "$language_man" && language_man=en
2768 for lang in $language_msg ; do
2769 test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang"
2770 done
2771 language_msg=$tmp_language_msg
2773 echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc"
2776 echocheck "enable sighandler"
2777 if test "$_sighandler" = yes ; then
2778 def_sighandler='#define CONFIG_SIGHANDLER 1'
2779 else
2780 def_sighandler='#undef CONFIG_SIGHANDLER'
2782 echores "$_sighandler"
2784 echocheck "runtime cpudetection"
2785 if test "$_runtime_cpudetection" = yes ; then
2786 _optimizing="Runtime CPU-Detection enabled"
2787 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2788 else
2789 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2791 echores "$_runtime_cpudetection"
2794 echocheck "restrict keyword"
2795 for restrict_keyword in restrict __restrict __restrict__ ; do
2796 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2797 if cc_check; then
2798 def_restrict_keyword=$restrict_keyword
2799 break;
2801 done
2802 if [ -n "$def_restrict_keyword" ]; then
2803 echores "$def_restrict_keyword"
2804 else
2805 echores "none"
2807 # Avoid infinite recursion loop ("#define restrict restrict")
2808 if [ "$def_restrict_keyword" != "restrict" ]; then
2809 def_restrict_keyword="#define restrict $def_restrict_keyword"
2810 else
2811 def_restrict_keyword=""
2815 echocheck "__builtin_expect"
2816 # GCC branch prediction hint
2817 cat > $TMPC << EOF
2818 static int foo(int a) {
2819 a = __builtin_expect(a, 10);
2820 return a == 10 ? 0 : 1;
2822 int main(void) { return foo(10) && foo(0); }
2824 _builtin_expect=no
2825 cc_check && _builtin_expect=yes
2826 if test "$_builtin_expect" = yes ; then
2827 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2828 else
2829 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2831 echores "$_builtin_expect"
2834 echocheck "kstat"
2835 _kstat=no
2836 statement_check kstat.h 'kstat_open()' -lkstat && _kstat=yes
2837 if test "$_kstat" = yes ; then
2838 def_kstat="#define HAVE_LIBKSTAT 1"
2839 extra_ldflags="$extra_ldflags -lkstat"
2840 else
2841 def_kstat="#undef HAVE_LIBKSTAT"
2843 echores "$_kstat"
2846 echocheck "posix4"
2847 # required for nanosleep on some systems
2848 _posix4=no
2849 statement_check time.h 'nanosleep(0, 0)' -lposix4 && _posix4=yes
2850 if test "$_posix4" = yes ; then
2851 extra_ldflags="$extra_ldflags -lposix4"
2853 echores "$_posix4"
2855 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
2856 echocheck $func
2857 eval _$func=no
2858 statement_check math.h "${func}(2.0)" -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2859 if eval test "x\$_$func" = "xyes"; then
2860 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2861 echores yes
2862 else
2863 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2864 echores no
2866 done
2869 echocheck "mkstemp"
2870 _mkstemp=no
2871 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'mkstemp("")' && _mkstemp=yes
2872 if test "$_mkstemp" = yes ; then
2873 def_mkstemp='#define HAVE_MKSTEMP 1'
2874 else
2875 def_mkstemp='#define HAVE_MKSTEMP 0'
2877 echores "$_mkstemp"
2880 echocheck "nanosleep"
2881 _nanosleep=no
2882 statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes
2883 if test "$_nanosleep" = yes ; then
2884 def_nanosleep='#define HAVE_NANOSLEEP 1'
2885 else
2886 def_nanosleep='#undef HAVE_NANOSLEEP'
2888 echores "$_nanosleep"
2891 echocheck "socklib"
2892 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2893 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2894 cat > $TMPC << EOF
2895 #include <netdb.h>
2896 #include <sys/socket.h>
2897 int main(void) { gethostbyname(0); socket(AF_INET, SOCK_STREAM, 0); return 0; }
2899 _socklib=no
2900 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2901 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2902 done
2903 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
2904 if test $_winsock2_h = auto ; then
2905 _winsock2_h=no
2906 statement_check winsock2.h 'gethostbyname(0)' -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2908 test "$_ld_sock" && res_comment="using $_ld_sock"
2909 echores "$_socklib"
2912 if test $_winsock2_h = yes ; then
2913 _ld_sock="-lws2_32"
2914 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2915 else
2916 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2920 echocheck "arpa/inet.h"
2921 arpa_inet_h=no
2922 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2923 header_check arpa/inet.h && arpa_inet_h=yes &&
2924 def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2925 echores "$arpa_inet_h"
2928 echocheck "inet_pton()"
2929 def_inet_pton='#define HAVE_INET_PTON 0'
2930 inet_pton=no
2931 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2932 statement_check arpa/inet.h 'inet_pton(0, 0, 0)' $_ld_tmp && inet_pton=yes && break
2933 done
2934 if test $inet_pton = yes ; then
2935 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2936 def_inet_pton='#define HAVE_INET_PTON 1'
2938 echores "$inet_pton"
2941 echocheck "inet_aton()"
2942 def_inet_aton='#define HAVE_INET_ATON 0'
2943 inet_aton=no
2944 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2945 statement_check arpa/inet.h 'inet_aton(0, 0)' $_ld_tmp && inet_aton=yes && break
2946 done
2947 if test $inet_aton = yes ; then
2948 test "$_ld_tmp" && res_comment="using $_ld_tmp"
2949 def_inet_aton='#define HAVE_INET_ATON 1'
2951 echores "$inet_aton"
2954 echocheck "socklen_t"
2955 _socklen_t=no
2956 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2957 statement_check $header 'socklen_t v = 0' && _socklen_t=yes && break
2958 done
2959 if test "$_socklen_t" = yes ; then
2960 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2961 else
2962 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2964 echores "$_socklen_t"
2967 echocheck "closesocket()"
2968 _closesocket=no
2969 statement_check winsock2.h 'closesocket(~0)' $_ld_sock && _closesocket=yes
2970 if test "$_closesocket" = yes ; then
2971 def_closesocket='#define HAVE_CLOSESOCKET 1'
2972 else
2973 def_closesocket='#define HAVE_CLOSESOCKET 0'
2975 echores "$_closesocket"
2978 echocheck "networking"
2979 test $_winsock2_h = no && test $inet_pton = no &&
2980 test $inet_aton = no && networking=no
2981 if test "$networking" = yes ; then
2982 def_network='#define CONFIG_NETWORK 1'
2983 def_networking='#define CONFIG_NETWORKING 1'
2984 extra_ldflags="$extra_ldflags $_ld_sock"
2985 inputmodules="networking $inputmodules"
2986 else
2987 noinputmodules="networking $noinputmodules"
2988 def_network='#define CONFIG_NETWORK 0'
2989 def_networking='#undef CONFIG_NETWORKING'
2991 echores "$networking"
2994 echocheck "inet6"
2995 if test "$_inet6" = auto ; then
2996 cat > $TMPC << EOF
2997 #include <sys/types.h>
2998 #if !defined(_WIN32)
2999 #include <sys/socket.h>
3000 #include <netinet/in.h>
3001 #else
3002 #include <ws2tcpip.h>
3003 #endif
3004 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3006 _inet6=no
3007 if cc_check $_ld_sock ; then
3008 _inet6=yes
3011 if test "$_inet6" = yes ; then
3012 def_inet6='#define HAVE_AF_INET6 1'
3013 else
3014 def_inet6='#undef HAVE_AF_INET6'
3016 echores "$_inet6"
3019 echocheck "gethostbyname2"
3020 if test "$_gethostbyname2" = auto ; then
3021 cat > $TMPC << EOF
3022 #include <sys/types.h>
3023 #include <sys/socket.h>
3024 #include <netdb.h>
3025 int main(void) { gethostbyname2("", AF_INET); return 0; }
3027 _gethostbyname2=no
3028 if cc_check ; then
3029 _gethostbyname2=yes
3032 if test "$_gethostbyname2" = yes ; then
3033 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3034 else
3035 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3037 echores "$_gethostbyname2"
3040 echocheck "inttypes.h (required)"
3041 _inttypes=no
3042 header_check inttypes.h && _inttypes=yes
3043 echores "$_inttypes"
3045 if test "$_inttypes" = no ; then
3046 echocheck "sys/bitypes.h (inttypes.h predecessor)"
3047 header_check sys/bitypes.h && _inttypes=yes
3048 if test "$_inttypes" = yes ; then
3049 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."
3050 else
3051 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3056 echocheck "malloc.h"
3057 _malloc=no
3058 header_check malloc.h && _malloc=yes
3059 if test "$_malloc" = yes ; then
3060 def_malloc_h='#define HAVE_MALLOC_H 1'
3061 else
3062 def_malloc_h='#define HAVE_MALLOC_H 0'
3064 echores "$_malloc"
3067 echocheck "memalign()"
3068 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3069 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3070 _memalign=no
3071 statement_check malloc.h 'memalign(64, sizeof(char))' && _memalign=yes
3072 if test "$_memalign" = yes ; then
3073 def_memalign='#define HAVE_MEMALIGN 1'
3074 else
3075 def_memalign='#define HAVE_MEMALIGN 0'
3076 def_map_memalign='#define memalign(a, b) malloc(b)'
3077 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3079 echores "$_memalign"
3082 echocheck "posix_memalign()"
3083 posix_memalign=no
3084 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3085 define_statement_check "_XOPEN_SOURCE 600" "stdlib.h" 'posix_memalign(NULL, 0, 0)' &&
3086 posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3087 echores "$posix_memalign"
3090 echocheck "alloca.h"
3091 _alloca=no
3092 statement_check alloca.h 'alloca(0)' && _alloca=yes
3093 if cc_check ; then
3094 def_alloca_h='#define HAVE_ALLOCA_H 1'
3095 else
3096 def_alloca_h='#undef HAVE_ALLOCA_H'
3098 echores "$_alloca"
3101 echocheck "fastmemcpy"
3102 if test "$_fastmemcpy" = yes ; then
3103 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3104 else
3105 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3107 echores "$_fastmemcpy"
3110 echocheck "mman.h"
3111 _mman=no
3112 statement_check sys/mman.h 'mmap(0, 0, 0, 0, 0, 0)' && _mman=yes
3113 if test "$_mman" = yes ; then
3114 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3115 else
3116 def_mman_h='#undef HAVE_SYS_MMAN_H'
3117 os2 && need_mmap=yes
3119 echores "$_mman"
3121 _mman_has_map_failed=no
3122 statement_check sys/mman.h 'void *p = MAP_FAILED' && _mman_has_map_failed=yes
3123 if test "$_mman_has_map_failed" = yes ; then
3124 def_mman_has_map_failed=''
3125 else
3126 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3129 echocheck "dynamic loader"
3130 _dl=no
3131 for _ld_tmp in "" "-ldl"; do
3132 statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3133 done
3134 if test "$_dl" = yes ; then
3135 def_dl='#define HAVE_LIBDL 1'
3136 else
3137 def_dl='#undef HAVE_LIBDL'
3139 echores "$_dl"
3142 echocheck "dynamic a/v plugins support"
3143 if test "$_dl" = no ; then
3144 _dynamic_plugins=no
3146 if test "$_dynamic_plugins" = yes ; then
3147 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3148 else
3149 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3151 echores "$_dynamic_plugins"
3154 def_threads='#define HAVE_THREADS 0'
3156 echocheck "pthread"
3157 if linux ; then
3158 THREAD_CFLAGS=-D_REENTRANT
3159 elif freebsd || netbsd || openbsd || bsdos ; then
3160 THREAD_CFLAGS=-D_THREAD_SAFE
3162 if test "$_pthreads" = auto ; then
3163 cat > $TMPC << EOF
3164 #include <pthread.h>
3165 static void *func(void *arg) { return arg; }
3166 int main(void) {
3167 pthread_t tid;
3168 #ifdef PTW32_STATIC_LIB
3169 pthread_win32_process_attach_np();
3170 pthread_win32_thread_attach_np();
3171 #endif
3172 return pthread_create (&tid, 0, func, 0) != 0;
3175 _pthreads=no
3176 if ! hpux ; then
3177 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3178 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3179 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3180 done
3181 if test "$_pthreads" = no && mingw32 ; then
3182 _ld_tmp="-lpthreadGC2 -lws2_32"
3183 cc_check $_ld_tmp -DPTW32_STATIC_LIB && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
3187 if test "$_pthreads" = yes ; then
3188 test $_ld_pthread && res_comment="using $_ld_pthread"
3189 def_pthreads='#define HAVE_PTHREADS 1'
3190 def_threads='#define HAVE_THREADS 1'
3191 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3192 else
3193 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3194 def_pthreads='#undef HAVE_PTHREADS'
3195 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3196 mingw32 || _win32dll=no
3198 echores "$_pthreads"
3200 if cygwin ; then
3201 if test "$_pthreads" = yes ; then
3202 def_pthread_cache="#define PTHREAD_CACHE 1"
3203 else
3204 _stream_cache=no
3205 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3209 echocheck "w32threads"
3210 if test "$_pthreads" = yes ; then
3211 res_comment="using pthread instead"
3212 _w32threads=no
3214 if test "$_w32threads" = auto ; then
3215 _w32threads=no
3216 mingw32 && _w32threads=yes
3218 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3219 echores "$_w32threads"
3221 echocheck "rpath"
3222 if test "$_rpath" = yes ; then
3223 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3224 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3225 done
3226 extra_ldflags=$tmp
3228 echores "$_rpath"
3230 echocheck "iconv"
3231 if test "$_iconv" = auto ; then
3232 cat > $TMPC << EOF
3233 #include <stdio.h>
3234 #include <unistd.h>
3235 #include <iconv.h>
3236 #define INBUFSIZE 1024
3237 #define OUTBUFSIZE 4096
3239 char inbuffer[INBUFSIZE];
3240 char outbuffer[OUTBUFSIZE];
3242 int main(void) {
3243 size_t numread;
3244 iconv_t icdsc;
3245 char *tocode="UTF-8";
3246 char *fromcode="cp1250";
3247 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3248 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3249 char *iptr=inbuffer;
3250 char *optr=outbuffer;
3251 size_t inleft=numread;
3252 size_t outleft=OUTBUFSIZE;
3253 if (iconv(icdsc, &iptr, &inleft, &optr, &outleft)
3254 != (size_t)(-1)) {
3255 write(1, outbuffer, OUTBUFSIZE - outleft);
3258 if (iconv_close(icdsc) == -1)
3261 return 0;
3264 _iconv=no
3265 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3266 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
3267 _iconv=yes && break
3268 done
3270 if test "$_iconv" = yes ; then
3271 def_iconv='#define CONFIG_ICONV 1'
3272 else
3273 def_iconv='#undef CONFIG_ICONV'
3275 echores "$_iconv"
3278 echocheck "soundcard.h"
3279 _soundcard_h=no
3280 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3281 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3282 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3283 header_check $_soundcard_header && _soundcard_h=yes &&
3284 res_comment="$_soundcard_header" && break
3285 done
3287 if test "$_soundcard_h" = yes ; then
3288 if test $_soundcard_header = "sys/soundcard.h"; then
3289 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3290 else
3291 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3294 echores "$_soundcard_h"
3297 echocheck "sys/dvdio.h"
3298 _dvdio=no
3299 # FreeBSD 8.1 has broken dvdio.h
3300 header_check_broken sys/types.h sys/dvdio.h && _dvdio=yes
3301 if test "$_dvdio" = yes ; then
3302 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3303 else
3304 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3306 echores "$_dvdio"
3309 echocheck "sys/cdio.h"
3310 _cdio=no
3311 # at least OpenSolaris has a broken cdio.h
3312 header_check_broken sys/types.h sys/cdio.h && _cdio=yes
3313 if test "$_cdio" = yes ; then
3314 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3315 else
3316 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3318 echores "$_cdio"
3321 echocheck "linux/cdrom.h"
3322 _cdrom=no
3323 header_check linux/cdrom.h && _cdrom=yes
3324 if test "$_cdrom" = yes ; then
3325 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3326 else
3327 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3329 echores "$_cdrom"
3332 echocheck "dvd.h"
3333 _dvd=no
3334 header_check dvd.h && _dvd=yes
3335 if test "$_dvd" = yes ; then
3336 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3337 else
3338 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3340 echores "$_dvd"
3343 if bsdos; then
3344 echocheck "BSDI dvd.h"
3345 _bsdi_dvd=no
3346 header_check dvd.h && _bsdi_dvd=yes
3347 if test "$_bsdi_dvd" = yes ; then
3348 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3349 else
3350 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3352 echores "$_bsdi_dvd"
3353 fi #if bsdos
3356 if hpux; then
3357 # also used by AIX, but AIX does not support VCD and/or libdvdread
3358 echocheck "HP-UX SCSI header"
3359 _hpux_scsi_h=no
3360 header_check sys/scsi.h && _hpux_scsi_h=yes
3361 if test "$_hpux_scsi_h" = yes ; then
3362 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3363 else
3364 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3366 echores "$_hpux_scsi_h"
3367 fi #if hpux
3370 if sunos; then
3371 echocheck "userspace SCSI headers (Solaris)"
3372 _sol_scsi_h=no
3373 header_check sys/scsi/scsi_types.h &&
3374 header_check_broken sys/types.h sys/scsi/impl/uscsi.h &&
3375 _sol_scsi_h=yes
3376 if test "$_sol_scsi_h" = yes ; then
3377 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3378 else
3379 def_sol_scsi_h='#undef SOLARIS_USCSI'
3381 echores "$_sol_scsi_h"
3382 fi #if sunos
3385 echocheck "termcap"
3386 if test "$_termcap" = auto ; then
3387 _termcap=no
3388 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3389 statement_check term.h 'tgetent(0, 0)' $_ld_tmp &&
3390 extra_ldflags="$extra_ldflags $_ld_tmp" && _termcap=yes && break
3391 done
3393 if test "$_termcap" = yes ; then
3394 def_termcap='#define HAVE_TERMCAP 1'
3395 test $_ld_tmp && res_comment="using $_ld_tmp"
3396 else
3397 def_termcap='#undef HAVE_TERMCAP'
3399 echores "$_termcap"
3402 echocheck "termios"
3403 def_termios='#undef HAVE_TERMIOS'
3404 def_termios_h='#undef HAVE_TERMIOS_H'
3405 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3406 if test "$_termios" = auto ; then
3407 _termios=no
3408 for _termios_header in "termios.h" "sys/termios.h"; do
3409 header_check $_termios_header && _termios=yes &&
3410 res_comment="using $_termios_header" && break
3411 done
3414 if test "$_termios" = yes ; then
3415 def_termios='#define HAVE_TERMIOS 1'
3416 if test "$_termios_header" = "termios.h" ; then
3417 def_termios_h='#define HAVE_TERMIOS_H 1'
3418 else
3419 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3422 echores "$_termios"
3425 echocheck "shm"
3426 if test "$_shm" = auto ; then
3427 _shm=no
3428 statement_check sys/shm.h 'shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0)' && _shm=yes
3430 if test "$_shm" = yes ; then
3431 def_shm='#define HAVE_SHM 1'
3432 else
3433 def_shm='#undef HAVE_SHM'
3435 echores "$_shm"
3438 echocheck "strsep()"
3439 _strsep=no
3440 statement_check string.h 'char *s = "Hello, world!"; strsep(&s, ",")' && _strsep=yes
3441 if test "$_strsep" = yes ; then
3442 def_strsep='#define HAVE_STRSEP 1'
3443 need_strsep=no
3444 else
3445 def_strsep='#undef HAVE_STRSEP'
3446 need_strsep=yes
3448 echores "$_strsep"
3451 echocheck "vsscanf()"
3452 cat > $TMPC << EOF
3453 #define _ISOC99_SOURCE
3454 #include <stdarg.h>
3455 #include <stdio.h>
3456 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3458 _vsscanf=no
3459 cc_check && _vsscanf=yes
3460 if test "$_vsscanf" = yes ; then
3461 def_vsscanf='#define HAVE_VSSCANF 1'
3462 need_vsscanf=no
3463 else
3464 def_vsscanf='#undef HAVE_VSSCANF'
3465 need_vsscanf=yes
3467 echores "$_vsscanf"
3470 echocheck "swab()"
3471 _swab=no
3472 define_statement_check "_XOPEN_SOURCE 600" "unistd.h" 'int a, b; swab(&a, &b, 0)' && _swab=yes
3473 if test "$_swab" = yes ; then
3474 def_swab='#define HAVE_SWAB 1'
3475 need_swab=no
3476 else
3477 def_swab='#undef HAVE_SWAB'
3478 need_swab=yes
3480 echores "$_swab"
3482 echocheck "POSIX select()"
3483 cat > $TMPC << EOF
3484 #include <stdio.h>
3485 #include <stdlib.h>
3486 #include <sys/types.h>
3487 #include <string.h>
3488 #include <sys/time.h>
3489 #include <unistd.h>
3490 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds, &readfds, NULL, NULL, &timeout); return 0; }
3492 _posix_select=no
3493 def_posix_select='#undef HAVE_POSIX_SELECT'
3494 #select() of kLIBC (OS/2) supports socket only
3495 ! os2 && cc_check && _posix_select=yes &&
3496 def_posix_select='#define HAVE_POSIX_SELECT 1'
3497 echores "$_posix_select"
3500 echocheck "audio select()"
3501 if test "$_select" = no ; then
3502 def_select='#undef HAVE_AUDIO_SELECT'
3503 elif test "$_select" = yes ; then
3504 def_select='#define HAVE_AUDIO_SELECT 1'
3506 echores "$_select"
3509 echocheck "gettimeofday()"
3510 _gettimeofday=no
3511 statement_check sys/time.h 'struct timeval tv; struct timezone tz; gettimeofday(&tv, &tz)' && _gettimeofday=yes
3512 if test "$_gettimeofday" = yes ; then
3513 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3514 need_gettimeofday=no
3515 else
3516 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3517 need_gettimeofday=yes
3519 echores "$_gettimeofday"
3522 echocheck "glob()"
3523 _glob=no
3524 statement_check glob.h 'glob("filename", 0, 0, 0)' && _glob=yes
3525 if test "$_glob" = yes ; then
3526 def_glob='#define HAVE_GLOB 1'
3527 need_glob=no
3528 else
3529 def_glob='#undef HAVE_GLOB'
3530 need_glob=yes
3532 echores "$_glob"
3535 echocheck "setenv()"
3536 _setenv=no
3537 statement_check stdlib.h 'setenv("", "", 0)' && _setenv=yes
3538 if test "$_setenv" = yes ; then
3539 def_setenv='#define HAVE_SETENV 1'
3540 need_setenv=no
3541 else
3542 def_setenv='#undef HAVE_SETENV'
3543 need_setenv=yes
3545 echores "$_setenv"
3548 echocheck "setmode()"
3549 _setmode=no
3550 def_setmode='#define HAVE_SETMODE 0'
3551 statement_check io.h 'setmode(0, 0)' && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
3552 echores "$_setmode"
3555 if sunos; then
3556 echocheck "sysi86()"
3557 _sysi86=no
3558 statement_check sys/sysi86.h 'sysi86(0)' && _sysi86=yes
3559 if test "$_sysi86" = yes ; then
3560 def_sysi86='#define HAVE_SYSI86 1'
3561 statement_check sys/sysi86.h 'int sysi86(int, void*); sysi86(0)' && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3562 else
3563 def_sysi86='#undef HAVE_SYSI86'
3565 echores "$_sysi86"
3566 fi #if sunos
3569 echocheck "sys/sysinfo.h"
3570 _sys_sysinfo=no
3571 statement_check sys/sysinfo.h 'struct sysinfo s_info; sysinfo(&s_info)' && _sys_sysinfo=yes
3572 if test "$_sys_sysinfo" = yes ; then
3573 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3574 else
3575 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3577 echores "$_sys_sysinfo"
3580 if darwin; then
3582 echocheck "Mac OS X Finder Support"
3583 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3584 if test "$_macosx_finder" = yes ; then
3585 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3586 extra_ldflags="$extra_ldflags -framework Carbon"
3588 echores "$_macosx_finder"
3590 echocheck "Mac OS X Bundle file locations"
3591 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3592 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3593 if test "$_macosx_bundle" = yes ; then
3594 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3595 extra_ldflags="$extra_ldflags -framework Carbon"
3597 echores "$_macosx_bundle"
3599 echocheck "Apple Remote"
3600 if test "$_apple_remote" = auto ; then
3601 _apple_remote=no
3602 cat > $TMPC <<EOF
3603 #include <stdio.h>
3604 #include <IOKit/IOCFPlugIn.h>
3605 int main(void) {
3606 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3607 CFMutableDictionaryRef hidMatchDictionary;
3608 IOReturn ioReturnValue;
3610 // Set up a matching dictionary to search the I/O Registry by class.
3611 // name for all HID class devices
3612 hidMatchDictionary = IOServiceMatching("AppleIRController");
3614 // Now search I/O Registry for matching devices.
3615 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3616 hidMatchDictionary, &hidObjectIterator);
3618 // If search is unsuccessful, return nonzero.
3619 if (ioReturnValue != kIOReturnSuccess ||
3620 !IOIteratorIsValid(hidObjectIterator)) {
3621 return 1;
3623 return 0;
3626 cc_check -framework IOKit && _apple_remote=yes
3628 if test "$_apple_remote" = yes ; then
3629 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3630 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3631 else
3632 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3634 echores "$_apple_remote"
3636 fi #if darwin
3638 if linux; then
3640 echocheck "Apple IR"
3641 if test "$_apple_ir" = auto ; then
3642 _apple_ir=no
3643 statement_check linux/input.h 'struct input_event ev; struct input_id id' && _apple_ir=yes
3645 if test "$_apple_ir" = yes ; then
3646 def_apple_ir='#define CONFIG_APPLE_IR 1'
3647 else
3648 def_apple_ir='#undef CONFIG_APPLE_IR'
3650 echores "$_apple_ir"
3651 fi #if linux
3653 echocheck "pkg-config"
3654 _pkg_config=pkg-config
3655 if $($_pkg_config --version > /dev/null 2>&1); then
3656 if test "$_ld_static"; then
3657 _pkg_config="$_pkg_config --static"
3659 echores "yes"
3660 else
3661 _pkg_config=false
3662 echores "no"
3666 echocheck "Samba support (libsmbclient)"
3667 if test "$_smb" = yes; then
3668 extra_ldflags="$extra_ldflags -lsmbclient"
3670 if test "$_smb" = auto; then
3671 _smb=no
3672 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3673 statement_check libsmbclient.h 'smbc_opendir("smb://")' $_ld_tmp &&
3674 extra_ldflags="$extra_ldflags $_ld_tmp" && _smb=yes && break
3675 done
3678 if test "$_smb" = yes; then
3679 def_smb="#define CONFIG_LIBSMBCLIENT 1"
3680 inputmodules="smb $inputmodules"
3681 else
3682 def_smb="#undef CONFIG_LIBSMBCLIENT"
3683 noinputmodules="smb $noinputmodules"
3685 echores "$_smb"
3688 #########
3689 # VIDEO #
3690 #########
3693 echocheck "tdfxfb"
3694 if test "$_tdfxfb" = yes ; then
3695 def_tdfxfb='#define CONFIG_TDFXFB 1'
3696 vomodules="tdfxfb $vomodules"
3697 else
3698 def_tdfxfb='#undef CONFIG_TDFXFB'
3699 novomodules="tdfxfb $novomodules"
3701 echores "$_tdfxfb"
3703 echocheck "s3fb"
3704 if test "$_s3fb" = yes ; then
3705 def_s3fb='#define CONFIG_S3FB 1'
3706 vomodules="s3fb $vomodules"
3707 else
3708 def_s3fb='#undef CONFIG_S3FB'
3709 novomodules="s3fb $novomodules"
3711 echores "$_s3fb"
3713 echocheck "wii"
3714 if test "$_wii" = yes ; then
3715 def_wii='#define CONFIG_WII 1'
3716 vomodules="wii $vomodules"
3717 else
3718 def_wii='#undef CONFIG_WII'
3719 novomodules="wii $novomodules"
3721 echores "$_wii"
3723 echocheck "tdfxvid"
3724 if test "$_tdfxvid" = yes ; then
3725 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3726 vomodules="tdfx_vid $vomodules"
3727 else
3728 def_tdfxvid='#undef CONFIG_TDFX_VID'
3729 novomodules="tdfx_vid $novomodules"
3731 echores "$_tdfxvid"
3733 echocheck "xvr100"
3734 if test "$_xvr100" = auto ; then
3735 cat > $TMPC << EOF
3736 #include <unistd.h>
3737 #include <sys/fbio.h>
3738 #include <sys/visual_io.h>
3739 int main(void) {
3740 struct vis_identifier ident;
3741 struct fbgattr attr;
3742 ioctl(0, VIS_GETIDENTIFIER, &ident);
3743 ioctl(0, FBIOGATTR, &attr);
3744 return 0;
3747 _xvr100=no
3748 cc_check && _xvr100=yes
3750 if test "$_xvr100" = yes ; then
3751 def_xvr100='#define CONFIG_XVR100 1'
3752 vomodules="xvr100 $vomodules"
3753 else
3754 def_tdfxvid='#undef CONFIG_XVR100'
3755 novomodules="xvr100 $novomodules"
3757 echores "$_xvr100"
3759 echocheck "tga"
3760 if test "$_tga" = yes ; then
3761 def_tga='#define CONFIG_TGA 1'
3762 vomodules="tga $vomodules"
3763 else
3764 def_tga='#undef CONFIG_TGA'
3765 novomodules="tga $novomodules"
3767 echores "$_tga"
3770 echocheck "md5sum support"
3771 if test "$_md5sum" = yes; then
3772 def_md5sum="#define CONFIG_MD5SUM 1"
3773 vomodules="md5sum $vomodules"
3774 else
3775 def_md5sum="#undef CONFIG_MD5SUM"
3776 novomodules="md5sum $novomodules"
3778 echores "$_md5sum"
3781 echocheck "yuv4mpeg support"
3782 if test "$_yuv4mpeg" = yes; then
3783 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
3784 vomodules="yuv4mpeg $vomodules"
3785 else
3786 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3787 novomodules="yuv4mpeg $novomodules"
3789 echores "$_yuv4mpeg"
3792 echocheck "bl"
3793 if test "$_bl" = yes ; then
3794 def_bl='#define CONFIG_BL 1'
3795 vomodules="bl $vomodules"
3796 else
3797 def_bl='#undef CONFIG_BL'
3798 novomodules="bl $novomodules"
3800 echores "$_bl"
3803 echocheck "DirectFB"
3804 if test "$_directfb" = auto ; then
3805 _directfb=no
3806 cat > $TMPC << EOF
3807 #include <directfb.h>
3808 #include <directfb_version.h>
3809 #if (DIRECTFB_MAJOR_VERSION << 16 | DIRECTFB_MINOR_VERSION << 8 | DIRECTFB_MICRO_VERSION) < (0 << 16 | 9 << 8 | 22)
3810 #error "DirectFB version too old."
3811 #endif
3812 int main(void) { DirectFBInit(0, 0); return 0; }
3814 for _inc_tmp in "" -I/usr/local/include/directfb -I/usr/include/directfb -I/usr/local/include; do
3815 cc_check $_inc_tmp -ldirectfb &&
3816 _directfb=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
3817 done
3819 if test "$_directfb" = yes ; then
3820 def_directfb='#define CONFIG_DIRECTFB 1'
3821 vomodules="directfb dfbmga $vomodules"
3822 libs_mplayer="$libs_mplayer -ldirectfb"
3823 else
3824 def_directfb='#undef CONFIG_DIRECTFB'
3825 novomodules="directfb dfbmga $novomodules"
3827 echores "$_directfb"
3830 echocheck "X11 headers presence"
3831 _x11_headers="no"
3832 res_comment="check if the dev(el) packages are installed"
3833 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
3834 if test -f "$I/X11/Xlib.h" ; then
3835 _x11_headers="yes"
3836 res_comment=""
3837 break
3839 done
3840 if test $_cross_compile = no; then
3841 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
3842 /usr/include/X11R6 /usr/openwin/include ; do
3843 if test -f "$I/X11/Xlib.h" ; then
3844 extra_cflags="$extra_cflags -I$I"
3845 _x11_headers="yes"
3846 res_comment="using $I"
3847 break
3849 done
3851 echores "$_x11_headers"
3854 echocheck "X11"
3855 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
3856 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
3857 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
3858 -L/usr/lib ; do
3859 if netbsd; then
3860 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
3861 else
3862 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
3864 statement_check X11/Xutil.h 'XCreateWindow(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)' $_ld_tmp &&
3865 libs_mplayer="$libs_mplayer $_ld_tmp" && _x11=yes && break
3866 done
3868 if test "$_x11" = yes ; then
3869 def_x11='#define CONFIG_X11 1'
3870 vomodules="x11 xover $vomodules"
3871 else
3872 _x11=no
3873 def_x11='#undef CONFIG_X11'
3874 novomodules="x11 $novomodules"
3875 res_comment="check if the dev(el) packages are installed"
3876 # disable stuff that depends on X
3877 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
3879 echores "$_x11"
3881 echocheck "Xss screensaver extensions"
3882 if test "$_xss" = auto ; then
3883 _xss=no
3884 statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes
3886 if test "$_xss" = yes ; then
3887 def_xss='#define CONFIG_XSS 1'
3888 libs_mplayer="$libs_mplayer -lXss"
3889 else
3890 def_xss='#undef CONFIG_XSS'
3892 echores "$_xss"
3894 echocheck "DPMS"
3895 _xdpms3=no
3896 _xdpms4=no
3897 if test "$_x11" = yes ; then
3898 cat > $TMPC <<EOF
3899 #include <X11/Xmd.h>
3900 #include <X11/Xlib.h>
3901 #include <X11/Xutil.h>
3902 #include <X11/Xatom.h>
3903 #include <X11/extensions/dpms.h>
3904 int main(void) { DPMSQueryExtension(0, 0, 0); return 0; }
3906 cc_check -lXdpms && _xdpms3=yes
3907 statement_check_broken X11/Xlib.h X11/extensions/dpms.h 'DPMSQueryExtension(0, 0, 0)' -lXext && _xdpms4=yes
3909 if test "$_xdpms4" = yes ; then
3910 def_xdpms='#define CONFIG_XDPMS 1'
3911 res_comment="using Xdpms 4"
3912 echores "yes"
3913 elif test "$_xdpms3" = yes ; then
3914 def_xdpms='#define CONFIG_XDPMS 1'
3915 libs_mplayer="$libs_mplayer -lXdpms"
3916 res_comment="using Xdpms 3"
3917 echores "yes"
3918 else
3919 def_xdpms='#undef CONFIG_XDPMS'
3920 echores "no"
3924 echocheck "Xv"
3925 if test "$_xv" = auto ; then
3926 _xv=no
3927 statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes
3930 if test "$_xv" = yes ; then
3931 def_xv='#define CONFIG_XV 1'
3932 libs_mplayer="$libs_mplayer -lXv"
3933 vomodules="xv $vomodules"
3934 else
3935 def_xv='#undef CONFIG_XV'
3936 novomodules="xv $novomodules"
3938 echores "$_xv"
3941 echocheck "XvMC"
3942 if test "$_xv" = yes && test "$_xvmc" != no ; then
3943 _xvmc=no
3944 cat > $TMPC <<EOF
3945 #include <X11/Xlib.h>
3946 #include <X11/extensions/Xvlib.h>
3947 #include <X11/extensions/XvMClib.h>
3948 int main(void) {
3949 XvMCQueryExtension(0, 0, 0);
3950 XvMCCreateContext(0, 0, 0, 0, 0, 0, 0);
3951 return 0; }
3953 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
3954 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
3955 done
3957 if test "$_xvmc" = yes ; then
3958 def_xvmc='#define CONFIG_XVMC 1'
3959 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
3960 vomodules="xvmc $vomodules"
3961 res_comment="using $_xvmclib"
3962 else
3963 def_xvmc='#define CONFIG_XVMC 0'
3964 novomodules="xvmc $novomodules"
3966 echores "$_xvmc"
3969 echocheck "VDPAU"
3970 if test "$_vdpau" = auto ; then
3971 _vdpau=no
3972 if test "$_dl" = yes ; then
3973 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
3976 if test "$_vdpau" = yes ; then
3977 def_vdpau='#define CONFIG_VDPAU 1'
3978 libs_mplayer="$libs_mplayer -lvdpau"
3979 vomodules="vdpau $vomodules"
3980 else
3981 def_vdpau='#define CONFIG_VDPAU 0'
3982 novomodules="vdpau $novomodules"
3984 echores "$_vdpau"
3987 echocheck "Xinerama"
3988 if test "$_xinerama" = auto ; then
3989 _xinerama=no
3990 statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes
3993 if test "$_xinerama" = yes ; then
3994 def_xinerama='#define CONFIG_XINERAMA 1'
3995 libs_mplayer="$libs_mplayer -lXinerama"
3996 else
3997 def_xinerama='#undef CONFIG_XINERAMA'
3999 echores "$_xinerama"
4002 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4003 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4004 # named 'X extensions' or something similar.
4005 # This check may be useful for future mplayer versions (to change resolution)
4006 # If you run into problems, remove '-lXxf86vm'.
4007 echocheck "Xxf86vm"
4008 if test "$_vm" = auto ; then
4009 _vm=no
4010 statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes
4012 if test "$_vm" = yes ; then
4013 def_vm='#define CONFIG_XF86VM 1'
4014 libs_mplayer="$libs_mplayer -lXxf86vm"
4015 else
4016 def_vm='#undef CONFIG_XF86VM'
4018 echores "$_vm"
4020 # Check for the presence of special keycodes, like audio control buttons
4021 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4022 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4023 # have these new keycodes.
4024 echocheck "XF86keysym"
4025 if test "$_xf86keysym" = auto; then
4026 _xf86keysym=no
4027 return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes
4029 if test "$_xf86keysym" = yes ; then
4030 def_xf86keysym='#define CONFIG_XF86XK 1'
4031 else
4032 def_xf86keysym='#undef CONFIG_XF86XK'
4034 echores "$_xf86keysym"
4036 echocheck "DGA"
4037 if test "$_dga2" = auto && test "$_x11" = yes ; then
4038 _dga2=no
4039 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XDGASetViewport(0, 0, 0, 0, 0)' -lXxf86dga && _dga2=yes
4041 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4042 _dga1=no
4043 statement_check_broken X11/Xlib.h X11/extensions/xf86dga.h 'XF86DGASetViewPort(0, 0, 0, 0)' -lXxf86dga -lXxf86vm && _dga1=yes
4046 _dga=no
4047 def_dga='#undef CONFIG_DGA'
4048 def_dga1='#undef CONFIG_DGA1'
4049 def_dga2='#undef CONFIG_DGA2'
4050 if test "$_dga1" = yes ; then
4051 _dga=yes
4052 def_dga1='#define CONFIG_DGA1 1'
4053 res_comment="using DGA 1.0"
4054 elif test "$_dga2" = yes ; then
4055 _dga=yes
4056 def_dga2='#define CONFIG_DGA2 1'
4057 res_comment="using DGA 2.0"
4059 if test "$_dga" = yes ; then
4060 def_dga='#define CONFIG_DGA 1'
4061 libs_mplayer="$libs_mplayer -lXxf86dga"
4062 vomodules="dga $vomodules"
4063 else
4064 novomodules="dga $novomodules"
4066 echores "$_dga"
4069 echocheck "3dfx"
4070 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4071 def_3dfx='#define CONFIG_3DFX 1'
4072 vomodules="3dfx $vomodules"
4073 else
4074 def_3dfx='#undef CONFIG_3DFX'
4075 novomodules="3dfx $novomodules"
4077 echores "$_3dfx"
4080 echocheck "GGI"
4081 if test "$_ggi" = auto ; then
4082 _ggi=no
4083 statement_check ggi/ggi.h 'ggiInit()' -lggi && _ggi=yes
4085 if test "$_ggi" = yes ; then
4086 def_ggi='#define CONFIG_GGI 1'
4087 libs_mplayer="$libs_mplayer -lggi"
4088 vomodules="ggi $vomodules"
4089 else
4090 def_ggi='#undef CONFIG_GGI'
4091 novomodules="ggi $novomodules"
4093 echores "$_ggi"
4095 echocheck "GGI extension: libggiwmh"
4096 if test "$_ggiwmh" = auto ; then
4097 _ggiwmh=no
4098 statement_check ggi/wmh.h 'ggiWmhInit()' -lggi -lggiwmh && _ggiwmh=yes
4100 # needed to get right output on obscure combination
4101 # like --disable-ggi --enable-ggiwmh
4102 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4103 def_ggiwmh='#define CONFIG_GGIWMH 1'
4104 libs_mplayer="$libs_mplayer -lggiwmh"
4105 else
4106 _ggiwmh=no
4107 def_ggiwmh='#undef CONFIG_GGIWMH'
4109 echores "$_ggiwmh"
4112 echocheck "AA"
4113 if test "$_aa" = auto ; then
4114 cat > $TMPC << EOF
4115 #include <aalib.h>
4116 int main(void) {
4117 aa_context *c;
4118 aa_renderparams *p;
4119 aa_init(0, 0, 0);
4120 c = aa_autoinit(&aa_defparams);
4121 p = aa_getrenderparams();
4122 aa_autoinitkbd(c, 0);
4123 return 0; }
4125 _aa=no
4126 for _ld_tmp in "-laa" ; do
4127 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4128 done
4130 if test "$_aa" = yes ; then
4131 def_aa='#define CONFIG_AA 1'
4132 if cygwin ; then
4133 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4135 vomodules="aa $vomodules"
4136 else
4137 def_aa='#undef CONFIG_AA'
4138 novomodules="aa $novomodules"
4140 echores "$_aa"
4143 echocheck "CACA"
4144 if test "$_caca" = auto ; then
4145 _caca=no
4146 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4147 cat > $TMPC << EOF
4148 #include <caca.h>
4149 #ifdef CACA_API_VERSION_1
4150 #include <caca0.h>
4151 #endif
4152 int main(void) { caca_init(); return 0; }
4154 cc_check $(caca-config --libs) && _caca=yes
4157 if test "$_caca" = yes ; then
4158 def_caca='#define CONFIG_CACA 1'
4159 extra_cflags="$extra_cflags $(caca-config --cflags)"
4160 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4161 vomodules="caca $vomodules"
4162 else
4163 def_caca='#undef CONFIG_CACA'
4164 novomodules="caca $novomodules"
4166 echores "$_caca"
4169 echocheck "SVGAlib"
4170 if test "$_svga" = auto ; then
4171 _svga=no
4172 header_check vga.h -lvga $_ld_lm && _svga=yes
4174 if test "$_svga" = yes ; then
4175 def_svga='#define CONFIG_SVGALIB 1'
4176 libs_mplayer="$libs_mplayer -lvga"
4177 vomodules="svga $vomodules"
4178 else
4179 def_svga='#undef CONFIG_SVGALIB'
4180 novomodules="svga $novomodules"
4182 echores "$_svga"
4185 echocheck "FBDev"
4186 if test "$_fbdev" = auto ; then
4187 _fbdev=no
4188 linux && _fbdev=yes
4190 if test "$_fbdev" = yes ; then
4191 def_fbdev='#define CONFIG_FBDEV 1'
4192 vomodules="fbdev $vomodules"
4193 else
4194 def_fbdev='#undef CONFIG_FBDEV'
4195 novomodules="fbdev $novomodules"
4197 echores "$_fbdev"
4201 echocheck "DVB"
4202 if test "$_dvb" = auto ; then
4203 _dvb=no
4204 cat >$TMPC << EOF
4205 #include <poll.h>
4206 #include <sys/ioctl.h>
4207 #include <stdio.h>
4208 #include <time.h>
4209 #include <unistd.h>
4210 #include <linux/dvb/dmx.h>
4211 #include <linux/dvb/frontend.h>
4212 #include <linux/dvb/video.h>
4213 #include <linux/dvb/audio.h>
4214 int main(void) {return 0;}
4216 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4217 cc_check $_inc_tmp && _dvb=yes &&
4218 extra_cflags="$extra_cflags $_inc_tmp" && break
4219 done
4221 echores "$_dvb"
4222 if test "$_dvb" = yes ; then
4223 _dvbin=yes
4224 inputmodules="dvb $inputmodules"
4225 def_dvb='#define CONFIG_DVB 1'
4226 def_dvbin='#define CONFIG_DVBIN 1'
4227 aomodules="mpegpes(dvb) $aomodules"
4228 vomodules="mpegpes(dvb) $vomodules"
4229 else
4230 _dvbin=no
4231 noinputmodules="dvb $noinputmodules"
4232 def_dvb='#undef CONFIG_DVB'
4233 def_dvbin='#undef CONFIG_DVBIN '
4234 aomodules="mpegpes(file) $aomodules"
4235 vomodules="mpegpes(file) $vomodules"
4239 if darwin; then
4241 echocheck "QuickTime"
4242 if test "$quicktime" = auto ; then
4243 quicktime=no
4244 statement_check QuickTime/QuickTime.h 'ImageDescription *desc; EnterMovies(); ExitMovies()' -framework QuickTime && quicktime=yes
4246 if test "$quicktime" = yes ; then
4247 extra_ldflags="$extra_ldflags -framework QuickTime"
4248 def_quicktime='#define CONFIG_QUICKTIME 1'
4249 else
4250 def_quicktime='#undef CONFIG_QUICKTIME'
4251 _quartz=no
4253 echores $quicktime
4255 echocheck "Quartz"
4256 if test "$_quartz" = auto ; then
4257 _quartz=no
4258 statement_check Carbon/Carbon.h 'CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false)' -framework Carbon && _quartz=yes
4260 if test "$_quartz" = yes ; then
4261 libs_mplayer="$libs_mplayer -framework Carbon"
4262 def_quartz='#define CONFIG_QUARTZ 1'
4263 vomodules="quartz $vomodules"
4264 else
4265 def_quartz='#undef CONFIG_QUARTZ'
4266 novomodules="quartz $novomodules"
4268 echores $_quartz
4270 echocheck "CoreVideo"
4271 if test "$_corevideo" = auto ; then
4272 cat > $TMPC <<EOF
4273 #include <Carbon/Carbon.h>
4274 #include <CoreServices/CoreServices.h>
4275 #include <OpenGL/OpenGL.h>
4276 #include <QuartzCore/CoreVideo.h>
4277 int main(void) { return 0; }
4279 _corevideo=no
4280 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4282 if test "$_corevideo" = yes ; then
4283 vomodules="corevideo $vomodules"
4284 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4285 def_corevideo='#define CONFIG_COREVIDEO 1'
4286 else
4287 novomodules="corevideo $novomodules"
4288 def_corevideo='#undef CONFIG_COREVIDEO'
4290 echores "$_corevideo"
4292 fi #if darwin
4295 echocheck "PNG support"
4296 if test "$_png" = auto ; then
4297 _png=no
4298 if irix ; then
4299 # Don't check for -lpng on irix since it has its own libpng
4300 # incompatible with the GNU libpng
4301 res_comment="disabled on irix (not GNU libpng)"
4302 else
4303 cat > $TMPC << EOF
4304 #include <stdio.h>
4305 #include <string.h>
4306 #include <png.h>
4307 int main(void) {
4308 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4309 printf("libpng: %s\n", png_libpng_ver);
4310 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4313 cc_check -lpng -lz $_ld_lm && _png=yes
4316 echores "$_png"
4317 if test "$_png" = yes ; then
4318 def_png='#define CONFIG_PNG 1'
4319 extra_ldflags="$extra_ldflags -lpng -lz"
4320 else
4321 def_png='#undef CONFIG_PNG'
4324 echocheck "MNG support"
4325 if test "$_mng" = auto ; then
4326 _mng=no
4327 return_statement_check libmng.h 'const char * p_ver = mng_version_text()' '!p_ver || p_ver[0] == 0' -lmng -lz $_ld_lm && _mng=yes
4329 echores "$_mng"
4330 if test "$_mng" = yes ; then
4331 def_mng='#define CONFIG_MNG 1'
4332 extra_ldflags="$extra_ldflags -lmng -lz"
4333 else
4334 def_mng='#undef CONFIG_MNG'
4337 echocheck "JPEG support"
4338 if test "$_jpeg" = auto ; then
4339 _jpeg=no
4340 header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes
4342 echores "$_jpeg"
4344 if test "$_jpeg" = yes ; then
4345 def_jpeg='#define CONFIG_JPEG 1'
4346 vomodules="jpeg $vomodules"
4347 extra_ldflags="$extra_ldflags -ljpeg"
4348 else
4349 def_jpeg='#undef CONFIG_JPEG'
4350 novomodules="jpeg $novomodules"
4355 echocheck "PNM support"
4356 if test "$_pnm" = yes; then
4357 def_pnm="#define CONFIG_PNM 1"
4358 vomodules="pnm $vomodules"
4359 else
4360 def_pnm="#undef CONFIG_PNM"
4361 novomodules="pnm $novomodules"
4363 echores "$_pnm"
4367 echocheck "GIF support"
4368 # This is to appease people who want to force gif support.
4369 # If it is forced to yes, then we still do checks to determine
4370 # which gif library to use.
4371 if test "$_gif" = yes ; then
4372 _force_gif=yes
4373 _gif=auto
4376 if test "$_gif" = auto ; then
4377 _gif=no
4378 for _ld_gif in "-lungif" "-lgif" ; do
4379 statement_check gif_lib.h 'QuantizeBuffer(0, 0, 0, 0, 0, 0, 0, 0)' $_ld_gif && _gif=yes && break
4380 done
4383 # If no library was found, and the user wants support forced,
4384 # then we force it on with libgif, as this is the safest
4385 # assumption IMHO. (libungif & libregif both create symbolic
4386 # links to libgif. We also assume that no x11 support is needed,
4387 # because if you are forcing this, then you _should_ know what
4388 # you are doing. [ Besides, package maintainers should never
4389 # have compiled x11 deps into libungif in the first place. ] )
4390 # </rant>
4391 # --Joey
4392 if test "$_force_gif" = yes && test "$_gif" = no ; then
4393 _gif=yes
4394 _ld_gif="-lgif"
4397 if test "$_gif" = yes ; then
4398 def_gif='#define CONFIG_GIF 1'
4399 codecmodules="gif $codecmodules"
4400 vomodules="gif89a $vomodules"
4401 res_comment="old version, some encoding functions disabled"
4402 def_gif_4='#undef CONFIG_GIF_4'
4403 extra_ldflags="$extra_ldflags $_ld_gif"
4405 cat > $TMPC << EOF
4406 #include <signal.h>
4407 #include <stdio.h>
4408 #include <stdlib.h>
4409 #include <gif_lib.h>
4410 static void catch(int sig) { exit(1); }
4411 int main(void) {
4412 signal(SIGSEGV, catch); // catch segfault
4413 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4414 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4415 return 0;
4418 if cc_check "$_ld_gif" ; then
4419 def_gif_4='#define CONFIG_GIF_4 1'
4420 res_comment=""
4422 else
4423 def_gif='#undef CONFIG_GIF'
4424 def_gif_4='#undef CONFIG_GIF_4'
4425 novomodules="gif89a $novomodules"
4426 nocodecmodules="gif $nocodecmodules"
4428 echores "$_gif"
4431 case "$_gif" in yes*)
4432 echocheck "broken giflib workaround"
4433 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4435 cat > $TMPC << EOF
4436 #include <stdio.h>
4437 #include <gif_lib.h>
4438 int main(void) {
4439 GifFileType gif = {.UserData = NULL};
4440 printf("UserData is at address %p\n", gif.UserData);
4441 return 0;
4444 if cc_check "$_ld_gif" ; then
4445 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4446 echores "disabled"
4447 else
4448 echores "enabled"
4451 esac
4454 echocheck "VESA support"
4455 if test "$_vesa" = auto ; then
4456 _vesa=no
4457 statement_check vbe.h 'vbeInit()' -lvbe -llrmi && _vesa=yes
4459 if test "$_vesa" = yes ; then
4460 def_vesa='#define CONFIG_VESA 1'
4461 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4462 vomodules="vesa $vomodules"
4463 else
4464 def_vesa='#undef CONFIG_VESA'
4465 novomodules="vesa $novomodules"
4467 echores "$_vesa"
4469 #################
4470 # VIDEO + AUDIO #
4471 #################
4474 echocheck "SDL"
4475 _inc_tmp=""
4476 _ld_tmp=""
4477 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
4478 if test -z "$_sdlconfig" ; then
4479 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4480 _sdlconfig="sdl-config"
4481 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4482 _sdlconfig="sdl11-config"
4483 else
4484 _sdlconfig=false
4487 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4488 cat > $TMPC << EOF
4489 #ifdef CONFIG_SDL_SDL_H
4490 #include <SDL/SDL.h>
4491 #else
4492 #include <SDL.h>
4493 #endif
4494 #ifndef __APPLE__
4495 // we allow SDL hacking our main() only on OSX
4496 #undef main
4497 #endif
4498 int main(int argc, char *argv[]) {
4499 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4500 return 0;
4503 _sdl=no
4504 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
4505 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
4506 _sdl=yes
4507 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
4508 break
4510 done
4511 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4512 res_comment="using $_sdlconfig"
4513 if cygwin ; then
4514 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
4515 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
4516 elif mingw32 ; then
4517 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
4518 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
4519 else
4520 _inc_tmp="$($_sdlconfig --cflags)"
4521 _ld_tmp="$($_sdlconfig --libs)"
4523 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
4524 _sdl=yes
4525 elif cc_check $_inc_tmp $_ld_tmp -lstdc++ >>"$TMPLOG" 2>&1 ; then
4526 # HACK for BeOS/Haiku SDL
4527 _ld_tmp="$_ld_tmp -lstdc++"
4528 _sdl=yes
4532 if test "$_sdl" = yes ; then
4533 def_sdl='#define CONFIG_SDL 1'
4534 extra_cflags="$extra_cflags $_inc_tmp"
4535 libs_mplayer="$libs_mplayer $_ld_tmp"
4536 vomodules="sdl $vomodules"
4537 aomodules="sdl $aomodules"
4538 else
4539 def_sdl='#undef CONFIG_SDL'
4540 novomodules="sdl $novomodules"
4541 noaomodules="sdl $noaomodules"
4543 echores "$_sdl"
4546 # make sure this stays below CoreVideo to avoid issues due to namespace
4547 # conflicts between -lGL and -framework OpenGL
4548 echocheck "OpenGL"
4549 #Note: this test is run even with --enable-gl since we autodetect linker flags
4550 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
4551 cat > $TMPC << EOF
4552 #ifdef GL_WIN32
4553 #include <windows.h>
4554 #include <GL/gl.h>
4555 #elif defined(GL_SDL)
4556 #include <GL/gl.h>
4557 #ifdef CONFIG_SDL_SDL_H
4558 #include <SDL/SDL.h>
4559 #else
4560 #include <SDL.h>
4561 #endif
4562 #ifndef __APPLE__
4563 // we allow SDL hacking our main() only on OSX
4564 #undef main
4565 #endif
4566 #else
4567 #include <GL/gl.h>
4568 #include <X11/Xlib.h>
4569 #include <GL/glx.h>
4570 #endif
4571 int main(int argc, char *argv[]) {
4572 #ifdef GL_WIN32
4573 HDC dc;
4574 wglCreateContext(dc);
4575 #elif defined(GL_SDL)
4576 SDL_GL_SwapBuffers();
4577 #else
4578 glXCreateContext(NULL, NULL, NULL, True);
4579 #endif
4580 glFinish();
4581 return 0;
4584 _gl=no
4585 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
4586 if cc_check $_ld_tmp $_ld_lm ; then
4587 _gl=yes
4588 _gl_x11=yes
4589 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
4590 break
4592 done
4593 if cc_check -DGL_WIN32 -lopengl32 ; then
4594 _gl=yes
4595 _gl_win32=yes
4596 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4598 # last so it can reuse any linker etc. flags detected before
4599 if test "$_sdl" = yes ; then
4600 if cc_check -DGL_SDL ||
4601 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
4602 _gl=yes
4603 _gl_sdl=yes
4604 elif cc_check -DGL_SDL -lGL ||
4605 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
4606 _gl=yes
4607 _gl_sdl=yes
4608 libs_mplayer="$libs_mplayer -lGL"
4611 else
4612 _gl=no
4614 if test "$_gl" = yes ; then
4615 def_gl='#define CONFIG_GL 1'
4616 res_comment="backends:"
4617 if test "$_gl_win32" = yes ; then
4618 def_gl_win32='#define CONFIG_GL_WIN32 1'
4619 res_comment="$res_comment win32"
4621 if test "$_gl_x11" = yes ; then
4622 def_gl_x11='#define CONFIG_GL_X11 1'
4623 res_comment="$res_comment x11"
4625 if test "$_gl_sdl" = yes ; then
4626 def_gl_sdl='#define CONFIG_GL_SDL 1'
4627 res_comment="$res_comment sdl"
4629 vomodules="opengl $vomodules"
4630 else
4631 def_gl='#undef CONFIG_GL'
4632 def_gl_win32='#undef CONFIG_GL_WIN32'
4633 def_gl_x11='#undef CONFIG_GL_X11'
4634 def_gl_sdl='#undef CONFIG_GL_SDL'
4635 novomodules="opengl $novomodules"
4637 echores "$_gl"
4640 echocheck "MatrixView"
4641 if test "$_gl" = no ; then
4642 matrixview=no
4644 if test "$matrixview" = yes ; then
4645 vomodules="matrixview $vomodules"
4646 def_matrixview='#define CONFIG_MATRIXVIEW 1'
4647 else
4648 novomodules="matrixview $novomodules"
4649 def_matrixview='#undef CONFIG_MATRIXVIEW'
4651 echores "$matrixview"
4654 if os2 ; then
4655 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
4656 if test "$_kva" = auto; then
4657 _kva=no;
4658 header_check_broken os2.h kva.h -lkva && _kva=yes
4660 if test "$_kva" = yes ; then
4661 def_kva='#define CONFIG_KVA 1'
4662 libs_mplayer="$libs_mplayer -lkva"
4663 vomodules="kva $vomodules"
4664 else
4665 def_kva='#undef CONFIG_KVA'
4666 novomodules="kva $novomodules"
4668 echores "$_kva"
4669 fi #if os2
4672 if win32; then
4674 echocheck "Windows waveout"
4675 if test "$_win32waveout" = auto ; then
4676 _win32waveout=no
4677 header_check_broken windows.h mmsystem.h -lwinmm && _win32waveout=yes
4679 if test "$_win32waveout" = yes ; then
4680 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
4681 libs_mplayer="$libs_mplayer -lwinmm"
4682 aomodules="win32 $aomodules"
4683 else
4684 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
4685 noaomodules="win32 $noaomodules"
4687 echores "$_win32waveout"
4689 echocheck "Direct3D"
4690 if test "$_direct3d" = auto ; then
4691 _direct3d=no
4692 header_check d3d9.h && _direct3d=yes
4694 if test "$_direct3d" = yes ; then
4695 def_direct3d='#define CONFIG_DIRECT3D 1'
4696 vomodules="direct3d $vomodules"
4697 else
4698 def_direct3d='#undef CONFIG_DIRECT3D'
4699 novomodules="direct3d $novomodules"
4701 echores "$_direct3d"
4703 echocheck "Directx"
4704 if test "$_directx" = auto ; then
4705 cat > $TMPC << EOF
4706 #include <ddraw.h>
4707 #include <dsound.h>
4708 int main(void) { return 0; }
4710 _directx=no
4711 cc_check -lgdi32 && _directx=yes
4713 if test "$_directx" = yes ; then
4714 def_directx='#define CONFIG_DIRECTX 1'
4715 libs_mplayer="$libs_mplayer -lgdi32"
4716 vomodules="directx $vomodules"
4717 aomodules="dsound $aomodules"
4718 else
4719 def_directx='#undef CONFIG_DIRECTX'
4720 novomodules="directx $novomodules"
4721 noaomodules="dsound $noaomodules"
4723 echores "$_directx"
4725 fi #if win32; then
4728 echocheck "DXR3/H+"
4729 if test "$_dxr3" = auto ; then
4730 _dxr3=no
4731 header_check linux/em8300.h && _dxr3=yes
4733 if test "$_dxr3" = yes ; then
4734 def_dxr3='#define CONFIG_DXR3 1'
4735 vomodules="dxr3 $vomodules"
4736 else
4737 def_dxr3='#undef CONFIG_DXR3'
4738 novomodules="dxr3 $novomodules"
4740 echores "$_dxr3"
4743 echocheck "IVTV TV-Out (pre linux-2.6.24)"
4744 if test "$_ivtv" = auto ; then
4745 cat > $TMPC << EOF
4746 #include <sys/time.h>
4747 #include <linux/videodev2.h>
4748 #include <linux/ivtv.h>
4749 #include <sys/ioctl.h>
4750 int main(void) {
4751 struct ivtv_cfg_stop_decode sd;
4752 struct ivtv_cfg_start_decode sd1;
4753 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
4754 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
4755 return 0; }
4757 _ivtv=no
4758 cc_check && _ivtv=yes
4760 if test "$_ivtv" = yes ; then
4761 def_ivtv='#define CONFIG_IVTV 1'
4762 vomodules="ivtv $vomodules"
4763 aomodules="ivtv $aomodules"
4764 else
4765 def_ivtv='#undef CONFIG_IVTV'
4766 novomodules="ivtv $novomodules"
4767 noaomodules="ivtv $noaomodules"
4769 echores "$_ivtv"
4772 echocheck "V4L2 MPEG Decoder"
4773 if test "$_v4l2" = auto ; then
4774 cat > $TMPC << EOF
4775 #include <sys/time.h>
4776 #include <linux/videodev2.h>
4777 #include <linux/version.h>
4778 int main(void) {
4779 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
4780 #error kernel headers too old, need 2.6.22
4781 #endif
4782 struct v4l2_ext_controls ctrls;
4783 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
4784 return 0;
4787 _v4l2=no
4788 cc_check && _v4l2=yes
4790 if test "$_v4l2" = yes ; then
4791 def_v4l2='#define CONFIG_V4L2_DECODER 1'
4792 vomodules="v4l2 $vomodules"
4793 aomodules="v4l2 $aomodules"
4794 else
4795 def_v4l2='#undef CONFIG_V4L2_DECODER'
4796 novomodules="v4l2 $novomodules"
4797 noaomodules="v4l2 $noaomodules"
4799 echores "$_v4l2"
4803 #########
4804 # AUDIO #
4805 #########
4808 echocheck "OSS Audio"
4809 if test "$_ossaudio" = auto ; then
4810 _ossaudio=no
4811 return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes
4813 if test "$_ossaudio" = yes ; then
4814 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
4815 aomodules="oss $aomodules"
4816 cat > $TMPC << EOF
4817 #include <$_soundcard_header>
4818 #ifdef OPEN_SOUND_SYSTEM
4819 int main(void) { return 0; }
4820 #else
4821 #error Not the real thing
4822 #endif
4824 _real_ossaudio=no
4825 cc_check && _real_ossaudio=yes
4826 if test "$_real_ossaudio" = yes; then
4827 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4828 # Check for OSS4 headers (override default headers)
4829 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
4830 if test -f /etc/oss.conf; then
4831 . /etc/oss.conf
4832 _ossinc="$OSSLIBDIR/include"
4833 if test -f "$_ossinc/sys/soundcard.h"; then
4834 extra_cflags="-I$_ossinc $extra_cflags"
4837 elif netbsd || openbsd ; then
4838 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4839 extra_ldflags="$extra_ldflags -lossaudio"
4840 else
4841 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4843 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4844 else
4845 def_ossaudio='#undef CONFIG_OSS_AUDIO'
4846 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4847 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4848 noaomodules="oss $noaomodules"
4850 echores "$_ossaudio"
4853 echocheck "aRts"
4854 if test "$_arts" = auto ; then
4855 _arts=no
4856 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4857 statement_check artsc.h 'arts_init()' $(artsc-config --libs) $(artsc-config --cflags) &&
4858 _arts=yes
4862 if test "$_arts" = yes ; then
4863 def_arts='#define CONFIG_ARTS 1'
4864 aomodules="arts $aomodules"
4865 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
4866 extra_cflags="$extra_cflags $(artsc-config --cflags)"
4867 else
4868 noaomodules="arts $noaomodules"
4870 echores "$_arts"
4873 echocheck "EsounD"
4874 if test "$_esd" = auto ; then
4875 _esd=no
4876 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4877 statement_check esd.h 'esd_open_sound("test")' $(esd-config --libs) $(esd-config --cflags) && _esd=yes
4880 echores "$_esd"
4882 if test "$_esd" = yes ; then
4883 def_esd='#define CONFIG_ESD 1'
4884 aomodules="esd $aomodules"
4885 libs_mplayer="$libs_mplayer $(esd-config --libs)"
4886 extra_cflags="$extra_cflags $(esd-config --cflags)"
4888 echocheck "esd_get_latency()"
4889 statement_check esd.h 'esd_get_latency(0)' $(esd-config --libs) $(esd-config --cflags) &&
4890 _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
4891 echores "$_esd_latency"
4892 else
4893 def_esd='#undef CONFIG_ESD'
4894 def_esd_latency='#undef CONFIG_ESD_LATENCY'
4895 noaomodules="esd $noaomodules"
4899 echocheck "NAS"
4900 if test "$_nas" = auto ; then
4901 _nas=no
4902 header_check audio/audiolib.h $_ld_lm -laudio -lXt && _nas=yes
4904 if test "$_nas" = yes ; then
4905 def_nas='#define CONFIG_NAS 1'
4906 libs_mplayer="$libs_mplayer -laudio -lXt"
4907 aomodules="nas $aomodules"
4908 else
4909 noaomodules="nas $noaomodules"
4910 def_nas='#undef CONFIG_NAS'
4912 echores "$_nas"
4915 echocheck "pulse"
4916 if test "$_pulse" = auto ; then
4917 _pulse=no
4918 if $_pkg_config --exists 'libpulse >= 0.9' ; then
4919 header_check pulse/pulseaudio.h $($_pkg_config --libs --cflags libpulse) &&
4920 _pulse=yes
4923 echores "$_pulse"
4925 if test "$_pulse" = yes ; then
4926 def_pulse='#define CONFIG_PULSE 1'
4927 aomodules="pulse $aomodules"
4928 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
4929 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
4930 else
4931 def_pulse='#undef CONFIG_PULSE'
4932 noaomodules="pulse $noaomodules"
4936 echocheck "JACK"
4937 if test "$_jack" = auto ; then
4938 _jack=yes
4939 if statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' -ljack ; then
4940 libs_mplayer="$libs_mplayer -ljack"
4941 elif statement_check jack/jack.h 'jack_client_open("test", JackUseExactName, NULL)' $($_pkg_config --libs --cflags --silence-errors jack) ; then
4942 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
4943 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
4944 else
4945 _jack=no
4949 if test "$_jack" = yes ; then
4950 def_jack='#define CONFIG_JACK 1'
4951 aomodules="jack $aomodules"
4952 else
4953 noaomodules="jack $noaomodules"
4955 echores "$_jack"
4957 echocheck "OpenAL"
4958 if test "$_openal" = auto ; then
4959 _openal=no
4960 cat > $TMPC << EOF
4961 #ifdef OPENAL_AL_H
4962 #include <OpenAL/al.h>
4963 #else
4964 #include <AL/al.h>
4965 #endif
4966 int main(void) {
4967 alSourceQueueBuffers(0, 0, 0);
4968 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4969 return 0;
4972 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
4973 cc_check $I && _openal=yes && break
4974 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
4975 done
4976 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
4978 if test "$_openal" = yes ; then
4979 def_openal='#define CONFIG_OPENAL 1'
4980 aomodules="openal $aomodules"
4981 else
4982 noaomodules="openal $noaomodules"
4984 echores "$_openal"
4986 echocheck "ALSA audio"
4987 if test "$_alloca" != yes ; then
4988 _alsa=no
4989 res_comment="alloca missing"
4991 if test "$_alsa" != no ; then
4992 _alsa=no
4993 cat > $TMPC << EOF
4994 #include <sys/asoundlib.h>
4995 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4996 #error "alsa version != 0.5.x"
4997 #endif
4998 int main(void) { return 0; }
5000 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5002 cat > $TMPC << EOF
5003 #include <sys/asoundlib.h>
5004 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5005 #error "alsa version != 0.9.x"
5006 #endif
5007 int main(void) { return 0; }
5009 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5010 cat > $TMPC << EOF
5011 #include <alsa/asoundlib.h>
5012 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5013 #error "alsa version != 0.9.x"
5014 #endif
5015 int main(void) { return 0; }
5017 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5019 cat > $TMPC << EOF
5020 #include <sys/asoundlib.h>
5021 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5022 #error "alsa version != 1.0.x"
5023 #endif
5024 int main(void) { return 0; }
5026 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5027 cat > $TMPC << EOF
5028 #include <alsa/asoundlib.h>
5029 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5030 #error "alsa version != 1.0.x"
5031 #endif
5032 int main(void) { return 0; }
5034 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5036 def_alsa='#undef CONFIG_ALSA'
5037 def_alsa5='#undef CONFIG_ALSA5'
5038 def_alsa9='#undef CONFIG_ALSA9'
5039 def_alsa1x='#undef CONFIG_ALSA1X'
5040 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5041 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5042 if test "$_alsaver" ; then
5043 _alsa=yes
5044 if test "$_alsaver" = '0.5.x' ; then
5045 _alsa5=yes
5046 aomodules="alsa5 $aomodules"
5047 def_alsa5='#define CONFIG_ALSA5 1'
5048 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5049 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5050 elif test "$_alsaver" = '0.9.x-sys' ; then
5051 _alsa9=yes
5052 aomodules="alsa $aomodules"
5053 def_alsa='#define CONFIG_ALSA 1'
5054 def_alsa9='#define CONFIG_ALSA9 1'
5055 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5056 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5057 elif test "$_alsaver" = '0.9.x-alsa' ; then
5058 _alsa9=yes
5059 aomodules="alsa $aomodules"
5060 def_alsa='#define CONFIG_ALSA 1'
5061 def_alsa9='#define CONFIG_ALSA9 1'
5062 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5063 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5064 elif test "$_alsaver" = '1.0.x-sys' ; then
5065 _alsa1x=yes
5066 aomodules="alsa $aomodules"
5067 def_alsa='#define CONFIG_ALSA 1'
5068 def_alsa1x="#define CONFIG_ALSA1X 1"
5069 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5070 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5071 elif test "$_alsaver" = '1.0.x-alsa' ; then
5072 _alsa1x=yes
5073 aomodules="alsa $aomodules"
5074 def_alsa='#define CONFIG_ALSA 1'
5075 def_alsa1x="#define CONFIG_ALSA1X 1"
5076 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5077 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5078 else
5079 _alsa=no
5080 res_comment="unknown version"
5082 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5083 else
5084 noaomodules="alsa $noaomodules"
5086 echores "$_alsa"
5089 echocheck "Sun audio"
5090 if test "$_sunaudio" = auto ; then
5091 cat > $TMPC << EOF
5092 #include <sys/types.h>
5093 #include <sys/audioio.h>
5094 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5096 _sunaudio=no
5097 cc_check && _sunaudio=yes
5099 if test "$_sunaudio" = yes ; then
5100 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5101 aomodules="sun $aomodules"
5102 else
5103 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5104 noaomodules="sun $noaomodules"
5106 echores "$_sunaudio"
5109 if darwin; then
5110 echocheck "CoreAudio"
5111 if test "$_coreaudio" = auto ; then
5112 cat > $TMPC <<EOF
5113 #include <CoreAudio/CoreAudio.h>
5114 #include <AudioToolbox/AudioToolbox.h>
5115 #include <AudioUnit/AudioUnit.h>
5116 int main(void) { return 0; }
5118 _coreaudio=no
5119 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5121 if test "$_coreaudio" = yes ; then
5122 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5123 def_coreaudio='#define CONFIG_COREAUDIO 1'
5124 aomodules="coreaudio $aomodules"
5125 else
5126 def_coreaudio='#undef CONFIG_COREAUDIO'
5127 noaomodules="coreaudio $noaomodules"
5129 echores $_coreaudio
5130 fi #if darwin
5133 if irix; then
5134 echocheck "SGI audio"
5135 if test "$_sgiaudio" = auto ; then
5136 _sgiaudio=no
5137 header_check dmedia/audio.h && _sgiaudio=yes
5139 if test "$_sgiaudio" = "yes" ; then
5140 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5141 libs_mplayer="$libs_mplayer -laudio"
5142 aomodules="sgi $aomodules"
5143 else
5144 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5145 noaomodules="sgi $noaomodules"
5147 echores "$_sgiaudio"
5148 fi #if irix
5151 if os2 ; then
5152 echocheck "KAI (UNIAUD/DART)"
5153 if test "$_kai" = auto; then
5154 _kai=no;
5155 header_check_broken os2.h kai.h -lkai && _kai=yes
5157 if test "$_kai" = yes ; then
5158 def_kai='#define CONFIG_KAI 1'
5159 libs_mplayer="$libs_mplayer -lkai"
5160 aomodules="kai $aomodules"
5161 else
5162 def_kai='#undef CONFIG_KAI'
5163 noaomodules="kai $noaomodules"
5165 echores "$_kai"
5167 echocheck "DART"
5168 if test "$_dart" = auto; then
5169 _dart=no;
5170 header_check_broken os2.h dart.h -ldart && _dart=yes
5172 if test "$_dart" = yes ; then
5173 def_dart='#define CONFIG_DART 1'
5174 libs_mplayer="$libs_mplayer -ldart"
5175 aomodules="dart $aomodules"
5176 else
5177 def_dart='#undef CONFIG_DART'
5178 noaomodules="dart $noaomodules"
5180 echores "$_dart"
5181 fi #if os2
5184 # set default CD/DVD devices
5185 if win32 || os2 ; then
5186 default_cdrom_device="D:"
5187 elif darwin ; then
5188 default_cdrom_device="/dev/disk1"
5189 elif dragonfly ; then
5190 default_cdrom_device="/dev/cd0"
5191 elif freebsd ; then
5192 default_cdrom_device="/dev/acd0"
5193 elif openbsd ; then
5194 default_cdrom_device="/dev/rcd0c"
5195 elif sunos ; then
5196 default_cdrom_device="/vol/dev/aliases/cdrom0"
5197 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5198 # file system and the volfs service.
5199 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5200 elif amigaos ; then
5201 default_cdrom_device="a1ide.device:2"
5202 else
5203 default_cdrom_device="/dev/cdrom"
5206 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5207 default_dvd_device=$default_cdrom_device
5208 elif darwin ; then
5209 default_dvd_device="/dev/rdiskN"
5210 else
5211 default_dvd_device="/dev/dvd"
5215 echocheck "VCD support"
5216 if test "$_vcd" = auto; then
5217 _vcd=no
5218 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
5219 _vcd=yes
5220 elif mingw32; then
5221 header_check ddk/ntddcdrm.h && _vcd=yes
5224 if test "$_vcd" = yes; then
5225 inputmodules="vcd $inputmodules"
5226 def_vcd='#define CONFIG_VCD 1'
5227 else
5228 def_vcd='#undef CONFIG_VCD'
5229 noinputmodules="vcd $noinputmodules"
5230 res_comment="not supported on this OS"
5232 echores "$_vcd"
5236 echocheck "Blu-ray support"
5237 if test "$_bluray" = auto ; then
5238 _bluray=no
5239 statement_check libbluray/bluray.h 'bd_get_title_info(0, 0)' -lbluray && _bluray=yes
5241 if test "$_bluray" = yes ; then
5242 def_bluray='#define CONFIG_LIBBLURAY 1'
5243 extra_ldflags="$extra_ldflags -lbluray"
5244 inputmodules="bluray $inputmodules"
5245 else
5246 def_bluray='#undef CONFIG_LIBBLURAY'
5247 noinputmodules="bluray $noinputmodules"
5249 echores "$_bluray"
5251 echocheck "dvdread"
5252 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5253 _dvdread_internal=no
5255 if test "$_dvdread_internal" = auto ; then
5256 _dvdread_internal=no
5257 _dvdread=no
5258 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) &&
5259 (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes ||
5260 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) ||
5261 darwin || win32 || os2; then
5262 _dvdread_internal=yes
5263 _dvdread=yes
5264 extra_cflags="-Ilibdvdread4 $extra_cflags"
5266 elif test "$_dvdread" = auto ; then
5267 _dvdread=no
5268 if test "$_dl" = yes; then
5269 _dvdreadcflags=$($_dvdreadconfig --cflags 2> /dev/null)
5270 _dvdreadlibs=$($_dvdreadconfig --libs 2> /dev/null)
5271 if header_check dvdread/dvd_reader.h $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5272 _dvdread=yes
5273 extra_cflags="$extra_cflags $_dvdreadcflags"
5274 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5275 res_comment="external"
5280 if test "$_dvdread_internal" = yes; then
5281 def_dvdread='#define CONFIG_DVDREAD 1'
5282 inputmodules="dvdread(internal) $inputmodules"
5283 _largefiles=yes
5284 res_comment="internal"
5285 elif test "$_dvdread" = yes; then
5286 def_dvdread='#define CONFIG_DVDREAD 1'
5287 _largefiles=yes
5288 extra_ldflags="$extra_ldflags -ldvdread"
5289 inputmodules="dvdread(external) $inputmodules"
5290 res_comment="external"
5291 else
5292 def_dvdread='#undef CONFIG_DVDREAD'
5293 noinputmodules="dvdread $noinputmodules"
5295 echores "$_dvdread"
5298 echocheck "internal libdvdcss"
5299 if test "$_libdvdcss_internal" = auto ; then
5300 _libdvdcss_internal=no
5301 test "$_dvdread_internal" = yes && test -d libdvdcss && _libdvdcss_internal=yes
5302 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5304 if test "$_libdvdcss_internal" = yes ; then
5305 if linux || netbsd || openbsd || bsdos ; then
5306 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5307 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5308 elif freebsd || dragonfly ; then
5309 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5310 elif darwin ; then
5311 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5312 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5313 elif cygwin ; then
5314 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5315 elif beos ; then
5316 cflags_libdvdcss="-DSYS_BEOS"
5317 elif os2 ; then
5318 cflags_libdvdcss="-DSYS_OS2"
5320 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5321 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5322 inputmodules="libdvdcss(internal) $inputmodules"
5323 _largefiles=yes
5324 else
5325 noinputmodules="libdvdcss(internal) $noinputmodules"
5327 echores "$_libdvdcss_internal"
5330 echocheck "cdparanoia"
5331 if test "$_cdparanoia" = auto ; then
5332 cat > $TMPC <<EOF
5333 #include <cdda_interface.h>
5334 #include <cdda_paranoia.h>
5335 // This need a better test. How ?
5336 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5338 _cdparanoia=no
5339 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5340 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm &&
5341 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5342 done
5344 if test "$_cdparanoia" = yes ; then
5345 _cdda='yes'
5346 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5347 openbsd && extra_ldflags="$extra_ldflags -lutil"
5349 echores "$_cdparanoia"
5352 echocheck "libcdio"
5353 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5354 cat > $TMPC << EOF
5355 #include <stdio.h>
5356 #include <cdio/version.h>
5357 #include <cdio/cdda.h>
5358 #include <cdio/paranoia.h>
5359 int main(void) {
5360 void *test = cdda_verbose_set;
5361 printf("%s\n", CDIO_VERSION);
5362 return test == (void *)1;
5365 _libcdio=no
5366 for _ld_tmp in "" "-lwinmm" ; do
5367 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5368 cc_check $_ld_tmp $_ld_lm && _libcdio=yes &&
5369 extra_ldflags="$extra_ldflags $_ld_tmp" && break
5370 done
5371 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5372 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5373 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5374 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes &&
5375 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5378 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5379 _cdda='yes'
5380 def_libcdio='#define CONFIG_LIBCDIO 1'
5381 def_havelibcdio='yes'
5382 else
5383 if test "$_cdparanoia" = yes ; then
5384 res_comment="using cdparanoia"
5386 def_libcdio='#undef CONFIG_LIBCDIO'
5387 def_havelibcdio='no'
5389 echores "$_libcdio"
5391 if test "$_cdda" = yes ; then
5392 test $_cddb = auto && test $networking = yes && _cddb=yes
5393 def_cdparanoia='#define CONFIG_CDDA 1'
5394 inputmodules="cdda $inputmodules"
5395 else
5396 def_cdparanoia='#undef CONFIG_CDDA'
5397 noinputmodules="cdda $noinputmodules"
5400 if test "$_cddb" = yes ; then
5401 def_cddb='#define CONFIG_CDDB 1'
5402 inputmodules="cddb $inputmodules"
5403 else
5404 _cddb=no
5405 def_cddb='#undef CONFIG_CDDB'
5406 noinputmodules="cddb $noinputmodules"
5409 echocheck "bitmap font support"
5410 if test "$_bitmap_font" = yes ; then
5411 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5412 else
5413 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5415 echores "$_bitmap_font"
5418 echocheck "freetype >= 2.0.9"
5420 # freetype depends on iconv
5421 if test "$_iconv" = no ; then
5422 _freetype=no
5423 res_comment="iconv support needed"
5426 if test "$_freetype" = auto ; then
5427 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5428 cat > $TMPC << EOF
5429 #include <stdio.h>
5430 #include <ft2build.h>
5431 #include FT_FREETYPE_H
5432 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5433 #error "Need FreeType 2.0.9 or newer"
5434 #endif
5435 int main(void) {
5436 FT_Library library;
5437 FT_Init_FreeType(&library);
5438 return 0;
5441 _freetype=no
5442 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
5443 else
5444 _freetype=no
5447 if test "$_freetype" = yes ; then
5448 def_freetype='#define CONFIG_FREETYPE 1'
5449 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5450 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5451 else
5452 def_freetype='#undef CONFIG_FREETYPE'
5454 echores "$_freetype"
5456 if test "$_freetype" = no ; then
5457 _fontconfig=no
5458 res_comment="FreeType support needed"
5460 echocheck "fontconfig"
5461 if test "$_fontconfig" = auto ; then
5462 cat > $TMPC << EOF
5463 #include <stdio.h>
5464 #include <stdlib.h>
5465 #include <fontconfig/fontconfig.h>
5466 #if FC_VERSION < 20402
5467 #error At least version 2.4.2 of fontconfig required
5468 #endif
5469 int main(void) {
5470 int err = FcInit();
5471 if (err == FcFalse) {
5472 printf("Couldn't initialize fontconfig lib\n");
5473 exit(err);
5475 return 0;
5478 _fontconfig=no
5479 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
5480 _ld_tmp="-lfontconfig $_ld_tmp"
5481 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5482 done
5483 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5484 _inc_tmp=$($_pkg_config --cflags fontconfig)
5485 _ld_tmp=$($_pkg_config --libs fontconfig)
5486 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes &&
5487 extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5490 if test "$_fontconfig" = yes ; then
5491 def_fontconfig='#define CONFIG_FONTCONFIG 1'
5492 else
5493 def_fontconfig='#undef CONFIG_FONTCONFIG'
5495 echores "$_fontconfig"
5498 echocheck "SSA/ASS support"
5499 if test "$_ass" = auto -o "$_ass" = yes ; then
5500 if $_pkg_config libass; then
5501 _ass=yes
5502 def_ass='#define CONFIG_ASS 1'
5503 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5504 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5505 else
5506 _ass=no
5507 def_ass='#undef CONFIG_ASS'
5509 else
5510 def_ass='#undef CONFIG_ASS'
5512 echores "$_ass"
5515 echocheck "fribidi with charsets"
5516 _inc_tmp=""
5517 _ld_tmp=""
5518 if test "$_fribidi" = auto ; then
5519 cat > $TMPC << EOF
5520 #include <stdlib.h>
5521 /* workaround for fribidi 0.10.4 and below */
5522 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5523 #include <fribidi/fribidi.h>
5524 int main(void) {
5525 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8)
5526 exit(1);
5527 return 0;
5530 _fribidi=no
5531 _inc_tmp=""
5532 _ld_tmp="-lfribidi"
5533 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5534 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
5535 test "$_fribidi" = no ; then
5536 _inc_tmp="$($_pkg_config --cflags)"
5537 _ld_tmp="$($_pkg_config --libs)"
5538 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
5541 if test "$_fribidi" = yes ; then
5542 def_fribidi='#define CONFIG_FRIBIDI 1'
5543 extra_cflags="$extra_cflags $_inc_tmp"
5544 extra_ldflags="$extra_ldflags $_ld_tmp"
5545 else
5546 def_fribidi='#undef CONFIG_FRIBIDI'
5548 echores "$_fribidi"
5551 echocheck "ENCA"
5552 if test "$_enca" = auto ; then
5553 _enca=no
5554 statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes
5556 if test "$_enca" = yes ; then
5557 def_enca='#define CONFIG_ENCA 1'
5558 extra_ldflags="$extra_ldflags -lenca"
5559 else
5560 def_enca='#undef CONFIG_ENCA'
5562 echores "$_enca"
5565 echocheck "zlib"
5566 _zlib=no
5567 statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes
5568 if test "$_zlib" = yes ; then
5569 def_zlib='#define CONFIG_ZLIB 1'
5570 extra_ldflags="$extra_ldflags -lz"
5571 else
5572 def_zlib='#define CONFIG_ZLIB 0'
5574 echores "$_zlib"
5577 echocheck "RTC"
5578 if test "$_rtc" = auto ; then
5579 cat > $TMPC << EOF
5580 #include <sys/ioctl.h>
5581 #ifdef __linux__
5582 #include <linux/rtc.h>
5583 #else
5584 #include <rtc.h>
5585 #define RTC_PIE_ON RTCIO_PIE_ON
5586 #endif
5587 int main(void) { return RTC_PIE_ON; }
5589 _rtc=no
5590 cc_check && _rtc=yes
5591 ppc && _rtc=no
5593 if test "$_rtc" = yes ; then
5594 def_rtc='#define HAVE_RTC 1'
5595 else
5596 def_rtc='#undef HAVE_RTC'
5598 echores "$_rtc"
5601 echocheck "mad support"
5602 if test "$_mad" = auto ; then
5603 _mad=no
5604 header_check mad.h -lmad && _mad=yes
5606 if test "$_mad" = yes ; then
5607 def_mad='#define CONFIG_LIBMAD 1'
5608 extra_ldflags="$extra_ldflags -lmad"
5609 codecmodules="libmad $codecmodules"
5610 else
5611 def_mad='#undef CONFIG_LIBMAD'
5612 nocodecmodules="libmad $nocodecmodules"
5614 echores "$_mad"
5616 echocheck "OggVorbis support"
5617 if test "$_libvorbis" = auto; then
5618 _libvorbis=no
5619 statement_check vorbis/codec.h 'vorbis_packet_blocksize(0, 0)' -lvorbis -logg $_ld_lm && _libvorbis=yes && _tremor=no
5620 elif test "$_libvorbis" = yes ; then
5621 _tremor=no
5623 if test "$_tremor" = auto; then
5624 _tremor=no
5625 statement_check tremor/ivorbiscodec.h 'vorbis_packet_blocksize(0, 0)' -logg -lvorbisidec $_ld_lm && _tremor=yes
5627 if test "$_tremor" = yes ; then
5628 _vorbis=yes
5629 def_vorbis='#define CONFIG_OGGVORBIS 1'
5630 def_tremor='#define CONFIG_TREMOR 1'
5631 codecmodules="tremor(external) $codecmodules"
5632 res_comment="external Tremor"
5633 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
5634 elif test "$_libvorbis" = yes ; then
5635 _vorbis=yes
5636 def_vorbis='#define CONFIG_OGGVORBIS 1'
5637 codecmodules="libvorbis $codecmodules"
5638 res_comment="libvorbis"
5639 extra_ldflags="$extra_ldflags -lvorbis -logg"
5640 else
5641 _vorbis=no
5642 nocodecmodules="libvorbis $nocodecmodules"
5644 echores "$_vorbis"
5646 echocheck "libspeex (version >= 1.1 required)"
5647 if test "$_speex" = auto ; then
5648 _speex=no
5649 cat > $TMPC << EOF
5650 #include <stddef.h>
5651 #include <speex/speex.h>
5652 int main(void) { SpeexBits bits; void *dec = NULL; speex_decode_int(dec, &bits, dec); return 0; }
5654 cc_check -lspeex $_ld_lm && _speex=yes
5656 if test "$_speex" = yes ; then
5657 def_speex='#define CONFIG_SPEEX 1'
5658 extra_ldflags="$extra_ldflags -lspeex"
5659 codecmodules="speex $codecmodules"
5660 else
5661 def_speex='#undef CONFIG_SPEEX'
5662 nocodecmodules="speex $nocodecmodules"
5664 echores "$_speex"
5666 echocheck "OggTheora support"
5667 if test "$_theora" = auto ; then
5668 _theora=no
5669 cat > $TMPC << EOF
5670 #include <theora/theora.h>
5671 #include <string.h>
5672 int main(void) {
5673 /* Theora is in flux, make sure that all interface routines and datatypes
5674 * exist and work the way we expect it, so we don't break MPlayer. */
5675 ogg_packet op;
5676 theora_comment tc;
5677 theora_info inf;
5678 theora_state st;
5679 yuv_buffer yuv;
5680 int r;
5681 double t;
5683 theora_info_init(&inf);
5684 theora_comment_init(&tc);
5686 return 0;
5688 /* we don't want to execute this kind of nonsense; just for making sure
5689 * that compilation works... */
5690 memset(&op, 0, sizeof(op));
5691 r = theora_decode_header(&inf, &tc, &op);
5692 r = theora_decode_init(&st, &inf);
5693 t = theora_granule_time(&st, op.granulepos);
5694 r = theora_decode_packetin(&st, &op);
5695 r = theora_decode_YUVout(&st, &yuv);
5696 theora_clear(&st);
5698 return 0;
5701 _ld_theora=$($_pkg_config --silence-errors --libs theora)
5702 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
5703 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
5704 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
5705 if test _theora = no; then
5706 _ld_theora="-ltheora -logg"
5707 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
5710 if test "$_theora" = yes ; then
5711 def_theora='#define CONFIG_OGGTHEORA 1'
5712 codecmodules="libtheora $codecmodules"
5713 # when --enable-theora is forced, we'd better provide a probably sane
5714 # $_ld_theora than nothing
5715 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
5716 else
5717 def_theora='#undef CONFIG_OGGTHEORA'
5718 nocodecmodules="libtheora $nocodecmodules"
5720 echores "$_theora"
5722 # Any version of libmpg123 shall be fine.
5723 echocheck "mpg123 support"
5724 def_mpg123='#undef CONFIG_MPG123'
5725 if test "$_mpg123" = auto; then
5726 _mpg123=no
5727 statement_check mpg123.h 'mpg123_init()' -lmpg123 && _mpg123=yes && extra_ldflags="$extra_ldflags -lmpg123"
5729 if test "$_mpg123" = yes ; then
5730 def_mpg123='#define CONFIG_MPG123 1'
5731 codecmodules="mpg123 $codecmodules"
5732 else
5733 nocodecmodules="mpg123 $nocodecmodules"
5735 echores "$_mpg123"
5737 echocheck "liba52 support"
5738 def_liba52='#undef CONFIG_LIBA52'
5739 if test "$_liba52" = auto ; then
5740 _liba52=no
5741 cat > $TMPC << EOF
5742 #include <inttypes.h>
5743 #include <a52dec/a52.h>
5744 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
5746 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
5748 if test "$_liba52" = yes ; then
5749 def_liba52='#define CONFIG_LIBA52 1'
5750 codecmodules="liba52 $codecmodules"
5751 else
5752 nocodecmodules="liba52 $nocodecmodules"
5754 echores "$_liba52"
5756 echocheck "libdca support"
5757 if test "$_libdca" = auto ; then
5758 _libdca=no
5759 for _ld_dca in -ldca -ldts ; do
5760 statement_check_broken stdint.h dts.h 'dts_init(0)' $_ld_dca $_ld_lm &&
5761 extra_ldflags="$extra_ldflags $_ld_dca" && _libdca=yes && break
5762 done
5764 if test "$_libdca" = yes ; then
5765 def_libdca='#define CONFIG_LIBDCA 1'
5766 codecmodules="libdca $codecmodules"
5767 else
5768 def_libdca='#undef CONFIG_LIBDCA'
5769 nocodecmodules="libdca $nocodecmodules"
5771 echores "$_libdca"
5773 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5774 if test "$_musepack" = yes ; then
5775 _musepack=no
5776 cat > $TMPC << EOF
5777 #include <stddef.h>
5778 #include <mpcdec/mpcdec.h>
5779 int main(void) {
5780 mpc_streaminfo info;
5781 mpc_decoder decoder;
5782 mpc_decoder_set_streaminfo(&decoder, &info);
5783 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5784 return 0;
5787 cc_check -lmpcdec $_ld_lm && _musepack=yes
5789 if test "$_musepack" = yes ; then
5790 def_musepack='#define CONFIG_MUSEPACK 1'
5791 extra_ldflags="$extra_ldflags -lmpcdec"
5792 codecmodules="musepack $codecmodules"
5793 else
5794 def_musepack='#undef CONFIG_MUSEPACK'
5795 nocodecmodules="musepack $nocodecmodules"
5797 echores "$_musepack"
5800 echocheck "FAAD2 support"
5801 if test "$_faad" = auto ; then
5802 _faad=no
5803 cat > $TMPC << EOF
5804 #include <faad.h>
5805 #ifndef FAAD_MIN_STREAMSIZE
5806 #error Too old version
5807 #endif
5808 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
5809 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5811 cc_check -lfaad $_ld_lm && _faad=yes
5814 def_faad='#undef CONFIG_FAAD'
5815 if test "$_faad" = yes ; then
5816 def_faad='#define CONFIG_FAAD 1'
5817 extra_ldflags="$extra_ldflags -lfaad"
5818 codecmodules="faad2 $codecmodules"
5819 else
5820 nocodecmodules="faad2 $nocodecmodules"
5822 echores "$_faad"
5825 echocheck "LADSPA plugin support"
5826 if test "$_ladspa" = auto ; then
5827 _ladspa=no
5828 statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes
5830 if test "$_ladspa" = yes; then
5831 def_ladspa="#define CONFIG_LADSPA 1"
5832 else
5833 def_ladspa="#undef CONFIG_LADSPA"
5835 echores "$_ladspa"
5838 echocheck "libbs2b audio filter support"
5839 if test "$_libbs2b" = auto ; then
5840 cat > $TMPC <<EOF
5841 #include <bs2b.h>
5842 #if BS2B_VERSION_MAJOR < 3
5843 #error Please use libbs2b >= 3.0.0, older versions are not supported.
5844 #endif
5845 int main(void) {
5846 t_bs2bdp filter;
5847 filter=bs2b_open();
5848 bs2b_close(filter);
5849 return 0;
5852 _libbs2b=no
5853 if $_pkg_config --exists libbs2b ; then
5854 _inc_tmp=$($_pkg_config --cflags libbs2b)
5855 _ld_tmp=$($_pkg_config --libs libbs2b)
5856 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
5857 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
5858 else
5859 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
5860 -I/usr/local/include/bs2b ; do
5861 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
5862 extra_ldflags="$extra_ldflags -lbs2b"
5863 extra_cflags="$extra_cflags $_inc_tmp"
5864 _libbs2b=yes
5865 break
5867 done
5870 def_libbs2b="#undef CONFIG_LIBBS2B"
5871 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
5872 echores "$_libbs2b"
5875 if test -z "$_codecsdir" ; then
5876 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
5877 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5878 if test -d "$dir" ; then
5879 _codecsdir="$dir"
5880 break;
5882 done
5884 # Fall back on default directory.
5885 if test -z "$_codecsdir" ; then
5886 _codecsdir="$_libdir/codecs"
5887 mingw32 || os2 && _codecsdir="codecs"
5891 echocheck "Win32 codecs"
5892 if test "$_win32dll" = auto ; then
5893 _win32dll=no
5894 if x86_32 && ! qnx; then
5895 _win32dll=yes
5898 if test "$_win32dll" = yes ; then
5899 def_win32dll='#define CONFIG_WIN32DLL 1'
5900 if ! win32 ; then
5901 def_win32_loader='#define WIN32_LOADER 1'
5902 _win32_emulation=yes
5903 else
5904 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
5905 res_comment="using native windows"
5907 codecmodules="win32 $codecmodules"
5908 else
5909 def_win32dll='#undef CONFIG_WIN32DLL'
5910 def_win32_loader='#undef WIN32_LOADER'
5911 nocodecmodules="win32 $nocodecmodules"
5913 echores "$_win32dll"
5916 echocheck "XAnim codecs"
5917 if test "$_xanim" = auto ; then
5918 _xanim=no
5919 res_comment="dynamic loader support needed"
5920 if test "$_dl" = yes ; then
5921 _xanim=yes
5924 if test "$_xanim" = yes ; then
5925 def_xanim='#define CONFIG_XANIM 1'
5926 codecmodules="xanim $codecmodules"
5927 else
5928 def_xanim='#undef CONFIG_XANIM'
5929 nocodecmodules="xanim $nocodecmodules"
5931 echores "$_xanim"
5934 echocheck "RealPlayer codecs"
5935 if test "$_real" = auto ; then
5936 _real=no
5937 res_comment="dynamic loader support needed"
5938 if test "$_dl" = yes || test "$_win32dll" = yes &&
5939 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
5940 _real=yes
5943 if test "$_real" = yes ; then
5944 def_real='#define CONFIG_REALCODECS 1'
5945 codecmodules="real $codecmodules"
5946 else
5947 def_real='#undef CONFIG_REALCODECS'
5948 nocodecmodules="real $nocodecmodules"
5950 echores "$_real"
5953 echocheck "QuickTime codecs"
5954 _qtx_emulation=no
5955 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
5956 if test "$_qtx" = auto ; then
5957 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
5959 if test "$_qtx" = yes ; then
5960 def_qtx='#define CONFIG_QTX_CODECS 1'
5961 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
5962 codecmodules="qtx $codecmodules"
5963 darwin || win32 || _qtx_emulation=yes
5964 else
5965 def_qtx='#undef CONFIG_QTX_CODECS'
5966 nocodecmodules="qtx $nocodecmodules"
5968 echores "$_qtx"
5970 echocheck "Nemesi Streaming Media libraries"
5971 if test "$_nemesi" = auto && test "$networking" = yes ; then
5972 _nemesi=no
5973 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
5974 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
5975 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
5976 _nemesi=yes
5979 if test "$_nemesi" = yes; then
5980 _native_rtsp=no
5981 def_nemesi='#define CONFIG_LIBNEMESI 1'
5982 inputmodules="nemesi $inputmodules"
5983 else
5984 _native_rtsp="$networking"
5985 _nemesi=no
5986 def_nemesi='#undef CONFIG_LIBNEMESI'
5987 noinputmodules="nemesi $noinputmodules"
5989 echores "$_nemesi"
5991 echocheck "LIVE555 Streaming Media libraries"
5992 if test "$_live" = auto && test "$networking" = yes ; then
5993 cat > $TMPCPP << EOF
5994 #include <liveMedia.hh>
5995 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
5996 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5997 #endif
5998 int main(void) { return 0; }
6001 _live=no
6002 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
6003 cxx_check $I/liveMedia/include $I/UsageEnvironment/include $I/groupsock/include &&
6004 _livelibdir=$(echo $I| sed s/-I//) &&
6005 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6006 $_livelibdir/groupsock/libgroupsock.a \
6007 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6008 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6009 $extra_ldflags -lstdc++" \
6010 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6011 -I$_livelibdir/UsageEnvironment/include \
6012 -I$_livelibdir/BasicUsageEnvironment/include \
6013 -I$_livelibdir/groupsock/include" &&
6014 _live=yes && break
6015 done
6016 if test "$_live" != yes ; then
6017 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6018 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
6019 _live_dist=yes
6023 if test "$_live" = yes && test "$networking" = yes; then
6024 test $_livelibdir && res_comment="using $_livelibdir"
6025 def_live='#define CONFIG_LIVE555 1'
6026 inputmodules="live555 $inputmodules"
6027 elif test "$_live_dist" = yes && test "$networking" = yes; then
6028 res_comment="using distribution version"
6029 _live="yes"
6030 def_live='#define CONFIG_LIVE555 1'
6031 extra_ldflags="$extra_ldflags $ld_tmp"
6032 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6033 inputmodules="live555 $inputmodules"
6034 else
6035 _live=no
6036 def_live='#undef CONFIG_LIVE555'
6037 noinputmodules="live555 $noinputmodules"
6039 echores "$_live"
6043 all_ffmpeg_libs="libavutil libavcodec libavformat libswscale libpostproc"
6044 echocheck "FFmpeg ($all_ffmpeg_libs)"
6045 if test "$ffmpeg" = auto ; then
6046 ffmpeg=no
6047 if $_pkg_config --exists $all_ffmpeg_libs ; then
6048 inc_ffmpeg=$($_pkg_config --cflags $all_ffmpeg_libs)
6049 _ld_tmp=$($_pkg_config --libs $all_ffmpeg_libs)
6050 extra_ldflags="$extra_ldflags $_ld_tmp"
6051 extra_cflags="$extra_cflags $inc_ffmpeg"
6052 ffmpeg=yes
6053 elif header_check libavutil/avutil.h -lpostproc -lswscale -lavformat -lavcodec -lavutil $_ld_lm ; then
6054 extra_ldflags="$extra_ldflags -lpostproc -lswscale -lavformat -lavcodec -lavutil"
6055 ffmpeg=yes
6056 else
6057 die "Unable to find development files for some of the FFmpeg libraries above. Aborting. If you really mean to compile without FFmpeg support use --disable-ffmpeg."
6061 ffmpeg_eval_api=no
6062 def_ffmpeg_eval_api="#undef CONFIG_FFMPEG_EVAL_API"
6063 if test "$ffmpeg" = yes; then
6064 def_ffmpeg='#define CONFIG_FFMPEG 1'
6065 codecmodules="ffmpeg $codecmodules"
6066 if $_pkg_config --atleast-version=50.18.0 libavutil ; then
6067 ffmpeg_eval_api=yes
6068 def_ffmpeg_eval_api="#define CONFIG_FFMPEG_EVAL_API 1"
6070 else
6071 def_ffmpeg='#undef CONFIG_FFMPEG'
6072 nocodecmodules="ffmpeg $nocodecmodules"
6074 echores "$ffmpeg"
6076 def_ffmpeg_internals="#undef CONFIG_FFMPEG_INTERNALS"
6077 if ! test -z "$_ffmpeg_source" ; then
6078 test "$ffmpeg" = yes && def_ffmpeg_internals="#define CONFIG_FFMPEG_INTERNALS 1" && ffmpeg_internals=yes
6083 echocheck "libdv-0.9.5+"
6084 if test "$_libdv" = auto ; then
6085 _libdv=no
6086 statement_check libdv/dv.h 'dv_encoder_new(1, 1, 1)' -ldv $_ld_pthread $_ld_lm && _libdv=yes
6088 if test "$_libdv" = yes ; then
6089 def_libdv='#define CONFIG_LIBDV095 1'
6090 extra_ldflags="$extra_ldflags -ldv"
6091 codecmodules="libdv $codecmodules"
6092 else
6093 def_libdv='#undef CONFIG_LIBDV095'
6094 nocodecmodules="libdv $nocodecmodules"
6096 echores "$_libdv"
6099 echocheck "Xvid"
6100 if test "$_xvid" = auto ; then
6101 _xvid=no
6102 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6103 statement_check xvid.h 'xvid_global(0, 0, 0, 0)' $_ld_tmp &&
6104 extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6105 done
6108 if test "$_xvid" = yes ; then
6109 def_xvid='#define CONFIG_XVID4 1'
6110 codecmodules="xvid $codecmodules"
6111 else
6112 def_xvid='#undef CONFIG_XVID4'
6113 nocodecmodules="xvid $nocodecmodules"
6115 echores "$_xvid"
6118 echocheck "libnut"
6119 if test "$_libnut" = auto ; then
6120 _libnut=no
6121 statement_check libnut.h 'nut_context_tt * nut; nut_error(0)' -lnut && _libnut=yes
6124 if test "$_libnut" = yes ; then
6125 def_libnut='#define CONFIG_LIBNUT 1'
6126 extra_ldflags="$extra_ldflags -lnut"
6127 else
6128 def_libnut='#undef CONFIG_LIBNUT'
6130 echores "$_libnut"
6132 # These VO checks must be done after the FFmpeg one
6133 echocheck "/dev/mga_vid"
6134 if test "$_mga" = auto ; then
6135 _mga=no
6136 test -c /dev/mga_vid && _mga=yes
6138 if test "$_mga" = yes ; then
6139 def_mga='#define CONFIG_MGA 1'
6140 vomodules="mga $vomodules"
6141 else
6142 def_mga='#undef CONFIG_MGA'
6143 novomodules="mga $novomodules"
6145 echores "$_mga"
6148 echocheck "xmga"
6149 if test "$_xmga" = auto ; then
6150 _xmga=no
6151 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6153 if test "$_xmga" = yes ; then
6154 def_xmga='#define CONFIG_XMGA 1'
6155 vomodules="xmga $vomodules"
6156 else
6157 def_xmga='#undef CONFIG_XMGA'
6158 novomodules="xmga $novomodules"
6160 echores "$_xmga"
6163 echocheck "UnRAR executable"
6164 if test "$_unrar_exec" = auto ; then
6165 _unrar_exec="yes"
6166 mingw32 && _unrar_exec="no"
6168 if test "$_unrar_exec" = yes ; then
6169 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
6170 else
6171 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
6173 echores "$_unrar_exec"
6175 echocheck "TV interface"
6176 if test "$_tv" = yes ; then
6177 def_tv='#define CONFIG_TV 1'
6178 inputmodules="tv $inputmodules"
6179 else
6180 noinputmodules="tv $noinputmodules"
6181 def_tv='#undef CONFIG_TV'
6183 echores "$_tv"
6186 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
6187 echocheck "*BSD BT848 bt8xx header"
6188 _ioctl_bt848_h=no
6189 for file in "machine/ioctl_bt848.h" \
6190 "dev/bktr/ioctl_bt848.h" \
6191 "dev/video/bktr/ioctl_bt848.h" \
6192 "dev/ic/bt8xx.h" ; do
6193 cat > $TMPC <<EOF
6194 #include <sys/types.h>
6195 #include <sys/ioctl.h>
6196 #include <$file>
6197 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
6199 if cc_check ; then
6200 _ioctl_bt848_h=yes
6201 _ioctl_bt848_h_name="$file"
6202 break;
6204 done
6205 if test "$_ioctl_bt848_h" = yes ; then
6206 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
6207 res_comment="using $_ioctl_bt848_h_name"
6208 else
6209 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
6211 echores "$_ioctl_bt848_h"
6213 echocheck "*BSD ioctl_meteor.h"
6214 _ioctl_meteor_h=no
6215 for ioctl_meteor_h_path in "machine/ioctl_meteor.h" "dev/bktr/ioctl_meteor.h" "dev/video/bktr/ioctl_meteor.h" ; do
6216 statement_check_broken "sys/types.h" "$ioctl_meteor_h_path" 'ioctl(0, METEORSINPUT, 0)' &&
6217 _ioctl_meteor_h=yes && break
6218 done
6219 if test "$_ioctl_meteor_h" = yes ; then
6220 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$ioctl_meteor_h_path>"
6221 res_comment="using $ioctl_meteor_h_path"
6222 else
6223 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
6225 echores "$_ioctl_meteor_h"
6227 echocheck "*BSD BrookTree 848 TV interface"
6228 if test "$_tv_bsdbt848" = auto ; then
6229 _tv_bsdbt848=no
6230 if test "$_tv" = yes ; then
6231 cat > $TMPC <<EOF
6232 #include <sys/types.h>
6233 $def_ioctl_meteor_h_name
6234 $def_ioctl_bt848_h_name
6235 #ifdef IOCTL_METEOR_H_NAME
6236 #include IOCTL_METEOR_H_NAME
6237 #endif
6238 #ifdef IOCTL_BT848_H_NAME
6239 #include IOCTL_BT848_H_NAME
6240 #endif
6241 int main(void) {
6242 ioctl(0, METEORSINPUT, 0);
6243 ioctl(0, TVTUNER_GETFREQ, 0);
6244 return 0;
6247 cc_check && _tv_bsdbt848=yes
6250 if test "$_tv_bsdbt848" = yes ; then
6251 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
6252 inputmodules="tv-bsdbt848 $inputmodules"
6253 else
6254 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
6255 noinputmodules="tv-bsdbt848 $noinputmodules"
6257 echores "$_tv_bsdbt848"
6258 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
6261 echocheck "DirectShow TV interface"
6262 if test "$_tv_dshow" = auto ; then
6263 _tv_dshow=no
6264 if test "$_tv" = yes && win32 ; then
6265 statement_check ole2.h 'void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p)' -lole32 -luuid && _tv_dshow=yes
6268 if test "$_tv_dshow" = yes ; then
6269 inputmodules="tv-dshow $inputmodules"
6270 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
6271 extra_ldflags="$extra_ldflags -lole32 -luuid"
6272 else
6273 noinputmodules="tv-dshow $noinputmodules"
6274 def_tv_dshow='#undef CONFIG_TV_DSHOW'
6276 echores "$_tv_dshow"
6279 echocheck "Video 4 Linux TV interface"
6280 if test "$_tv_v4l1" = auto ; then
6281 _tv_v4l1=no
6282 if test "$_tv" = yes && linux ; then
6283 header_check_broken sys/time.h linux/videodev.h && _tv_v4l1=yes
6286 if test "$_tv_v4l1" = yes ; then
6287 _audio_input=yes
6288 _tv_v4l=yes
6289 def_tv_v4l='#define CONFIG_TV_V4L 1'
6290 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
6291 inputmodules="tv-v4l $inputmodules"
6292 else
6293 noinputmodules="tv-v4l1 $noinputmodules"
6294 def_tv_v4l='#undef CONFIG_TV_V4L'
6296 echores "$_tv_v4l1"
6299 echocheck "Video 4 Linux 2 TV interface"
6300 if test "$_tv_v4l2" = auto ; then
6301 _tv_v4l2=no
6302 if test "$_tv" = yes && linux ; then
6303 header_check_broken sys/time.h linux/videodev2.h && _tv_v4l2=yes
6306 if test "$_tv_v4l2" = yes ; then
6307 _audio_input=yes
6308 _tv_v4l=yes
6309 def_tv_v4l='#define CONFIG_TV_V4L 1'
6310 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
6311 inputmodules="tv-v4l2 $inputmodules"
6312 else
6313 noinputmodules="tv-v4l2 $noinputmodules"
6314 def_tv_v4l2='#undef CONFIG_TV_V4L2'
6316 echores "$_tv_v4l2"
6319 echocheck "Radio interface"
6320 if test "$_radio" = yes ; then
6321 def_radio='#define CONFIG_RADIO 1'
6322 inputmodules="radio $inputmodules"
6323 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
6324 _radio_capture=no
6326 if test "$_radio_capture" = yes ; then
6327 _audio_input=yes
6328 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
6329 else
6330 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6332 else
6333 noinputmodules="radio $noinputmodules"
6334 def_radio='#undef CONFIG_RADIO'
6335 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
6336 _radio_capture=no
6338 echores "$_radio"
6339 echocheck "Capture for Radio interface"
6340 echores "$_radio_capture"
6342 echocheck "Video 4 Linux 2 Radio interface"
6343 if test "$_radio_v4l2" = auto ; then
6344 _radio_v4l2=no
6345 if test "$_radio" = yes && linux ; then
6346 header_check linux/videodev2.h && _radio_v4l2=yes
6349 if test "$_radio_v4l2" = yes ; then
6350 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
6351 else
6352 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
6354 echores "$_radio_v4l2"
6356 echocheck "Video 4 Linux Radio interface"
6357 if test "$_radio_v4l" = auto ; then
6358 _radio_v4l=no
6359 if test "$_radio" = yes && linux ; then
6360 header_check linux/videodev.h && _radio_v4l=yes
6363 if test "$_radio_v4l" = yes ; then
6364 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
6365 else
6366 def_radio_v4l='#undef CONFIG_RADIO_V4L'
6368 echores "$_radio_v4l"
6370 if freebsd || netbsd || openbsd || dragonfly || bsdos &&
6371 test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
6372 echocheck "*BSD BrookTree 848 Radio interface"
6373 _radio_bsdbt848=no
6374 cat > $TMPC <<EOF
6375 #include <sys/types.h>
6376 $def_ioctl_bt848_h_name
6377 #ifdef IOCTL_BT848_H_NAME
6378 #include IOCTL_BT848_H_NAME
6379 #endif
6380 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
6382 cc_check && _radio_bsdbt848=yes
6383 echores "$_radio_bsdbt848"
6384 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
6386 if test "$_radio_bsdbt848" = yes ; then
6387 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
6388 else
6389 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
6392 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no &&
6393 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
6394 die "Radio driver requires BSD BT848, V4L or V4L2!"
6397 echocheck "Video 4 Linux 2 MPEG PVR interface"
6398 if test "$_pvr" = auto ; then
6399 _pvr=no
6400 if test "$_tv_v4l2" = yes && linux ; then
6401 cat > $TMPC <<EOF
6402 #include <sys/time.h>
6403 #include <linux/videodev2.h>
6404 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
6406 cc_check && _pvr=yes
6409 if test "$_pvr" = yes ; then
6410 def_pvr='#define CONFIG_PVR 1'
6411 inputmodules="pvr $inputmodules"
6412 else
6413 noinputmodules="pvr $noinputmodules"
6414 def_pvr='#undef CONFIG_PVR'
6416 echores "$_pvr"
6419 echocheck "ftp"
6420 if test "$_ftp" = "auto" ; then
6421 test "$networking" = "yes" && ! beos && _ftp=yes
6423 if test "$_ftp" = yes ; then
6424 def_ftp='#define CONFIG_FTP 1'
6425 inputmodules="ftp $inputmodules"
6426 else
6427 noinputmodules="ftp $noinputmodules"
6428 def_ftp='#undef CONFIG_FTP'
6430 echores "$_ftp"
6432 echocheck "vstream client"
6433 if test "$_vstream" = auto ; then
6434 _vstream=no
6435 cat > $TMPC <<EOF
6436 #include <vstream-client.h>
6437 void vstream_error(const char *format, ... ) {}
6438 int main(void) { vstream_start(); return 0; }
6440 cc_check -lvstream-client && _vstream=yes
6442 if test "$_vstream" = yes ; then
6443 def_vstream='#define CONFIG_VSTREAM 1'
6444 inputmodules="vstream $inputmodules"
6445 extra_ldflags="$extra_ldflags -lvstream-client"
6446 else
6447 noinputmodules="vstream $noinputmodules"
6448 def_vstream='#undef CONFIG_VSTREAM'
6450 echores "$_vstream"
6453 echocheck "OSD menu"
6454 if test "$_menu" = yes ; then
6455 def_menu='#define CONFIG_MENU 1'
6456 test $_dvbin = "yes" && _menu_dvbin=yes
6457 else
6458 def_menu='#undef CONFIG_MENU'
6459 _menu_dvbin=no
6461 echores "$_menu"
6464 echocheck "Subtitles sorting"
6465 if test "$_sortsub" = yes ; then
6466 def_sortsub='#define CONFIG_SORTSUB 1'
6467 else
6468 def_sortsub='#undef CONFIG_SORTSUB'
6470 echores "$_sortsub"
6473 echocheck "XMMS inputplugin support"
6474 if test "$_xmms" = yes ; then
6475 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6476 _xmmsplugindir=$(xmms-config --input-plugin-dir)
6477 _xmmslibdir=$(xmms-config --exec-prefix)/lib
6478 else
6479 _xmmsplugindir=/usr/lib/xmms/Input
6480 _xmmslibdir=/usr/lib
6483 def_xmms='#define CONFIG_XMMS 1'
6484 if darwin ; then
6485 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
6486 else
6487 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6489 else
6490 def_xmms='#undef CONFIG_XMMS'
6492 echores "$_xmms"
6494 if test "$_charset" != "noconv" ; then
6495 def_charset="#define MSG_CHARSET \"$_charset\""
6496 else
6497 def_charset="#undef MSG_CHARSET"
6498 _charset="UTF-8"
6501 #############################################################################
6503 echocheck "automatic gdb attach"
6504 if test "$_crash_debug" = yes ; then
6505 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
6506 else
6507 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
6508 _crash_debug=no
6510 echores "$_crash_debug"
6512 echocheck "compiler support for noexecstack"
6513 if cflag_check -Wl,-z,noexecstack ; then
6514 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
6515 echores "yes"
6516 else
6517 echores "no"
6520 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
6521 if cflag_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
6522 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
6523 echores "yes"
6524 else
6525 echores "no"
6529 # Dynamic linking flags
6530 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6531 _ld_dl_dynamic=''
6532 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
6533 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
6534 _ld_dl_dynamic='-rdynamic'
6537 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6538 bsdos && extra_ldflags="$extra_ldflags -ldvd"
6539 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
6541 def_debug='#undef MP_DEBUG'
6542 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
6545 echocheck "joystick"
6546 def_joystick='#undef CONFIG_JOYSTICK'
6547 if test "$_joystick" = yes ; then
6548 if linux || freebsd ; then
6549 # TODO add some check
6550 def_joystick='#define CONFIG_JOYSTICK 1'
6551 else
6552 _joystick="no"
6553 res_comment="unsupported under $system_name"
6556 echores "$_joystick"
6558 echocheck "lirc"
6559 if test "$_lirc" = auto ; then
6560 _lirc=no
6561 header_check lirc/lirc_client.h -llirc_client && _lirc=yes
6563 if test "$_lirc" = yes ; then
6564 def_lirc='#define CONFIG_LIRC 1'
6565 libs_mplayer="$libs_mplayer -llirc_client"
6566 else
6567 def_lirc='#undef CONFIG_LIRC'
6569 echores "$_lirc"
6571 echocheck "lircc"
6572 if test "$_lircc" = auto ; then
6573 _lircc=no
6574 header_check lirc/lircc.h -llircc && _lircc=yes
6576 if test "$_lircc" = yes ; then
6577 def_lircc='#define CONFIG_LIRCC 1'
6578 libs_mplayer="$libs_mplayer -llircc"
6579 else
6580 def_lircc='#undef CONFIG_LIRCC'
6582 echores "$_lircc"
6584 #############################################################################
6586 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
6587 # the OMF format needs to come after the 'extern symbol prefix' check, which
6588 # uses nm.
6589 if os2 ; then
6590 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
6593 #############################################################################
6594 # 64 bit file offsets?
6595 if test "$_largefiles" = yes || freebsd ; then
6596 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6597 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
6598 # dvdread support requires this (for off64_t)
6599 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6603 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
6605 # This must be the last test to be performed. Any other tests following it
6606 # could fail due to linker errors. libdvdnavmini is intentionally not linked
6607 # against libdvdread (to permit MPlayer to use its own copy of the library).
6608 # So any compilation using the flags added here but not linking against
6609 # libdvdread can fail.
6610 echocheck "DVD support (libdvdnav)"
6611 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
6612 _dvdnav=no
6614 dvdnav_internal=no
6615 if test "$_dvdnav" = auto ; then
6616 if test "$_dvdread_internal" = yes ; then
6617 _dvdnav=yes
6618 dvdnav_internal=yes
6619 res_comment="internal"
6620 else
6621 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
6624 if test "$_dvdnav" = auto ; then
6625 _dvdnav=no
6626 _dvdnavdir=$($_dvdnavconfig --cflags)
6627 _dvdnavlibs=$($_dvdnavconfig --libs)
6628 statement_check_broken stdint.h dvdnav/dvdnav.h 'dvdnav_t *dvd = 0' $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
6630 if test "$_dvdnav" = yes ; then
6631 _largefiles=yes
6632 def_dvdnav='#define CONFIG_DVDNAV 1'
6633 if test "$dvdnav_internal" = yes ; then
6634 cflags_libdvdnav="-Ilibdvdnav"
6635 inputmodules="dvdnav(internal) $inputmodules"
6636 else
6637 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
6638 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
6639 inputmodules="dvdnav $inputmodules"
6641 else
6642 def_dvdnav='#undef CONFIG_DVDNAV'
6643 noinputmodules="dvdnav $noinputmodules"
6645 echores "$_dvdnav"
6647 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
6648 # Read dvdnav comment above.
6650 mak_enable () {
6651 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6652 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6653 nprefix=$3;
6654 for part in $list; do
6655 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6656 echo "${nprefix}_$part = yes"
6658 done
6661 #############################################################################
6662 echo "Creating config.mak"
6663 cat > config.mak << EOF
6664 # -------- Generated by configure -----------
6666 # Ensure that locale settings do not interfere with shell commands.
6667 export LC_ALL = C
6669 CONFIGURATION = $configuration
6671 CHARSET = $_charset
6672 DOC_LANGS = $language_doc
6673 DOC_LANG_ALL = $doc_lang_all
6674 MAN_LANGS = $language_man
6675 MAN_LANG_ALL = $man_lang_all
6676 MSG_LANGS = $language_msg
6677 MSG_LANG_ALL = $msg_lang_all
6679 prefix = \$(DESTDIR)$_prefix
6680 BINDIR = \$(DESTDIR)$_bindir
6681 DATADIR = \$(DESTDIR)$_datadir
6682 LIBDIR = \$(DESTDIR)$_libdir
6683 MANDIR = \$(DESTDIR)$_mandir
6684 CONFDIR = \$(DESTDIR)$_confdir
6685 LOCALEDIR = \$(DESTDIR)$_localedir
6687 AR = $_ar
6688 AS = $_cc
6689 CC = $_cc
6690 CXX = $_cc
6691 HOST_CC = $_host_cc
6692 INSTALL = $_install
6693 INSTALLSTRIP = $_install_strip
6694 WINDRES = $_windres
6696 CFLAGS = $WARNFLAGS $WARN_CFLAGS $CFLAGS $extra_cflags
6697 CXXFLAGS = $WARNFLAGS $CXXFLAGS $extra_cflags $extra_cxxflags
6698 DEPFLAGS = $DEPFLAGS
6700 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
6701 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
6702 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
6703 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
6704 CFLAGS_STACKREALIGN = $cflags_stackrealign
6706 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
6707 EXTRALIBS_MPLAYER = $libs_mplayer
6709 GETCH = $_getch
6710 TIMER = $_timer
6712 EXESUF = $_exesuf
6713 EXESUFS_ALL = .exe
6715 ARCH = $arch
6716 $(mak_enable "$arch_all" "$arch" ARCH)
6717 $(mak_enable "$subarch_all" "$subarch" ARCH)
6718 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
6720 MPLAYER = $_mplayer
6722 NEED_GETTIMEOFDAY = $need_gettimeofday
6723 NEED_GLOB = $need_glob
6724 NEED_MMAP = $need_mmap
6725 NEED_SETENV = $need_setenv
6726 NEED_SHMEM = $need_shmem
6727 NEED_STRSEP = $need_strsep
6728 NEED_SWAB = $need_swab
6729 NEED_VSSCANF = $need_vsscanf
6731 # features
6732 3DFX = $_3dfx
6733 AA = $_aa
6734 ALSA1X = $_alsa1x
6735 ALSA9 = $_alsa9
6736 ALSA5 = $_alsa5
6737 APPLE_IR = $_apple_ir
6738 APPLE_REMOTE = $_apple_remote
6739 ARTS = $_arts
6740 AUDIO_INPUT = $_audio_input
6741 BITMAP_FONT = $_bitmap_font
6742 BL = $_bl
6743 CACA = $_caca
6744 CDDA = $_cdda
6745 CDDB = $_cddb
6746 COREAUDIO = $_coreaudio
6747 COREVIDEO = $_corevideo
6748 DART = $_dart
6749 DGA = $_dga
6750 DIRECT3D = $_direct3d
6751 DIRECTFB = $_directfb
6752 DIRECTX = $_directx
6753 DVBIN = $_dvbin
6754 DVDNAV = $_dvdnav
6755 DVDNAV_INTERNAL = $dvdnav_internal
6756 DVDREAD = $_dvdread
6757 DVDREAD_INTERNAL = $_dvdread_internal
6758 DXR3 = $_dxr3
6759 ESD = $_esd
6760 FAAD = $_faad
6761 FASTMEMCPY = $_fastmemcpy
6762 FBDEV = $_fbdev
6763 FREETYPE = $_freetype
6764 FTP = $_ftp
6765 GIF = $_gif
6766 GGI = $_ggi
6767 GL = $_gl
6768 GL_WIN32 = $_gl_win32
6769 GL_X11 = $_gl_x11
6770 GL_SDL = $_gl_sdl
6771 MATRIXVIEW = $matrixview
6772 HAVE_POSIX_SELECT = $_posix_select
6773 HAVE_SYS_MMAN_H = $_mman
6774 IVTV = $_ivtv
6775 JACK = $_jack
6776 JOYSTICK = $_joystick
6777 JPEG = $_jpeg
6778 KAI = $_kai
6779 KVA = $_kva
6780 LADSPA = $_ladspa
6781 LIBA52 = $_liba52
6782 LIBASS = $_ass
6783 LIBBLURAY = $_bluray
6784 LIBBS2B = $_libbs2b
6785 LIBDCA = $_libdca
6786 LIBDV = $_libdv
6787 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
6788 LIBMAD = $_mad
6789 LIBMENU = $_menu
6790 LIBMENU_DVBIN = $_menu_dvbin
6791 LIBNEMESI = $_nemesi
6792 LIBNUT = $_libnut
6793 LIBSMBCLIENT = $_smb
6794 LIBTHEORA = $_theora
6795 LIRC = $_lirc
6796 LIVE555 = $_live
6797 MACOSX_FINDER = $_macosx_finder
6798 MD5SUM = $_md5sum
6799 MGA = $_mga
6800 MNG = $_mng
6801 MPG123 = $_mpg123
6802 MUSEPACK = $_musepack
6803 NAS = $_nas
6804 NATIVE_RTSP = $_native_rtsp
6805 NETWORKING = $networking
6806 OPENAL = $_openal
6807 OSS = $_ossaudio
6808 PE_EXECUTABLE = $_pe_executable
6809 PNG = $_png
6810 PNM = $_pnm
6811 PRIORITY = $_priority
6812 PULSE = $_pulse
6813 PVR = $_pvr
6814 QTX_CODECS = $_qtx
6815 QTX_CODECS_WIN32 = $_qtx_codecs_win32
6816 QTX_EMULATION = $_qtx_emulation
6817 QUARTZ = $_quartz
6818 RADIO=$_radio
6819 RADIO_CAPTURE=$_radio_capture
6820 REAL_CODECS = $_real
6821 S3FB = $_s3fb
6822 SDL = $_sdl
6823 SPEEX = $_speex
6824 STREAM_CACHE = $_stream_cache
6825 SGIAUDIO = $_sgiaudio
6826 SUNAUDIO = $_sunaudio
6827 SVGA = $_svga
6828 TDFXFB = $_tdfxfb
6829 TDFXVID = $_tdfxvid
6830 TGA = $_tga
6831 TV = $_tv
6832 TV_BSDBT848 = $_tv_bsdbt848
6833 TV_DSHOW = $_tv_dshow
6834 TV_V4L = $_tv_v4l
6835 TV_V4L1 = $_tv_v4l1
6836 TV_V4L2 = $_tv_v4l2
6837 UNRAR_EXEC = $_unrar_exec
6838 V4L2 = $_v4l2
6839 VCD = $_vcd
6840 VDPAU = $_vdpau
6841 VESA = $_vesa
6842 VORBIS = $_vorbis
6843 VSTREAM = $_vstream
6844 WII = $_wii
6845 WIN32DLL = $_win32dll
6846 WIN32WAVEOUT = $_win32waveout
6847 WIN32_EMULATION = $_win32_emulation
6848 X11 = $_x11
6849 XANIM_CODECS = $_xanim
6850 XMGA = $_xmga
6851 XMMS_PLUGINS = $_xmms
6852 XV = $_xv
6853 XVID4 = $_xvid
6854 XVMC = $_xvmc
6855 XVR100 = $_xvr100
6856 YUV4MPEG = $_yuv4mpeg
6858 # FFmpeg
6859 FFMPEG = $ffmpeg
6860 FFMPEG_EVAL_API = $ffmpeg_eval_api
6861 FFMPEG_INTERNALS = $ffmpeg_internals
6862 FFMPEG_SOURCE_PATH = $_ffmpeg_source
6864 RANLIB = $_ranlib
6865 YASM = $_yasm
6866 YASMFLAGS = $YASMFLAGS
6868 CONFIG_VDPAU = $_vdpau
6869 CONFIG_XVMC = $_xvmc
6870 CONFIG_ZLIB = $_zlib
6872 HAVE_PTHREADS = $_pthreads
6873 HAVE_SHM = $_shm
6874 HAVE_W32THREADS = $_w32threads
6875 HAVE_YASM = $have_yasm
6879 #############################################################################
6881 ff_config_enable () {
6882 list=$(echo $1 | tr '[a-z]' '[A-Z]')
6883 item=$(echo $2 | tr '[a-z]' '[A-Z]')
6884 _nprefix=$3;
6885 test -z "$_nprefix" && _nprefix='CONFIG'
6886 for part in $list; do
6887 if $(echo $item | grep -q -E "(^| )$part($| )"); then
6888 echo "#define ${_nprefix}_$part 1"
6889 else
6890 echo "#define ${_nprefix}_$part 0"
6892 done
6895 echo "Creating config.h"
6896 cat > $TMPH << EOF
6897 /*----------------------------------------------------------------------------
6898 ** This file has been automatically generated by configure any changes in it
6899 ** will be lost when you run configure again.
6900 ** Instead of modifying definitions here, use the --enable/--disable options
6901 ** of the configure script! See ./configure --help for details.
6902 *---------------------------------------------------------------------------*/
6904 #ifndef MPLAYER_CONFIG_H
6905 #define MPLAYER_CONFIG_H
6907 /* Undefine this if you do not want to select mono audio (left or right)
6908 with a stereo MPEG layer 2/3 audio stream. The command line option
6909 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6910 right-only), with 0 being the default.
6912 #define CONFIG_FAKE_MONO 1
6914 /* set up audio OUTBURST. Do not change this! */
6915 #define OUTBURST 512
6917 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6918 #undef FAST_OSD
6919 #undef FAST_OSD_TABLE
6923 #define CONFIGURATION "$configuration"
6925 #define MPLAYER_DATADIR "$_datadir"
6926 #define MPLAYER_CONFDIR "$_confdir"
6927 #define MPLAYER_LIBDIR "$_libdir"
6928 #define MPLAYER_LOCALEDIR "$_localedir"
6930 $def_translation
6932 /* definitions needed by included libraries */
6933 #define HAVE_INTTYPES_H 1
6934 /* libdvdcss */
6935 #define HAVE_ERRNO_H 1
6936 /* libdvdcss + libdvdread */
6937 #define HAVE_LIMITS_H 1
6938 /* libdvdcss */
6939 #define HAVE_UNISTD_H 1
6940 /* libdvdread */
6941 #define STDC_HEADERS 1
6942 #define HAVE_MEMCPY 1
6943 /* libdvdnav */
6944 #define READ_CACHE_TRACE 0
6945 /* libdvdread */
6946 #define HAVE_DLFCN_H 1
6947 $def_dvdcss
6950 /* system headers */
6951 $def_alloca_h
6952 $def_alsa_asoundlib_h
6953 $def_altivec_h
6954 $def_malloc_h
6955 $def_mman_h
6956 $def_mman_has_map_failed
6957 $def_soundcard_h
6958 $def_sys_asoundlib_h
6959 $def_sys_soundcard_h
6960 $def_sys_sysinfo_h
6961 $def_termios_h
6962 $def_termios_sys_h
6963 $def_winsock2_h
6966 /* system functions */
6967 $def_gethostbyname2
6968 $def_gettimeofday
6969 $def_glob
6970 $def_langinfo
6971 $def_lrintf
6972 $def_map_memalign
6973 $def_memalign
6974 $def_nanosleep
6975 $def_posix_select
6976 $def_select
6977 $def_setenv
6978 $def_setmode
6979 $def_shm
6980 $def_strsep
6981 $def_swab
6982 $def_sysi86
6983 $def_sysi86_iv
6984 $def_termcap
6985 $def_termios
6986 $def_vsscanf
6989 /* system-specific features */
6990 $def_asmalign_pot
6991 $def_builtin_expect
6992 $def_dl
6993 $def_dos_paths
6994 $def_extern_asm
6995 $def_extern_prefix
6996 $def_iconv
6997 $def_kstat
6998 $def_macosx_bundle
6999 $def_macosx_finder
7000 $def_named_asm_args
7001 $def_priority
7002 $def_quicktime
7003 $def_restrict_keyword
7004 $def_rtc
7005 $def_unrar_exec
7008 /* configurable options */
7009 $def_charset
7010 $def_crash_debug
7011 $def_debug
7012 $def_dynamic_plugins
7013 $def_fastmemcpy
7014 $def_menu
7015 $def_runtime_cpudetection
7016 $def_sighandler
7017 $def_sortsub
7018 $def_stream_cache
7019 $def_pthread_cache
7022 /* CPU stuff */
7023 #define __CPU__ $iproc
7024 $def_ebx_available
7025 $def_words_endian
7026 $def_bigendian
7027 $(ff_config_enable "$arch_all" "$arch" "ARCH")
7028 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
7029 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
7032 /* Blu-ray/DVD/VCD/CD */
7033 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
7034 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
7035 $def_bluray
7036 $def_bsdi_dvd
7037 $def_cddb
7038 $def_cdio
7039 $def_cdparanoia
7040 $def_cdrom
7041 $def_dvd
7042 $def_dvd_bsd
7043 $def_dvd_darwin
7044 $def_dvd_linux
7045 $def_dvd_openbsd
7046 $def_dvdio
7047 $def_dvdnav
7048 $def_dvdread
7049 $def_hpux_scsi_h
7050 $def_libcdio
7051 $def_sol_scsi_h
7052 $def_vcd
7055 /* codec libraries */
7056 $def_faad
7057 $def_liba52
7058 $def_libdca
7059 $def_libdv
7060 $def_mad
7061 $def_mpg123
7062 $def_musepack
7063 $def_speex
7064 $def_theora
7065 $def_tremor
7066 $def_vorbis
7067 $def_xvid
7068 $def_zlib
7070 $def_libnut
7073 /* binary codecs */
7074 $def_qtx
7075 $def_qtx_win32
7076 $def_real
7077 $def_win32_loader
7078 $def_win32dll
7079 $def_xanim
7080 $def_xmms
7081 #define BINARY_CODECS_PATH "$_codecsdir"
7082 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7085 /* Audio output drivers */
7086 $def_alsa
7087 $def_alsa1x
7088 $def_alsa5
7089 $def_alsa9
7090 $def_arts
7091 $def_coreaudio
7092 $def_dart
7093 $def_esd
7094 $def_esd_latency
7095 $def_jack
7096 $def_kai
7097 $def_nas
7098 $def_openal
7099 $def_openal_h
7100 $def_ossaudio
7101 $def_ossaudio_devdsp
7102 $def_ossaudio_devmixer
7103 $def_pulse
7104 $def_sgiaudio
7105 $def_sunaudio
7106 $def_win32waveout
7108 $def_ladspa
7109 $def_libbs2b
7112 /* input */
7113 $def_apple_ir
7114 $def_apple_remote
7115 $def_ioctl_bt848_h_name
7116 $def_ioctl_meteor_h_name
7117 $def_joystick
7118 $def_lirc
7119 $def_lircc
7120 $def_pvr
7121 $def_radio
7122 $def_radio_bsdbt848
7123 $def_radio_capture
7124 $def_radio_v4l
7125 $def_radio_v4l2
7126 $def_tv
7127 $def_tv_bsdbt848
7128 $def_tv_dshow
7129 $def_tv_v4l
7130 $def_tv_v4l1
7131 $def_tv_v4l2
7134 /* font stuff */
7135 $def_ass
7136 $def_bitmap_font
7137 $def_enca
7138 $def_fontconfig
7139 $def_freetype
7140 $def_fribidi
7143 /* networking */
7144 $def_closesocket
7145 $def_ftp
7146 $def_inet6
7147 $def_inet_aton
7148 $def_inet_pton
7149 $def_live
7150 $def_nemesi
7151 $def_networking
7152 $def_smb
7153 $def_socklen_t
7154 $def_vstream
7157 /* libvo options */
7158 $def_3dfx
7159 $def_aa
7160 $def_bl
7161 $def_caca
7162 $def_corevideo
7163 $def_dga
7164 $def_dga1
7165 $def_dga2
7166 $def_direct3d
7167 $def_directfb
7168 $def_directx
7169 $def_dvb
7170 $def_dvbin
7171 $def_dxr3
7172 $def_fbdev
7173 $def_ggi
7174 $def_ggiwmh
7175 $def_gif
7176 $def_gif_4
7177 $def_gif_tvt_hack
7178 $def_gl
7179 $def_gl_win32
7180 $def_gl_x11
7181 $def_gl_sdl
7182 $def_matrixview
7183 $def_ivtv
7184 $def_jpeg
7185 $def_kva
7186 $def_md5sum
7187 $def_mga
7188 $def_mng
7189 $def_png
7190 $def_pnm
7191 $def_quartz
7192 $def_s3fb
7193 $def_sdl
7194 $def_sdl_sdl_h
7195 $def_svga
7196 $def_tdfxfb
7197 $def_tdfxvid
7198 $def_tga
7199 $def_v4l2
7200 $def_vdpau
7201 $def_vesa
7202 $def_vm
7203 $def_wii
7204 $def_x11
7205 $def_xdpms
7206 $def_xf86keysym
7207 $def_xinerama
7208 $def_xmga
7209 $def_xss
7210 $def_xv
7211 $def_xvmc
7212 $def_xvr100
7213 $def_yuv4mpeg
7216 /* FFmpeg */
7217 $def_ffmpeg
7218 $def_ffmpeg_eval_api
7219 $def_ffmpeg_internals
7221 $def_arpa_inet_h
7222 $def_bswap
7223 $def_dcbzl
7224 $def_exp2
7225 $def_exp2f
7226 $def_fast_64bit
7227 $def_fast_unaligned
7228 $def_llrint
7229 $def_log2
7230 $def_log2f
7231 $def_lrint
7232 $def_memalign_hack
7233 $def_mkstemp
7234 $def_posix_memalign
7235 $def_pthreads
7236 $def_round
7237 $def_roundf
7238 $def_ten_operands
7239 $def_threads
7240 $def_truncf
7241 $def_xform_asm
7242 $def_yasm
7244 #define HAVE_INLINE_ASM 1
7246 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
7247 #ifndef MP_DEBUG
7248 #define HAVE_EBP_AVAILABLE 1
7249 #else
7250 #define HAVE_EBP_AVAILABLE 0
7251 #endif
7253 #endif /* MPLAYER_CONFIG_H */
7256 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
7257 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
7259 #############################################################################
7261 cat << EOF
7263 Config files successfully generated by ./configure $configuration !
7265 Install prefix: $_prefix
7266 Data directory: $_datadir
7267 Config direct.: $_confdir
7269 Byte order: $_byte_order
7270 Optimizing for: $_optimizing
7272 Languages:
7273 Messages (in addition to English): $language_msg
7274 Manual pages: $language_man
7275 Documentation: $language_doc
7277 Enabled optional drivers:
7278 Input: $inputmodules
7279 Codecs: $codecmodules
7280 Audio output: $aomodules
7281 Video output: $vomodules
7283 Disabled optional drivers:
7284 Input: $noinputmodules
7285 Codecs: $nocodecmodules
7286 Audio output: $noaomodules
7287 Video output: $novomodules
7289 'config.h' and 'config.mak' contain your configuration options.
7290 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7291 compile *** DO NOT REPORT BUGS if you tweak these files ***
7293 'make' will now compile MPlayer and 'make install' will install it.
7294 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7299 if test "$_mtrr" = yes ; then
7300 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$language_doc/video.html#mtrr)"
7301 echo
7304 if ! x86_32; then
7305 cat <<EOF
7306 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7307 operating system ($system_name). You may encounter a few files that cannot
7308 be played due to missing open source video/audio codec support.
7314 cat <<EOF
7315 Check $TMPLOG if you wonder why an autodetection failed (make sure
7316 development headers/packages are installed).
7318 NOTE: The --enable-* parameters unconditionally force options on, completely
7319 skipping autodetection. This behavior is unlike what you may be used to from
7320 autoconf-based configure scripts that can decide to override you. This greater
7321 level of control comes at a price. You may have to provide the correct compiler
7322 and linker flags yourself.
7323 If you used one of these options (except --enable-menu and similar ones that
7324 turn on internal features) and experience a compilation or linking failure,
7325 make sure you have passed the necessary compiler/linker flags to configure.
7327 If you suspect a bug, please read DOCS/HTML/$language_doc/bugreports.html.
7331 if test "$warn_cflags" = yes; then
7332 cat <<EOF
7334 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
7335 but:
7337 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
7339 It is strongly recommended to let MPlayer choose the correct CFLAGS!
7340 To do so, execute 'CFLAGS= ./configure <options>'
7345 # Last move:
7346 rm -rf "$mplayer_tmpdir"